From b1c131d4dbbbdd2cd0a642a743fb2f6a46be6029 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Tue, 29 Oct 2024 09:27:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=8D=E9=A6=88MES=E6=B3=A5=E6=96=99?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E3=80=81=E7=A0=96=E5=9D=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../brick/service/dao/MdBaseBrickInfo.java | 1 + .../ext/acs/service/dto/to/BaseResponse.java | 2 +- .../acs/service/impl/AcsToWmsServiceImpl.java | 1 + .../service/dao/mapper/MesRequestMapper.xml | 4 +- .../mes/service/dto/MesMudConsumptionDto.java | 4 ++ .../mes/service/impl/WmsToMesServiceImpl.java | 11 +++- .../impl/PdmBdWorkorderServiceImpl.java | 3 + .../ISchBaseVehiclematerialgroupService.java | 8 +++ ...chBaseVehiclematerialgroupServiceImpl.java | 54 ++++++++++++++++++ .../task_manage/task/tasks/hn/HNMLTask.java | 2 +- lms/nladmin-ui/src/assets/images/ma.png | Bin 0 -> 29841 bytes .../src/layout/components/Sidebar/Logo.vue | 2 +- 12 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 lms/nladmin-ui/src/assets/images/ma.png diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/MdBaseBrickInfo.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/MdBaseBrickInfo.java index 43f660a..d082cf4 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/MdBaseBrickInfo.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/brick/service/dao/MdBaseBrickInfo.java @@ -39,6 +39,7 @@ public class MdBaseBrickInfo implements Serializable { private String grinding_number; + /** 实际重量 */ private String weight; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java index f624625..8755bec 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/dto/to/BaseResponse.java @@ -33,7 +33,7 @@ public class BaseResponse implements Serializable { private String responseDate; /** - * 结果 200成功 + * 结果 200成功|400异常,(其他定义) */ private int code; diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index f3face8..fde49d7 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -735,6 +735,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { mesMudConsumptionDto.setSENDTIM(DateUtil.now()); mesMudConsumptionDto.setCREATE_TM(DateUtil.now()); mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO); + mesMudConsumptionDto.setDATA_FLAG("1"); mesMudConsumptionDto.setSLEEP_TIME(CommonUtils.dTOAMinutes(one.getInstorage_time(), DateUtil.now())); log.info("泥料消耗上报参数:{}", mesMudConsumptionDto); // 反馈数据给acs diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml index 9a66f88..1c29cb5 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml @@ -4,9 +4,9 @@ INSERT INTO "LMSTELCOM"."RECEIVE_MUDMATERIEL_OUT"( MSGID, PWORKSCHE_ID, OUT_FINNUM, PRESSUNIT, FBAGCODE, LOGT , SENDTIM - , CREATE_TM, OP_FLAG, SLEEP_TIME) + , CREATE_TM, OP_FLAG, SLEEP_TIME, DATA_FLAG) VALUES ( #{MSGID}, #{PWORKSCHE_ID}, #{OUT_FINNUM}, #{PRESSUNIT}, #{FBAGCODE}, #{LOGT} - , #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG}, #{SLEEP_TIME}) + , #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG}, #{SLEEP_TIME}, #{DATA_FLAG}) INSERT INTO "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT"( MSGID, FORDER_NO, PWORKSCHE_ID, FPRODUCT_MATERIAL_ID diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesMudConsumptionDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesMudConsumptionDto.java index 5b308a2..c08fa94 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesMudConsumptionDto.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesMudConsumptionDto.java @@ -89,5 +89,9 @@ public class MesMudConsumptionDto implements Serializable { * 实际困料时间 */ private BigDecimal SLEEP_TIME; + /** + * 数据类型:1表示自动排料上传,2表示冲突解绑上传 + */ + private String DATA_FLAG; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java index 4be284c..265541c 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java @@ -33,6 +33,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -564,10 +565,15 @@ public class WmsToMesServiceImpl implements WmsToMesService { throw new BadRequestException("工单不存在,上报MES失败"); } MdBaseMaterial material = mdBaseMaterialService.getById(workorder.getMaterial_id()); - String singleWeight = material.getSingle_weight(); + String singleWeight = brickInfo.getWeight(); String volume = brickInfo.getVolume(); double w = Double.parseDouble(singleWeight); double v = Double.parseDouble(volume); + // 计算 w / v 并乘以 1000 + double result = v == 0 ? 0 : (w / v) * 1000; + // 使用 BigDecimal 保留3位小数 + BigDecimal bd = new BigDecimal(result); + bd = bd.setScale(3, RoundingMode.HALF_UP); MesQSPressMonitorData monitorData = new MesQSPressMonitorData(); monitorData.setBRICK_ID(brickInfo.getBrick_id()); monitorData.setGET_STATION(device.getExt_point_code()); @@ -588,7 +594,8 @@ public class WmsToMesServiceImpl implements WmsToMesService { monitorData.setMATERIAL_NAME(material.getMaterial_name()); monitorData.setMATERIAL_SPEC(material.getMaterial_spec()); monitorData.setMATERIAL_MODEL(material.getMaterial_model()); - monitorData.setMACHINE_WET(String.valueOf(v == 0 ? "0" : (w / v))); + monitorData.setMACHINE_WET(bd.toString()); + log.info("计算实时重量:{} / 体积:{} = {}", w, v, monitorData.getMACHINE_WET()); monitorData.setUNQUALIFIED_QTY(brickInfo.getUnqualified_qty()); monitorData.setWORKORDER_CODE(brickInfo.getWorkorder_code()); monitorData.setCREATE_TM(DateUtil.now()); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index 36ee965..910f2d8 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -193,6 +193,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); lam.eq(PdmBdWorkorder::getWorkorder_code, orderCode); return pdmBdWorkorderMapper.selectOne(lam); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java index fd8199d..391b283 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java @@ -100,6 +100,14 @@ public interface ISchBaseVehiclematerialgroupService extends IService queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) { @@ -142,6 +156,46 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl lambda = new QueryWrapper().lambda(); + lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode) + .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType) + // 不是解绑的 + .ne(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue()) + .eq(SchBaseVehiclematerialgroup::getIs_delete, false); + List list = vehiclematerialgroupMapper.selectList(lambda); + list.forEach(schBaseVehiclematerialgroup -> { + String workorderCode = schBaseVehiclematerialgroup.getWorkorder_code(); + PdmBdWorkorder order = workorderService.getByCode(workorderCode); + // 上报MES 记录泥料 + MesMudConsumptionDto mesMudConsumptionDto = new MesMudConsumptionDto(); + mesMudConsumptionDto.setMSGID(IdUtil.getSnowflake(1, 1).nextIdStr()); + mesMudConsumptionDto.setPWORKSCHE_ID(workorderCode); + mesMudConsumptionDto.setOUT_FINNUM(schBaseVehiclematerialgroup.getMaterial_weight()); + if (ObjectUtil.isNotEmpty(order)) { + SchBasePoint devicePoint = pointService.getById(order.getPoint_code()); + mesMudConsumptionDto.setPRESSUNIT(devicePoint.getExt_point_code()); + } else { + mesMudConsumptionDto.setPRESSUNIT("-"); + } + mesMudConsumptionDto.setFBAGCODE(schBaseVehiclematerialgroup.getPcsn()); + mesMudConsumptionDto.setLOGT("配料仓"); + mesMudConsumptionDto.setSENDTIM("-"); + mesMudConsumptionDto.setCREATE_TM(schBaseVehiclematerialgroup.getCreate_time()); + mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO); + mesMudConsumptionDto.setSLEEP_TIME(BigDecimal.valueOf(0)); + mesMudConsumptionDto.setDATA_FLAG("2"); + log.info("泥料消耗上报参数:{}", mesMudConsumptionDto); + // 回传给mes系统 + wmsToMesService.reportMudConsumption(mesMudConsumptionDto); + schBaseVehiclematerialgroup.setRemark("冲突解绑"); + schBaseVehiclematerialgroup.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + TaskUtils.setGroupUpdateByAcs(schBaseVehiclematerialgroup); + }); + this.updateBatchById(list); + } + @Override public SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value) { List list = new ArrayList<>(); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java index 5dbb1a1..1dba263 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java @@ -336,7 +336,7 @@ public class HNMLTask extends AbstractTask { // 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入 // 找到不直接返回,用那条数据进行修改 // 解绑同载具的信息 - vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType); + vehiclematerialgroupService.unBindingSameVehicleMaterialToMes(vehicleCode, vehicleType); SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup(); groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr()); // 要把数据存到组盘表 diff --git a/lms/nladmin-ui/src/assets/images/ma.png b/lms/nladmin-ui/src/assets/images/ma.png new file mode 100644 index 0000000000000000000000000000000000000000..7da55c9339253d56033adfe20a65078c448fa026 GIT binary patch literal 29841 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 literal 0 HcmV?d00001 diff --git a/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue b/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue index c331a60..54942c1 100644 --- a/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue +++ b/lms/nladmin-ui/src/layout/components/Sidebar/Logo.vue @@ -14,7 +14,7 @@