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 32262e51..7d416934 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,8 +414,9 @@ public interface ErrorCodeConstants { //采购收货任务子ErrorCode ErrorCode PURCHASERECEIPT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_073_001, "采购收货任务子不存在"); ErrorCode PURCHASERECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_073_002, "采购收货任务状态错误"); - ErrorCode PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_073_003, "采购收货不是新增状态,不能修改"); - ErrorCode PURCHASERECEIPT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_073_004, "采购收货存在采购收货任务单,不能删除"); + ErrorCode PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW = new ErrorCode(1_000_073_003, "采购收货不是新增状态"); + ErrorCode PURCHASERECEIPT_REQUEST_JOB_EXISTS = new ErrorCode(1_000_073_004, "采购收货存在采购收货任务单"); + ErrorCode PURCHASERECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_073_004, "采购收货状态不支持关闭"); //采购收货任务子ErrorCode ErrorCode PURCHASERECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_074_000, "采购收货记录主不存在"); ErrorCode PURCHASERECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_074_001, "采购收货记录子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java index 64ff7bb6..3297475e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java @@ -55,18 +55,19 @@ public class PurchasereceiptRequestMainController { @Operation(summary = "更新采购收货申请主") @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:update')") public CommonResult updatePurchasereceiptRequestMain(@Valid @RequestBody PurchasereceiptRequestMainUpdateReqVO updateReqVO) { - purchasereceiptRequestMainService.updatePurchasereceiptRequestMain(updateReqVO); - return success(true); + Integer result = purchasereceiptRequestMainService.updatePurchasereceiptRequestMain(updateReqVO); + return success(result > 0); } - @DeleteMapping("/delete") - @Operation(summary = "删除采购收货申请主") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:delete')") - public CommonResult deletePurchasereceiptRequestMain(@RequestParam("id") Long id) { - purchasereceiptRequestMainService.deletePurchasereceiptRequestMain(id); - return success(true); - } +// @DeleteMapping("/delete") +// @Operation(summary = "删除采购收货申请主") +// @Parameter(name = "id", description = "编号", required = true) +// @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:delete')") +// public CommonResult deletePurchasereceiptRequestMain(@RequestParam("id") Long id) { +// Integer result = purchasereceiptRequestMainService.deletePurchasereceiptRequestMain(id); +// return success(result > 0); +// } + @PostMapping("/senior") @Operation(summary = "高级搜索获得物品基本信息分页") @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:query')") @@ -80,6 +81,7 @@ public class PurchasereceiptRequestMainController { } return success(result); } + @GetMapping("/get") @Operation(summary = "获得采购收货申请主") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -162,4 +164,40 @@ public class PurchasereceiptRequestMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:close')") + public CommonResult closePurchasereceiptRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereceiptRequestMainService.closePurchasereceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:submit')") + public CommonResult submitPurchasereceiptRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereceiptRequestMainService.submitPurchasereceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:agree')") + public CommonResult agreePurchasereceiptRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereceiptRequestMainService.agreePurchasereceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/abort") + @Operation(summary = "审批拒绝采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:abort')") + public CommonResult abortPurchasereceiptRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereceiptRequestMainService.abortPurchasereceiptRequestMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java index 097019eb..1e665675 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java @@ -58,7 +58,7 @@ public class RequestStatusState { * @return */ public boolean submit(RequestsettingDO requestsettingDO) { - if(this.requestStatusEnum.getCode() == RequestStatusEnum.NEW.getCode()) { + if(this.requestStatusEnum.getCode().equals(RequestStatusEnum.NEW.getCode())) { this.requestStatusEnum = RequestStatusEnum.REVIEWING; if("TRUE".equals(requestsettingDO.getAutoAgree())) { this.requestStatusEnum = RequestStatusEnum.AGREED; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java index 253ec0f7..06212877 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainService.java @@ -86,6 +86,38 @@ public interface PurchasereceiptRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importPurchasereceiptRequestMainList(List datas, Integer mode, boolean updatePart); + List importPurchasereceiptRequestMainList(List datas, Integer mode, boolean updatePart); + + /** + * 关闭采购收货申请主 + * + * @param id 采购收货申请主ID + * @return 更新数量 + */ + Integer closePurchasereceiptRequestMain(Long id); + + /** + * 提交采购收货申请主 + * + * @param id 采购收货申请主ID + * @return 更新数量 + */ + Integer submitPurchasereceiptRequestMain(Long id); + + /** + * 审批通过采购收货申请主 + * + * @param id 采购收货申请主ID + * @return 更新数量 + */ + Integer agreePurchasereceiptRequestMain(Long id); + + /** + * 审批拒绝采购收货申请主 + * + * @param id 采购收货申请主ID + * @return 更新数量 + */ + Integer abortPurchasereceiptRequestMain(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java index 034686a7..b3d632fe 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java @@ -8,6 +8,8 @@ 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.common.util.validation.ValidationUtils; +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.purchasereceiptRequest.vo.*; @@ -27,7 +29,6 @@ import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.supplier.SupplierService; import com.win.module.wms.service.supplieritem.SupplieritemService; -import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.validation.annotation.Validated; @@ -63,6 +64,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq @Resource private SerialNumberApi serialNumberApi; @Resource + private TrendsApi trendsApi; + @Resource private Validator validator; @Resource private RequestsettingService requestsettingService; @@ -72,33 +75,35 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq @Override public Long createPurchasereceiptRequestMain(PurchasereceiptRequestMainCreateReqVO createReqVO) { // 插入 - PurchasereceiptRequestMainDO mainDo = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO); - this.validatePurchasereceiptRequestMainCreate(mainDo); + PurchasereceiptRequestMainDO mainDO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO); + this.validatePurchasereceiptRequestMainCreate(mainDO); List subDOList = PurchasereceiptRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); for (PurchasereceiptRequestDetailDO detailDO : subDOList) { this.validatePurchasereceiptRequestDetailCreate(detailDO); } String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); - mainDo.setNumber(number); + mainDO.setNumber(number); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); RequestStatusState requestStatusState = new RequestStatusState(); requestStatusState.newObject(requestsettingDO); - mainDo.setStatus(requestStatusState.getState().getCode()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setStatus(requestStatusState.getState().getCode()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); //调用自动执行方法 if(requestsettingDO.getAutoCommit().equals("TRUE") && requestsettingDO.getAutoAgree().equals("TRUE") && requestsettingDO.getAutoExecute().equals("TREU")) { } - purchasereceiptRequestMainMapper.insert(mainDo); + purchasereceiptRequestMainMapper.insert(mainDO); for (PurchasereceiptRequestDetailDO detailDO : subDOList) { - detailDO.setMasterId(mainDo.getId()); + detailDO.setMasterId(mainDO.getId()); detailDO.setNumber(number); } purchasereceiptRequestDetailMapper.insertBatch(subDOList); + //增加操作记录 + trendsApi.createTrends(requestsettingDO.getId(), "purchasereceiptRequest", "增加了采购收货", TrendsTypeEnum.CREATE); // 返回 - return mainDo.getId(); + return mainDO.getId(); } @Override @@ -108,6 +113,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq if(existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode())) { throw new ServiceException(PURCHASERECEIPT_REQUEST_STATUS_NOT_NEW); } + //增加操作记录 + trendsApi.createTrends(updateReqVO.getId(), "purchasereceiptRequest", existPurchasereceiptRequestMainDO.toString(), TrendsTypeEnum.UPDATE); // 更新 PurchasereceiptRequestMainDO updateObj = PurchasereceiptRequestMainConvert.INSTANCE.convert(updateReqVO); return purchasereceiptRequestMainMapper.updateById(updateObj); @@ -124,6 +131,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq if(count > 0) { throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); } + //增加操作记录 + trendsApi.createTrends(id, "purchasereceiptRequest", existPurchasereceiptRequestMainDO.toString(), TrendsTypeEnum.DELETE); // 删除子表数据 Map map = new HashMap<>(); map.put("master_id", id); @@ -187,9 +196,12 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq } //写入数据 if(flag) { - PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectBySupplierCode(mainDo.getSupplierCode()); - if(existPurchasereceiptRequestMainDO == null && mode != 3) {//新增 + //申请单目前只做新增 + //PurchasereceiptRequestMainDO existPurchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectBySupplierCode(mainDo.getSupplierCode()); + //if(existPurchasereceiptRequestMainDO == null && mode != 3) {//新增 purchasereceiptRequestMainMapper.insert(mainDo); + //增加操作记录 + trendsApi.createTrends(mainDo.getId(), "purchasereceiptRequest", "导入了采购收货", TrendsTypeEnum.CREATE); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode()); mainDo.setNumber(number); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); @@ -208,15 +220,22 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq } purchasereceiptRequestDetailMapper.insertBatch(subDOList); - } else if(existPurchasereceiptRequestMainDO != null && existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode()) && mode != 2) {//修改 - BeanUtils.copyProperties(existPurchasereceiptRequestMainDO, mainDo); - purchasereceiptRequestMainMapper.updateById(mainDo); - for (PurchasereceiptRequestDetailDO detailDO : subDOList) { - detailDO.setMasterId(mainDo.getId()); - detailDO.setNumber(mainDo.getNumber()); - purchasereceiptRequestDetailMapper.insertBatch(subDOList); - } - } + //} else if(existPurchasereceiptRequestMainDO != null && existPurchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.NEW.getCode()) && mode != 2) {//修改 + //BeanUtils.copyProperties(existPurchasereceiptRequestMainDO, mainDo); + //purchasereceiptRequestMainMapper.updateById(mainDo); + //增加操作记录 + //trendsApi.createTrends(mainDo.getId(), "purchasereceiptRequest", existPurchasereceiptRequestMainDO.toString(), TrendsTypeEnum.UPDATE); + // 删除子表数据 + //Map map = new HashMap<>(); + //map.put("master_id", mainDo.getId()); + //删除子表 + //purchasereceiptRequestDetailMapper.deleteByMap(map); + //for (PurchasereceiptRequestDetailDO detailDO : subDOList) { + // detailDO.setMasterId(mainDo.getId()); + // detailDO.setNumber(mainDo.getNumber()); + // purchasereceiptRequestDetailMapper.insertBatch(subDOList); + //} + //} } }); //错误不为空并非部分更新,手工回滚 @@ -226,6 +245,51 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq return errorList; } + @Override + public Integer closePurchasereceiptRequestMain(Long id) { + // 校验存在 + PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); + Long count = purchasereceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + return purchasereceiptRequestMainMapper.updateById(mainDO); + } + + @Override + public Integer submitPurchasereceiptRequestMain(Long id) { + // 校验存在 + PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); + Long count = purchasereceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); + RequestStatusState requestStatusState = new RequestStatusState(); + boolean flag = requestStatusState.submit(requestsettingDO); + if(!flag) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + return purchasereceiptRequestMainMapper.updateById(mainDO); + } + + @Override + public Integer agreePurchasereceiptRequestMain(Long id) { + return null; + } + + @Override + public Integer abortPurchasereceiptRequestMain(Long id) { + return null; + } + /** * 校验导入,并赋值一些参数,未完全实现 * @param mainDo