diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/mqtt/MqttService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/mqtt/MqttService.java index 1c58fe7..3423efc 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/mqtt/MqttService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/mqtt/MqttService.java @@ -35,4 +35,12 @@ public interface MqttService { * */ void connect(); + + /** + * 发布主题消息内容 + * + */ + void testSend(); + + void testSendList(); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java index 82b6dc9..9605122 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java @@ -131,7 +131,7 @@ public class TestController { @GetMapping("/testInsert") @ApiOperation(value = "批量") public void testInsert() { - testService.insertList(); + //testService.insertList(); } } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/mqtt/PcnMqttController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/mqtt/PcnMqttController.java index 3600434..b1c2b31 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/mqtt/PcnMqttController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/mqtt/PcnMqttController.java @@ -52,4 +52,17 @@ public class PcnMqttController { public void connect() { mqttService.connect(); } + + + @PostMapping("/testSend") + @ApiOperation(value = "批量发送") + public void testSend() { + mqttService.testSend(); + } + @PostMapping("/testSendList") + @ApiOperation(value = "批量发送") + public void testSendList() { + mqttService.testSendList(); + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderExtService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderExtService.java index 705e9a7..3df4474 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderExtService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderExtService.java @@ -9,12 +9,14 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.repository.MesWorkOrderRepository; +import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import java.util.Date; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; @@ -77,9 +79,14 @@ public class MesWorkOrderExtService implements IMesWorkOrderExtService { @Override public List getWorkOrderListByShiftCode(String organizeCode, String workCenterCode, String shiftCode) { + String currentTime = DateUtil.formatDateTime(new Date()); DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(workCenterCode, MesPcnExtConstWords.WORK_CENTER_CODE, packBean); DdlPreparedPack.getStringEqualPack(shiftCode, MesPcnExtConstWords.SHIFT_CODE, packBean); + DdlPreparedPack.getStringSmallerNotEqualPack(currentTime, "planStartTime", packBean); + DdlPreparedPack.getStringBiggerNotEqualPack(currentTime, "planEndTime", packBean); + return workOrderRepository.findByHqlWhere(packBean); } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/mqtt/MqttServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/mqtt/MqttServiceImpl.java index 48e9385..d026f43 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/mqtt/MqttServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/mqtt/MqttServiceImpl.java @@ -2,16 +2,34 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.mqtt; import cn.estsh.i3plus.ext.mes.pcn.api.mqtt.MqttService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.mqtt.PcnMqttClient; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentLog; +import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentVariable; +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentLogRepository; +import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository; +import com.google.common.collect.Lists; import org.eclipse.paho.client.mqttv3.MqttException; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + @Service public class MqttServiceImpl implements MqttService { @Autowired private PcnMqttClient myMqttClient; + @Autowired + private MesEquipmentVariableRepository mesEquipmentVariableRepository; + + @Autowired + private MesEquipmentLogRepository mesEquipmentLogRepository; + @Override public void addTopic(String topic) { myMqttClient.subscribe(topic); @@ -57,4 +75,93 @@ public class MqttServiceImpl implements MqttService { e.printStackTrace(); } } + + @Override + public void testSend() { + /* MesEquipmentVariable equipmentVariable = mesEquipmentVariableRepository.getById(1813525136173084672l); + List array = new ArrayList<>(); + for (int i = 0; i< 10000; i++) { + MesEquipmentVariable equipmentVariableNew = new MesEquipmentVariable(); + BeanUtils.copyProperties(equipmentVariable, equipmentVariableNew); + //equipmentVariableNew.setId(equipmentVariable.getId()+1); + equipmentVariableNew.setId(null); + equipmentVariableNew.setTagAddress(equipmentVariableNew.getTagAddress() +i); + equipmentVariableNew.setTagName(equipmentVariableNew.getTagName() +i); + ConvertBean.serviceModelInitialize(equipmentVariableNew,"test"); + array.add(equipmentVariableNew); + } + List> lists = Lists.partition(array, 100); + for (List list : lists) { + mesEquipmentVariableRepository.saveAll(list); + }*/ + DdlPackBean packBean = new DdlPackBean(); + DdlPreparedPack.getNumEqualPack(300, "equipId", packBean); + + List arrayEquip = new ArrayList<>(); + + List equipmentVariables = mesEquipmentVariableRepository.findByHqlWhere(packBean); + for (MesEquipmentVariable variable : equipmentVariables) { + MesEquipmentLog mesEquipmentLogNew = new MesEquipmentLog(); + + mesEquipmentLogNew.setEquipVariableName(variable.getTagAddress()); + mesEquipmentLogNew.setEquipVariableId(variable.getId()); + mesEquipmentLogNew.setEquipId(variable.getEquipId()); + mesEquipmentLogNew.setEquipmentCode(variable.getEquipmentCode()); + mesEquipmentLogNew.setEquipVariableStatus(0); + mesEquipmentLogNew.setEquipVariableValue("1"); + arrayEquip.add(mesEquipmentLogNew); + + } + List> lists1 = Lists.partition(arrayEquip, 100); + for (List list : lists1) { + mesEquipmentLogRepository.saveAll(list); + } +/* + + DdlPackBean packBean = new DdlPackBean(); + DdlPreparedPack.getNumEqualPack(1813525136173084672l, "id", packBean); + DdlPreparedPack.getNumEqualPack(300, "equipId", packBean); + + MesEquipmentLog mesEquipmentLog = mesEquipmentLogRepository.getByProperty(packBean); + + + List arrayEquip = new ArrayList<>(); + for (int i = 0; i< 10000; i++) { + Long id = 1813525136173084672l; + MesEquipmentLog mesEquipmentLogNew = new MesEquipmentLog(); + BeanUtils.copyProperties(mesEquipmentLog, mesEquipmentLogNew); + mesEquipmentLogNew.setId(mesEquipmentLog.getId()+1); + mesEquipmentLogNew.setEquipVariableId(id +i); + mesEquipmentLogNew.setEquipVariableDesc(mesEquipmentLog.getEquipVariableValue() +i); + mesEquipmentLogNew.setEquipVariableDesc(mesEquipmentLog.getEquipVariableValue() +i); + + arrayEquip.add(mesEquipmentLogNew); + } + List> lists1 = Lists.partition(arrayEquip, 100); + for (List list : lists1) { + mesEquipmentLogRepository.saveAll(list); + } +*/ + +/* + String aa = "[{\"PTCode\":\"156\",\"key\":\"DB1000,X344.0\",\"tagAddress\":\"DB1000.344.0\",\"value\":false,\"time\":\"2024-07-17 16:18:13\"}]" + + myMqttClient.publish(msgJson, topic);*/ + } + + @Override + public void testSendList() { + String start ="["; + for (int i=0; i<100 ; i++) { + String aa = "{\"PTCode\":\"156\",\"key\":\"aa " + i + + "\",\"value\":2,\"time\":\"2024-07-17 16:18:13\"}"; + + start += aa; + } + String end ="]"; + start += end; + + myMqttClient.publish(start, "ABC"); + + } } \ No newline at end of file diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java index 3899344..295f83c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblyShowNosortStepService.java @@ -218,7 +218,7 @@ public class MesAssemblyShowNosortStepService extends BaseStepService { } // 如果配置了超工单,且比例已经超过了配置的超工单比例,也需要阻断 double rate = (complateQty - qty)/qty; - if (rate > workCenter.getOrderRate()) { + if (rate > workCenter.getOrderRate()/100) { productionPartContextList.forEach(o -> o.busiCheckToDelete()); if (!CollectionUtils.isEmpty(productionPsInContextList)) productionPsInContextList.forEach(o -> o.busiCheckToDelete()); return execNonCompleteAndSendMsgReturn(reqBean, resultBean.writeDbLog(), stepResult.obj(false), String.format("请检查工单数量,工单号[%s],工单数量[%s]预完成数量[%s],配置了超工单,但超过了比例[%s]!", workOrder, mesWorkOrder.getQty(), complateQty, workCenter.getOrderRate()));