From 52adc4d46bf83cf8c968a8cd870fb021519e145f Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期五, 15 八月 2025 16:11:30 +0800 Subject: [PATCH] 报工、齐套性检查部分接口 --- src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 106 insertions(+), 0 deletions(-) diff --git a/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java b/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java index 9021437..3dde504 100644 --- a/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java +++ b/src/main/java/org/jeecg/modules/mes/service/impl/MesWorkReportingServiceImpl.java @@ -1,12 +1,35 @@ package org.jeecg.modules.mes.service.impl; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.modules.base.entity.Factory; +import org.jeecg.modules.base.entity.LineSideWarehouse; +import org.jeecg.modules.base.entity.Shift; +import org.jeecg.modules.base.service.IFactoryService; +import org.jeecg.modules.base.service.ILineSideWarehouseService; +import org.jeecg.modules.base.service.IShiftService; +import org.jeecg.modules.lsw.entity.LswMaterial; +import org.jeecg.modules.lsw.entity.LswMaterialInbound; +import org.jeecg.modules.lsw.enums.MaterialCategory; +import org.jeecg.modules.lsw.service.ILswMaterialInboundService; +import org.jeecg.modules.lsw.service.ILswMaterialService; +import org.jeecg.modules.mes.entity.MesProductionWorkOrder; import org.jeecg.modules.mes.entity.MesWorkReporting; import org.jeecg.modules.mes.mapper.MesWorkReportingMapper; +import org.jeecg.modules.mes.service.IMesProductionWorkOrderService; import org.jeecg.modules.mes.service.IMesWorkReportingService; +import org.jeecg.modules.mes.utils.CommonUtils; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; +import java.util.Objects; +import java.util.Optional; /** * @Description: 宸ュ崟鎶ュ伐 @@ -17,6 +40,21 @@ @Service public class MesWorkReportingServiceImpl extends ServiceImpl<MesWorkReportingMapper, MesWorkReporting> implements IMesWorkReportingService { + @Autowired + private IMesProductionWorkOrderService mesProductionWorkOrderService; + @Autowired + private ILswMaterialService lswMaterialService; + @Autowired + private IFactoryService factoryService; + @Autowired + private IShiftService shiftService; + @Autowired + private ILineSideWarehouseService lineSideWarehouseService; + @Autowired + private ILswMaterialInboundService lswMaterialInboundService; + @Autowired + private ISysBusinessCodeRuleService sysBusinessCodeRuleService; + @Override public List<MesWorkReporting> queryWorkReportingByWorkOrderId(String workOrderId) { return baseMapper.queryWorkReportingByWorkOrderId(workOrderId); @@ -26,4 +64,72 @@ public List<MesWorkReporting> queryWorkReportingByOrderId(String orderId) { return baseMapper.queryWorkReportingByOrderId(orderId); } + + @Override + public void addReporting(MesWorkReporting mesWorkReporting) { + MesProductionWorkOrder workOrder = mesProductionWorkOrderService.getById(mesWorkReporting.getWorkOrderId()); + if (workOrder == null) { + throw new JeecgBootException("宸ュ崟涓嶅瓨鍦紒"); + } + LswMaterial material = lswMaterialService.list(new LambdaQueryWrapper<LswMaterial>() + .eq(LswMaterial::getMaterialNumber, workOrder.getMaterialNumber()) + .eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0)).stream() + .findAny().orElse(null); + if (material == null) { + throw new JeecgBootException("鐗╂枡涓嶅瓨鍦紒"); + } + MaterialCategory materialCategory = MaterialCategory.fromName(material.getMaterialCategory()); + if (materialCategory == null) { + throw new JeecgBootException("鏈煡鐨勭墿鏂欑被鍨嬶紒"); + } + //鐢熶骇鎵规鍙� + String batchNumber = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingBatchNumber"); + mesWorkReporting.setBatchNumber(batchNumber); + LineSideWarehouse lineSideWarehouse = lineSideWarehouseService.list(new LambdaQueryWrapper<LineSideWarehouse>() + .eq(LineSideWarehouse::getFactoryId, mesWorkReporting.getFactoryId()) + .eq(LineSideWarehouse::getDelFlag, CommonConstant.DEL_FLAG_0)) + .stream().findAny().orElse(null); + if (lineSideWarehouse == null) { + throw new JeecgBootException("绾胯竟浠撳簱涓嶅瓨鍦紒"); + } + mesWorkReporting.setWarehouseId(lineSideWarehouse.getId()); + mesWorkReporting.setReporter(Objects.requireNonNull(CommonUtils.getCurrentUser()).getUsername()); + mesWorkReporting.setReportTime(new Date()); + String date = DateUtil.format(new Date(), "yyMMdd"); + switch (materialCategory) { + case FINISHED: + //鎴愬搧鎶ュ伐閫昏緫 + String palletNumber4 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber4"); + String finishedPalletNumber = material.getMaterialNumber() + date + palletNumber4; + mesWorkReporting.setPalletNumber(finishedPalletNumber); + //todo 鎵e噺鍐呮硶鍏帮紙瀵瑰簲鏈哄姞鍐呮硶鍏扮嚎杈瑰簱锛夈�佸娉曞叞锛堝搴旀満鍔犲娉曞叞绾胯竟搴擄級銆佸皬鍐呭湀锛堝搴旇閰嶇嚎杈瑰簱锛夊簱瀛橈紝璋冪敤SAP鎶曟枡鎺ュ彛 + //todo 璋冪敤SAP宸ュ簭鎶ュ伐 + //todo 鎵撳嵃鎴愬搧鎵樻爣绛俱�佹楠屾爣璇嗗崱銆佺Щ搴撳崟銆佸畬宸ユ楠屽伐鍗曪紱鍒ゆ柇鐢熶骇璁㈠崟鏄惁闇�瑕佸叧闂紙鍚堟牸鏁伴噺 = 璁㈠崟鏁伴噺锛� + break; + case HALF: + case RAW: + //鍗婃垚鍝佹姤宸ラ�昏緫 + Factory factory = factoryService.getById(mesWorkReporting.getFactoryId()); + Shift shift = shiftService.getById(workOrder.getShiftId()); + String palletNumber6 = sysBusinessCodeRuleService.generateBusinessCodeSeq("WorkReportingPalletNumber6"); + //鎷兼帴鍗婃垚鍝佹姤宸ユ墭鍙� + String halfPalletNumber = factory.getFactoryCode() + material.getMaterialNumber() + date + shift.getShiftCode() + palletNumber6; + mesWorkReporting.setPalletNumber(halfPalletNumber); + //todo 鎵e噺瀵瑰簲绾胯竟搴擄紙澶栨硶鍏版瘺鍧�佸唴娉曞叞姣涘澂锛夊簱瀛樺悗锛岃皟鐢⊿AP鎶曟枡鎺ュ彛 + //todo 璋冪敤SAP宸ュ簭鎶ュ伐 + break; + case PARTS: + break; + } + save(mesWorkReporting); + //绾胯竟搴撳叆搴撻�昏緫 + LswMaterialInbound lswMaterialInbound = new LswMaterialInbound() + .setFactoryId(mesWorkReporting.getFactoryId()) + .setMaterialNumber(material.getMaterialNumber()) + .setMaterialName(material.getMaterialName()) + .setBatchNumber(batchNumber) + .setQuantity(mesWorkReporting.getQuantity()) + .setWarehouseId(lineSideWarehouse.getId()); + lswMaterialInboundService.save(lswMaterialInbound); + } } -- Gitblit v1.9.3