From 2b6c4f42ea0ca80a7cc58c0154a322c96d659a0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Wed, 29 Nov 2023 16:00:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E6=96=99=E8=AE=A1=E5=88=92=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E5=90=8E=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA=E5=8F=91?= =?UTF-8?q?=E6=96=99=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../production/vo/ProductionDetailBaseVO.java | 3 ++ .../PreparetoissueMainServiceImpl.java | 49 +++++++++++++++++-- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionDetailBaseVO.java index cfa80526..a19d46c0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/production/vo/ProductionDetailBaseVO.java @@ -64,4 +64,7 @@ public class ProductionDetailBaseVO { @Schema(description = "是否可用") private String available; + @Schema(description = "主表ID") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java index 40be6bc2..f33d5dff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java @@ -7,8 +7,11 @@ import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.bom.vo.BomExportReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestMainCreateReqVO; import com.win.module.wms.controller.preparetoissue.vo.*; import com.win.module.wms.convert.preparetoissue.PreparetoissueDetailConvert; import com.win.module.wms.convert.preparetoissue.PreparetoissueMainConvert; @@ -22,8 +25,11 @@ import com.win.module.wms.dal.dataobject.production.ProductionDetailDO; import com.win.module.wms.dal.dataobject.production.ProductionMainDO; import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueDetailMapper; import com.win.module.wms.dal.mysql.preparetoissue.PreparetoissueMainMapper; +import com.win.module.wms.enums.plan.PlanStatusEnum; import com.win.module.wms.enums.plan.PlanStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.bom.BomService; +import com.win.module.wms.service.issueRequest.IssueRequestMainService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionlineitem.ProductionlineitemService; @@ -40,6 +46,7 @@ import java.math.BigDecimal; import java.util.*; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.web.core.util.WebFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -50,6 +57,10 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Service @Validated public class PreparetoissueMainServiceImpl implements PreparetoissueMainService { + @Resource + private AdminUserApi userApi; + @Resource + private IssueRequestMainService issueRequestMainService; @Resource private BomService bomService; @Resource @@ -246,8 +257,8 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService throw new ServiceException(PREPARETOISSUE_MAIN_CANNOT_PUBLISH); } mainDO.setStatus(planStatusState.getState().getCode()); - // 生成申请单据 -// this.generateRequest(mainDO, productionDetailMapper.selectList(mainDO.getId())); + // 生成 发料申请 单据 + this.generateRequest(mainDO, preparetoissueDetailMapper.selectList(mainDO.getId())); //增加操作记录 trendsApi.createTrends(id, "preparetoissueMain", "发布了备料计划", TrendsTypeEnum.UPDATE); return preparetoissueMainMapper.updateById(mainDO); @@ -310,6 +321,33 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService shiftService.selectShiftExist(mainDo.getShift()); } + /** + * 创建 发料申请 + * @param mainDO + * @param detailDO + */ + private void generateRequest (PreparetoissueMainDO mainDO, List detailDO) { + IssueRequestMainCreateReqVO issueRequestMainCreateReqVO = new IssueRequestMainCreateReqVO(); + issueRequestMainCreateReqVO.setWorkshopCode(mainDO.getWorkshop()); + issueRequestMainCreateReqVO.setUseOnTheWayLocation("TRUE"); + issueRequestMainCreateReqVO.setStatus(RequestStatusEnum.NEW.getCode()); + issueRequestMainCreateReqVO.setDepartmentCode(String.valueOf(userApi.getUser(getLoginUserId()).getDeptId())); + List subList = new ArrayList<>(); + detailDO.forEach(itemDetailDO -> { + IssueRequestDetailCreateReqVO issueRequestDetailCreateReqVO = new IssueRequestDetailCreateReqVO(); + issueRequestDetailCreateReqVO.setProductionLineCode(mainDO.getProdLine()); + issueRequestDetailCreateReqVO.setWorkStationCode(itemDetailDO.getWorkStation()); + issueRequestDetailCreateReqVO.setInventoryStatus("OK"); // 库存状态默认都是合格 + issueRequestDetailCreateReqVO.setToLocationCode(itemDetailDO.getToLocationCode()); + issueRequestDetailCreateReqVO.setItemCode(itemDetailDO.getItemCode()); + issueRequestDetailCreateReqVO.setQty(itemDetailDO.getPlanQty()); + issueRequestDetailCreateReqVO.setUom(itemDetailDO.getUom()); + subList.add(issueRequestDetailCreateReqVO); + }); + issueRequestMainCreateReqVO.setSubList(subList); + issueRequestMainService.createIssueRequestMain(issueRequestMainCreateReqVO); + } + /** * bom拆解 @@ -322,7 +360,7 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService List subList = new ArrayList<>(); detailDOList.forEach(item -> { List> list = new ArrayList<>(); - this.BomRecursion(item.getItemCode(), list); + this.BomRecursion(item.getItemCode(), item.getBomVersion(), list); list.forEach(itemBom -> { PreparetoissueDetailCreateReqVO preparetoissueDetailCreateReqVO = new PreparetoissueDetailCreateReqVO(); preparetoissueDetailCreateReqVO.setAvailable(item.getAvailable()); @@ -342,15 +380,16 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService * @param itemCode * @param list */ - private void BomRecursion (String itemCode,List> list) { + private void BomRecursion (String itemCode,String bomVersion ,List> list) { BomExportReqVO bomExportReqVO = new BomExportReqVO(); bomExportReqVO.setProductItemCode(itemCode); + bomExportReqVO.setVersion(bomVersion); bomExportReqVO.setAvailable("TRUE"); List bomDOList = bomService.getBomList(bomExportReqVO); bomDOList.forEach(item -> { // 判断物品是否是虚零件 if (itembasicService.selectItembasic(item.getComponentItemCode()).getIsPhantom().equals("TRUE")) { - this.BomRecursion(item.getComponentItemCode(),list); + this.BomRecursion(item.getComponentItemCode(), item.getVersion(), list); } else { Map map = new HashMap<>(); map.put("itemCode",item.getComponentItemCode());