ソースを参照

受理单号生成规则

xzc 1 週間 前
コミット
07b0d08361

+ 30 - 17
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/orderreport/OrderReportServiceImpl.java

@@ -48,6 +48,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import jakarta.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -156,6 +157,9 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private JdbcTemplate jdbcTemplate;
+
 
     private final String ACCEPT = "1";
     private final String TASK = "2";
@@ -232,8 +236,10 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
             orderReportDO.setAcceptOrderId(acceptOrderId);
             orderReportDO.setOrderType(ACCEPT);
             orderReportDO.setTemplateId(reportTemplateDO.getId());
-            String acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 200, "SL");
-            orderReportDO.setAcceptOrderNo(acceptOrderNo);
+            if (orderReportDO.getId() == null){
+                String acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 200, "SL");
+                orderReportDO.setAcceptOrderNo(acceptOrderNo);
+            }
 
             // 生成报表数据
             CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
@@ -258,7 +264,7 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
             //修改受理单编号
             AcceptOrderDO updateAcceptOrder = new AcceptOrderDO();
             updateAcceptOrder.setId(acceptOrderId);
-            updateAcceptOrder.setAcceptNo(acceptOrderNo);
+            updateAcceptOrder.setAcceptNo(orderReportDO.getAcceptOrderNo());
             acceptOrderMapper.updateById(updateAcceptOrder);
 
         }
@@ -282,8 +288,10 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
             orderReportDO.setAcceptOrderId(acceptOrderId);
             orderReportDO.setOrderType(ACCEPT);
             orderReportDO.setTemplateId(reportTemplateDO.getId());
-            String acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 200, "WT");
-            orderReportDO.setAcceptOrderNo(acceptOrderNo);
+            if (orderReportDO.getId() == null){
+                String acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 200, "WT");
+                orderReportDO.setAcceptOrderNo(acceptOrderNo);
+            }
 
             // 生成报表数据
             CreateInstantiateWithRuleVO ruleVO = new CreateInstantiateWithRuleVO();
@@ -314,17 +322,18 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
         orderReportDO.setAcceptOrderId(acceptOrderId);
         orderReportDO.setOrderType(ACCEPT);
 
-        String acceptOrderNo = "";
-        AcceptOrderDO acceptOrderDO = acceptOrderMapper.selectById(acceptOrderId);
-        if (acceptOrderDO != null){
-            if (acceptOrderDO.getCheckType() == 100){
-                acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 300, "SL");
-            }else if (acceptOrderDO.getCheckType() == 200){
-                acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 300, "WT");
+        if (orderReportDO.getId() == null) {
+            String acceptOrderNo = "";
+            AcceptOrderDO acceptOrderDO = acceptOrderMapper.selectById(acceptOrderId);
+            if (acceptOrderDO != null) {
+                if (acceptOrderDO.getCheckType() == 100) {
+                    acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 300, "SL");
+                } else if (acceptOrderDO.getCheckType() == 200) {
+                    acceptOrderNo = this.generateAcceptOrderNo(acceptOrderId, 300, "WT");
+                }
             }
+            orderReportDO.setAcceptOrderNo(acceptOrderNo);
         }
-        orderReportDO.setAcceptOrderNo(acceptOrderNo);
-
         /*List<DynamicTbDO> list = dynamicTbService.list(new LambdaQueryWrapperX<DynamicTbDO>()
                 .eq(DynamicTbDO::getPjType, 4)
                 .eq(DynamicTbDO::getReportType, 300)
@@ -377,7 +386,7 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
             //修改受理单编号
             AcceptOrderDO updateAcceptOrder = new AcceptOrderDO();
             updateAcceptOrder.setId(acceptOrderId);
-            updateAcceptOrder.setAcceptNo(acceptOrderNo);
+            updateAcceptOrder.setAcceptNo(orderReportDO.getAcceptOrderNo());
             acceptOrderMapper.updateById(updateAcceptOrder);
 
         }else {
@@ -701,8 +710,12 @@ public class OrderReportServiceImpl extends ServiceImpl<OrderReportMapper, Order
         }
 
         String deptId = acceptOrderDO.getDeptId();
-        DeptRespDTO dept = deptApi.getDept(deptId).getCheckedData();
-        String deptCode = dept.getCode();
+        // 使用原生 SQL 直接查询部门 code,避免因无用户上下文导致 Feign 调用/数据权限问题
+        String deptCode = jdbcTemplate.queryForObject(
+                "SELECT code FROM system_dept WHERE id = ?", String.class, deptId);
+        if (deptCode == null) {
+            throw new ServiceException(500, "部门不存在");
+        }
 
         // 获取项目代码(2位)
         String projectCode = "";