From 6244b608cf84d801a93b05e673c06d34440f1650 Mon Sep 17 00:00:00 2001 From: yejiaxing <591141169@qq.com> Date: Fri, 1 Dec 2023 17:30:55 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/PurchaseMainController.java | 13 +- .../vo/PurchasePlanDetailPageReqVO.java | 4 + .../SupplierdeliverRequestMainController.java | 13 +- .../vo/SupplierdeliverRequestMainBaseVO.java | 24 +- ...SupplierdeliverRequestMainUpdateReqVO.java | 6 +- .../SupplierdeliverRequestDetailConvert.java | 10 + .../SupplierdeliverRequestMainConvert.java | 9 +- .../PurchasePlanDetailMapper.java | 2 + .../purchase/PurchaseMainServiceImpl.java | 5 +- .../PurchasePlanMainServiceImpl.java | 4 +- .../module/wms/service/rule/RuleService.java | 2 +- .../SupplierdeliverRequestMainService.java | 2 +- ...SupplierdeliverRequestMainServiceImpl.java | 349 ++++++++++++------ 13 files changed, 288 insertions(+), 155 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java index 9bcddafc..643e7abd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/PurchaseMainController.java @@ -57,7 +57,7 @@ public class PurchaseMainController { @Operation(summary = "更新采购订单主") @PreAuthorize("@ss.hasPermission('wms:purchase-main:update')") public CommonResult updatePurchaseMain(@Valid @RequestBody PurchaseMainUpdateReqVO updateReqVO) { - Long result = purchaseMainService.updatePurchaseMain(updateReqVO); + Long result = purchaseMainService.updatePurchaseMain(updateReqVO); return success(result > 0); } @@ -67,13 +67,14 @@ public class PurchaseMainController { public CommonResult> getPurchaseMainSenior(@Valid @RequestBody CustomConditions conditions) { PageResult pageResult = purchaseMainService.getPurchaseMainSenior(conditions); PageResult result = PurchaseMainConvert.INSTANCE.convertPage(pageResult); - for(PurchaseMainRespVO vo : result.getList()) { + for (PurchaseMainRespVO vo : result.getList()) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); } return success(result); } + @DeleteMapping("/delete") @Operation(summary = "删除采购订单主") @Parameter(name = "id", description = "编号", required = true) @@ -114,12 +115,12 @@ public class PurchaseMainController { @PreAuthorize("@ss.hasPermission('wms:purchase-main:export')") @OperateLog(type = EXPORT) public void exportPurchaseMainExcel(@Valid PurchaseMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { List list = purchaseMainService.getPurchaseMainList(exportReqVO); // 导出 Excel List datas = PurchaseMainConvert.INSTANCE.convertList02(list); - for(PurchaseMainExcelVO vo : datas) { - if(vo.getCreator()!=null){ + for (PurchaseMainExcelVO vo : datas) { + if (vo.getCreator() != null) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); @@ -160,7 +161,7 @@ public class PurchaseMainController { List errorList = purchaseMainService.importPurchaseMaintList(createReqVOList, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); - if(!errorList.isEmpty()) { + if (!errorList.isEmpty()) { String url = ExcelUtils.writeLocalFile("采购订单基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); returnMap.put("errorFile", url); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanDetailPageReqVO.java index ce7afdaf..bd1e24bc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasePlan/vo/PurchasePlanDetailPageReqVO.java @@ -31,6 +31,10 @@ public class PurchasePlanDetailPageReqVO extends PageParam { @Schema(description = "备注") private String remark; + /** + * 主表ID + */ + private Long masterId; @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) 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 dab33466..dca0558d 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 @@ -55,8 +55,8 @@ public class SupplierdeliverRequestMainController { @Operation(summary = "更新供应商发货申请主") @PreAuthorize("@ss.hasPermission('wms:supplierdeliver-request-main:update')") public CommonResult updateSupplierdeliverRequestMain(@Valid @RequestBody SupplierdeliverRequestMainUpdateReqVO updateReqVO) { - supplierdeliverRequestMainService.updateSupplierdeliverRequestMain(updateReqVO); - return success(true); + Long result = supplierdeliverRequestMainService.updateSupplierdeliverRequestMain(updateReqVO); + return success(result > 0); } @DeleteMapping("/delete") @@ -85,13 +85,14 @@ public class SupplierdeliverRequestMainController { List list = supplierdeliverRequestMainService.getSupplierdeliverRequestMainList(ids); return success(SupplierdeliverRequestMainConvert.INSTANCE.convertList(list)); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:SupplierdeliverRequestMain:query')") public CommonResult> getSupplierdeliverRequestMainSenior(@Valid @RequestBody CustomConditions conditions) { PageResult pageResult = supplierdeliverRequestMainService.getSupplierdeliverRequestMainSenior(conditions); PageResult result = SupplierdeliverRequestMainConvert.INSTANCE.convertPage(pageResult); - for(SupplierdeliverRequestMainRespVO vo : result.getList()) { + for (SupplierdeliverRequestMainRespVO vo : result.getList()) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); @@ -112,11 +113,11 @@ public class SupplierdeliverRequestMainController { @PreAuthorize("@ss.hasPermission('wms:supplierdeliver-request-main:export')") @OperateLog(type = EXPORT) public void exportSupplierdeliverRequestMainExcel(@Valid SupplierdeliverRequestMainExportReqVO exportReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { List list = supplierdeliverRequestMainService.getSupplierdeliverRequestMainList(exportReqVO); // 导出 Excel List datas = SupplierdeliverRequestMainConvert.INSTANCE.convertList02(list); - for(SupplierdeliverRequestMainExcelVO vo : datas) { + for (SupplierdeliverRequestMainExcelVO vo : datas) { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); @@ -156,7 +157,7 @@ public class SupplierdeliverRequestMainController { List errorList = supplierdeliverRequestMainService.importSupplierdeliverRequestMainList(createReqVOList, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); - if(!errorList.isEmpty()) { + if (!errorList.isEmpty()) { String url = ExcelUtils.writeLocalFile("供应商发货申请基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList); returnMap.put("errorFile", url); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainBaseVO.java index 54c15cc2..0e14b1c4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainBaseVO.java @@ -28,11 +28,11 @@ public class SupplierdeliverRequestMainBaseVO { private String ppNumber; @Schema(description = "发货单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "发货单号不能为空") +// @NotNull(message = "发货单号不能为空") private String asnNumber; @Schema(description = "供应商代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "供应商代码不能为空") +// @NotNull(message = "供应商代码不能为空") private String supplierCode; @Schema(description = "联系人姓名") @@ -48,18 +48,18 @@ public class SupplierdeliverRequestMainBaseVO { private String fromWarehouseCode; @Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到仓库代码不能为空") +// @NotNull(message = "到仓库代码不能为空") private String toWarehouseCode; @Schema(description = "到月台代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到月台代码不能为空") +// @NotNull(message = "到月台代码不能为空") private String toDockCode; @Schema(description = "时间窗口") private String timeWindow; @Schema(description = "计划到货时间", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "计划到货时间不能为空") +// @NotNull(message = "计划到货时间不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime planArriveTime; @@ -73,11 +73,11 @@ public class SupplierdeliverRequestMainBaseVO { private String vehiclePlateNumber; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "单据号不能为空") +// @NotNull(message = "单据号不能为空") private String number; @Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "业务类型不能为空") +// @NotNull(message = "业务类型不能为空") private String businessType; @Schema(description = "备注") @@ -99,7 +99,7 @@ public class SupplierdeliverRequestMainBaseVO { private LocalDateTime dueTime; @Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "部门不能为空") +// @NotNull(message = "部门不能为空") private String departmentCode; @Schema(description = "状态") @@ -113,19 +113,19 @@ public class SupplierdeliverRequestMainBaseVO { private String updater; @Schema(description = "自动提交", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动提交不能为空") +// @NotNull(message = "自动提交不能为空") private String autoCommit; @Schema(description = "自动通过", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动通过不能为空") +// @NotNull(message = "自动通过不能为空") private String autoAgree; @Schema(description = "自动执行", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "自动执行不能为空") +// @NotNull(message = "自动执行不能为空") private String autoExecute; @Schema(description = "直接生成记录", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "直接生成记录不能为空") +// @NotNull(message = "直接生成记录不能为空") private String directCreateRecord; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainUpdateReqVO.java index 5e7ca4b0..88f2b9a0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestMainUpdateReqVO.java @@ -1,12 +1,16 @@ package com.win.module.wms.controller.supplierdeliverRequest.vo; +import com.win.module.wms.controller.purchase.vo.PurchaseDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 供应商发货申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class SupplierdeliverRequestMainUpdateReqVO extends SupplierdeliverRequestMainBaseVO { - + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java index 6b306e13..3ec35a52 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/supplierdeliverRequest/SupplierdeliverRequestDetailConvert.java @@ -1,7 +1,11 @@ package com.win.module.wms.convert.supplierdeliverRequest; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.purchase.vo.PurchaseDetailUpdateReqVO; +import com.win.module.wms.controller.purchase.vo.PurchaseMainCreateReqVO; +import com.win.module.wms.controller.purchase.vo.PurchaseMainImportErrorVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; import org.mapstruct.Mapper; @@ -35,6 +39,8 @@ public interface SupplierdeliverRequestDetailConvert { List convertList03(List list); + List convertList05(List list); + SupplierdeliverRequestDetailCreateReqVO convert1(SupplierdeliverRequestDetailDO bean); @Mappings({ @@ -51,5 +57,9 @@ public interface SupplierdeliverRequestDetailConvert { @Mapping(source = "mainVo.number", target = "number"), }) SupplierdeliverRequestMainImportErrorVO convert(SupplierdeliverRequestMainCreateReqVO mainVo, SupplierdeliverRequestDetailCreateReqVO detailVo); + @Mappings({ + @Mapping(source = "mainVo.number", target = "number"), + }) + SupplierdeliverRequestMainImportErrorVO convert(SupplierdeliverRequestMainCreateReqVO mainVo, SupplierdeliverRequestDetailDO detailDo); } 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 9c1c302b..1a9353e5 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 @@ -4,10 +4,9 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainCreateReqVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainExcelVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainRespVO; -import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestMainUpdateReqVO; +import com.win.module.wms.controller.purchase.vo.PurchaseMainBaseVO; +import com.win.module.wms.controller.supplierdeliverRequest.vo.*; +import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; @@ -28,6 +27,8 @@ public interface SupplierdeliverRequestMainConvert { SupplierdeliverRequestMainRespVO convert(SupplierdeliverRequestMainDO bean); + SupplierdeliverRequestMainDO convert( SupplierdeliverRequestMainBaseVO baseVO); + List convertList(List list); PageResult convertPage(PageResult page); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanDetailMapper.java index 9fe8c01a..31c5171f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanDetailExportReqVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanDetailPageReqVO; +import com.win.module.wms.dal.dataobject.purchase.PurchaseDetailDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface PurchasePlanDetailMapper extends BaseMapperX selectPage(PurchasePlanDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PurchasePlanDetailDO::getMasterId,reqVO.getMasterId()) .eqIfPresent(PurchasePlanDetailDO::getPoNumber, reqVO.getPoNumber()) .eqIfPresent(PurchasePlanDetailDO::getPoLine, reqVO.getPoLine()) .eqIfPresent(PurchasePlanDetailDO::getNumber, reqVO.getNumber()) 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 f6389e04..b229f6ae 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 @@ -132,14 +132,13 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { @Override public Long updatePurchaseMain(PurchaseMainUpdateReqVO updateReqVO) { - RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseOrder"); // 校验存在,如子表需要也再此校验 validatePurchaseMainExists(updateReqVO.getId()); // 更新主表 PurchaseMainDO purchaseMainDO = validatorToUpdate(updateReqVO); if (RequestStatusEnum.HANDLING.getCode().equals(purchaseMainDO.getStatus())) { } - trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(purchaseMainDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); return purchaseMainDO.getId(); } @@ -288,7 +287,6 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { return stdcostpriceService.selectStdcostpriceExist(supplierCode, itemCode); } - //校验主表公共方法(适用于新增/修改) private PurchaseMainDO validatorMainMethod(PurchaseMainBaseVO baseVO) { PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(baseVO); @@ -454,7 +452,6 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { return messageDetail; } - @Override @Transactional public Integer closePurchaseMain(Long id) { 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 bbf8ed8e..24771a66 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 @@ -152,12 +152,12 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { @Override public PurchasePlanDetailDO selectPurchasePlan(String pnubmer, String psupplierCode, String ppoNumber, String ppoLine, String pitemCode) { - QueryWrapper queryWrapperMain = new QueryWrapper(); + QueryWrapper queryWrapperMain = new QueryWrapper(); queryWrapperMain.eq("number", pnubmer); queryWrapperMain.eq("supplier_code", psupplierCode); PurchasePlanMainDO purchasePlanMainDO = purchasePlanMainMapper.selectOne(queryWrapperMain); if (purchasePlanMainDO != null && "TRUE".equals(purchasePlanMainDO.getAvailable())) { - if (!"CLOSED".equals(purchasePlanMainDO.getStatus())) { + if (!PurchasePlanStatusEnum.CLOSED.getCode().equals(purchasePlanMainDO.getStatus())) { QueryWrapper queryWrapperDetail = new QueryWrapper(); queryWrapperDetail.eq("master_id", purchasePlanMainDO.getId()); queryWrapperDetail.eq("number", ppoNumber); 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 6ecbfc98..cb4816f5 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 @@ -83,7 +83,7 @@ public interface RuleService { /**************** 规则接口 ****************/ /** - * 获取供应商送货策略 + * 采购默认策略 * * @param supplierType 供应商类型 * @param supplierCode 供应商代码 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 4bc70ba1..0f676cd8 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 @@ -36,7 +36,7 @@ public interface SupplierdeliverRequestMainService { * * @param updateReqVO 更新信息 */ - void updateSupplierdeliverRequestMain(@Valid SupplierdeliverRequestMainUpdateReqVO updateReqVO); + Long updateSupplierdeliverRequestMain(@Valid SupplierdeliverRequestMainUpdateReqVO updateReqVO); /** * 删除供应商发货申请主 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 d88c71dd..3ccee7c1 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,45 +1,67 @@ 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; 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.dict.core.util.DictFrameworkUtils; +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.rule.vo.RuleRespVO; 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.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.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.requestsetting.RequestsettingDO; 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.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.request.RequestStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; import com.win.module.wms.service.requestsetting.RequestsettingService; +import com.win.module.wms.service.rule.RuleService; 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.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY; -import static com.win.module.wms.enums.ErrorCodeConstants.SUPPLIERDELIVER_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 供应商发货申请主 Service 实现类 @@ -68,23 +90,43 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq private JobUtils jobUtils; @Resource private RequestsettingService requestsettingService; + @Resource + private SupplierService supplierService; + @Resource + private TrendsApi trendsApi; + @Resource + private RuleService ruleService; @Override public Long createSupplierdeliverRequestMain(SupplierdeliverRequestMainCreateReqVO createReqVO) { - // 插入 - SupplierdeliverRequestMainDO supplierdeliverRequestMain = SupplierdeliverRequestMainConvert.INSTANCE.convert(createReqVO); - supplierdeliverRequestMainMapper.insert(supplierdeliverRequestMain); - // 返回 - return supplierdeliverRequestMain.getId(); + // 插入主表 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("SupplierDeliverRequest"); + createReqVO.setBusinessType(businesstypeDO.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); + createReqVO.setNumber(number); + createReqVO.setCreateTime(LocalDateTime.now()); + SupplierdeliverRequestMainDO supplierdeliverRequestMainDO = validatorToCreate(createReqVO); + //调用自动执行方法 + if (RequestStatusEnum.HANDLING.getCode().equals(supplierdeliverRequestMainDO.getStatus())) { + } + trendsApi.createTrends(supplierdeliverRequestMainDO.getId(), "PurchaseOrder", "增加了采购订单", TrendsTypeEnum.CREATE); + return supplierdeliverRequestMainDO.getId(); + + } @Override - public void updateSupplierdeliverRequestMain(SupplierdeliverRequestMainUpdateReqVO updateReqVO) { - // 校验存在 + public Long updateSupplierdeliverRequestMain(SupplierdeliverRequestMainUpdateReqVO updateReqVO) { + // 校验存在,如子表需要也再此校验 validateSupplierdeliverRequestMainExists(updateReqVO.getId()); - // 更新 - SupplierdeliverRequestMainDO updateObj = SupplierdeliverRequestMainConvert.INSTANCE.convert(updateReqVO); - supplierdeliverRequestMainMapper.updateById(updateObj); + // 更新主表 + SupplierdeliverRequestMainDO supplierdeliverRequestMainDO = validatorToUpdate(updateReqVO); + if (RequestStatusEnum.HANDLING.getCode().equals(supplierdeliverRequestMainDO.getStatus())) { + } + trendsApi.createTrends(supplierdeliverRequestMainDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); + return supplierdeliverRequestMainDO.getId(); + + } @Override @@ -116,6 +158,7 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq return supplierdeliverRequestMainMapper.selectBatchIds(ids); } + @Override public PageResult getSupplierdeliverRequestMainPage(SupplierdeliverRequestMainPageReqVO pageReqVO) { return supplierdeliverRequestMainMapper.selectPage(pageReqVO); @@ -132,122 +175,192 @@ public class SupplierdeliverRequestMainServiceImpl implements SupplierdeliverReq throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); } List errorList = new ArrayList<>(); - datas.forEach(createReqVO -> { - // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList - String messageMain = ""; - //主表的验证 - //校验供应商基础信息 - try { - ShiftDO shiftDO = shiftService.selectShiftExist(createReqVO.getSupplierCode()); - BeanUtils.copyProperties(createReqVO, shiftDO); - } catch (ServiceException ex) { - messageMain += ex.getMessage() + ","; - } - - //校验供应商送货策略 -// try { -// RuleRespVO ruleRespVO = ruleService.deliverGoods(null, createReqVO.getSupplierCode(), null); -// String json = ruleRespVO.getConfiguration(); -// } catch (ServiceException ex) { -// importRemark += ex.getMessage() + ","; -// } - //子表的验证 + for (SupplierdeliverRequestMainCreateReqVO createReqVO : datas) { + SupplierdeliverRequestMainDO mainDo = SupplierdeliverRequestMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validatorSupplierdeliverRequestMainImport(mainDo); List subList = createReqVO.getSubList(); List subDOList = SupplierdeliverRequestDetailConvert.INSTANCE.convertList03(subList); - for (SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO : subDOList) { - String messageDetail = ""; - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(supplierdeliverRequestDetailDO.getItemCode()); - if (itembasicDO.getUom() != supplierdeliverRequestDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + supplierdeliverRequestDetailDO.getUom() + ","; - } - supplierdeliverRequestDetailDO.setProjectCode(itembasicDO.getCode()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; + // 是否有错误数据 + boolean flag = true; + for (SupplierdeliverRequestDetailDO detailDO : subDOList) { + String messageDetail = validatorSupplierdeliverRequestDetailImport(detailDO, mainDo); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + SupplierdeliverRequestMainImportErrorVO importErrorVO = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - - // 校验供应商物品 - try { - SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(createReqVO.getSupplierCode(), supplierdeliverRequestDetailDO.getItemCode()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; + } + //写入数据 + if (flag) { + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder"); + mainDo.setBusinessType(businesstypeDO.getCode()); + supplierdeliverRequestMainMapper.insert(mainDo); + for (SupplierdeliverRequestDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(mainDo.getNumber()); } + supplierdeliverRequestDetailMapper.insertBatch(subDOList); + } + } + return errorList; + } - // 校验要货计划 - try { - PurchasePlanDetailDO purchasePlanDetailDO = purchasePlanMainService.selectPurchasePlan(createReqVO.getNumber(), createReqVO.getSupplierCode(), - supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); - if ((purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())).compareTo(supplierdeliverRequestDetailDO.getQty()) == -1) { - messageDetail += "供应商发货数量" + supplierdeliverRequestDetailDO.getQty() + "大于订单行" + supplierdeliverRequestDetailDO.getPoLine() + "的未发货数量" + purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty()) + ","; - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } + //主表校验 校验班次基础信息 + private SupplierDO validatorSupplier(String supplierCode) { + return supplierService.selectSupplier(supplierCode); + } - SupplierdeliverRequestDetailCreateReqVO supplierdeliverRequestDetailCreateReqVO = SupplierdeliverRequestDetailConvert.INSTANCE.convert1(supplierdeliverRequestDetailDO); - SupplierdeliverRequestMainImportErrorVO importVO = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO, supplierdeliverRequestDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); - messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - supplierdeliverRequestDetailDO.setNumber(createReqVO.getNumber()); - supplierdeliverRequestDetailDO.setMasterId(createReqVO.getId()); - supplierdeliverRequestDetailDO.setAltBatch(""); - } + //主表校验 校验供应商基础信息 + private RuleRespVO validatordeliverGoods() { + RuleRespVO ruleRespVO = ruleService.deliverGoods(null, null, null); + return ruleRespVO; + } + + //子表校验 校验供应商基础信息 + private void validatorItembasic(String itemCode) { + itembasicService.selectItembasic(itemCode); + } + + //子表校验 校验供应商物品 + private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) { + return supplieritemService.selectSupplierItemExist(supplierCode, itemCode); + } + + //子表校验 校验要货计划 + private PurchasePlanDetailDO validatorPurchasePlan(SupplierdeliverRequestMainDO supplierdeliverRequestMainDO, SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO) { + PurchasePlanDetailDO purchasePlanDetailDO = + purchasePlanMainService.selectPurchasePlan(supplierdeliverRequestMainDO.getPpNumber(), supplierdeliverRequestMainDO.getSupplierCode(), + supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); + return purchasePlanDetailDO; + } + + //校验主表公共方法(适用于新增/修改) + private SupplierdeliverRequestMainDO validatorMainMethod(SupplierdeliverRequestMainBaseVO baseVO) { + SupplierdeliverRequestMainDO mainDo = SupplierdeliverRequestMainConvert.INSTANCE.convert(baseVO); + SupplierDO supplierDO = this.validatorSupplier(mainDo.getSupplierCode()); + if (supplierDO == null) { + throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); + } + RuleRespVO ruleRespVO = validatordeliverGoods(); + if (ruleRespVO == null) { + throw new ServiceException(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); + } else { + JSONObject conditionObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); + mainDo.setToWarehouseCode(String.valueOf(conditionObject.get("WarehouseCode"))); + mainDo.setToDockCode(String.valueOf(conditionObject.get("DockCode"))); + mainDo.setTimeWindow(conditionObject.get("BeginTime") + "-" + conditionObject.get("EndTime")); + } + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + return mainDo; + } + + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(SupplierdeliverRequestDetailDO detailDo, SupplierdeliverRequestMainDO mainDo) { + this.validatorItembasic(detailDo.getItemCode()); + 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())); + } + } + + //新增校验 + private SupplierdeliverRequestMainDO validatorToCreate(SupplierdeliverRequestMainCreateReqVO createReqVO) { + SupplierdeliverRequestMainDO supplierdeliverRequestMainDO = validatorMainMethod(createReqVO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList = SupplierdeliverRequestDetailConvert.INSTANCE.convertList03(subList); + supplierdeliverRequestMainMapper.insert(supplierdeliverRequestMainDO); + for (SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO : subDOList) { + validatorDetailMethod(supplierdeliverRequestDetailDO, supplierdeliverRequestMainDO); + supplierdeliverRequestDetailDO.setMasterId(supplierdeliverRequestMainDO.getId()); + supplierdeliverRequestDetailDO.setNumber(supplierdeliverRequestMainDO.getNumber()); + } + supplierdeliverRequestDetailMapper.insertBatch(subDOList); + return supplierdeliverRequestMainDO; + } + + //修改校验 + private SupplierdeliverRequestMainDO validatorToUpdate(SupplierdeliverRequestMainUpdateReqVO updateReqVO) { + SupplierdeliverRequestMainDO supplierdeliverRequestMainDO = validatorMainMethod(updateReqVO); + //子表校验 + List subList = updateReqVO.getSubList(); + List subDOList = SupplierdeliverRequestDetailConvert.INSTANCE.convertList05(subList); + for (SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO : subDOList) { + validatorDetailMethod(supplierdeliverRequestDetailDO, supplierdeliverRequestMainDO); + } + supplierdeliverRequestMainMapper.updateById(supplierdeliverRequestMainDO); + supplierdeliverRequestDetailMapper.updateBatch(subDOList); + return supplierdeliverRequestMainDO; + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param createReqVO + * @return + */ + private String validatorSupplierdeliverRequestMainImport(SupplierdeliverRequestMainDO createReqVO) { + String messageMain = ""; + //校验供应商基础信息 + try { + ShiftDO shiftDO = shiftService.selectShiftExist(createReqVO.getSupplierCode()); + } catch (ServiceException ex) { + messageMain += ex.getMessage() + ","; + } + //校验发货单号是否重复 + if (!createReqVO.getAsnNumber().isEmpty()) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("asn_number", createReqVO.getAsnNumber()); + queryWrapper.ne("status", RequestStatusEnum.CLOSED.getCode()); + List supplierdeliverRequestMainDOList = supplierdeliverRequestMainMapper.selectList(queryWrapper); + if (supplierdeliverRequestMainDOList != null && supplierdeliverRequestMainDOList.size() > 0) { + messageMain += "发货单" + createReqVO.getAsnNumber() + "已经存在 !" + ","; } + } + return messageMain; + } - if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - SupplierdeliverRequestMainDO existPurchaseclaimRequestMainDO = supplierdeliverRequestMainMapper.selectByNumberAndAsnNumber(createReqVO.getNumber(), createReqVO.getAsnNumber()); - if (existPurchaseclaimRequestMainDO == null && mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("SupplierDeliverRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); - createReqVO.setNumber(number); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("SupplierDeliverRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - SupplierdeliverRequestMainDO createObj = SupplierdeliverRequestMainConvert.INSTANCE.convert(createReqVO); - supplierdeliverRequestMainMapper.insert(createObj); - supplierdeliverRequestDetailMapper.insertBatch(subDOList); - } else if (existPurchaseclaimRequestMainDO != null && mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("SupplierDeliverRequest"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - String number = serialNumberApi.generateCode(RuleCodeEnum.SUPPLIER_DELIVER_REQUEST.getCode()); - createReqVO.setNumber(number); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("SupplierDeliverRequest"); - if (requestsettingDO != null) { - createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); - createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); - createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); - createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - SupplierdeliverRequestMainDO createObj = SupplierdeliverRequestMainConvert.INSTANCE.convert(createReqVO); - supplierdeliverRequestMainMapper.updateById(createObj); - supplierdeliverRequestDetailMapper.updateBatch(subDOList); - } + /** + * 校验子表导入,并赋值一些参数 + * + * @param supplierdeliverRequestDetailDO + * @param supplierdeliverRequestMainDO + * @return + */ + private String validatorSupplierdeliverRequestDetailImport(SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO, SupplierdeliverRequestMainDO supplierdeliverRequestMainDO) { + String messageDetail = ""; + // 校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(supplierdeliverRequestDetailDO.getItemCode()); + if (itembasicDO.getUom() != supplierdeliverRequestDetailDO.getUom()) { + messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + supplierdeliverRequestDetailDO.getUom() + ","; } - }); - //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + supplierdeliverRequestDetailDO.setProjectCode(itembasicDO.getCode()); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } - return errorList; + // 校验供应商物品 + try { + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(supplierdeliverRequestMainDO.getSupplierCode(), supplierdeliverRequestDetailDO.getItemCode()); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验要货计划 + try { + PurchasePlanDetailDO purchasePlanDetailDO = purchasePlanMainService.selectPurchasePlan(supplierdeliverRequestMainDO.getNumber(), supplierdeliverRequestMainDO.getSupplierCode(), + supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); + if ((purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())).compareTo(supplierdeliverRequestDetailDO.getQty()) == -1) { + messageDetail += "供应商发货数量" + supplierdeliverRequestDetailDO.getQty() + "大于订单行" + supplierdeliverRequestDetailDO.getPoLine() + "的未发货数量" + purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty()) + ","; + } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + return messageDetail; } }