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 d9809c2a..ca072e2e 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 @@ -232,6 +232,15 @@ public class PurchasereceiptRequestMainController { return success(count > 0); } + @PutMapping("/handle") + @Operation(summary = "执行采购收货申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchasereceipt-request-main:handle')") + public CommonResult handlePurchasereceiptRequestMain(@RequestParam("id") Long id) { + Integer count = purchasereceiptRequestMainService.handlePurchasereceiptRequestMain(id); + return success(count > 0); + } + @PutMapping("/abort") @Operation(summary = "审批拒绝采购收货申请主") @Parameter(name = "id", description = "编号", required = true) 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 a39b811f..ca6c8137 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 @@ -92,6 +92,19 @@ public class RequestStatusState { } } + /** + * 审批 + * @return + */ + public boolean handle() { + if(this.requestStatusEnum.getCode().equals(RequestStatusEnum.AGREED.getCode())) { + this.requestStatusEnum = RequestStatusEnum.HANDLING; + return Boolean.TRUE; + } else { + return Boolean.FALSE; + } + } + /** * 驳回 * @return 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 da97314d..0eec2330 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 @@ -119,6 +119,12 @@ public interface PurchasereceiptRequestMainService { */ Integer agreePurchasereceiptRequestMain(Long id); + /** + * 处理采购收货申请主 + * @param id + * @return + */ + Integer handlePurchasereceiptRequestMain(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 a73da957..cf806eaa 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 @@ -14,6 +14,8 @@ import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailCreateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordDetailCreateReqVO; +import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordMainCreateReqVO; import com.win.module.wms.controller.purchasereceiptRequest.vo.*; import com.win.module.wms.controller.rule.vo.RuleRespVO; import com.win.module.wms.convert.purchasereceiptJob.PurchasereceiptJobDetailConvert; @@ -37,12 +39,15 @@ import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.purchase.PurchaseMainService; +import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordDetailService; +import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService; 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.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; @@ -96,6 +101,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq private ShiftService shiftService; @Resource private PurchaseMainService purchaseMainService; + @Resource + private PurchasereceiptRecordMainService purchasereceiptRecordMainService; + @Resource + private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService; @Override @Transactional @@ -290,7 +299,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq if(count > 0) { throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); } - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.close(); if(!flag) { throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); @@ -304,7 +313,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq @Transactional public Integer submitPurchasereceiptRequestMain(Long id) { PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); if(!flag) { throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); @@ -323,7 +332,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq public Integer agreePurchasereceiptRequestMain(Long id) { // 校验存在 PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.agree(mainDO.getAutoExecute()); if(!flag) { throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); @@ -337,12 +346,29 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq return purchasereceiptRequestMainMapper.updateById(mainDO); } + @Override + @Transactional + public Integer handlePurchasereceiptRequestMain(Long id) { + // 校验存在 + PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateJob(mainDO, purchasereceiptRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, "purchasereceiptRequest", "执行了采购收货", TrendsTypeEnum.UPDATE); + return purchasereceiptRequestMainMapper.updateById(mainDO); + } + @Override @Transactional public Integer abortPurchasereceiptRequestMain(Long id) { // 校验存在 PurchasereceiptRequestMainDO mainDO = validatePurchasereceiptRequestMainExists(id); - RequestStatusState requestStatusState = new RequestStatusState(); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.reject(); if(!flag) { throw new ServiceException(PURCHASERECEIPT_REQUEST_CANNOT_CLOSE); @@ -386,6 +412,23 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq */ @Transactional private void generateJob(PurchasereceiptRequestMainDO mainDO, List detailDOList) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); + //跳过任务直接生成记录 + if("TRUE".equals(requestsettingDO.getDirectCreateRecord())) { + PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO); + purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode()); + purchasereceiptRecordMainCreateReqVO.setNumber(number); + purchasereceiptRecordMainService.createPurchasereceiptRecordMain(purchasereceiptRecordMainCreateReqVO); + for(PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO : detailDOList) { + PurchasereceiptRecordDetailCreateReqVO purchasereceiptRecordDetailCreateReqVO = new PurchasereceiptRecordDetailCreateReqVO(); + BeanUtils.copyProperties(purchasereceiptRequestDetailDO, purchasereceiptRecordDetailCreateReqVO); + purchasereceiptRecordDetailCreateReqVO.setNumber(number); + purchasereceiptRecordDetailService.createPurchasereceiptRecordDetail(purchasereceiptRecordDetailCreateReqVO); + } + return; + } RuleRespVO ruleRespVO = ruleService.deliveryGoods(null, mainDO.getSupplierCode()); JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration()); Map> listMap = new HashMap<>();