diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderExtService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderExtService.java index bc4e4be..7639fc4 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderExtService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderExtService.java @@ -1,5 +1,7 @@ package cn.estsh.i3plus.ext.mes.pcn.api.busi; +import cn.estsh.i3plus.pojo.base.bean.BaseBean; +import cn.estsh.i3plus.pojo.mes.bean.MesProduceSn; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import io.swagger.annotations.ApiOperation; @@ -36,4 +38,10 @@ public interface IMesWorkOrderExtService { @ApiOperation(value = "根据条码集合 查询生产工单/产品条码/队列数据(排序)") Map> getWorkOrderMapSort(String organizeCode, String workCenterCode, String workCellCode, List snList); + @ApiOperation(value = "根据工单或者客户条码 查询生产工单/产品条码(排序)") + Map getWorkOrderMapSort(String organizeCode, String sn); + + @ApiOperation(value = "根据工单或者客户条码 查询生产工单信息(排序)") + BaseBean getWorkOrderSort(String organizeCode, String sn, Boolean isBackOrder); + } 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 e2b0c9b..d006b81 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 @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnExtService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesWorkOrderExtService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.aspect.MonitorLog; import cn.estsh.i3plus.ext.mes.pcn.pojo.util.MesPcnExtConstWords; +import cn.estsh.i3plus.pojo.base.bean.BaseBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -157,11 +158,10 @@ public class MesWorkOrderExtService implements IMesWorkOrderExtService { MesQueueOrder queueOrder = produceSnExtService.getQueueOrder(organizeCode, workCenterCode, workCellCode, produceSn.getProductSn()); if (null == queueOrder) itemMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工位队列信息,客户条码[%s]工位队列信息不存在!", sn)); else itemMap.put(MesQueueOrder.class.getSimpleName(), queueOrder); - } else { MesProduceSn produceSn = produceSnExtService.getProduceSn(organizeCode, sn, sn); if (null == produceSn) produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, sn); - if (null == produceSn) { + if (null == produceSn || StringUtils.isEmpty(produceSn.getWorkOrderNo())) { itemMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工单及产品条码信息,加工单[%s]不存在产品条码信息!", sn)); continue; } else itemMap.put(MesProduceSn.class.getSimpleName(), produceSn); @@ -175,7 +175,6 @@ public class MesWorkOrderExtService implements IMesWorkOrderExtService { MesQueueOrder queueOrder = produceSnExtService.getQueueOrder(organizeCode, workCenterCode, workCellCode, produceSn.getProductSn()); if (null == queueOrder) itemMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工位队列信息,加工单[%s]工位队列信息不存在!", produceSn.getWorkOrderNo())); else itemMap.put(MesQueueOrder.class.getSimpleName(), queueOrder); - } workOrderMap.put(sn, itemMap); @@ -185,4 +184,66 @@ public class MesWorkOrderExtService implements IMesWorkOrderExtService { return workOrderMap; } + @Override + public Map getWorkOrderMapSort(String organizeCode, String sn) { + + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(sn)) return null; + + Map resultMap = new HashMap<>(); + + if (sn.length() == MesPcnExtConstWords.CUSTOMER_SN_LENGTH_GM) { + MesProduceSn produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, customerSnTransformService.transformBarCodeGm(sn)); + if (null == produceSn || StringUtils.isEmpty(produceSn.getWorkOrderNo())) resultMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工单及客户条码信息,客户条码[%s]信息无效!", sn)); + else resultMap.put(MesProduceSn.class.getSimpleName(), produceSn); + + MesWorkOrder workOrder = getWorkOrder(organizeCode, produceSn.getWorkOrderNo()); + if (null == workOrder) resultMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工单信息,客户条码[%s]对应的加工单[%s]信息不存在!", sn, produceSn.getWorkOrderNo())); + else resultMap.put(MesWorkOrder.class.getSimpleName(), workOrder); + } else { + MesProduceSn produceSn = produceSnExtService.getProduceSn(organizeCode, sn, sn); + if (null == produceSn) produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, sn); + if (null == produceSn || StringUtils.isEmpty(produceSn.getWorkOrderNo())) resultMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工单及产品条码信息,加工单[%s]不存在产品条码信息!", sn)); + else resultMap.put(MesProduceSn.class.getSimpleName(), produceSn); + + MesWorkOrder workOrder = getWorkOrder(organizeCode, produceSn.getWorkOrderNo()); + if (null == workOrder) resultMap.put(MesPcnExtConstWords.MESSAGE, String.format("请检查工单信息,加工单[%s]信息无效!", produceSn.getWorkOrderNo())); + else resultMap.put(MesWorkOrder.class.getSimpleName(), workOrder); + } + + return resultMap; + } + + @Override + public BaseBean getWorkOrderSort(String organizeCode, String sn, Boolean isBackOrder) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(sn) || StringUtils.isEmpty(isBackOrder)) return null; + return isBackOrder ? getWorkOrderSort2Order(organizeCode, sn) : getWorkOrderSort2Ps(organizeCode, sn); + } + + private MesWorkOrder getWorkOrderSort2Order(String organizeCode, String sn) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(sn)) return null; + MesProduceSn produceSn; + MesWorkOrder workOrder = null; + if (sn.length() == MesPcnExtConstWords.CUSTOMER_SN_LENGTH_GM) { + produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, customerSnTransformService.transformBarCodeGm(sn)); + if (null != produceSn && !StringUtils.isEmpty(produceSn.getWorkOrderNo())) workOrder = getWorkOrder(organizeCode, produceSn.getWorkOrderNo()); + } else { + produceSn = produceSnExtService.getProduceSn(organizeCode, sn, sn); + if (null == produceSn) produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, sn); + if (null != produceSn && !StringUtils.isEmpty(produceSn.getWorkOrderNo())) workOrder = getWorkOrder(organizeCode, produceSn.getWorkOrderNo()); + } + return workOrder; + } + + private MesProduceSn getWorkOrderSort2Ps(String organizeCode, String sn) { + if (StringUtils.isEmpty(organizeCode) || StringUtils.isEmpty(sn)) return null; + MesProduceSn produceSn; + if (sn.length() == MesPcnExtConstWords.CUSTOMER_SN_LENGTH_GM) { + produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, customerSnTransformService.transformBarCodeGm(sn)); + } else { + produceSn = produceSnExtService.getProduceSn(organizeCode, sn, sn); + if (null == produceSn) produceSn = produceSnExtService.getProduceSnByCustSn(organizeCode, sn); + } + return produceSn; + } + } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties b/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties index f89245a..34f607d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/resources/application-6.properties @@ -56,14 +56,14 @@ redis.hostName=10.193.30.9 #\u7AEF\u53E3\u53F7 redis.port=6379 #\u5982\u679C\u6709\u5BC6\u7801 -redis.password=ABCabc123!@# +redis.password=(mfLEu7@9kmfdsTy ##\u5176\u4ED6redis\u914D\u7F6E\u9700\u8981\u8C03\u6574\u7684\u52A0\u5728\u6B64\u5904 ################## rabbitMQ\u914D\u7F6E #################### spring.rabbitmq.vhost=/ spring.rabbitmq.host=10.193.30.18 spring.rabbitmq.port=15672 spring.rabbitmq.username=root -spring.rabbitmq.password=ABCabc123!@# +spring.rabbitmq.password=(mfLEu7@9kmfdsTy ##\u5176\u4ED6rabbitMq\u914D\u7F6E\u9700\u8981\u8C03\u6574\u7684\u52A0\u5728\u6B64\u5904 ################ \u529F\u80FD\u914D\u7F6E2 ################ #\u662F\u5426\u5F00\u542Fredis @@ -136,12 +136,12 @@ impp.write.datasource.type=com.zaxxer.hikari.HikariDataSource impp.write.datasource.driver-class-name=com.mysql.jdbc.Driver impp.write.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.write.datasource.username=root -impp.write.datasource.password=@E#e7@saWE!293**((367 +impp.write.datasource.password=(mfLEu7@9kmfdsTy impp.read.datasource.type=com.zaxxer.hikari.HikariDataSource impp.read.datasource.driver-class-name=com.mysql.jdbc.Driver impp.read.datasource.jdbc-url=jdbc:mysql://10.193.30.17:3306/impp_i3_mes?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.read.datasource.username=root -impp.read.datasource.password=@E#e7@saWE!293**((367 +impp.read.datasource.password=(mfLEu7@9kmfdsTy # @@ -151,7 +151,7 @@ impp.schedule.open=true impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver impp.schedule.datasource.jdbc-url=jdbc:mysql://10.193.30.20:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8 impp.schedule.datasource.username=root -impp.schedule.datasource.password=@E#e7@saWE!293**((367 +impp.schedule.datasource.password=(mfLEu7@9kmfdsTy impp.schedule.datasource.max-connections=20 #\u5B9A\u65F6\u4EFB\u52A1\u5728\u670D\u52A1\u542F\u52A8\u540E\u591A\u5C11\u79D2\u6267\u884C impp.schedule.start.after-second=20