소스 검색

Merge remote-tracking branch 'origin/dev' into dev

xuzhancheng 1 주 전
부모
커밋
66bbfcf665
10개의 변경된 파일91개의 추가작업 그리고 119개의 파일을 삭제
  1. 4 0
      build-uat/update.sql
  2. 2 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorderissuereport/vo/PipeTaskOrderIssueReportVO.java
  3. 4 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipetaskorderissuereport/PipeTaskOrderIssueReportDO.java
  4. 4 40
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QR0405_202402ReportOFData.java
  5. 5 39
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QR0413_0415ReportOFData.java
  6. 3 38
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QR0424_202404ReportOFData.java
  7. 63 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/util/AmountConvertUtil.java
  8. 4 0
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java
  9. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/thirdparty/financialsystem/FinancialSystemServiceImpl.java
  10. 1 1
      tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/pipetaskorderitem/PipeTaskOrderItemQueryMapper.xml

+ 4 - 0
build-uat/update.sql

@@ -1550,4 +1550,7 @@ ALTER TABLE "PRESSURE_TASK_ORDER" ADD COLUMN "IS_SYNC" VARCHAR(50);
 COMMENT ON COLUMN "PRESSURE_TASK_ORDER"."IS_SYNC" IS '是否是同步数据';
 
 INSERT INTO "INFRA_CONFIG" ("ID","CATEGORY","TYPE","NAME","CONFIG_KEY","VALUE","VISIBLE","REMARK","CREATOR","CREATE_TIME","UPDATER","UPDATE_TIME","DELETED" ) VALUES ('f4f25ba4fa087abf9c67d75ba4a6c0ab','定时任务开关','2','是否定时查询非税记录的缴费状态并更新','is_enable_update_no_tax_status','false',1,'true:开启 false:关闭','1','2026-06-02 18:40:46','1','2026-06-02 19:05:59',0);
+-- 已加
+
+ALTER TABLE "PRESSURE2_PIPE_TASK_ORDER_ISSUE_REPORT" ADD COLUMN "EQUIP_ID" VARCHAR(64);
+COMMENT ON COLUMN "PRESSURE2_PIPE_TASK_ORDER_ISSUE_REPORT"."EQUIP_ID" IS '设备ID';

+ 2 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/controller/admin/pipetaskorderissuereport/vo/PipeTaskOrderIssueReportVO.java

@@ -95,4 +95,6 @@ public class PipeTaskOrderIssueReportVO implements Serializable {
 
     @Schema(description = "发放原因", example = "1")
     private String reasonDist;
+
+    private String equipId;
 }

+ 4 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/dal/dataobject/pipetaskorderissuereport/PipeTaskOrderIssueReportDO.java

@@ -115,5 +115,9 @@ public class PipeTaskOrderIssueReportDO extends BaseDO {
      * 业务类型(0=出具报告,1=打印发证)
      */
     private Boolean businessType;
+    /**
+     * 设备ID
+     */
+    private String equipId;
 
 }

+ 4 - 40
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/boiler/QR0405_202402ReportOFData.java

@@ -16,6 +16,7 @@ import cn.start.tz.module.pressure2.dal.mysql.equipboiler.EquipBoilerMapper;
 import cn.start.tz.module.pressure2.service.boilertaskorder.BoilerTaskOrderService;
 import cn.start.tz.module.pressure2.service.boilertaskordersignfile.BoilerTaskOrderSignFileService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AmountConvertUtil;
 import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
 import cn.start.tz.module.system.api.dict.DictDataApi;
 import cn.start.tz.module.system.api.dict.dto.DictDataRespDTO;
@@ -184,50 +185,13 @@ public class QR0405_202402ReportOFData implements IDynamicOFData {
             result.put("recipientPhone", taskOrderDO.getRecipientPhone());
             result.put("recipientEmail", taskOrderDO.getRecipientEmail());
 
-            result.put("totalAmount", taskOrderDO.getShouldAmount().setScale(2, java.math.RoundingMode.HALF_UP));
-            // 将金额转换为中文数字并按位存储
             if (taskOrderDO.getShouldAmount() != null) {
-                convertAmountToChineseDigits(taskOrderDO.getShouldAmount(), result);
+                result.put("totalAmount", taskOrderDO.getShouldAmount().setScale(2, java.math.RoundingMode.HALF_UP));
+                // 将金额转换为中文大写金额
+                result.put("money1", AmountConvertUtil.convertAmountToChineseDigits(taskOrderDO.getShouldAmount()));
             }
         }
 
         return result;
     }
