diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java index c5efe3c..8cdb974 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/tmpltp/TmplTpServiceImpl.java @@ -393,12 +393,7 @@ public class TmplTpServiceImpl extends ServiceImpl imple String nodeId = node.getId().toString(); String parentId = node.getPrnId() != null ? node.getPrnId().toString() : null; - // 如果是查询条件匹配的根节点 - if (rootIds.contains(nodeId)) { - roots.add(node); - } - - // 如果有父节点且父节点在当前节点集合中,建立父子关系 + // 建立父子关系 if (parentId != null && nodeMap.containsKey(parentId)) { TmplTpTreeVO parent = nodeMap.get(parentId); if (parent.getChildren() == null) { @@ -408,14 +403,26 @@ public class TmplTpServiceImpl extends ServiceImpl imple } } - // 3. 对所有节点的子节点进行排序 + // 3. 只将匹配的节点(rootIds)且没有父节点在结果集中的,作为根节点 + for (String rootId : rootIds) { + TmplTpTreeVO node = nodeMap.get(rootId); + if (node != null) { + String parentId = node.getPrnId() != null ? node.getPrnId().toString() : null; + // 如果父节点不在当前结果集中,则作为根节点 + if (parentId == null || !nodeMap.containsKey(parentId)) { + roots.add(node); + } + } + } + + // 4. 对所有节点的子节点进行排序 nodeMap.values().forEach(node -> { if (node.getChildren() != null && !node.getChildren().isEmpty()) { node.getChildren().sort(Comparator.comparing(TmplTpTreeVO::getSrt)); } }); - // 4. 对根节点排序 + // 5. 对根节点排序 roots.sort(Comparator.comparing(TmplTpTreeVO::getSrt)); return roots; diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java index 4ac0e3a..de4b96d 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/ErrorCodeConstants.java @@ -17,4 +17,5 @@ public interface ErrorCodeConstants { ErrorCode PURCHASE_ORDER_STATUS_ERROR = new ErrorCode(1_008_001_020, "非法的订单状态"); ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在"); ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在"); + ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批"); } diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/OrderStatusEnum.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/OrderStatusEnum.java index e79428d..8a995a6 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/OrderStatusEnum.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/enums/purchaseorder/OrderStatusEnum.java @@ -13,7 +13,8 @@ public enum OrderStatusEnum { // 执行中状态 IN_PROGRESS("IN_PROGRESS", "执行中"), // 关闭状态 - CLOSED("CLOSE", "关闭"); + CLOSED("CLOSE", "关闭"), + REJECTED("REJECT", "驳回"); /** 状态编码 */ private final String code; diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java index 9eed981..92f9058 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/dal/mysql/purchaseorder/PurchaseOrderMapper.java @@ -39,8 +39,8 @@ public interface PurchaseOrderMapper extends BaseMapperX { .eqIfPresent(PurchaseOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup()) .eqIfPresent(PurchaseOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber()) .eqIfPresent(PurchaseOrderDO::getExchangeRate, reqVO.getExchangeRate()) - .eqIfPresent(PurchaseOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber()) - .eqIfPresent(PurchaseOrderDO::getAgreementNumber, reqVO.getAgreementNumber()) + .likeIfPresent(PurchaseOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber()) + .likeIfPresent(PurchaseOrderDO::getAgreementNumber, reqVO.getAgreementNumber()) .eqIfPresent(PurchaseOrderDO::getRemark, reqVO.getRemark()) .eqIfPresent(PurchaseOrderDO::getAgentNumber, reqVO.getAgentNumber()) .likeIfPresent(PurchaseOrderDO::getAgentName, reqVO.getAgentName()) @@ -49,7 +49,7 @@ public interface PurchaseOrderMapper extends BaseMapperX { .eqIfPresent(PurchaseOrderDO::getMaterialNumber, reqVO.getMaterialNumber()) .likeIfPresent(PurchaseOrderDO::getMaterialName, reqVO.getMaterialName()) .likeIfPresent(PurchaseOrderDO::getContractName, reqVO.getContractName()) - .eqIfPresent(PurchaseOrderDO::getTenantNumber, reqVO.getTenantNumber()) + .likeIfPresent(PurchaseOrderDO::getTenantNumber, reqVO.getTenantNumber()) .betweenIfPresent(PurchaseOrderDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(PurchaseOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) .likeIfPresent(PurchaseOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName()) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java index bf0b692..9caae58 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PurchaseOrderServiceImpl.java @@ -94,11 +94,11 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) { // 插入 PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class); -// if (Objects.equals(createReqVO.getIsPush(), 0)) { + if (Objects.equals(createReqVO.getIsPush(), 0)) { purchaseOrder.setStatus(OrderStatusEnum.DRAFT.getCode()); //设置初始状态 -// } else { -// purchaseOrder.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); -// } + } else { + purchaseOrder.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); + } //生成订单号 String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp()); purchaseOrder.setSystemOrderNumber(orderNumber); @@ -193,6 +193,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { if (ObjectUtils.isEmpty(purchaseOrderDO)) { throw exception(ORDER_ID_NOT_EXISTS); } + if (purchaseOrderDO.getIsPush()==0) { + throw exception(ORDER_DONT_SUBMIT); + } AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData(); if (ObjectUtils.isEmpty(purchaseOrderDO.getProcessInstanceId())) { BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO(); @@ -762,8 +765,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService { return Optional.ofNullable(code) .map(c -> switch (c) { case -1, 3, 4 -> { - log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.DRAFT.getCode()); - yield OrderStatusEnum.DRAFT.getCode(); + log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.REJECTED.getCode()); + yield OrderStatusEnum.REJECTED.getCode(); } case 1 -> { log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.APPROVING.getCode()); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java index f7df661..616ea10 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderServiceImpl.java @@ -42,6 +42,7 @@ import org.springframework.validation.annotation.Validated; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Optional; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -93,6 +94,11 @@ public class SalesOrderServiceImpl implements SalesOrderService { SalesOrderDO salesOrderDO = BeanUtils.toBean(createReqVO, SalesOrderDO.class); //订单号 //生成订单号 + if (Objects.equals(createReqVO.getIsPush(), 0)) { + createReqVO.setStatus(OrderStatusEnum.DRAFT.getCode()); //设置初始状态 + } else { + createReqVO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); + } String orderNumber = generateOrderNumber(salesOrderDO.getMtrlTp()); salesOrderDO.setSystemOrderNumber(orderNumber); salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode()); @@ -259,11 +265,14 @@ public class SalesOrderServiceImpl implements SalesOrderService { if (ObjectUtils.isEmpty(salesOrderDO)) { throw exception(ORDER_ID_NOT_EXISTS); } + if (salesOrderDO.getIsPush()==0) { + throw exception(ORDER_DONT_SUBMIT); + } AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData(); if (ObjectUtils.isEmpty(salesOrderDO.getProcessInstanceId())) { BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO(); pidto.setProcessDefinitionKey(ProcessDefinitionKeyConstants.SALES_ORDER_REVIEW_PROCESS); - pidto.setBusinessKey(String.valueOf(id)); + pidto.setBusinessKey(id); String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData(); if (StringUtils.isNotBlank(data)) { // 获取流程当前审批的任务节点