From 6931912ff09f327306d5f9d6c36cc3acf6e8fdf0 Mon Sep 17 00:00:00 2001 From: yejiaxing <591141169@qq.com> Date: Tue, 14 Nov 2023 17:27:39 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E6=8C=89=E9=92=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 2 + .../purchase/PurchaseMainController.java | 11 ++++- .../purchasePlan/PurchasePlanMainMapper.java | 8 ++++ .../PurchasereceiptJobMainMapper.java | 6 +-- .../service/purchase/PurchaseMainService.java | 18 +++++++-- .../purchase/PurchaseMainServiceImpl.java | 40 ++++++++++++++++--- 6 files changed, 72 insertions(+), 13 deletions(-) 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 2318bed3..fe38456b 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 @@ -373,6 +373,8 @@ public interface ErrorCodeConstants { //采购订单主ErrorCode ErrorCode PURCHASE_MAIN_NOT_EXISTS = new ErrorCode(1_000_063_000, "采购订单主不存在"); ErrorCode PURCHASE_CLOSED_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单已关闭"); + ErrorCode PURCHASE_MAIN_CANNOT_CLOSE = new ErrorCode(1_000_073_004, "采购订单状态不支持关闭"); + ErrorCode PURCHASE_MAIN_EXISTS = new ErrorCode(1_000_073_004, "采购订单存在要货计划任务单"); //采购订单子ErrorCode ErrorCode PURCHASE_DETAIL_NOT_EXISTS = new ErrorCode(1_000_063_001, "采购订单子不存在"); ErrorCode PURCHASE_DETAIL_ARGUMENT_NOT_EXISTS = new ErrorCode(1_000_063_002, "采购订单明细:订单号ppo_number、订单行pline_number、零件号pitem_code无效"); 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 cead9329..36f40d4e 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 @@ -144,7 +144,7 @@ public class PurchaseMainController { @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") }) - @PreAuthorize("@ss.hasPermission('wms:purchaseclaim-request-main:import')") + @PreAuthorize("@ss.hasPermission('wms:purchase-main:import')") public CommonResult> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, @@ -162,4 +162,13 @@ public class PurchaseMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭采购订单申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:purchase-main:close')") + public CommonResult closePurchaseMain(@RequestParam("id") Long id) { + Integer count = purchaseMainService.closePurchaseMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java index 62559d5b..20537c22 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasePlan/PurchasePlanMainMapper.java @@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainExportReqVO; import com.win.module.wms.controller.purchasePlan.vo.PurchasePlanMainPageReqVO; import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -47,6 +48,13 @@ public interface PurchasePlanMainMapper extends BaseMapperX default PageResult selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); } + + default Long selectBySonNumber(String number) { + return selectCount(new LambdaQueryWrapperX() + .eq(PurchasePlanMainDO::getNumber, number) + .ne(PurchasePlanMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } + default List selectList(PurchasePlanMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() .eqIfPresent(PurchasePlanMainDO::getSupplierCode, reqVO.getSupplierCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java index d8f4038d..46de9edd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/purchasereceiptJob/PurchasereceiptJobMainMapper.java @@ -74,10 +74,10 @@ public interface PurchasereceiptJobMainMapper extends BaseMapperX() - .eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumbere) - .eq(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + .eq(PurchasereceiptJobMainDO::getRequestNumber, requestNumber) + .ne(PurchasereceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); } default List selectList(PurchasereceiptJobMainExportReqVO reqVO) { 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 88b63eec..1b7f634a 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 @@ -78,17 +78,27 @@ public interface PurchaseMainService { * @return 采购订单主列表 */ List getPurchaseMainList(PurchaseMainExportReqVO exportReqVO); + /** * Order----VPur * 校验采购订单明细 - * @author chenfang - * @param pnumber 单据号 + * + * @param pnumber 单据号 * @param psupplierCode 供应商代码 - * @param pitemCode 物品代码 + * @param pitemCode 物品代码 * @return 采购订单子列表 + * @author chenfang */ - public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode,String poLine); + public PurchaseDetailDO selectPurchaseDetailDoExist(String pnumber, String psupplierCode, String pitemCode, String poLine); public List importPurchaseMaintList(List datas, Integer mode, boolean updatePart); + /** + * 关闭采购订单申请主 + * + * @param id 采采购订单申请主ID + * @return 更新数量 + */ + Integer closePurchaseMain(Long id); + } 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 adcf5f48..d0f26d49 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 @@ -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.dict.core.util.DictFrameworkUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.wms.controller.purchase.vo.*; import com.win.module.wms.convert.purchase.PurchaseDetailConvert; import com.win.module.wms.convert.purchase.PurchaseMainConvert; @@ -22,7 +24,9 @@ import com.win.module.wms.dal.dataobject.stdcostprice.StdcostpriceDO; import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; import com.win.module.wms.dal.mysql.purchase.PurchaseDetailMapper; import com.win.module.wms.dal.mysql.purchase.PurchaseMainMapper; +import com.win.module.wms.dal.mysql.purchasePlan.PurchasePlanMainMapper; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.currencyexchange.CurrencyexchangeService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; @@ -34,6 +38,7 @@ 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; @@ -45,8 +50,7 @@ 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.PURCHASE_MAIN_NOT_EXISTS; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 采购订单主 Service 实现类 @@ -79,6 +83,11 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { private PurchaseDetailMapper purchaseDetailMapper; @Resource private RequestsettingService requestsettingService; + @Resource + private TrendsApi trendsApi; + @Resource + private PurchasePlanMainMapper purchasePlanMainMapper; + @Override public Long createPurchaseMain(PurchaseMainCreateReqVO createReqVO) { @@ -111,10 +120,12 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { purchaseMainMapper.deleteById(id); } - private void validatePurchaseMainExists(Long id) { - if (purchaseMainMapper.selectById(id) == null) { - throw exception(PURCHASE_MAIN_NOT_EXISTS); + private PurchaseMainDO validatePurchaseMainExists(Long id) { + PurchaseMainDO purchaseMainDO = purchaseMainMapper.selectById(id); + if (purchaseMainDO == null) { + throw exception(PURCHASERECEIPT_REQUEST_MAIN_NOT_EXISTS); } + return purchaseMainDO; } @Override @@ -296,4 +307,23 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { } return errorList; } + + @Override + @Transactional + public Integer closePurchaseMain(Long id) { + // 校验存在存在下级单据 + PurchaseMainDO mainDO = validatePurchaseMainExists(id); + Long count = purchasePlanMainMapper.selectBySonNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(PURCHASERECEIPT_REQUEST_JOB_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(PURCHASE_MAIN_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "plan_purchase_main", "关闭了采购订单申请", TrendsTypeEnum.UPDATE); + return purchaseMainMapper.updateById(mainDO); + } }