-
-    /**
-     * 将金额转换为中文数字并按位存储到result中
-     * money1: 百万位, money2: 十万位, money3: 万位, money4: 千位, money5: 百位, money6: 十位, money7: 个位
-     * @param amount 金额
-     * @param result 结果对象
-     */
-    private void convertAmountToChineseDigits(BigDecimal amount, JSONObject result) {
-        // 中文数字数组
-        String[] chineseDigits = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
-        
-        // 获取整数部分
-        long integerPart = amount.longValue();
-        
-        // 确保不超过百万(9999999)
-        if (integerPart > 9999999) {
-            integerPart = 9999999;
-        }
-        
-        // 提取每一位数字
-        int million = (int)(integerPart / 1000000) % 10;      // 百万位
-        int hundredThousand = (int)(integerPart / 100000) % 10; // 十万位
-        int tenThousand = (int)(integerPart / 10000) % 10;      // 万位
-        int thousand = (int)(integerPart / 1000) % 10;          // 千位
-        int hundred = (int)(integerPart / 100) % 10;            // 百位
-        int ten = (int)(integerPart / 10) % 10;                 // 十位
-        int one = (int)(integerPart % 10);                      // 个位
-        
-        // 存入result
-        result.put("money1", chineseDigits[million]);           // 百万位
-        result.put("money2", chineseDigits[hundredThousand]);   // 十万位
-        result.put("money3", chineseDigits[tenThousand]);       // 万位
-        result.put("money4", chineseDigits[thousand]);          // 千位
-        result.put("money5", chineseDigits[hundred]);           // 百位
-        result.put("money6", chineseDigits[ten]);               // 十位
-        result.put("money7", chineseDigits[one]);               // 个位
-    }
 }

+ 5 - 39
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QR0413_0415ReportOFData.java

@@ -13,6 +13,7 @@ import cn.start.tz.module.pressure2.dal.mysql.pipeacceptorderitem.PipeAcceptOrde
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
 import cn.start.tz.module.pressure2.service.boilertaskordersignfile.BoilerTaskOrderSignFileService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AmountConvertUtil;
 import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
 import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
 import cn.start.tz.module.pressure2.service.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserService;
@@ -164,50 +165,15 @@ public class QR0413_0415ReportOFData implements IDynamicOFData {
             result.put("recipientPhone", taskOrderDO.getRecipientPhone());
             result.put("recipientEmail", taskOrderDO.getRecipientEmail());
 
-            result.put("totalAmount", taskOrderDO.getShouldAmount().setScale(2, java.math.RoundingMode.HALF_UP));
-            // 将金额转换为中文数字并按位存储
             if (taskOrderDO.getShouldAmount() != null) {
-                convertAmountToChineseDigits(taskOrderDO.getShouldAmount(), result);
+                result.put("totalAmount", taskOrderDO.getShouldAmount().setScale(2, java.math.RoundingMode.HALF_UP));
+                // 将金额转换为中文大写金额
+                result.put("money1", AmountConvertUtil.convertAmountToChineseDigits(taskOrderDO.getShouldAmount()));
             }
+
         }
 
         return result;
     }
 
-    /**
-     * 将金额转换为中文数字并按位存储到result中
-     * money1: 百万位, money2: 十万位, money3: 万位, money4: 千位, money5: 百位, money6: 十位, money7: 个位
-     * @param amount 金额
-     * @param result 结果对象
-     */
-    private void convertAmountToChineseDigits(BigDecimal amount, JSONObject result) {
-        // 中文数字数组
-        String[] chineseDigits = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
-        
-        // 获取整数部分
-        long integerPart = amount.longValue();
-        
-        // 确保不超过百万(9999999)
-        if (integerPart > 9999999) {
-            integerPart = 9999999;
-        }
-        
-        // 提取每一位数字
-        int million = (int)(integerPart / 1000000) % 10;      // 百万位
-        int hundredThousand = (int)(integerPart / 100000) % 10; // 十万位
-        int tenThousand = (int)(integerPart / 10000) % 10;      // 万位
-        int thousand = (int)(integerPart / 1000) % 10;          // 千位
-        int hundred = (int)(integerPart / 100) % 10;            // 百位
-        int ten = (int)(integerPart / 10) % 10;                 // 十位
-        int one = (int)(integerPart % 10);                      // 个位
-        
-        // 存入result
-        result.put("money1", chineseDigits[million]);           // 百万位
-        result.put("money2", chineseDigits[hundredThousand]);   // 十万位
-        result.put("money3", chineseDigits[tenThousand]);       // 万位
-        result.put("money4", chineseDigits[thousand]);          // 千位
-        result.put("money5", chineseDigits[hundred]);           // 百位
-        result.put("money6", chineseDigits[ten]);               // 十位
-        result.put("money7", chineseDigits[one]);               // 个位
-    }
 }

