diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java index a7a3a323..407c1e19 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/DictTypeConstants.java @@ -66,7 +66,7 @@ public interface DictTypeConstants { String INVENTORY_STATUS = "inventory_status";//库存状态 String REQUEST_STATUS = "request_status";//请求状态 String PLAN_STATUS = "plan_status";//计划状态 - + String PURCHASE_ORDER_TYPE = "purchase_order_type";//采购订单类型 String PURCHASE_RETURN_REASON = "purchase_return_reason";//原因 String TRANSFER_MODE = "transfer_mode";//运输方式 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 abd9d77f..acd8f72f 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 @@ -414,6 +414,8 @@ public interface ErrorCodeConstants { ErrorCode PURCHASE_PLAN_MAIN_NOT_EXISTS = new ErrorCode(1_000_069_000, "要货计划主不存在"); //要货计划子ErrorCode ErrorCode PURCHASE_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_000_069_001, "要货计划子不存在"); + //要货计划子ErrorCode + ErrorCode PURCHASE_PLAN_DETAIL_ACCEPTED = new ErrorCode(1_000_069_001, "未查找到接收状态下的要货计划"); //供应商发货申请主ErrorCode ErrorCode SUPPLIERDELIVER_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_070_000, "供应商发货申请主不存在"); ErrorCode SUPPLIERDELIVER_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_070_001, "供应商发货申请子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageExportReqVO.java index 0c75cadf..e416f564 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/packageMassage/vo/PackageExportReqVO.java @@ -1,13 +1,11 @@ package com.win.module.wms.controller.packageMassage.vo; -import lombok.*; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; -import com.win.framework.common.pojo.PageParam; import java.time.LocalDateTime; -import org.springframework.format.annotation.DateTimeFormat; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -83,7 +81,7 @@ public class PackageExportReqVO { @Schema(description = "供应商物品代码") private String supplierItemCode; - @Schema(description = "采购订单号") + @Schema(description = "Demandforecasting号") private String poNumber; @Schema(description = "采购订单行") 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 e4c46a0e..9bcddafc 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 @@ -3,6 +3,7 @@ package com.win.module.wms.controller.purchase; 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.ConvertUtil; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; @@ -11,6 +12,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.purchase.vo.*; import com.win.module.wms.convert.purchase.PurchaseMainConvert; import com.win.module.wms.dal.dataobject.purchase.PurchaseMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.purchase.PurchaseMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -55,9 +57,10 @@ public class PurchaseMainController { @Operation(summary = "更新采购订单主") @PreAuthorize("@ss.hasPermission('wms:purchase-main:update')") public CommonResult updatePurchaseMain(@Valid @RequestBody PurchaseMainUpdateReqVO updateReqVO) { - purchaseMainService.updatePurchaseMain(updateReqVO); - return success(true); + Long result = purchaseMainService.updatePurchaseMain(updateReqVO); + return success(result > 0); } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:purchase-main:query')") @@ -116,9 +119,11 @@ public class PurchaseMainController { // 导出 Excel List datas = PurchaseMainConvert.INSTANCE.convertList02(list); for(PurchaseMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + if(vo.getCreator()!=null){ + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + } } ExcelUtils.write(response, "采购订单主.xls", "数据", PurchaseMainExcelVO.class, datas); } @@ -129,8 +134,8 @@ public class PurchaseMainController { // 手动创建导出 demo List list = new ArrayList<>(); Map mapDropDown = new HashMap<>(); -// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON); -// mapDropDown.put(16, purchaseReturnReason); + String[] type = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_ORDER_TYPE); + mapDropDown.put(2, type); // String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); // mapDropDown.put(25, uom); // 输出 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java index 25ea1d07..3bd55655 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainBaseVO.java @@ -1,5 +1,6 @@ package com.win.module.wms.controller.purchase.vo; +import com.win.framework.excel.core.annotations.OnlyOne; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -24,7 +25,7 @@ public class PurchaseMainBaseVO { private String supplierCode; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "单据号不能为空") + @OnlyOne private String number; @Schema(description = "订单类型", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java index 3cf843d8..8cb57b06 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainCreateReqVO.java @@ -13,7 +13,6 @@ import java.util.List; @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchaseMainCreateReqVO extends PurchaseMainBaseVO { - @SubObject @Schema(description = "子表数据") private List subList; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainExcelVO.java index a52988f1..6bbe9b91 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainExcelVO.java @@ -1,17 +1,15 @@ package com.win.module.wms.controller.purchase.vo; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; -import java.util.*; -import java.time.LocalDateTime; -import java.time.LocalDateTime; -import java.math.BigDecimal; -import java.time.LocalDateTime; -import java.time.LocalDateTime; - import com.alibaba.excel.annotation.ExcelProperty; import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.convert.DictConvert; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; /** @@ -37,9 +35,11 @@ public class PurchaseMainExcelVO { private String status; @ExcelProperty("订单日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime orderDate; @ExcelProperty("截止日期") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime dueDate; @ExcelProperty("版本") @@ -68,12 +68,14 @@ public class PurchaseMainExcelVO { private String remark; @ExcelProperty("创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime createTime; @ExcelProperty("创建者用户名") private String creator; @ExcelProperty("最后更新时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java index 0a6f69d5..7c36686c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainImportVO.java @@ -2,6 +2,7 @@ package com.win.module.wms.controller.purchase.vo; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.win.framework.excel.core.annotations.DictFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -29,6 +30,7 @@ public class PurchaseMainImportVO { private String supplierCode; //日程/离散 @ExcelProperty("订单类型") + @DictFormat("purchase_order_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String type; @ExcelProperty("联系人姓名") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainUpdateReqVO.java index 62ecd0b3..bbc90573 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchase/vo/PurchaseMainUpdateReqVO.java @@ -1,12 +1,17 @@ package com.win.module.wms.controller.purchase.vo; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.util.List; @Schema(description = "管理后台 - 采购订单主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class PurchaseMainUpdateReqVO extends PurchaseMainBaseVO { - + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java index 37e46f4a..cac3d3b2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseDetailConvert.java @@ -35,6 +35,8 @@ public interface PurchaseDetailConvert { List convertList03(List list); + List convertList05(List list); + PurchaseDetailCreateReqVO convert1(PurchaseDetailDO bean); @Mappings({ @@ -50,10 +52,9 @@ public interface PurchaseDetailConvert { }) PurchaseDetailExcelVO convert( PurchaseMainDO mainDO, PurchaseDetailDO detailDO); - @Mappings({ @Mapping(source = "mainVo.number", target = "number"), }) - PurchaseMainImportErrorVO convert( PurchaseMainCreateReqVO mainVo, PurchaseDetailCreateReqVO detailVo); + PurchaseMainImportErrorVO convert(PurchaseMainCreateReqVO mainVo, PurchaseDetailDO detailDo); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseMainConvert.java index d6216897..f0beda3b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchase/PurchaseMainConvert.java @@ -1,16 +1,12 @@ package com.win.module.wms.convert.purchase; -import java.util.*; - import com.win.framework.common.pojo.PageResult; - -import com.win.module.wms.controller.purchase.vo.PurchaseMainCreateReqVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainExcelVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainRespVO; -import com.win.module.wms.controller.purchase.vo.PurchaseMainUpdateReqVO; +import com.win.module.wms.controller.purchase.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.purchase.PurchaseMainDO; + +import java.util.List; /** * 采购订单主 Convert @@ -28,6 +24,8 @@ public interface PurchaseMainConvert { PurchaseMainRespVO convert(PurchaseMainDO bean); + PurchaseMainDO convert( PurchaseMainBaseVO 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/service/purchase/PurchaseMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java index c11c065c..8aa75565 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainService.java @@ -39,7 +39,7 @@ public interface PurchaseMainService { * * @param updateReqVO 更新信息 */ - void updatePurchaseMain(@Valid PurchaseMainUpdateReqVO updateReqVO); + Long updatePurchaseMain(@Valid PurchaseMainUpdateReqVO updateReqVO); /** * 删除采购订单主 @@ -90,9 +90,9 @@ public interface PurchaseMainService { * @return 采购订单子列表 * @author chenfang */ - public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine); + PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine); - public List importPurchaseMaintList(List datas, Integer mode, boolean updatePart); + List importPurchaseMaintList(List datas, Integer mode, boolean updatePart); /** * 关闭采购订单申请主 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 90e72aaa..2149460a 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 @@ -5,13 +5,14 @@ import cn.hutool.core.exceptions.UtilException; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.win.framework.common.enums.CommonStatusEnum; 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.convert.purchase.PurchaseDetailConvert; @@ -25,6 +26,7 @@ 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.shift.ShiftDO; import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; @@ -36,6 +38,7 @@ 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.plan.PurchasePlanStatusEnum; +import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.currencyexchange.CurrencyexchangeService; import com.win.module.wms.service.documentSwitch.SwitchService; @@ -48,10 +51,8 @@ import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.stdcostprice.StdcostpriceService; import com.win.module.wms.service.supplieritem.SupplieritemService; import com.win.module.wms.util.JobUtils; -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; @@ -105,29 +106,38 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { private PurchasePlanMainService purchasePlanMainService; @Resource private PurchasePlanDetailMapper purchasePlanDetailMapper; + @Resource + private SerialNumberApi serialNumberApi; @Override public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) { - // 插入 - PurchaseMainDO purchaseMain = PurchaseMainConvert.INSTANCE.convert(createReqVO); - purchaseMainMapper.insert(purchaseMain); - // 返回 - return purchaseMain.getId(); + // 插入主表 + RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseOrder"); + PurchaseMainDO purchaseMainDO = validatorToCreate(createReqVO); + //调用自动执行方法 + if (RequestStatusEnum.HANDLING.getCode().equals(purchaseMainDO.getStatus())) { + } + trendsApi.createTrends(requestsettingDO.getId(), "PurchaseOrder", "增加了采购订单", TrendsTypeEnum.CREATE); + return purchaseMainDO.getId(); } @Override - public PageResult getPurchaseMainSenior(CustomConditions conditions) { - return purchaseMainMapper.selectSenior(conditions); + 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); + return purchaseMainDO.getId(); } @Override - public void updatePurchaseMain(PurchaseMainUpdateReqVO updateReqVO) { - // 校验存在 - validatePurchaseMainExists(updateReqVO.getId()); - // 更新 - PurchaseMainDO updateObj = PurchaseMainConvert.INSTANCE.convert(updateReqVO); - purchaseMainMapper.updateById(updateObj); + public PageResult getPurchaseMainSenior(CustomConditions conditions) { + return purchaseMainMapper.selectSenior(conditions); } @Override @@ -200,132 +210,186 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } 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() + ","; -// } - //子表的验证 - + BusinesstypeDO businesstypeDO = new BusinesstypeDO(); + PurchaseMainDO mainDo = PurchaseMainConvert.INSTANCE.convert(createReqVO); + String messageMain = validatorPurchaseMainImport(mainDo, businesstypeDO); List subList = createReqVO.getSubList(); List subDOList = PurchaseDetailConvert.INSTANCE.convertList03(subList); - for (PurchaseDetailDO purchaseDetailDO : subDOList) { - String messageDetail = ""; - // 校验物品基础信息 - try { - ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode()); - if (itembasicDO.getUom() != purchaseDetailDO.getUom()) { - messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ","; - } - purchaseDetailDO.setProjectCode(itembasicDO.getCode()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; + // 是否有错误数据 + boolean flag = true; + for (PurchaseDetailDO detailDO : subDOList) { + String messageDetail = validatorPurchaseDetailImport(detailDO, mainDo); + if (!messageMain.isEmpty() || messageDetail.isEmpty()) { + PurchaseMainImportErrorVO importErrorVO = PurchaseDetailConvert.INSTANCE.convert(createReqVO, detailDO); + importErrorVO.setImportStatus("失败"); + messageMain = messageMain + messageDetail; + importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); + errorList.add(importErrorVO); + flag = false; } - - // 校验物品标包信息 - try { - ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(purchaseDetailDO.getItemCode()); - purchaseDetailDO.setStdPackUnit(itempackagingDO.getStdPackUnit()); - purchaseDetailDO.setStdPackQty(itempackagingDO.getStdPackQty()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; + } + //写入数据 + if (flag) { + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_ORDER.getCode()); + mainDo.setNumber(number); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + mainDo.setOrderDate(LocalDateTime.MAX); + purchaseMainMapper.insert(mainDo); + for ( PurchaseDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDo.getId()); + detailDO.setNumber(number); } + purchaseDetailMapper.insertBatch(subDOList); + } + }); + return errorList; + } - // 校验供应商物品 - try { - SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(createReqVO.getSupplierCode(), purchaseDetailDO.getItemCode()); - purchaseDetailDO.setSupplierUom(supplieritemDO.getSupplierUom()); - purchaseDetailDO.setStdPackQty(supplieritemDO.getPackQty()); - purchaseDetailDO.setConvertRate(supplieritemDO.getConvertRate()); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } + //主表校验 校验供应商基础信息 + private void validatorShiftExist(String supplierCode) { + shiftService.selectShiftExist(supplierCode); + } - // 校验标准成本价格 - try { - StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(createReqVO.getSupplierCode(), purchaseDetailDO.getItemCode()); - purchaseDetailDO.setSinglePrice(stdcostpriceDO.getPrice()); - if ("CNY".equals(stdcostpriceDO.getCurrency())) { - purchaseDetailDO.setAmount(purchaseDetailDO.getSinglePrice().multiply(purchaseDetailDO.getOrderQty())); - } else { - CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY"); - purchaseDetailDO.setAmount(purchaseDetailDO.getSinglePrice().multiply(purchaseDetailDO.getOrderQty()).multiply(currencyexchangeDO.getRate())); - } - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } + //子表校验 校验供应商基础信息 + private void validatorItembasic(String itemCode) { + itembasicService.selectItembasic(itemCode); + } - PurchaseDetailCreateReqVO purchaseDetailCreateReqVO = PurchaseDetailConvert.INSTANCE.convert1(purchaseDetailDO); - PurchaseMainImportErrorVO importVO = PurchaseDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO); - //进行子表的错误统计 - //主表没有错误 写入库里 - if (!messageMain.equals("") || !messageDetail.equals("")) { - importVO.setImportStatus("失败"); - messageMain = messageMain + messageDetail; - importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); - errorList.add(importVO); - } else { - purchaseDetailDO.setNumber(createReqVO.getNumber()); - purchaseDetailDO.setMasterId(createReqVO.getId()); - purchaseDetailDO.setShippedQty(new BigDecimal(0)); - purchaseDetailDO.setReceivedQty(new BigDecimal(0)); - purchaseDetailDO.setReturnedQty(new BigDecimal(0)); - purchaseDetailDO.setPutawayQty(new BigDecimal(0)); - purchaseDetailDO.setErpLocationCode(null); - purchaseDetailDO.setStatus(CommonStatusEnum.ENABLE.getStatus()); - } - } + //子表校验 校验物品标包信息 + private void validatorItemPackagingExist(String itemCode) { + itempackagingService.selectItemPackagingExist(itemCode); + } - if (errorList.isEmpty()) { - // 判断如果不存在,在进行插入 - PurchaseMainDO existPurchaseclaimRequestMainDO = purchaseMainMapper.selectByNumber(createReqVO.getNumber()); - if (existPurchaseclaimRequestMainDO == null && mode != 3) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - createReqVO.setOrderDate(LocalDateTime.now()); - createReqVO.setVersion(null); - createReqVO.setTaxRate(null); - PurchaseMainDO createObj = PurchaseMainConvert.INSTANCE.convert(createReqVO); - purchaseMainMapper.insert(createObj); - purchaseDetailMapper.insertBatch(subDOList); - } else if (existPurchaseclaimRequestMainDO != null && mode != 2) { - createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder"); - if (businesstypeDO != null) { - createReqVO.setBusinessType(businesstypeDO.getCode()); - } - createReqVO.setOrderDate(LocalDateTime.now()); - createReqVO.setVersion(null); - createReqVO.setTaxRate(null); - PurchaseMainDO createObj = PurchaseMainConvert.INSTANCE.convert(createReqVO); - purchaseMainMapper.updateById(createObj); - purchaseDetailMapper.updateBatch(subDOList); - } + //子表校验 校验供应商物品 + private void validatorSupplierItemExist(String supplierCode,String itemCode) { + supplieritemService.selectSupplierItemExist(supplierCode,itemCode); + } + + //子表校验 校验标准成本价格 + private void validatorStdcostpriceExist(String supplierCode,String itemCode) { + StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(supplierCode,itemCode); + } + + + //校验主表公共方法(适用于新增/修改) + private PurchaseMainDO validatorMainMethod(PurchaseMainBaseVO baseVO) { + PurchaseMainDO mainDo =PurchaseMainConvert.INSTANCE.convert(baseVO); + this.validatorShiftExist(mainDo.getSupplierCode()); + mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseOrder"); + mainDo.setBusinessType(businesstypeDO.getCode()); + return mainDo; + } + + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(PurchaseDetailDO detailDo, PurchaseMainDO mainDo) { + validatorItembasic(detailDo.getItemCode()); + validatorItemPackagingExist(detailDo.getItemCode()); + validatorSupplierItemExist(mainDo.getSupplierCode(),detailDo.getItemCode()); + validatorStdcostpriceExist(mainDo.getSupplierCode(),detailDo.getItemCode()); + } + + //新增校验 + private PurchaseMainDO validatorToCreate(PurchaseMainCreateReqVO createReqVO) { + PurchaseMainDO purchaseMainDO = validatorMainMethod(createReqVO); + //子表校验 + List subList = createReqVO.getSubList(); + List subDOList =PurchaseDetailConvert.INSTANCE.convertList03(subList); + for (PurchaseDetailDO purchaseDetailDO : subDOList) { + validatorDetailMethod(purchaseDetailDO, purchaseMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_ORDER.getCode()); + purchaseMainDO.setNumber(number); + purchaseMainMapper.insert(purchaseMainDO); + purchaseDetailMapper.insertBatch(subDOList); + return purchaseMainDO; + } + + //修改校验 + private PurchaseMainDO validatorToUpdate(PurchaseMainUpdateReqVO updateReqVO) { + PurchaseMainDO purchaseMainDO = validatorMainMethod(updateReqVO); + //子表校验 + List< PurchaseDetailUpdateReqVO> subList = updateReqVO.getSubList(); + List< PurchaseDetailDO> subDOList = PurchaseDetailConvert.INSTANCE.convertList05(subList); + for ( PurchaseDetailDO purchaseDetailDO : subDOList) { + validatorDetailMethod(purchaseDetailDO, purchaseMainDO); + } + purchaseMainMapper.updateById(purchaseMainDO); + purchaseDetailMapper.updateBatch(subDOList); + return purchaseMainDO; + } + + /** + * 校验主表导入,并赋值一些参数 + * + * @param mainDo + * @return + */ + private String validatorPurchaseMainImport(PurchaseMainDO mainDo, BusinesstypeDO businesstypeDO) { + String messageMain = ""; + //主表的验证 + //校验供应商基础信息 + try { + ShiftDO shiftDO = shiftService.selectShiftExist(mainDo.getSupplierCode()); + } catch (ServiceException ex) { + messageMain += ex.getMessage() + ","; + } + return messageMain; + } + + /** + * 校验子表导入,并赋值一些参数 + * + * @param detailDo + * @return + */ + private String validatorPurchaseDetailImport(PurchaseDetailDO detailDo,PurchaseMainDO mainDo) { + String messageDetail = ""; + // 校验物品基础信息 + try { + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + if (itembasicDO.getUom() != detailDo.getUom()) { + messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","; } - }); - //错误不为空并非部分更新,手工回滚 - if (!errorList.isEmpty() && !updatePart) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + detailDo.setProjectCode(itembasicDO.getCode()); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } - return errorList; + // 校验物品标包信息 + try { + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); + detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); + detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验供应商物品 + try { + SupplieritemDO supplieritemDO = supplieritemService.selectSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + detailDo.setSupplierUom(supplieritemDO.getSupplierUom()); + detailDo.setStdPackQty(supplieritemDO.getPackQty()); + detailDo.setConvertRate(supplieritemDO.getConvertRate()); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + // 校验标准成本价格 + try { + StdcostpriceDO stdcostpriceDO = stdcostpriceService.selectStdcostpriceExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + detailDo.setSinglePrice(stdcostpriceDO.getPrice()); + if ("CNY".equals(stdcostpriceDO.getCurrency())) { + detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty())); + } else { + CurrencyexchangeDO currencyexchangeDO = currencyexchangeService.selectCurrencyexchangeExist(stdcostpriceDO.getCurrency(), "CNY"); + detailDo.setAmount(detailDo.getSinglePrice().multiply(detailDo.getOrderQty()).multiply(currencyexchangeDO.getRate())); + } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + return messageDetail; } + + @Override @Transactional public Integer closePurchaseMain(Long id) { @@ -486,6 +550,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { throw new ServiceException(PURCHASE_MAIN_NUMBERNO); } } + //更新采购订单表的已收货数量 @Override @Transactional @@ -514,7 +579,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { //如果是离散单 if ("DISCRETE".equals(purchaseMainDO.getType())) { - if (purchaseDetailDO.getReceivedQty() .compareTo(purchaseDetailDO.getOrderQty())==0 + if (purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty()) == 0 || purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty().multiply(new BigDecimal(1).add(purchaseDetailDO.getOverReceivingPercent()))) >= 0) { purchaseDetailDO.setAvailable("FALSE"); @@ -534,6 +599,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { throw new ServiceException(PURCHASE_MAIN_NUMBERNO); } } + //更新采购订单表的已发货数量 @Override @Transactional @@ -565,6 +631,7 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { throw new ServiceException(PURCHASE_MAIN_NUMBERNO); } } + //更新采购订单表的已发货数量 @Override @Transactional 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 8fcefbeb..8d17795f 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 @@ -7,6 +7,7 @@ import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; import javax.validation.Valid; +import java.math.BigDecimal; import java.util.Collection; import java.util.List; @@ -144,5 +145,17 @@ public interface PurchasePlanMainService { */ Integer rejPurchasePlanMain(Long id); + /** + * 更新要货计划的已发货数量 + * @param number + * @param poNumber + * @param poLine + * @param itemCode + * @param shippedQty + * @return + */ + 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 d5e29b57..ee68f75d 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 @@ -22,6 +22,7 @@ import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanDetailMapper; import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.plan.PlanStatusEnum; +import com.win.module.wms.enums.plan.PurchasePlanStatusEnum; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplieritem.SupplieritemService; @@ -33,13 +34,13 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; 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.PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 要货计划主 Service 实现类 @@ -65,7 +66,6 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { @Resource private TrendsApi trendsApi; - @Override public Long createPurchasePlanMain(PurchasePlanMainCreateReqVO createReqVO) { // 插入 @@ -105,8 +105,6 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { return purchasePlanMainDO; } - - @Override public PurchasePlanMainDO getPurchasePlanMain(Long id) { return purchasePlanMainMapper.selectById(id); @@ -292,35 +290,45 @@ public class PurchasePlanMainServiceImpl implements PurchasePlanMainService { } //更新要货计划的已发货数量 -// @Override -// @Transactional -// public void updatePlanPurchaseShippedQty(String number, String poNumber,String poLine, String itemCode, BigDecimal shippedQty) { -// QueryWrapper purchaseMainDOQueryWrapper = new QueryWrapper(); -// purchaseMainDOQueryWrapper.eq("number", poNumber); -// purchaseMainDOQueryWrapper.eq("status", OrderStatusEnum.PUBLISHED.getCode()); -// List purchaseMainDOList = purchaseMainMapper.selectList(purchaseMainDOQueryWrapper); -// if (purchaseMainDOList != null && purchaseMainDOList.size() > 0) { -// for (PurchaseMainDO purchaseMainDO : purchaseMainDOList) { -// QueryWrapper purchaseDetailDOQueryWrapper = new QueryWrapper(); -// purchaseDetailDOQueryWrapper.eq("number", poNumber); -// purchaseDetailDOQueryWrapper.eq("line_number", poNumber); -// purchaseDetailDOQueryWrapper.eq("item_code", poNumber); -// purchaseDetailDOQueryWrapper.eq("available", "TRUE"); -// List purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); -// for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { -// //如果是离散单 -// if ("DISCRETE".equals(purchaseMainDO.getType())) { -// purchaseDetailDO.setPlannedQty(purchaseDetailDO.getPlannedQty().add(planQty)); -// } else { -// purchaseDetailDO.setPlannedQty(planQty); -// } -// trendsApi.createTrends(purchaseDetailDO.getId(), "plan_purchase_detail", "修改了采购订单申请子", TrendsTypeEnum.UPDATE); -// purchaseDetailMapper.updateById(purchaseDetailDO); -// } -// } -// } else { -// throw new ServiceException(PURCHASE_MAIN_NUMBERNO); -// } -// } + @Override + @Transactional + public void updatePlanPurchaseShippedQty(String number, String poNumber, String poLine, String itemCode, BigDecimal shippedQty) { + QueryWrapper purchasePlanMainDOQueryWrapper = new QueryWrapper(); + purchasePlanMainDOQueryWrapper.eq("number", poNumber); + purchasePlanMainDOQueryWrapper.eq("status", PurchasePlanStatusEnum.ACCEPTED.getCode()); + List purchasePlanMainDOList = purchasePlanMainMapper.selectList(purchasePlanMainDOQueryWrapper); + if (purchasePlanMainDOList != null && purchasePlanMainDOList.size() > 0) { + for (PurchasePlanMainDO purchasePlanMainDO : purchasePlanMainDOList) { + int i = 0; + QueryWrapper purchasePlanDetailDOQueryWrapper = new QueryWrapper(); + purchasePlanDetailDOQueryWrapper.eq("number", number); + purchasePlanDetailDOQueryWrapper.eq("po_number", poNumber); + purchasePlanDetailDOQueryWrapper.eq("po_line", poLine); + purchasePlanDetailDOQueryWrapper.eq("item_code", itemCode); + purchasePlanDetailDOQueryWrapper.eq("available", "TRUE"); + List purchasePlanDetailDOList = purchasePlanDetailMapper.selectList(purchasePlanDetailDOQueryWrapper); + if (purchasePlanDetailDOList != null && purchasePlanDetailDOList.size() > 0) { + for (PurchasePlanDetailDO purchasePlanDetailDO : purchasePlanDetailDOList) { + purchasePlanDetailDO.setShippedQty(shippedQty); + if (purchasePlanDetailDO.getPlanQty().compareTo(purchasePlanDetailDO.getShippedQty()) == 0) { + purchasePlanDetailDO.setAvailable("FALSE"); + } + purchasePlanDetailMapper.updateById(purchasePlanDetailDO); + } + for (PurchasePlanDetailDO purchasePlanDetailDO : purchasePlanDetailDOList) { + if ("TRUE".equals(purchasePlanDetailDO.getAvailable())) { + i = 1; + } + } + } + if (i == 0) { + purchasePlanMainDO.setStatus(PurchasePlanStatusEnum.COMPLETED.getCode()); + } + purchasePlanMainMapper.updateById(purchasePlanMainDO); + } + } else { + throw new ServiceException(PURCHASE_PLAN_DETAIL_ACCEPTED); + } + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java index 77f11147..1cd43410 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchaseclaimRequest/PurchaseclaimRequestMainServiceImpl.java @@ -81,14 +81,15 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest private RequestsettingService requestsettingService; @Resource private TrendsApi trendsApi; + @Override @Transactional public Long createPurchaseclaimRequestMain(PurchaseclaimRequestMainCreateReqVO createReqVO) { // 插入主表 RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseclaimRequest"); - PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToCreate(createReqVO, requestsettingDO); //调用自动执行方法 - if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) { } trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); @@ -103,7 +104,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest validatorPurchaseclaimRequestMainExists(updateReqVO.getId()); // 更新主表 PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); - if(RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(purchaseclaimRequestMainDO.getStatus())) { } trendsApi.createTrends(requestsettingDO.getId(), "PurchaseclaimRequest", "增加了采购索赔申请", TrendsTypeEnum.CREATE); @@ -156,7 +157,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest } @Override - public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { + public List importPurchaseclaimRequestList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); } @@ -189,7 +190,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest for (PurchaseclaimRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDo.getId()); detailDO.setNumber(number); - detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6,BigDecimal.ROUND_HALF_UP)); + detailDO.setAmount(detailDO.getQty().multiply(detailDO.getSinglePrice()).setScale(6, BigDecimal.ROUND_HALF_UP)); } purchaseclaimRequestDetailMapper.insertBatch(subDOList); } @@ -197,43 +198,44 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest return errorList; } - private void validatorSupplier(String SupplierCode){ + private void validatorSupplier(String SupplierCode) { supplierService.selectSupplier(SupplierCode); } - private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode,String poLine){ + private PurchaseDetailDO validatorPurchaseDetailDo(String pnumber, String psupplierCode, String pitemCode, String poLine) { return purchaseMainService.selectPurchaseDetailDoExist(pnumber, psupplierCode, pitemCode, poLine); } - private ItembasicDO validatorItembasic(String itemCode){ + private ItembasicDO validatorItembasic(String itemCode) { return itembasicService.selectItembasic(itemCode); } - private void selectUomExist(String itemUom,String uom) { - if(!itemUom.equals(uom)){ - throw exception(UOM_EXCEPTION,"提示单位"+ uom + "错误,应该是" + itemUom); + private void selectUomExist(String itemUom, String uom) { + if (!itemUom.equals(uom)) { + throw exception(UOM_EXCEPTION, "提示单位" + uom + "错误,应该是" + itemUom); } } - private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine){ - return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode,pasnNumber,pitemCode,ppoNumber,ppoLine); + private SupplierdeliverRecordDetailDO validatorSupplierdeliverRecordMainDO(String psupplierCode, String pasnNumber, String pitemCode, String ppoNumber, String ppoLine) { + return supplierdeliverRecordMainService.selectSupplierdeliverRecordMainDO(psupplierCode, pasnNumber, pitemCode, ppoNumber, ppoLine); } private void ifPlanQtyBigThanOrderQty(String poLine, BigDecimal shippedQty, BigDecimal qty, BigDecimal orderQty) { - if(shippedQty.add(qty).compareTo(orderQty) > 0){ - throw exception(QTY_EXCEPTION,"订单行"+ poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty); + if (shippedQty.add(qty).compareTo(orderQty) > 0) { + throw exception(QTY_EXCEPTION, "订单行" + poLine + "的已发货数量" + shippedQty + "+计划数量" + qty + "大于订单数量" + orderQty); } } + //新增校验 private PurchaseclaimRequestMainDO validatorToCreate(PurchaseclaimRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { BusinesstypeDO businesstypeDO = new BusinesstypeDO(); - PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO,businesstypeDO,requestsettingDO); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO); //子表校验 List subList = createReqVO.getSubList(); List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList03(subList); for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) { - validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO); + validatorDetailMethod(purchaseclaimRequestDetailDO, purchaseclaimRequestMainDO); } String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); purchaseclaimRequestMainDO.setNumber(number); @@ -245,19 +247,20 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest //修改校验 private PurchaseclaimRequestMainDO validatorToUpdate(PurchaseclaimRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { BusinesstypeDO businesstypeDO = new BusinesstypeDO(); - PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + PurchaseclaimRequestMainDO purchaseclaimRequestMainDO = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO); //子表校验 List subList = updateReqVO.getSubList(); List subDOList = PurchaseclaimRequestDetailConvert.INSTANCE.convertList05(subList); for (PurchaseclaimRequestDetailDO purchaseclaimRequestDetailDO : subDOList) { - validatorDetailMethod(purchaseclaimRequestDetailDO,purchaseclaimRequestMainDO); + validatorDetailMethod(purchaseclaimRequestDetailDO, purchaseclaimRequestMainDO); } purchaseclaimRequestMainMapper.updateById(purchaseclaimRequestMainDO); purchaseclaimRequestDetailMapper.updateBatch(subDOList); return purchaseclaimRequestMainDO; } + //校验主表公共方法(适用于新增/修改) - private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ + private PurchaseclaimRequestMainDO validatorMainMethod(PurchaseclaimRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { PurchaseclaimRequestMainDO mainDo = PurchaseclaimRequestMainConvert.INSTANCE.convert(baseVO); this.validatorSupplier(mainDo.getSupplierCode()); mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); @@ -270,8 +273,9 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest mainDo.setBusinessType(businesstypeDO.getCode()); return mainDo; } + //校验子表公共方法(适用于新增/修改) - private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo,PurchaseclaimRequestMainDO mainDo) { + private void validatorDetailMethod(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) { validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), mainDo.getAsnNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine()); ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); this.selectUomExist(itembasicDO.getUom(), detailDo.getUom()); @@ -325,7 +329,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest private String validatorPurchaseclaimRequestDetailImport(PurchaseclaimRequestDetailDO detailDo, PurchaseclaimRequestMainDO mainDo) { StringBuilder message = new StringBuilder(); try { - if(!"".equals(mainDo.getAsnNumber())){ + if (!"".equals(mainDo.getAsnNumber())) { validatorSupplierdeliverRecordMainDO(mainDo.getSupplierCode(), detailDo.getNumber(), detailDo.getItemCode(), detailDo.getPoNumber(), detailDo.getPoLine()); } } catch (Exception ex) { @@ -345,7 +349,7 @@ public class PurchaseclaimRequestMainServiceImpl implements PurchaseclaimRequest PurchaseDetailDO purchaseDetailDO = validatorPurchaseDetailDo(detailDo.getNumber(), mainDo.getSupplierCode(), detailDo.getItemCode(), detailDo.getPoLine()); try { ifPlanQtyBigThanOrderQty(detailDo.getPoLine(), purchaseDetailDO.getShippedQty(), detailDo.getQty(), purchaseDetailDO.getOrderQty()); - }catch (Exception ex){ + } catch (Exception ex) { message.append(ex.getMessage()).append(","); } } catch (Exception ex) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java index 11c454cb..91466065 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java @@ -19,7 +19,6 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -229,7 +228,7 @@ public class StdcostpriceServiceImpl implements StdcostpriceService { @Override public StdcostpriceDO selectStdcostpriceExist(String supplierCode,String pitemCode){ QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("itemcode",pitemCode); + queryWrapper.eq("item_code",pitemCode); queryWrapper.eq("supplier_code",supplierCode); StdcostpriceDO stdcostpriceDO = stdcostpriceMapper.selectOne(queryWrapper); if(stdcostpriceDO != null && "TRUE".equals(stdcostpriceDO.getAvailable())){ diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java index 030c7584..abb5d825 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplieritem/SupplieritemServiceImpl.java @@ -19,7 +19,6 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -227,7 +226,7 @@ public class SupplieritemServiceImpl implements SupplieritemService { @Override public SupplieritemDO selectSupplierItemExist(String psupplierCode,String pitemCode){ QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("itemcode",pitemCode); + queryWrapper.eq("item_code",pitemCode); queryWrapper.eq("supplier_code",psupplierCode); SupplieritemDO supplieritemDO = supplieritemMapper.selectOne(queryWrapper); if(supplieritemDO != null && "TRUE".equals(supplieritemDO.getAvailable())){