From ac46763de15b4a1626a9d7b6dda5051a97e6abf7 Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 11 Jul 2025 18:06:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E9=85=8D=E5=8E=9F=E6=96=99=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/api/busi/IMesRawSnWeightRecordService.java | 2 +- .../busi/MesRawSnWeightRecordServiceImpl.java | 19 ++++++++++++++++--- .../serviceimpl/step/MesAssemblySaveStepService.java | 2 +- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesRawSnWeightRecordService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesRawSnWeightRecordService.java index 0de3b24..96c3c1e 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesRawSnWeightRecordService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesRawSnWeightRecordService.java @@ -7,6 +7,6 @@ import cn.estsh.i3plus.ext.mes.pcn.pojo.context.MesProductionPsOutContext; import java.util.List; public interface IMesRawSnWeightRecordService { - void insertRawRemainWeightRecord(String productSn, MesProductionAssemblyContext context, String organizeCode, String username); + void insertRawRemainWeightRecord(MesProductionPsOutContext productionPsOutContext, MesProductionAssemblyContext context, String organizeCode, String username); void insertOutPartNoWeightRecord(MesProductionPsOutContext productionPsOutContext, List productionAssemblyNosortContextList, String organizeCode, String username); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawSnWeightRecordServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawSnWeightRecordServiceImpl.java index 662b2bb..74627e8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawSnWeightRecordServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesRawSnWeightRecordServiceImpl.java @@ -19,6 +19,9 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.MathContext; +import java.math.RoundingMode; import java.util.List; import java.util.Objects; @@ -36,7 +39,7 @@ public class MesRawSnWeightRecordServiceImpl implements IMesRawSnWeightRecordSer private MesRawSnWeightRecordLogRepository rawSnWeightRecordLogRDao; @Override - public void insertRawRemainWeightRecord(String productSn, MesProductionAssemblyContext context, String organizeCode, String username) { + public void insertRawRemainWeightRecord(MesProductionPsOutContext productionPsOutContext, MesProductionAssemblyContext context, String organizeCode, String username) { MesRawMixCfgDetail detail = rawMixCfgDetailRDao.getByProperty( new String[]{"organizeCode", "isValid", "isDeleted", "outPartNo", "partNo"}, new Object[]{organizeCode, CommonEnumUtil.IS_VAILD.VAILD.getValue(), CommonEnumUtil.IS_DEAL.NO.getValue(), context.getPartNo(), context.getAssemblyPartNo()}); @@ -50,13 +53,19 @@ public class MesRawSnWeightRecordServiceImpl implements IMesRawSnWeightRecordSer return; } double remainQty = getRemainQty(organizeCode, context.getAssemblyPartNo(), context.getAssemblySn()); + double weightQty = context.getQty() != null ? context.getQty() : 0; + // 保留两位小数,四舍五入 + MathContext mc = new MathContext(8, RoundingMode.HALF_UP); + BigDecimal decimalRemainQty = new BigDecimal(remainQty, mc); + BigDecimal decimalWeight = new BigDecimal(weightQty, mc); MesRawSnWeightRecord record = new MesRawSnWeightRecord(); record.setOrganizeCode(organizeCode); record.setBarCode(context.getAssemblySn()); record.setPartNo(context.getAssemblyPartNo()); record.setPartName(context.getAssemblyPartName()); - record.setNetWeight(remainQty - context.getQty()); +// record.setNetWeight(remainQty - context.getQty()); + record.setNetWeight(decimalRemainQty.subtract(decimalWeight).doubleValue()); record.setNetUnit(weightCfg.getNetUnit()); record.setRawType(detail.getRawType()); ConvertBean.serviceModelInitialize(record, username); @@ -64,8 +73,12 @@ public class MesRawSnWeightRecordServiceImpl implements IMesRawSnWeightRecordSer MesRawSnWeightRecordLog recordLog = new MesRawSnWeightRecordLog(); recordLog.setOrganizeCode(organizeCode); - recordLog.setProductSn(productSn); + recordLog.setProductSn(productionPsOutContext.getProductSn()); + recordLog.setPartNo(productionPsOutContext.getPartNo()); + recordLog.setPartName(productionPsOutContext.getPartName()); recordLog.setAssemblySn(context.getAssemblySn()); + recordLog.setAssemblyPartNo(context.getAssemblyPartNo()); + recordLog.setAssemblyPartName(context.getAssemblyPartName()); recordLog.setOriginWeight(remainQty); recordLog.setDeductionWeight(context.getQty()); recordLog.setRemainWeight(record.getNetWeight()); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java index b33ce01..352d5d8 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/step/MesAssemblySaveStepService.java @@ -229,6 +229,6 @@ public class MesAssemblySaveStepService extends BaseStepService { //保存装配件绑定记录 insertProductionAssembly(reqBean, productionProcessContext, cellEquipContext, prodRuleContext, productionPsOutContext, productionAssemblyNosortContext, scanMonitorContext, productSnIdList); //写入调配原料剩余数量 - rawSnWeightRecordService.insertRawRemainWeightRecord(productionPsOutContext.getProductSn(), productionAssemblyNosortContext, reqBean.getOrganizeCode(), reqBean.getUserInfo()); + rawSnWeightRecordService.insertRawRemainWeightRecord(productionPsOutContext, productionAssemblyNosortContext, reqBean.getOrganizeCode(), reqBean.getUserInfo()); } }