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 0000000..7da55c9 Binary files /dev/null and b/lms/nladmin-ui/src/assets/images/ma.png differ 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 @@