From a3e35c298806c3a6f270dc4c1ed0a1780f639e3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Tue, 19 Dec 2023 15:02:12 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=88=B6=E5=93=81=E6=94=B6=E8=B4=A7=20?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=88=B6=E5=93=81=E4=B8=8A=E6=9E=B6=E7=94=B3?= =?UTF-8?q?=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductputawayRequestMainServiceImpl.java | 3 +- .../ProductreceiptJobMainServiceImpl.java | 32 +++++++++++++++++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java index eb69ebfa..a17bf363 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java @@ -133,11 +133,12 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque private TrendsApi trendsApi; @Override + @Transactional public Long createProductputawayRequestMain(ProductputawayRequestMainCreateReqVO createReqVO) { ProductputawayRequestMainDO productputawayRequestMainDO = validatorToCreate(createReqVO); //调用自动执行方法 if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) { - + this.generateJob(productputawayRequestMainDO, productputawayRequestDetailMapper.selectList(productputawayRequestMainDO.getId())); } trendsApi.createTrends(productputawayRequestMainDO.getId(), "ProductputawayRequest", "增加了制品上架申请", TrendsTypeEnum.CREATE); return productputawayRequestMainDO.getId(); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java index da3fdc67..49abd357 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +import com.win.framework.web.core.util.WebFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; @@ -11,6 +12,9 @@ import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.issueJob.vo.IssueJobDetailUpdateReqVO; +import com.win.module.wms.controller.issueRequest.vo.IssueRequestDetailCreateReqVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailCreateReqVO; +import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; import com.win.module.wms.controller.productreceiptJob.vo.*; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.productreceiptJob.ProductreceiptJobMainConvert; @@ -46,6 +50,7 @@ import com.win.module.wms.dal.mysql.productreceiptRecord.BackflushRecordDetailbM import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper; import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.backflushRequest.BackflushRequestDetailbService; import com.win.module.wms.service.balance.BalanceService; import com.win.module.wms.service.businesstype.BusinesstypeService; @@ -55,6 +60,7 @@ import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.offlinesettlementRecord.OfflinesettlementRecordMainService; import com.win.module.wms.service.production.ProductionMainService; +import com.win.module.wms.service.productputawayRequest.ProductputawayRequestMainService; import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestDetailService; import com.win.module.wms.service.productreceiptRequest.ProductreceiptRequestMainService; import com.win.module.wms.service.recordsetting.RecordsettingService; @@ -87,6 +93,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainService { + @Resource + private ProductputawayRequestMainService productputawayRequestMainService; @Resource private OfflinesettlementRecordDetailMapper offlinesettlementRecordDetailMapper; @Resource @@ -399,12 +407,32 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe // 根据单据开关判断是否创建 制品上架申请 SwitchDO switchDO = switchService.selectSwitchExist("CreateProductputawayRequestAfterProductreceiptRecordCreated"); if (switchDO.getEffectiveSetValue().equals("TRUE")) { - // TODO: 创建 制品上架申请 - + generateProductputawayRequest(productreceiptRecordMainDO, productreceiptRecordDetailDOList); } return number; } + /** + * 创建 制品上架申请 + * @param productreceiptRecordMainDO + * @param productreceiptRecordDetailDOList + */ + private void generateProductputawayRequest(ProductreceiptRecordMainDO productreceiptRecordMainDO, List productreceiptRecordDetailDOList) { + ProductputawayRequestMainCreateReqVO productputawayRequestMainCreateReqVO = new ProductputawayRequestMainCreateReqVO(); + productputawayRequestMainCreateReqVO.setStatus(RequestStatusEnum.NEW.getCode()); + productputawayRequestMainCreateReqVO.setDepartmentCode(String.valueOf(userApi.getUser(WebFrameworkUtils.getLoginUserId()).getDeptId())); + List subList = new ArrayList<>(); + productreceiptRecordDetailDOList.forEach(itemDetailDO -> { + ProductputawayRequestDetailCreateReqVO productputawayRequestDetailCreateReqVO = new ProductputawayRequestDetailCreateReqVO(); + productputawayRequestDetailCreateReqVO.setItemCode(itemDetailDO.getItemCode()); + productputawayRequestDetailCreateReqVO.setQty(itemDetailDO.getQty()); + productputawayRequestDetailCreateReqVO.setInventoryStatus(itemDetailDO.getInventoryStatus()); + subList.add(productputawayRequestDetailCreateReqVO); + }); + productputawayRequestMainCreateReqVO.setSubList(subList); + productputawayRequestMainService.createProductputawayRequestMain(productputawayRequestMainCreateReqVO); + } + /** * 创建 回冲记录 * @param productreceiptRecordMainDO From 28fa30b71cacb4649faddfee9adc59ee342bcea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Tue, 19 Dec 2023 15:17:23 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=B6=E5=93=81=E6=8B=86=E8=A7=A3?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=20=E4=BF=AE=E6=94=B9=20=E5=BA=93=E4=BD=8D?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductdismantleRequestMainServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java index 070340de..120ec098 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java @@ -251,7 +251,7 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR // 校验--工位基础信息 if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); - detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); + detailDo.setFromLocationCode(workstationDO.getFgLocationCode()); } // 校验--库存余额 TB——>TB1 validateBalance(detailDo,mainDO); From 2959fe89d023de380a202bd1373049f51c784866 Mon Sep 17 00:00:00 2001 From: liuchen864 <23082234@qq.com> Date: Tue, 19 Dec 2023 15:21:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=B2=BE=E5=BA=A6=E7=AD=96=E7=95=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/controller/rule/RuleController.java | 23 +++++++++++-------- .../rule/vo/PrecisionStrategyReqVO2.java | 19 +++++++++++++++ .../module/wms/service/rule/RuleService.java | 7 ++++++ .../wms/service/rule/RuleServiceImpl.java | 14 +++++++++++ 4 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/PrecisionStrategyReqVO2.java diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java index 3bf3efa3..058282c4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/RuleController.java @@ -3,19 +3,13 @@ package com.win.module.wms.controller.rule; import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; -import com.win.module.wms.controller.itembasic.vo.ItembasicExcelVO; -import com.win.module.wms.controller.itembasic.vo.ItembasicExportReqVO; import com.win.module.wms.controller.rule.vo.*; -import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.convert.rule.RuleConvert; -import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.rule.RuleDO; -import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.rule.RuleService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -27,7 +21,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; - import java.io.IOException; import java.util.HashMap; import java.util.List; @@ -80,6 +73,7 @@ public class RuleController { RuleDO rule = ruleService.getRule(id); return success(RuleConvert.INSTANCE.convert(rule)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:rule:query')") @@ -109,17 +103,26 @@ public class RuleController { List> list = ruleService.getPrecisionStrategyByItemCodes(reqVO); return success(list); } + + @PostMapping("/getPrecisionStrategy") + @Operation(summary = "根据零件号和库位号查询管理精度策略") + @PreAuthorize("@ss.hasPermission('wms:rule:query')") + public CommonResult getPrecisionStrategy(@Valid @RequestBody List reqVO2List) { + List> list = ruleService.getPrecisionStrategy(reqVO2List); + return success(list); + } + @GetMapping("/export-excel") @Operation(summary = "导出规则配置 Excel") @PreAuthorize("@ss.hasPermission('wms:rule:export')") @OperateLog(type = EXPORT) - public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + public void exportRuleExcel(@Valid RuleExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list =ruleService.getRuleList(exportReqVO); Map mapDropDown = new HashMap<>(); List resultList = this.getExcelVo(list, mapDropDown); ExcelUtils.write(response, "物品基本信息.xlsx", "数据", RuleExcelVO.class, resultList, mapDropDown); } + @PostMapping("/export-excel-senior") @Operation(summary = "导出规则配置 Excel") @PreAuthorize("@ss.hasPermission('wms:rule:export')") @@ -130,8 +133,8 @@ public class RuleController { List resultList = this.getExcelVo(list, mapDropDown); ExcelUtils.write(response, "物品基本信息.xlsx", "数据", RuleExcelVO.class, resultList, mapDropDown); } - private List getExcelVo(List list, Map mapDropDown) { + private List getExcelVo(List list, Map mapDropDown) { // 导出 Excel List resultList = RuleConvert.INSTANCE.convertList02(list); for(RuleExcelVO vo : resultList) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/PrecisionStrategyReqVO2.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/PrecisionStrategyReqVO2.java new file mode 100644 index 00000000..fc7a27b1 --- /dev/null +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/rule/vo/PrecisionStrategyReqVO2.java @@ -0,0 +1,19 @@ +package com.win.module.wms.controller.rule.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Schema(description = "APP管理精度策略") +@Data +public class PrecisionStrategyReqVO2 { + + @Schema(description = "物品代码") + @NotBlank(message = "物品代码不能为空") + private String itemCode; + + @Schema(description = "库位代码") + @NotBlank(message = "库位代码不能为空") + private String locationCode; +} diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java index aa8f2963..93ae05ac 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleService.java @@ -210,4 +210,11 @@ public interface RuleService { */ List> getPrecisionStrategyByItemCodes(PrecisionStrategyReqVO reqVO); + /** + * 获取根据物品代码以及库位代码管理精度策略 + * + * @param reqVO2List + * @return + */ + List> getPrecisionStrategy(List reqVO2List); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java index f233c3df..b2cf71bd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/rule/RuleServiceImpl.java @@ -513,6 +513,20 @@ public class RuleServiceImpl implements RuleService { return list; } + @Override + public List> getPrecisionStrategy(List reqVO2List) { + List> list = new ArrayList<>(); + for (PrecisionStrategyReqVO2 reqVO2 : reqVO2List) { + HashMap map = new HashMap<>(); + RuleRespVO RespVO = management(null, null, reqVO2.getItemCode(), reqVO2.getLocationCode(), null, null); + JSONObject entries = JSONUtil.parseObj(RespVO.getConfiguration()); + map.put("ManagementPrecision", entries.get("ManagementPrecision")); + map.put("itemCode", reqVO2.getItemCode()); + list.add(map); + } + return list; + } + /** * 循环校验参数 * From c4dc9699c02af6771fe11e2064f5958cc1737107 Mon Sep 17 00:00:00 2001 From: chenfang Date: Tue, 19 Dec 2023 15:44:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=88=90=E5=93=81=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=20=E6=B7=BB=E5=8A=A0=E5=BA=93=E5=AD=98?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deliverJob/DeliverJobMainServiceImpl.java | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java index 1a055d11..a65415ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java @@ -258,7 +258,6 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { @Override @Transactional public String executeDeliverJobMain(DeliverJobMainUpdateReqVO deliverJobMainUpdateReqVO) { - BigDecimal zero = BigDecimal.ZERO; //查询数据 DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(deliverJobMainUpdateReqVO.getId()); List subList = deliverJobDetailService.selectList(deliverJobMainDO.getId()); @@ -390,6 +389,26 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { transactionCreateReqVO.setId(null); transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVOList.add(transactionCreateReqVO); + if(businesstypeDO.getInTransactionType() != null && "".equals(businesstypeDO.getInTransactionType())){ + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(deliverRecordDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactionCreateReqVOInDo = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactionCreateReqVOInDo.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactionCreateReqVOInDo.getCode()); + transactionCreateReqVOIn.setBusinessType(deliverRecordMainDO.getBusinessType()); + transactionCreateReqVOIn.setLocationCode(deliverRecordDetailDO.getToLocationCode()); + transactionCreateReqVOIn.setOwnerCode(deliverRecordDetailDO.getToOwnerCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setBatch(deliverRecordDetailDO.getBatch()); + transactionCreateReqVOIn.setPackingNumber(deliverRecordDetailDO.getPackingNumber()); + transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } }); } });