1、修改bug

This commit is contained in:
潘荣晟
2025-10-30 16:15:15 +08:00
parent d6fb9fcb22
commit 9eb7efd088
6 changed files with 40 additions and 19 deletions

View File

@@ -393,12 +393,7 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
String nodeId = node.getId().toString(); String nodeId = node.getId().toString();
String parentId = node.getPrnId() != null ? node.getPrnId().toString() : null; String parentId = node.getPrnId() != null ? node.getPrnId().toString() : null;
// 如果是查询条件匹配的根节点 // 建立父子关系
if (rootIds.contains(nodeId)) {
roots.add(node);
}
// 如果有父节点且父节点在当前节点集合中,建立父子关系
if (parentId != null && nodeMap.containsKey(parentId)) { if (parentId != null && nodeMap.containsKey(parentId)) {
TmplTpTreeVO parent = nodeMap.get(parentId); TmplTpTreeVO parent = nodeMap.get(parentId);
if (parent.getChildren() == null) { if (parent.getChildren() == null) {
@@ -408,14 +403,26 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> 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 -> { nodeMap.values().forEach(node -> {
if (node.getChildren() != null && !node.getChildren().isEmpty()) { if (node.getChildren() != null && !node.getChildren().isEmpty()) {
node.getChildren().sort(Comparator.comparing(TmplTpTreeVO::getSrt)); node.getChildren().sort(Comparator.comparing(TmplTpTreeVO::getSrt));
} }
}); });
// 4. 对根节点排序 // 5. 对根节点排序
roots.sort(Comparator.comparing(TmplTpTreeVO::getSrt)); roots.sort(Comparator.comparing(TmplTpTreeVO::getSrt));
return roots; return roots;

View File

@@ -17,4 +17,5 @@ public interface ErrorCodeConstants {
ErrorCode PURCHASE_ORDER_STATUS_ERROR = new ErrorCode(1_008_001_020, "非法的订单状态"); ErrorCode PURCHASE_ORDER_STATUS_ERROR = new ErrorCode(1_008_001_020, "非法的订单状态");
ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在"); ErrorCode Sales_ORDER_NOT_EXISTS = new ErrorCode(1_008_000_030, "销售订单不存在");
ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在"); ErrorCode Sales_ORD_DTL_NOT_EXISTS = new ErrorCode(1_008_001_040, "销售订单明细不存在");
ErrorCode ORDER_DONT_SUBMIT = new ErrorCode(1_008_000_050, "该订单不支持审批");
} }

View File

@@ -13,7 +13,8 @@ public enum OrderStatusEnum {
// 执行中状态 // 执行中状态
IN_PROGRESS("IN_PROGRESS", "执行中"), IN_PROGRESS("IN_PROGRESS", "执行中"),
// 关闭状态 // 关闭状态
CLOSED("CLOSE", "关闭"); CLOSED("CLOSE", "关闭"),
REJECTED("REJECT", "驳回");
/** 状态编码 */ /** 状态编码 */
private final String code; private final String code;

View File

@@ -39,8 +39,8 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.eqIfPresent(PurchaseOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup()) .eqIfPresent(PurchaseOrderDO::getPurchaseGroup, reqVO.getPurchaseGroup())
.eqIfPresent(PurchaseOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber()) .eqIfPresent(PurchaseOrderDO::getCurrencyNumber, reqVO.getCurrencyNumber())
.eqIfPresent(PurchaseOrderDO::getExchangeRate, reqVO.getExchangeRate()) .eqIfPresent(PurchaseOrderDO::getExchangeRate, reqVO.getExchangeRate())
.eqIfPresent(PurchaseOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber()) .likeIfPresent(PurchaseOrderDO::getPaperContractNumber, reqVO.getPaperContractNumber())
.eqIfPresent(PurchaseOrderDO::getAgreementNumber, reqVO.getAgreementNumber()) .likeIfPresent(PurchaseOrderDO::getAgreementNumber, reqVO.getAgreementNumber())
.eqIfPresent(PurchaseOrderDO::getRemark, reqVO.getRemark()) .eqIfPresent(PurchaseOrderDO::getRemark, reqVO.getRemark())
.eqIfPresent(PurchaseOrderDO::getAgentNumber, reqVO.getAgentNumber()) .eqIfPresent(PurchaseOrderDO::getAgentNumber, reqVO.getAgentNumber())
.likeIfPresent(PurchaseOrderDO::getAgentName, reqVO.getAgentName()) .likeIfPresent(PurchaseOrderDO::getAgentName, reqVO.getAgentName())
@@ -49,7 +49,7 @@ public interface PurchaseOrderMapper extends BaseMapperX<PurchaseOrderDO> {
.eqIfPresent(PurchaseOrderDO::getMaterialNumber, reqVO.getMaterialNumber()) .eqIfPresent(PurchaseOrderDO::getMaterialNumber, reqVO.getMaterialNumber())
.likeIfPresent(PurchaseOrderDO::getMaterialName, reqVO.getMaterialName()) .likeIfPresent(PurchaseOrderDO::getMaterialName, reqVO.getMaterialName())
.likeIfPresent(PurchaseOrderDO::getContractName, reqVO.getContractName()) .likeIfPresent(PurchaseOrderDO::getContractName, reqVO.getContractName())
.eqIfPresent(PurchaseOrderDO::getTenantNumber, reqVO.getTenantNumber()) .likeIfPresent(PurchaseOrderDO::getTenantNumber, reqVO.getTenantNumber())
.betweenIfPresent(PurchaseOrderDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(PurchaseOrderDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(PurchaseOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber()) .eqIfPresent(PurchaseOrderDO::getErpPurchaseCompanyNumber, reqVO.getErpPurchaseCompanyNumber())
.likeIfPresent(PurchaseOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName()) .likeIfPresent(PurchaseOrderDO::getErpPurchaseCompanyName, reqVO.getErpPurchaseCompanyName())

View File

@@ -94,11 +94,11 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) { public PurchaseOrderRespVO createPurchaseOrder(PurchaseOrderSaveReqVO createReqVO) {
// 插入 // 插入
PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class); PurchaseOrderDO purchaseOrder = BeanUtils.toBean(createReqVO, PurchaseOrderDO.class);
// if (Objects.equals(createReqVO.getIsPush(), 0)) { if (Objects.equals(createReqVO.getIsPush(), 0)) {
purchaseOrder.setStatus(OrderStatusEnum.DRAFT.getCode()); //设置初始状态 purchaseOrder.setStatus(OrderStatusEnum.DRAFT.getCode()); //设置初始状态
// } else { } else {
// purchaseOrder.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode()); purchaseOrder.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
// } }
//生成订单号 //生成订单号
String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp()); String orderNumber = generateOrderNumber(purchaseOrder.getMtrlTp());
purchaseOrder.setSystemOrderNumber(orderNumber); purchaseOrder.setSystemOrderNumber(orderNumber);
@@ -193,6 +193,9 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
if (ObjectUtils.isEmpty(purchaseOrderDO)) { if (ObjectUtils.isEmpty(purchaseOrderDO)) {
throw exception(ORDER_ID_NOT_EXISTS); throw exception(ORDER_ID_NOT_EXISTS);
} }
if (purchaseOrderDO.getIsPush()==0) {
throw exception(ORDER_DONT_SUBMIT);
}
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData(); AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
if (ObjectUtils.isEmpty(purchaseOrderDO.getProcessInstanceId())) { if (ObjectUtils.isEmpty(purchaseOrderDO.getProcessInstanceId())) {
BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO(); BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO();
@@ -762,8 +765,8 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
return Optional.ofNullable(code) return Optional.ofNullable(code)
.map(c -> switch (c) { .map(c -> switch (c) {
case -1, 3, 4 -> { case -1, 3, 4 -> {
log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.DRAFT.getCode()); log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.REJECTED.getCode());
yield OrderStatusEnum.DRAFT.getCode(); yield OrderStatusEnum.REJECTED.getCode();
} }
case 1 -> { case 1 -> {
log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.APPROVING.getCode()); log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.APPROVING.getCode());

View File

@@ -42,6 +42,7 @@ import org.springframework.validation.annotation.Validated;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; 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); 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()); String orderNumber = generateOrderNumber(salesOrderDO.getMtrlTp());
salesOrderDO.setSystemOrderNumber(orderNumber); salesOrderDO.setSystemOrderNumber(orderNumber);
salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode()); salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
@@ -259,11 +265,14 @@ public class SalesOrderServiceImpl implements SalesOrderService {
if (ObjectUtils.isEmpty(salesOrderDO)) { if (ObjectUtils.isEmpty(salesOrderDO)) {
throw exception(ORDER_ID_NOT_EXISTS); throw exception(ORDER_ID_NOT_EXISTS);
} }
if (salesOrderDO.getIsPush()==0) {
throw exception(ORDER_DONT_SUBMIT);
}
AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData(); AdminUserRespDTO adminUserRespDTO = adminUserApi.getUser(SecurityFrameworkUtils.getLoginUserId()).getData();
if (ObjectUtils.isEmpty(salesOrderDO.getProcessInstanceId())) { if (ObjectUtils.isEmpty(salesOrderDO.getProcessInstanceId())) {
BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO(); BpmProcessInstanceCreateReqDTO pidto = new BpmProcessInstanceCreateReqDTO();
pidto.setProcessDefinitionKey(ProcessDefinitionKeyConstants.SALES_ORDER_REVIEW_PROCESS); pidto.setProcessDefinitionKey(ProcessDefinitionKeyConstants.SALES_ORDER_REVIEW_PROCESS);
pidto.setBusinessKey(String.valueOf(id)); pidto.setBusinessKey(id);
String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData(); String data = bpmProcessInstanceApi.createProcessInstance(adminUserRespDTO.getId(), pidto).getData();
if (StringUtils.isNotBlank(data)) { if (StringUtils.isNotBlank(data)) {
// 获取流程当前审批的任务节点 // 获取流程当前审批的任务节点