package com.szwl.controller;
import cn.com.crbank.ommo.bean.ResultMessage;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sun.corba.se.impl.protocol.giopmsgheaders.RequestMessage;
import com.szwl.constant.ResponseCodesEnum;
import com.szwl.model.bean.CommonParamVo;
import com.szwl.model.bo.R;
import com.szwl.model.bo.ResponseModel;
import com.szwl.model.entity.TEquipment;
import com.szwl.model.entity.TEquipmentDesc;
import com.szwl.model.entity.TParameters;
import com.szwl.model.entity.TProduct;
import com.szwl.model.utils.PushUtils;
import com.szwl.service.TEquipmentDescService;
import com.szwl.service.TEquipmentService;
import com.szwl.service.TParametersService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
*
* 机器参数表 前端控制器
*
*
* @author wuhs
* @since 2022-04-23
*/
@Api(value = "/tParameters", tags = {"参数"})
@RestController
@RequestMapping("/tParameters")
public class TParametersController {
@Autowired
private TParametersService tParametersService;
@Autowired
private TEquipmentService tEquipmentService;
@Resource
private TEquipmentDescService equipmentDescService;
/**
* 获取设备参数
*
* @param
* @return
*/
@PostMapping("/getParameters")
public ResponseEntity> getParameters(@RequestBody TParameters parameters) {
Long equipmentId = parameters.getId();
String status = parameters.getStatus();
String clientId = parameters.getClientId();
LambdaQueryWrapper query = Wrappers.lambdaQuery();
query.eq(TParameters::getEquipmentId, equipmentId);
query.eq(TParameters::getClientId, clientId);
query.eq(TParameters::getStatus, status);
List parametersList = tParametersService.list(query);
if (parametersList.size() == 0) {
return ResponseEntity
.status(HttpStatus.OK)
.body(new ResultMessage()
.setCode(false)
.setData(parametersList)
.setMessage("暂无参数数据"));
}
return ResponseEntity
.status(HttpStatus.OK)
.body(new ResultMessage()
.setCode(true)
.setData(parametersList)
.setMessage("SUCCESS"));
}
/**
* 推送设备共同以及/设备参数
*
* @param
* @return
*/
@PostMapping("/updateParameters")
public ResponseEntity> updateCommonParam(@RequestBody CommonParamVo commonParamVo) {
String equipmentId = commonParamVo.getId();
TEquipment equipment = tEquipmentService.getById(Long.valueOf(equipmentId));
tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("Param", commonParamVo.getName() + ":" + commonParamVo.getVal()).toString());
return ResponseEntity
.status(HttpStatus.OK)
.body(new ResultMessage()
.setCode(true)
.setData("SUCCESS")
.setMessage("SUCCESS"));
}
// @ApiOperation(value = "启用物料监控")
// @PostMapping("/enableMaterial")
// public ResponseModel> enableMaterial(@RequestBody TParameters parameters) {
// Long equipmentId = parameters.getEquipmentId();
// if (equipmentId == null) {
// return R.fail(ResponseCodesEnum.A0001, "设备id不能为空");
// }
//// TParameters tParameters = tParametersService.getById(equipmentId);
//// if (Objects.isNull(tParameters)) {
//// TParameters tParameters1 = new TParameters();
//// }
// TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipmentId);
// if (Objects.isNull(equipmentDesc)) {
// TEquipmentDesc tEquipmentDesc = new TEquipmentDesc();
// tEquipmentDesc.setEquipmentId(equipmentId);
// tEquipmentDesc.setIsMaterialUse("1");
// equipmentDescService.saveOrUpdate(tEquipmentDesc);
// } else {
// String isMaterialUse = equipmentDesc.getIsMaterialUse();
// if (StringUtils.isNotEmpty(isMaterialUse) && "1".equals(isMaterialUse)) {
// return R.ok(ResponseCodesEnum.ALL_OK, "已开启ENABLED");
// }
// equipmentDesc.setIsMaterialUse("1");
// equipmentDescService.saveOrUpdate(equipmentDesc);
// }
//
// TEquipment equipment = tEquipmentService.getById(equipmentId);
// tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("Param", "M502" + ":" + "1").toString());
//
// return R.ok(ResponseCodesEnum.ALL_OK, "已发送Send");
// }
@ApiOperation(value = "物料监控")
@PostMapping("/enableMaterial")
public ResponseModel> enableMaterial(@RequestBody TParameters parameters) {
Long equipmentId = parameters.getEquipmentId();
if (equipmentId == null) {
return R.fail(ResponseCodesEnum.A0001, "设备id不能为空");
}
String materialMonitorStatus = parameters.getMaterialMonitorStatus();
TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipmentId);
if (Objects.isNull(equipmentDesc)) {
TEquipmentDesc tEquipmentDesc = new TEquipmentDesc();
tEquipmentDesc.setEquipmentId(equipmentId);
tEquipmentDesc.setIsMaterialUse("0"); // 默认未启用
equipmentDescService.saveOrUpdate(tEquipmentDesc);
}
TEquipment equipment = tEquipmentService.getById(equipmentId);
if ("1".equals(materialMonitorStatus)) { // 当前是开启状态,用户点击后通知关闭
// equipmentDesc.setIsMaterialUse("0");
tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("Param", "M502" + ":" + "0").toString());
return R.ok(ResponseCodesEnum.ALL_OK, "已通知关闭");
} else { // 当前是未开启状态,用户点击后通知启用
// equipmentDesc.setIsMaterialUse("1");
tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("Param", "M502" + ":" + "1").toString());
return R.ok(ResponseCodesEnum.ALL_OK, "已通知开启");
}
}
}