+ 3 - 38
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/pipe/QR0424_202404ReportOFData.java

@@ -16,6 +16,7 @@ import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderIte
 import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitemreport.PipeTaskOrderItemReportMapper;
 import cn.start.tz.module.pressure2.service.boilertaskordersignfile.BoilerTaskOrderSignFileService;
 import cn.start.tz.module.pressure2.service.dynamicOFData.IDynamicOFData;
+import cn.start.tz.module.pressure2.service.dynamicOFData.util.AmountConvertUtil;
 import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
 import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
 import cn.start.tz.module.system.api.dict.DictDataApi;
@@ -152,50 +153,14 @@ public class QR0424_202404ReportOFData implements IDynamicOFData {
             result.put("recipientPhone", taskOrderDO.getRecipientPhone());
             result.put("recipientEmail", taskOrderDO.getRecipientEmail());
 
-            // 将金额转换为中文数字并按位存储
+            // 将金额转换为中文大写金额
             if (taskOrderDO.getActualAmount() != null) {
                 result.put("totalAmount", taskOrderDO.getActualAmount().setScale(2, java.math.RoundingMode.HALF_UP));
-                convertAmountToChineseDigits(taskOrderDO.getActualAmount(), result);
+                result.put("money1", AmountConvertUtil.convertAmountToChineseDigits(taskOrderDO.getActualAmount()));
             }
         }
 
         return result;
     }
 
-    /**
-     * 将金额转换为中文数字并按位存储到result中
-     * money1: 百万位, money2: 十万位, money3: 万位, money4: 千位, money5: 百位, money6: 十位, money7: 个位
-     * @param amount 金额
-     * @param result 结果对象
-     */
-    private void convertAmountToChineseDigits(BigDecimal amount, JSONObject result) {
-        // 中文数字数组
-        String[] chineseDigits = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
-        
-        // 获取整数部分
-        long integerPart = amount.longValue();
-        
-        // 确保不超过百万(9999999)
-        if (integerPart > 9999999) {
-            integerPart = 9999999;
-        }
-        
-        // 提取每一位数字
-        int million = (int)(integerPart / 1000000) % 10;      // 百万位
-        int hundredThousand = (int)(integerPart / 100000) % 10; // 十万位
-        int tenThousand = (int)(integerPart / 10000) % 10;      // 万位
-        int thousand = (int)(integerPart / 1000) % 10;          // 千位
-        int hundred = (int)(integerPart / 100) % 10;            // 百位
-        int ten = (int)(integerPart / 10) % 10;                 // 十位
-        int one = (int)(integerPart % 10);                      // 个位
-        
-        // 存入result
-        result.put("money1", chineseDigits[million]);           // 百万位
-        result.put("money2", chineseDigits[hundredThousand]);   // 十万位
-        result.put("money3", chineseDigits[tenThousand]);       // 万位
-        result.put("money4", chineseDigits[thousand]);          // 千位
-        result.put("money5", chineseDigits[hundred]);           // 百位
-        result.put("money6", chineseDigits[ten]);               // 十位
-        result.put("money7", chineseDigits[one]);               // 个位
-    }
 }

+ 63 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/dynamicOFData/util/AmountConvertUtil.java

