diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index 1e9029f6..3eb859c4 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -353,6 +353,7 @@ public interface ErrorCodeConstants { ErrorCode TEAM_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_058_004, "导入班组不能为空"); //标签定义ErrorCode ErrorCode LABLE_TYPE_NOT_EXISTS = new ErrorCode(1_000_059_000, "标签定义不存在"); + ErrorCode LABLE_AND_PACK_TYPE_NOT_EXISTS = new ErrorCode(1_000_059_000, "包装和标签已存在,无法再次生成"); //条码片段ErrorCode ErrorCode BARCODE_NOT_EXISTS = new ErrorCode(1_000_060_000, "条码片段不存在"); ErrorCode BARCODE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_060_001, "导入条码片段不能为空"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRecord/vo/SupplierdeliverRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRecord/vo/SupplierdeliverRecordMainBaseVO.java index 6764bfb2..5b1dfdb9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRecord/vo/SupplierdeliverRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRecord/vo/SupplierdeliverRecordMainBaseVO.java @@ -103,7 +103,7 @@ public class SupplierdeliverRecordMainBaseVO { @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "部门不能为空") - private Long departmentCode; + private String departmentCode; @Schema(description = "接口类型") private String interfaceType; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java index 1542ab38..082335c5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/SupplierdeliverRequestMainController.java @@ -217,4 +217,12 @@ public class SupplierdeliverRequestMainController { return success(count > 0); } + @PostMapping("/genRecords") + @Operation(summary = "生成记录") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult genRecords(@RequestParam("id") String id) { + Integer count = supplierdeliverRequestMainService.genRecords(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestMainConvert.java index 1a9353e5..61cb641f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestMainConvert.java @@ -5,8 +5,10 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; import com.win.module.wms.controller.purchase.vo.PurchaseMainBaseVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordMainCreateReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.*; import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/supplierdeliverRecord/SupplierdeliverRecordMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/supplierdeliverRecord/SupplierdeliverRecordMainDO.java index 47a08797..10745793 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/supplierdeliverRecord/SupplierdeliverRecordMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/supplierdeliverRecord/SupplierdeliverRecordMainDO.java @@ -125,7 +125,7 @@ public class SupplierdeliverRecordMainDO extends BaseDO { /** * 部门 */ - private Long departmentCode; + private String departmentCode; /** * 岗位 */ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java index e30387dd..ad48f3f3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java @@ -673,8 +673,8 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { QueryWrapper purchaseDetailDOQueryWrapper = new QueryWrapper<>(); purchaseDetailDOQueryWrapper.eq("number", poNumber); - purchaseDetailDOQueryWrapper.eq("line_number", poNumber); - purchaseDetailDOQueryWrapper.eq("item_code", poNumber); + purchaseDetailDOQueryWrapper.eq("line_number", poLine); + purchaseDetailDOQueryWrapper.eq("item_code", itemCode); purchaseDetailDOQueryWrapper.eq("available", "TRUE"); List purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java index 418f42ad..7646e3fd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainService.java @@ -156,6 +156,4 @@ public interface PurchasePlanMainService { */ void updatePlanPurchaseShippedQty(String number, String poNumber,String poLine, String itemCode, BigDecimal shippedQty); - - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java index f7a2939a..adb1c9c1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasePlan/PurchasePlanMainServiceImpl.java @@ -90,20 +90,19 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { //调用自动执行方法 if (RequestStatusEnum.HANDLING.getCode().equals(purchasePlanMainDO.getStatus())) { } - trendsApi.createTrends(purchasePlanMainDO.getId(), "PurchaseOrder", "增加了采购订单", TrendsTypeEnum.CREATE); + trendsApi.createTrends(purchasePlanMainDO.getId(), "PurchaseOrder", "增加了要货计划", TrendsTypeEnum.CREATE); return purchasePlanMainDO.getId(); } @Override public Long updatePurchasePlanMain(PurchasePlanMainUpdateReqVO updateReqVO) { - RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchasePlan"); // 校验存在,如子表需要也再此校验 validatePurchasePlanMainExists(updateReqVO.getId()); // 更新主表 PurchasePlanMainDO purchasePlanMainDO = validatorToUpdate(updateReqVO); if (RequestStatusEnum.HANDLING.getCode().equals(purchasePlanMainDO.getStatus())) { } - trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(purchasePlanMainDO.getId(), "PurchaseclaimRequest", "修改了要货计划", TrendsTypeEnum.CREATE); return purchasePlanMainDO.getId(); @@ -320,7 +319,9 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { validatorDetailMethod(purchasePlanDetailDO, purchasePlanMainDO); } purchasePlanMainMapper.updateById(purchasePlanMainDO); - purchasePlanDetailMapper.updateBatch(subDOList); + if (subDOList != null && subDOList.size() > 0) { + purchasePlanDetailMapper.updateBatch(subDOList); + } return purchasePlanMainDO; } @@ -390,8 +391,7 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { for (PurchasePlanMainDO purchasePlanMainDO : purchasePlanMainDOList) { int i = 0; QueryWrapper purchasePlanDetailDOQueryWrapper = new QueryWrapper(); - purchasePlanDetailDOQueryWrapper.eq("number", number); - purchasePlanDetailDOQueryWrapper.eq("po_number", poNumber); + purchasePlanDetailDOQueryWrapper.eq("number", poNumber); purchasePlanDetailDOQueryWrapper.eq("po_line", poLine); purchasePlanDetailDOQueryWrapper.eq("item_code", itemCode); purchasePlanDetailDOQueryWrapper.eq("available", "TRUE"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java index 09a2a67f..12df31b5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainService.java @@ -135,6 +135,12 @@ public interface SupplierdeliverRequestMainService { */ Integer genLabel(String id); - - + /** + * SupplierdeliverRequestMain + * + * @param id 采采购订单申请主ID + * @return 更新数量 + */ + Integer genRecords(String id); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java index 93c33a87..bd40a57f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestMainServiceImpl.java @@ -1,7 +1,6 @@ package com.win.module.wms.service.supplierdeliverRequest; import cn.hutool.core.collection.CollUtil; -import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -13,37 +12,44 @@ import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; -import com.win.module.wms.controller.purchase.vo.*; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO; import com.win.module.wms.controller.rule.vo.RuleRespVO; +import com.win.module.wms.controller.supplierdeliverRecord.vo.SupplierdeliverRecordDetailCreateReqVO; +import com.win.module.wms.controller.supplierdeliverRecord.vo.SupplierdeliverRecordMainCreateReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.*; -import com.win.module.wms.convert.purchase.PurchaseDetailConvert; -import com.win.module.wms.convert.purchase.PurchaseMainConvert; +import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert; +import com.win.module.wms.convert.supplierdeliverRecord.SupplierdeliverRecordDetailConvert; +import com.win.module.wms.convert.supplierdeliverRecord.SupplierdeliverRecordMainConvert; import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestDetailConvert; import com.win.module.wms.convert.supplierdeliverRequest.SupplierdeliverRequestMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; -import com.win.module.wms.dal.dataobject.currencyexchange.CurrencyexchangeDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; -import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; -import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; -import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; -import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO; +import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.shift.ShiftDO; -import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; +import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; +import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestDetailMapper; +import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptRequestMainMapper; +import com.win.module.wms.dal.mysql.supplierdeliverRecord.SupplierdeliverRecordDetailMapper; +import com.win.module.wms.dal.mysql.supplierdeliverRecord.SupplierdeliverRecordMainMapper; import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestDetailMapper; import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; -import com.win.module.wms.enums.order.OrderStatusEnum; -import com.win.module.wms.enums.plan.PlanStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.packageMassage.PackageService; +import com.win.module.wms.service.purchase.PurchaseMainService; import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.rule.RuleService; @@ -51,16 +57,16 @@ import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplier.SupplierService; import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -103,6 +109,23 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq private RuleService ruleService; @Resource private ItempackagingService itempackagingService; + @Resource + private PackageMapper packageMapper; + @Resource + private PackageService packageService; + @Resource + private SupplierdeliverRecordMainMapper supplierdeliverRecordMainMapper; + @Resource + private SupplierdeliverRecordDetailMapper supplierdeliverRecordDetailMapper; + @Resource + private PurchasereceiptRequestMainMapper purchasereceiptRequestMainMapper; + @Resource + private PurchasereceiptRequestDetailMapper purchasereceiptRequestDetailMapper; + @Resource + private PurchaseMainService purchaseMainService; + @Resource + private LocationService locationService; + @Override @@ -239,15 +262,17 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) { return supplieritemService.selectSupplierItemExist(supplierCode, itemCode); } + //子表校验 校验物品标包信息 private ItempackagingDO validatorItemPackagingExist(String itemCode) { return itempackagingService.selectItemPackagingExist(itemCode); } + //子表校验 校验要货计划 private PurchasePlanDetailDO validatorPurchasePlan(SupplierdeliverRequestMainDO supplierdeliverRequestMainDO, SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO) { PurchasePlanDetailDO purchasePlanDetailDO = purchasePlanMainService.selectPurchasePlan(supplierdeliverRequestMainDO.getPpNumber(), supplierdeliverRequestMainDO.getSupplierCode(), - supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); + supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); return purchasePlanDetailDO; } @@ -277,10 +302,10 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); PurchasePlanDetailDO purchasePlanDetailDO = this.validatorPurchasePlan(mainDo, detailDo); if ((purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())).compareTo(detailDo.getQty()) == -1) { - throw exception(QTY_ERROR, detailDo.getQty(), null, detailDo.getPoLine(), null, purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())); + throw exception(QTY_ERROR, detailDo.getQty(), detailDo.getNumber(), detailDo.getPoLine(), purchasePlanDetailDO.getItemCode(), purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())); } ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); - if(itempackagingDO != null){ + if (itempackagingDO != null) { detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); } @@ -313,7 +338,7 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq validatorDetailMethod(supplierdeliverRequestDetailDO, supplierdeliverRequestMainDO); } supplierdeliverRequestMainMapper.updateById(supplierdeliverRequestMainDO); - if(subDOList!=null&&subDOList.size()>0){ + if (subDOList != null && subDOList.size() > 0) { supplierdeliverRequestDetailMapper.updateBatch(subDOList); } return supplierdeliverRequestMainDO; @@ -447,7 +472,7 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq @Transactional public Integer witSupplierdeliverRequestMain(Long id) { SupplierdeliverRequestMainDO mainDO = validateSupplierdeliverRequestMainExists(id); - mainDO.setStatus(PlanStatusEnum.AGREED.getCode());//增加操作记录 + mainDO.setStatus(RequestStatusEnum.AGREED.getCode());//增加操作记录 trendsApi.createTrends(id, "request_supplierdeliver_main", "审批通过了供应商发货申请", TrendsTypeEnum.UPDATE); return supplierdeliverRequestMainMapper.updateById(mainDO); } @@ -462,12 +487,11 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq @Transactional public Integer rejSupplierdeliverRequestMain(Long id) { SupplierdeliverRequestMainDO mainDO = validateSupplierdeliverRequestMainExists(id); - mainDO.setStatus(PlanStatusEnum.REFUSED.getCode());//增加操作记录 + mainDO.setStatus(RequestStatusEnum.REFUSED.getCode());//增加操作记录 trendsApi.createTrends(id, "request_supplierdeliver_main", "驳回了供应商发货申请", TrendsTypeEnum.UPDATE); return supplierdeliverRequestMainMapper.updateById(mainDO); } - /** * 生成标签 * @@ -477,18 +501,209 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq @Override @Transactional public Integer genLabel(String id) { + Integer result = 0; + //--------------------------------------------------生成包装----------------------------------------------------------------------------------------------- + //主表 QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("number", id); + queryWrapper.eq("id", id); SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); - PackageDO packageDO = new PackageDO(); - packageDO.setSupplierCode(mainDO.getSupplierCode()); - packageDO.setSupplierItemCode(null); - packageDO.setPpNumber(mainDO.getPpNumber()); - packageDO.setAsnNumber(mainDO.getAsnNumber()); + //判断ASN单号 是否重复,如果重复不生成 + QueryWrapper packageDOQueryWrapper = new QueryWrapper(); + packageDOQueryWrapper.eq("asn_number", mainDO.getAsnNumber()); + Long count = packageMapper.selectCount(packageDOQueryWrapper); + if (count > 0) { + throw exception(LABLE_AND_PACK_TYPE_NOT_EXISTS); + } + //子表 + QueryWrapper supplierdeliverRequestDetailDOQueryWrapper = new QueryWrapper(); + supplierdeliverRequestDetailDOQueryWrapper.eq("master_id", id); + List detailDOList = supplierdeliverRequestDetailMapper.selectList(supplierdeliverRequestDetailDOQueryWrapper); + + for (SupplierdeliverRequestDetailDO detailDO : detailDOList) { + // 获取标包数量 + BigDecimal itemPackagingDOQty = detailDO.getStdPackQty(); + // 库存余额输入数量 + BigDecimal detailDOQty = detailDO.getQty(); + + // 判断 库存余额输入的数量 大于 标包数 进行拆分 + if (detailDOQty.compareTo(itemPackagingDOQty) == 1) { + // 库存余额 除以 标包 保留0位 具体子表 例如:保留1位 1.60-1.6 1.61-1.7 1.66-1.7 -1.62--1.7 + // 拆分数据总条数 bdcount + BigDecimal bdCount = detailDOQty.divide(itemPackagingDOQty, 0, BigDecimal.ROUND_UP); + int forInt = bdCount.intValue(); + //最后一条数据插入数 residueoty= 库存余额数-( 拆分数据总条数-1)*标包数 + BigDecimal residue0ty = detailDOQty.subtract(itemPackagingDOQty.multiply(bdCount.subtract(new BigDecimal(1)))); + for (int i = 0; i < forInt; i++) { + PackageDO packageDO = new PackageDO(); + String number = serialNumberApi.generateCode(RuleCodeEnum.PACKING_NUMBER.getCode()); + packageDO.setNumber(number); + LocalDate today = LocalDate.now(); // 获取当前日期 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); // 定义日期格式 + packageDO.setBatch(today.format(formatter)); + //主表给包装表赋值 + packageDO.setSupplierCode(mainDO.getSupplierCode()); + packageDO.setSupplierItemCode(null); + packageDO.setPpNumber(mainDO.getPpNumber()); + packageDO.setAsnNumber(mainDO.getAsnNumber()); + //子表给包装表赋值 + packageDO.setPoNumber(detailDO.getPoNumber()); + packageDO.setPoLine(detailDO.getPoLine()); + packageDO.setItemCode(detailDO.getItemCode()); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + packageDO.setItemName(itembasicDO.getName()); + packageDO.setItemDesc1(detailDO.getItemDesc1()); + packageDO.setItemDesc2(detailDO.getItemDesc2()); + packageDO.setUom(detailDO.getUom()); + packageDO.setStdPackQty(detailDO.getStdPackQty()); + packageDO.setProduceDate(detailDO.getProduceDate()); + packageDO.setValidityDays(0); + packageDO.setExpireDate(detailDO.getExpireDate()); + packageDO.setConvertRate(detailDO.getConvertRate()); + // 最后一条数据 插入数量 qty = 标包*数据条数 - 库存余额数 + if (i == (forInt - 1)) { + packageDO.setQty(residue0ty); + } else { + packageDO.setQty(itemPackagingDOQty); + } + result = packageMapper.insert(packageDO); + //生成标签 + packageService.generateLabel(packageDO); + } + } else { + PackageDO packageDO = new PackageDO(); + String number = serialNumberApi.generateCode(RuleCodeEnum.PACKING_NUMBER.getCode()); + packageDO.setNumber(number); + LocalDate today = LocalDate.now(); // 获取当前日期 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); // 定义日期格式 + packageDO.setBatch(today.format(formatter)); + //主表给包装表赋值 + packageDO.setSupplierCode(mainDO.getSupplierCode()); + packageDO.setSupplierItemCode(null); + packageDO.setPpNumber(mainDO.getPpNumber()); + packageDO.setAsnNumber(mainDO.getAsnNumber()); + //子表给包装表赋值 + packageDO.setPoNumber(detailDO.getPoNumber()); + packageDO.setPoLine(detailDO.getPoLine()); + packageDO.setItemCode(detailDO.getItemCode()); + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + packageDO.setItemName(itembasicDO.getName()); + packageDO.setItemDesc1(detailDO.getItemDesc1()); + packageDO.setItemDesc2(detailDO.getItemDesc2()); + packageDO.setUom(detailDO.getUom()); + packageDO.setStdPackQty(detailDO.getStdPackQty()); + packageDO.setProduceDate(detailDO.getProduceDate()); + packageDO.setValidityDays(0); + packageDO.setExpireDate(detailDO.getExpireDate()); + packageDO.setConvertRate(detailDO.getConvertRate()); + + packageDO.setQty(detailDO.getQty()); + result = packageMapper.insert(packageDO); + //生成标签 + packageService.generateLabel(packageDO); + } + } + return result; + } + + /** + * 处理操作(生成记录,生成采购收货申请) + * + * @param id 采采购订单申请主ID + * @return 更新数量 + */ + @Override + @Transactional + public Integer genRecords(String id) { + Integer result = 0; + //主表 + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("id", id); + SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); + //子表 + QueryWrapper supplierdeliverRequestDetailDOQueryWrapper = new QueryWrapper(); + supplierdeliverRequestDetailDOQueryWrapper.eq("master_id", id); + List detailDOList = supplierdeliverRequestDetailMapper.selectList(supplierdeliverRequestDetailDOQueryWrapper); + //跳过任务直接生成记录 + SupplierdeliverRecordMainCreateReqVO supplierdeliverRecordMainCreateReqVO = new SupplierdeliverRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, supplierdeliverRecordMainCreateReqVO); + String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_RECORD.getCode()); + supplierdeliverRecordMainCreateReqVO.setNumber(number); + supplierdeliverRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("SupplierdeliverRequest"); + supplierdeliverRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + supplierdeliverRecordMainCreateReqVO.setAvailable("TRUE"); + supplierdeliverRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); + supplierdeliverRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); + supplierdeliverRecordMainCreateReqVO.setDepartmentCode(mainDO.getDepartmentCode()); + supplierdeliverRecordMainMapper.insert(SupplierdeliverRecordMainConvert.INSTANCE.convert(supplierdeliverRecordMainCreateReqVO)); + for (SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO : detailDOList) { + SupplierdeliverRecordDetailCreateReqVO supplierdeliverRecordDetailCreateReqVO = new SupplierdeliverRecordDetailCreateReqVO(); + BeanUtils.copyProperties(supplierdeliverRequestDetailDO, supplierdeliverRecordDetailCreateReqVO); + supplierdeliverRecordDetailCreateReqVO.setNumber(number); + supplierdeliverRecordDetailCreateReqVO.setFromPackingNumber(""); + supplierdeliverRecordDetailCreateReqVO.setToPackingNumber(""); + supplierdeliverRecordDetailCreateReqVO.setFromBatch(""); + supplierdeliverRecordDetailCreateReqVO.setToBatch(""); + supplierdeliverRecordDetailCreateReqVO.setAltBatch(""); + supplierdeliverRecordDetailCreateReqVO.setFromContainerNumber(""); + supplierdeliverRecordDetailCreateReqVO.setToContainerNumber(""); + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDO.getSupplierCode(), supplierdeliverRequestDetailDO.getItemCode()); + supplierdeliverRecordDetailCreateReqVO.setToLocationCode(supplieritemDO.getDefaultLocationCode()); + LocationDO locationDO = locationService.selectLocation(supplieritemDO.getDefaultLocationCode()); + supplierdeliverRecordDetailCreateReqVO.setToAreaCode(locationDO.getAreaCode()); + supplierdeliverRecordDetailCreateReqVO.setToLocationGroupCode(locationDO.getLocationGroupCode()); + supplierdeliverRecordDetailMapper.insert(SupplierdeliverRecordDetailConvert.INSTANCE.convert(supplierdeliverRecordDetailCreateReqVO)); + } - return 0; + //生成采购收货申请 叶佳兴 + PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = new PurchasereceiptRequestMainDO(); + BeanUtils.copyProperties(mainDO, purchasereceiptRequestMainDO); + String number2 = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); + purchasereceiptRequestMainDO.setNumber(number2); + purchasereceiptRequestMainMapper.insert(purchasereceiptRequestMainDO); + for (SupplierdeliverRequestDetailDO detailDO : detailDOList) { + //包装 + QueryWrapper packageDOQueryWrapper = new QueryWrapper(); + packageDOQueryWrapper.eq("asn_number", mainDO.getAsnNumber()); + packageDOQueryWrapper.eq("po_number", detailDO.getPoNumber()); + packageDOQueryWrapper.eq("po_line", detailDO.getPoLine()); + packageDOQueryWrapper.eq("item_code", detailDO.getItemCode()); + List packageDOList = packageMapper.selectList(packageDOQueryWrapper); + for (PackageDO packageDO : packageDOList) { + PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = new PurchasereceiptRequestDetailDO(); + purchasereceiptRequestDetailDO.setMasterId(purchasereceiptRequestMainDO.getId()); + purchasereceiptRequestDetailDO.setNumber(number2); + //供应商子表 + BeanUtils.copyProperties(detailDO, purchasereceiptRequestDetailDO); + purchasereceiptRequestDetailDO.setContainerNumber(null); + purchasereceiptRequestDetailDO.setBatch(packageDO.getBatch()); + purchasereceiptRequestDetailDO.setAltBatch(packageDO.getAltBatch()); + purchasereceiptRequestDetailDO.setArriveDate(detailDO.getArriveDate()); + purchasereceiptRequestDetailDO.setProduceDate(packageDO.getProduceDate()); + purchasereceiptRequestDetailDO.setExpireDate(packageDO.getExpireDate()); + purchasereceiptRequestDetailDO.setPackingNumber(packageDO.getNumber()); + purchasereceiptRequestDetailDO.setInventoryStatus("INS"); + purchasereceiptRequestDetailDO.setFromLocationCode(null); + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDO.getSupplierCode(), detailDO.getItemCode()); + purchasereceiptRequestDetailDO.setDefaultToLocationCode(supplieritemDO.getDefaultLocationCode()); + purchasereceiptRequestDetailDO.setRemark(null); + purchasereceiptRequestDetailDO.setCreateTime(LocalDateTime.now()); + purchasereceiptRequestDetailDO.setSiteId(null); + purchasereceiptRequestDetailMapper.insert(purchasereceiptRequestDetailDO); + } + //更新要货计划的已发货数量 + purchasePlanMainService.updatePlanPurchaseShippedQty(detailDO.getNumber(), mainDO.getPpNumber(), detailDO.getPoLine() + , detailDO.getItemCode(), detailDO.getQty()); + //更新要货计划的已发货数量 + purchaseMainService.updateOrderPurchaseShippedQty(detailDO.getPoNumber(), detailDO.getPoLine(), detailDO.getItemCode(), detailDO.getQty()); + } + mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); + supplierdeliverRequestMainMapper.updateBatch(mainDO); + trendsApi.createTrends(mainDO.getId(), "SupplierdeliverRequest", "处理了供应商发货申请", TrendsTypeEnum.CREATE); + return result; } }