Ver código fonte

材料和开工 上报增加审计咨询意见单

qianxb 1 ano atrás
pai
commit
0f0990582d
16 arquivos alterados com 183 adições e 63 exclusões
  1. 3 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/Task.java
  2. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/MeterApprovalDTO.java
  3. 26 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/PeriodVO.java
  4. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/TaskDetailVO.java
  5. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreePrivateClientImpl.java
  6. 101 58
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java
  7. 4 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMeterPeriodMapper.java
  8. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMeterPeriodMapper.xml
  9. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MaterialMeterFormTaskMapper.java
  10. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MaterialMeterFormTaskMapper.xml
  11. 6 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.java
  12. 19 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.xml
  13. 1 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyTaskMapper.java
  14. 1 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyTaskMapper.xml
  15. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/StartPayMeterFormTaskMapper.java
  16. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/StartPayMeterFormTaskMapper.xml

+ 3 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/Task.java

@@ -175,4 +175,7 @@ public class Task extends BaseEntity {
     @ApiModelProperty("任务金额公共字段(计量为审核进度款)")
     private BigDecimal taskCommonMoney;
 
+    @ApiModelProperty("计量任务是否生成审计意见单 1是0否")
+    private Integer isBuildAudit;
+
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/MeterApprovalDTO.java

@@ -38,4 +38,7 @@ public class MeterApprovalDTO implements Serializable {
     @ApiModelProperty("预设流程id")
     private String fixedFlowId;
 
+    @ApiModelProperty("是否生成审计意见单 1是0否")
+    private Integer isBuildAudit;
+
 }

+ 26 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/PeriodVO.java

@@ -0,0 +1,26 @@
+package org.springblade.meter.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Param   当成计量期通用父接口使用
+ * @Author wangwl
+ * @Date 2024/6/24 15:03
+ **/
+@Data
+public class PeriodVO {
+    private Long id;
+
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    @ApiModelProperty(value = "合同段id")
+    private Long contractId;
+
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+    @ApiModelProperty(value = "类型1材料2开工,只有材料开工计量期表使用")
+    private Integer type;
+}

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/TaskDetailVO.java

@@ -25,7 +25,7 @@ public class TaskDetailVO implements Serializable {
     @ApiModelProperty(value = "本期审核进度款")
     private BigDecimal progressMoney;
 
-    @ApiModelProperty(value = "审计咨询意见类型:1显示html,2显示PDF,3提示当前暂无审计咨询意见")
+    @ApiModelProperty(value = "审计咨询意见类型:1显示html,2显示PDF,3提示当前暂无审计咨询意见,4只显示上报总金额")
     private Integer opinionType;
 
     @ApiModelProperty(value = "pdf地址")

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/WbsTreePrivateClientImpl.java

@@ -248,7 +248,7 @@ public class WbsTreePrivateClientImpl implements WbsTreePrivateClient {
             return R.fail("未获取到项目配置的咨询意见单节点");
         }
         if (list.size() != 1){
-            return R.fail("项目配置的咨询意见单节点存在多个,请重新配置");
+            return R.fail("项目配置的咨询意见单节点存在多个");
         }
         WbsTreePrivate node = privateMapper.getProjectOpinionNode(projectId,list.get(0).getId());
         if (node == null){

+ 101 - 58
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/TaskController.java

@@ -62,9 +62,7 @@ import org.springblade.manager.vo.ReportResult;
 import org.springblade.meter.config.MyJdbcTemplate;
 import org.springblade.meter.dto.*;
 import org.springblade.meter.entity.*;
-import org.springblade.meter.mapper.ContractMeterPeriodMapper;
-import org.springblade.meter.mapper.MiddleMeterApplyMapper;
-import org.springblade.meter.mapper.MiddleMeterApplyTaskMapper;
+import org.springblade.meter.mapper.*;
 import org.springblade.meter.service.IContractMeterPeriodService;
 import org.springblade.meter.service.IInterimPayCertificateService;
 import org.springblade.meter.service.IMaterialStartStatementService;
@@ -130,6 +128,10 @@ public class TaskController extends BladeController {
     private final AttachmentFormServiceTaskImpl attachmentFormServiceTask;
     private final MiddleMeterApplyMapper middleMeterApplyMapper;
 
+    private final MaterialMeterFormTaskMapper materialMeterFormTaskMapper;
+    private final StartPayMeterFormTaskMapper startPayMeterFormTaskMapper;
+    private final MeterPeriodMapper meterPeriodMapper;
+
     private final WbsTreePrivateClient wbsTreePrivateClient;
     private final ExcelTabClient excelTabClient;
     private final EVisaClient eVisaClient;
@@ -206,6 +208,13 @@ public class TaskController extends BladeController {
         if (ObjectUtil.isEmpty(approvalDTO.getTaskUserIds()) && ObjectUtil.isEmpty(approvalDTO.getFixedFlowId())) {
             throw new ServiceException("未获取到任务人信息,操作失败");
         }
+        //如果要升级审计意见单则校验是否存在
+        if (approvalDTO.getIsBuildAudit() != null && approvalDTO.getIsBuildAudit() == 1){
+            R<WbsTreePrivate> r = wbsTreePrivateClient.getProjectOpinionNode(approvalDTO.getProjectId());
+            if (r.getCode() != 200) {
+                return R.fail(400, "请联系管理员:"+r.getMsg());
+            }
+        }
 
         /*加锁*/
         String redisValue = bladeRedis.get("meter:report:contractId-" + approvalDTO.getContractId());
@@ -589,6 +598,7 @@ public class TaskController extends BladeController {
         task.setProjectId(approvalDTO.getProjectId().toString());
         task.setBatch(approvalDTO.getBatch());
         task.setMeterTaskType(meterTaskType); //计量任务类型 1=中间计量申请,2=材料计量单,3=开工预付款计量单、4=变更令
+        task.setIsBuildAudit(approvalDTO.getIsBuildAudit());
 
         task.setType(1);
         task.setApprovalType(5); //计量
@@ -1295,68 +1305,98 @@ public class TaskController extends BladeController {
                 }
                 vo.setTaskProcessInfo(taskProcessInfo);
             }
-            /*中间计量申请,返回值增加:上报总金额,本期进度款,审计意见*/
-            if (task.getMeterTaskType() != null && task.getMeterTaskType() == 1){
+            /*中间计量申请,开工预付款,材料,返回值增加:上报总金额,本期进度款,审计意见*/
+            if (task.getMeterTaskType() != null && Arrays.asList(1,2,3).contains(task.getMeterTaskType())){
+                BigDecimal reportAllMoney = null;
                 //实时查询上报总金额
-                BigDecimal reportAllMoney = middleMeterApplyTaskMapper.selectAllMoney(task.getId());
-                if (reportAllMoney == null){
+                if (task.getMeterTaskType() == 1) {
+                    //中间计量
+                    reportAllMoney = middleMeterApplyTaskMapper.selectAllMoney(task.getId());
+                }else if (task.getMeterTaskType() == 2){
+                    //材料计量
+                    reportAllMoney = materialMeterFormTaskMapper.selectAllMoney(task.getId());
+                }else if (task.getMeterTaskType() == 3){
+                    //开工计量
+                    reportAllMoney = startPayMeterFormTaskMapper.selectAllMoney(task.getId());
+                }
+                if (reportAllMoney == null || reportAllMoney.compareTo(BigDecimal.ZERO) == 0){
                     throw new ServiceException("上报金额不能为0");
                 }
-                ContractMeterPeriod period = contractMeterPeriodService.getById(task.getFormDataId());
-                if (period == null){
-                    throw new ServiceException("未获取到计量期信息");
-                }
                 vo.setReportAllMoney(reportAllMoney);
-                vo.setProgressMoney(task.getTaskCommonMoney() == null ? BigDecimal.ZERO : task.getTaskCommonMoney());
-                vo.setPdfUrl(task.getAttachmentPdfUrl());
-                String html = this.getExcelHtmlByBuss(Long.valueOf(task.getProjectId()));
-                if (html != null) {
-                    vo.setTableHtml(html);
-                    if (auditFlow != null){
-                        //查看当前用户是否在审计流程
-                        if (currentUserFlow != null && currentUserFlow.equals(auditFlow)) {
-                            //是意见人,设置意见为1,查询已经填写的值,如果没有则返回默认值
-                            vo.setOpinionType(1);
-                            R<WbsTreePrivate> r = wbsTreePrivateClient.getProjectOpinionNode(Long.valueOf(task.getProjectId()));
-                            if (r.getCode() != 200) {
-                                throw new ServiceException(r.getMsg());
-                            }
-                            WbsTreePrivate aPrivate = r.getData();
-                            //获取所有的key
-                            Map<String, String> map = FileUtils.getHtmlAllKey(aPrivate.getHtmlUrl());
+                if (task.getIsBuildAudit() == 1) {
+                    PeriodVO periodVO = null;
+                    if (task.getMeterTaskType() == 1) {
+                        //中间计量
+                        periodVO = contractMeterPeriodMapper.getById(task.getFormDataId());
+                    }else if (task.getMeterTaskType() == 2 || task.getMeterTaskType() == 3){
+                        //材料计量,开工计量
+                        periodVO = meterPeriodMapper.getById(task.getFormDataId());
+                    }
+
+                    if (periodVO == null) {
+                        throw new ServiceException("未获取到计量期信息");
+                    }
+                    vo.setProgressMoney(task.getTaskCommonMoney() == null ? BigDecimal.ZERO : task.getTaskCommonMoney());
+                    vo.setPdfUrl(task.getAttachmentPdfUrl());
+                    String html = this.getExcelHtmlByBuss(Long.valueOf(task.getProjectId()));
+                    if (html != null) {
+                        vo.setTableHtml(html);
+                        if (auditFlow != null) {
+                            //查看当前用户是否在审计流程
+                            if (currentUserFlow != null && currentUserFlow.equals(auditFlow)) {
+                                //是意见人,设置意见为1,查询已经填写的值,如果没有则返回默认值
+                                vo.setOpinionType(1);
+                                R<WbsTreePrivate> r = wbsTreePrivateClient.getProjectOpinionNode(Long.valueOf(task.getProjectId()));
+                                if (r.getCode() != 200) {
+                                    throw new ServiceException(r.getMsg());
+                                }
+                                WbsTreePrivate aPrivate = r.getData();
+                                //获取所有的key
+                                Map<String, String> map = FileUtils.getHtmlAllKey(aPrivate.getHtmlUrl());
 //                            Map<String, String> map = FileUtils.getHtmlAllKey("C:\\Users\\泓创研发01\\Desktop\\fsdownload\\1802649593746292736.html");
-                            if (map.size() == 0){
-                                throw new ServiceException("未获取到html中的keyName");
-                            }
-                            //实体数据
-                            Map<String, Object> dataInfo = getBussDataInfo(aPrivate, task.getId());
-                            //todo 目前直接把key写死在代码里面,后面有空再去动态获取key
-                            Map<String, Object> tableData = new HashMap<>();
-                            if (dataInfo.size() == 0) {
-                                tableData.put(map.get("项目名称:"), projectClient.getById(task.getProjectId()).getProjectName() + contractClient.getContractById(Long.valueOf(task.getContractId())).getContractName());
-                                tableData.put(map.get("要求付款额度"), reportAllMoney);
-                                tableData.put(map.get("意见发出日期:"), DateTimeFormatter.ofPattern("yyyy年MM月dd日").format(LocalDate.now()));
-                                tableData.put(map.get("造价机构现场咨询意见_本期审核进度款(元)"), reportAllMoney);
-                                //获取本期之前所有计量期金额
-                                BigDecimal beforeMoney = contractMeterPeriodMapper.getBeforeMoney(period);
-                                if (beforeMoney != null){
-                                    tableData.put(map.get("造价机构现场咨询意见_截止上期已累计审批进度款(元)"),beforeMoney);
+                                if (map.size() == 0) {
+                                    throw new ServiceException("未获取到html中的keyName");
+                                }
+                                //实体数据
+                                Map<String, Object> dataInfo = getBussDataInfo(aPrivate, task.getId());
+                                //todo 目前直接把key写死在代码里面,后面有空再去动态获取key
+                                Map<String, Object> tableData = new HashMap<>();
+                                if (dataInfo.size() == 0) {
+                                    tableData.put(map.get("项目名称:"), projectClient.getById(task.getProjectId()).getProjectName() + contractClient.getContractById(Long.valueOf(task.getContractId())).getContractName());
+                                    tableData.put(map.get("要求付款额度"), reportAllMoney);
+                                    tableData.put(map.get("意见发出日期:"), DateTimeFormatter.ofPattern("yyyy年MM月dd日").format(LocalDate.now()));
+                                    tableData.put(map.get("造价机构现场咨询意见_本期审核进度款(元)"), reportAllMoney);
+                                    BigDecimal beforeMoney = null;
+                                    //获取本期之前所有计量期金额
+                                    if (task.getMeterTaskType() == 1) {
+                                        //中间计量
+                                        beforeMoney = contractMeterPeriodMapper.getBeforeMoney(periodVO);
+                                    }else if (task.getMeterTaskType() == 2 || task.getMeterTaskType() == 3){
+                                        //材料计量,开工计量
+                                        beforeMoney = meterPeriodMapper.getBeforeMoney(periodVO);
+                                    }
+
+                                    if (beforeMoney != null) {
+                                        tableData.put(map.get("造价机构现场咨询意见_截止上期已累计审批进度款(元)"), beforeMoney);
+                                    }
+                                    tableData.put(map.get("造价机构现场咨询意见_截止上期已累计审批进度款(元)_截止本期已累计审核进度款(元)"), beforeMoney == null ? reportAllMoney : beforeMoney.add(reportAllMoney));
+                                } else {
+                                    tableData = dataInfo;
                                 }
-                                tableData.put(map.get("造价机构现场咨询意见_截止上期已累计审批进度款(元)_截止本期已累计审核进度款(元)"), beforeMoney == null ? reportAllMoney : beforeMoney.add(reportAllMoney));
+                                vo.setTableData(tableData);
                             } else {
-                                tableData = dataInfo;
+                                if (StringUtils.isNotBlank(task.getAttachmentPdfUrl())) {
+                                    vo.setOpinionType(2);
+                                } else {
+                                    //不是意见人,判断PDF是否生成,生成了类型为2,没有生成类型为3
+                                    vo.setOpinionType(3);
+                                }
                             }
-                            vo.setTableData(tableData);
                         } else {
-                            if (StringUtils.isNotBlank(task.getAttachmentPdfUrl())) {
-                                vo.setOpinionType(2);
-                            } else {
-                                //不是意见人,判断PDF是否生成,生成了类型为2,没有生成类型为3
-                                vo.setOpinionType(3);
-                            }
+                            vo.setOpinionType(3);
                         }
-                    }else {
-                        vo.setOpinionType(3);
+                    } else {
+                        vo.setOpinionType(4);
                     }
                 }else {
                     vo.setOpinionType(4);
@@ -2360,8 +2400,11 @@ public class TaskController extends BladeController {
             String sql_2 = "SELECT * FROM u_task_parallel WHERE process_instance_id = ? ORDER BY sort";
             List<TaskParallel> taskParallels = jdbcTemplate.query(sql_2, new Object[]{task.getProcessInstanceId()}, new BeanPropertyRowMapper<>(TaskParallel.class));
 
-            //如果当前是中间计量申请,并且是第一流程,则保存表单但数据,若第一流程所有人都已审批则生成PDF,并且设置task对应值
-            checkMiddleApp(dto,task,taskParallels);
+            //如果要生成审计意见单
+            //如果当前是中间计量,材料计量,开工计量,并且是第一流程,则保存表单数据,若第一流程所有人都已审批则生成PDF,并且设置task对应值
+            if (task.getIsBuildAudit() == 1) {
+                checkMiddleApp(dto, task, taskParallels);
+            }
 
             boolean isCurrentUserLastApprove = checkTheTaskPersonSort(taskParallels);
             /*单条业务数据状态*/
@@ -2450,7 +2493,7 @@ public class TaskController extends BladeController {
     private void checkMiddleApp(TaskApproveDTO dto, Task task, List<TaskParallel> taskParallels) {
         String html = this.getExcelHtmlByBuss(Long.valueOf(task.getProjectId()));
         if (html != null) {
-            if (task.getMeterTaskType() != null && task.getMeterTaskType() == 1) {
+            if (task.getMeterTaskType() != null &&  Arrays.asList(1,2,3).contains(task.getMeterTaskType())) {
                 //判断当前用户所属流程,只处理审计流程
                 Integer currentUserFlow = null;
                 Integer auditFlow = null;

+ 4 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMeterPeriodMapper.java

@@ -21,6 +21,7 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.meter.entity.ContractMeterPeriod;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springblade.meter.vo.ContractMeterPeriodVO;
+import org.springblade.meter.vo.PeriodVO;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -42,7 +43,9 @@ public interface ContractMeterPeriodMapper extends BaseMapper<ContractMeterPerio
 
     List<ContractMeterPeriodVO> allPeriod(@Param("contractId")Long contractId);
 
-    BigDecimal getBeforeMoney(@Param("period") ContractMeterPeriod period);
+    BigDecimal getBeforeMoney(@Param("period") PeriodVO period);
 
     String getContractNumber(@Param("contractId") Long contractId);
+
+    PeriodVO getById(@Param("id") String formDataId);
 }

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractMeterPeriodMapper.xml

@@ -55,6 +55,9 @@
     <select id="getContractNumber" resultType="java.lang.String">
         SELECT contract_number from m_contract_info WHERE id = #{contractId}
     </select>
+    <select id="getById" resultType="org.springblade.meter.vo.PeriodVO">
+        select id ,project_id,contract_id,sort from s_contract_meter_period where id = #{id}
+    </select>
 
 
 </mapper>

+ 4 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MaterialMeterFormTaskMapper.java

@@ -1,8 +1,12 @@
 package org.springblade.meter.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.meter.entity.MaterialMeterFormTask;
 
+import java.math.BigDecimal;
+
 public interface MaterialMeterFormTaskMapper extends BaseMapper<MaterialMeterFormTask> {
 
+    BigDecimal selectAllMoney(@Param("taskId") Long taskId);
 }

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MaterialMeterFormTaskMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.meter.mapper.MaterialMeterFormTaskMapper">
 
+    <select id="selectAllMoney" resultType="java.math.BigDecimal">
+        select sum(meter_money) from s_material_meter_form_task where is_deleted = 0 and task_id = #{taskId}
+    </select>
 </mapper>

+ 6 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.java

@@ -21,7 +21,9 @@ import org.apache.ibatis.annotations.Param;
 import org.springblade.meter.entity.MeterPeriod;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springblade.meter.vo.MeterPeriodVO;
+import org.springblade.meter.vo.PeriodVO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -42,4 +44,8 @@ public interface MeterPeriodMapper extends BaseMapper<MeterPeriod> {
     List<MeterPeriodVO> allPeriod(@Param("contractId") Long contractId,@Param("type") Integer type);
 
     List<MeterPeriod> approvalPeriod(@Param("contractId") Long contractId,@Param("type") Integer type,@Param("noApp") Integer notApp);
+
+    PeriodVO getById(@Param("id") String formDataId);
+
+    BigDecimal getBeforeMoney(@Param("period") PeriodVO period);
 }

+ 19 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterPeriodMapper.xml

@@ -85,6 +85,25 @@
             ORDER BY sort
         </if>
     </select>
+    <select id="getById" resultType="org.springblade.meter.vo.PeriodVO">
+        select id ,project_id,contract_id,sort,type from s_meter_period where id = #{id}
+    </select>
+    <select id="getBeforeMoney" resultType="java.math.BigDecimal">
+        <if test="period.type == 1">
+            select sum(meter_money) from s_material_meter_form
+            where is_deleted = 0  and meter_period_id in
+            (select id from s_meter_period
+            where  project_id = #{period.projectId} and contract_id = #{period.contractId}
+            and type = #{period.type} and approve_status = 2 and sort &lt; #{period.sort})
+        </if>
+        <if test="period.type == 2">
+            select sum(meter_money) from s_start_pay_meter_form
+            where is_deleted = 0  and meter_period_id in
+            (select id from s_meter_period
+            where  project_id = #{period.projectId} and contract_id = #{period.contractId}
+            and type = #{period.type} and approve_status = 2 and sort &lt; #{period.sort})
+        </if>
+    </select>
 
 
 </mapper>

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyTaskMapper.java

@@ -8,5 +8,5 @@ import java.math.BigDecimal;
 
 public interface MiddleMeterApplyTaskMapper extends BaseMapper<MiddleMeterApplyTask> {
 
-    BigDecimal selectAllMoney(@Param("id") Long id);
+    BigDecimal selectAllMoney(@Param("taskId") Long id);
 }

+ 1 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyTaskMapper.xml

@@ -3,6 +3,6 @@
 <mapper namespace="org.springblade.meter.mapper.MiddleMeterApplyTaskMapper">
 
     <select id="selectAllMoney" resultType="java.math.BigDecimal">
-        select sum(meter_money) from s_middle_meter_apply_task where is_deleted = 0 and task_id = #{id}
+        select sum(meter_money) from s_middle_meter_apply_task where is_deleted = 0 and task_id = #{taskId}
     </select>
 </mapper>

+ 4 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/StartPayMeterFormTaskMapper.java

@@ -1,8 +1,12 @@
 package org.springblade.meter.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.meter.entity.StartPayMeterFormTask;
 
+import java.math.BigDecimal;
+
 public interface StartPayMeterFormTaskMapper extends BaseMapper<StartPayMeterFormTask> {
 
+    BigDecimal selectAllMoney(@Param("taskId") Long taskId);
 }

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/StartPayMeterFormTaskMapper.xml

@@ -2,4 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.meter.mapper.StartPayMeterFormTaskMapper">
 
+    <select id="selectAllMoney" resultType="java.math.BigDecimal">
+        select sum(meter_money) from s_start_pay_meter_form_task where is_deleted = 0 and task_id = #{taskId}
+    </select>
 </mapper>