@@ -0,0 +1,63 @@
+package cn.start.tz.module.pressure2.service.dynamicOFData.util;
+
+import com.alibaba.fastjson2.JSONObject;
+
+import java.math.BigDecimal;
+
+/**
+ * 金额转换工具类
+ */
+public class AmountConvertUtil {
+
+    /**
+     * 将金额转换为中文大写金额字符串
+     * 例如:121 -> 壹佰贰拾壹
+     * 
+     * @param amount 金额
+     * @return 中文大写金额字符串
+     */
+    public static String convertAmountToChineseDigits(BigDecimal amount) {
+        // 中文数字数组
+        String[] chineseDigits = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
+        // 单位数组
+        String[] units = {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿"};
+        
+        // 获取整数部分
+        long integerPart = amount.longValue();
+        
+        // 特殊情况:金额为0
+        if (integerPart == 0) {
+            return "零";
+        }
+        
+        // 确保不超过亿(999999999)
+        if (integerPart > 999999999) {
+            integerPart = 999999999;
+        }
+        
+        StringBuilder result = new StringBuilder();
+        boolean zeroFlag = false; // 标记是否需要补零
+        
+        // 从高位到低位处理
+        int length = String.valueOf(integerPart).length();
+        for (int i = length - 1; i >= 0; i--) {
+            int digit = (int)(integerPart / Math.pow(10, i)) % 10;
+            int unitIndex = i;
+            
+            if (digit == 0) {
+                zeroFlag = true;
+            } else {
+                if (zeroFlag) {
+                    result.append("零");
+                    zeroFlag = false;
+                }
+                result.append(chineseDigits[digit]);
+                if (unitIndex < units.length) {
+                    result.append(units[unitIndex]);
+                }
+            }
+        }
+        
+        return result.toString();
+    }
+}

+ 4 - 0
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/pipetaskorderissuereport/PipeTaskOrderIssueReportServiceImpl.java

@@ -1504,6 +1504,10 @@ public class PipeTaskOrderIssueReportServiceImpl extends ServiceImpl<PipeTaskOrd
     @Transactional
     public void taskOrderBatchIssueReport(@Valid List<PipeTaskOrderIssueReportVO> taskOrderIssueReportVO) {
         taskOrderIssueReportVO.forEach(taskOrderIssueReport -> {
+            if (CollUtil.isEmpty(taskOrderIssueReport.getItemList())) {
+                throw exception(new ErrorCode(1001,"设备id不能为空"));
+            }
+            taskOrderIssueReport.setEquipId(taskOrderIssueReport.getItemList().get(0));
             taskOrderIssueReport.setIsIssueReportFlag(1);
             this.taskOrderIssueReport(taskOrderIssueReport);
         });

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/java/cn/start/tz/module/pressure2/service/thirdparty/financialsystem/FinancialSystemServiceImpl.java

@@ -593,7 +593,7 @@ public class FinancialSystemServiceImpl implements FinancialSystemService {
             String year = fullYear.substring(2, 4);
             String seriNumber = redisService.generateSerialNum("FINANCIAL_NOTICE_NO", 7);
             // 6+2+3+8
-            // 机电0+7自增; 容器1+7位自增;锅炉管道暂定2+7位自增,待确认
+            // 机电0+7自增; 容器1+7位自增;锅炉管道2+7位自增
             noticeNo = districtNO + year + unitNumber + "2" + seriNumber;
             String jym = getBillNumVerifyCode(noticeNo);//校验码
             noticeNo = noticeNo + jym;

+ 1 - 1
tz-module-pressure2/tz-module-pressure2-biz/src/main/resources/mapper/pipetaskorderitem/PipeTaskOrderItemQueryMapper.xml

@@ -62,7 +62,7 @@
         FROM pressure2_pipe_task_order_item t1
         LEFT JOIN pressure2_pipe_task_order_item_report t3 ON t3.ORDER_ID = t1.ORDER_ID AND t3.deleted = 0
         LEFT JOIN pressure_task_order t2 ON t2.id = t1.order_id AND t2.deleted = 0
-        LEFT JOIN pressure2_pipe_task_order_issue_report t4 ON t4.order_item_report_id = t3.id AND t4.deleted = 0 and t4.business_type = 1
+        LEFT JOIN pressure2_pipe_task_order_issue_report t4 ON t4.order_item_report_id = t3.id AND t4.equip_id = t1.equip_id AND t4.deleted = 0 and t4.business_type = 1
         LEFT JOIN PRESSURE2_PIPE_TASK_ORDER_ITEM_PRINT t5 ON t5.item_id = t1.id AND t5.deleted = 0
         LEFT JOIN PRESSURE2_EQUIP_PIPE t6 on t6.ID = t1.equip_id
         <where>