Jelajahi Sumber

修改系统,项目,合同计量单元,自动生成工程类型

qianxb 11 bulan lalu
induk
melakukan
16541d451e
14 mengubah file dengan 67 tambahan dan 46 penghapusan
  1. 4 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterTreeContractVO.java
  2. 15 45
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterTreeController.java
  3. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeContractMapper.java
  4. 12 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeContractMapper.xml
  5. 1 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeProjectMapper.java
  6. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeProjectMapper.xml
  7. 1 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeSystemMapper.java
  8. 6 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeSystemMapper.xml
  9. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/MeterTreeContractService.java
  10. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/MeterTreeProjectService.java
  11. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/MeterTreeSystemService.java
  12. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeContractServiceImpl.java
  13. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeProjectServiceImpl.java
  14. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeSystemServiceImpl.java

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

@@ -24,7 +24,10 @@ public class MeterTreeContractVO extends MeterTreeContract {
     @ApiModelProperty(value = "是否已经计量:0否1是")
     private Integer isMeter;
 
-    @ApiModelProperty(value = "是否已经计量:0否1是")
+    @ApiModelProperty(value = "节点类型名称")
     private String nodeTypeName;
 
+    @ApiModelProperty(value = "子节点数量")
+    private Integer childTotal;
+
 }

+ 15 - 45
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterTreeController.java

@@ -145,7 +145,7 @@ public class MeterTreeController extends BladeController {
     @ApiOperationSupport(order = 5)
     @ApiOperation(value = "系统树节点详情", notes = "传入id")
     public R<MeterTreeSystem> systemDetail(@RequestParam String id) {
-        return R.data(meterTreeSystemService.getById(id));
+        return R.data(meterTreeSystemService.systemDetail(id));
     }
 
     @PostMapping("/system/save")
@@ -357,7 +357,7 @@ public class MeterTreeController extends BladeController {
     @ApiOperationSupport(order = 14)
     @ApiOperation(value = "项目树节点详情", notes = "传入id")
     public R<MeterTreeProject> projectDetail(@RequestParam String id) {
-        return R.data(meterTreeProjectService.getById(id));
+        return R.data(meterTreeProjectService.projectDetail(id));
     }
 
     @PostMapping("/project/save")
@@ -702,50 +702,20 @@ public class MeterTreeController extends BladeController {
     @GetMapping("/contract/detail")
     @ApiOperationSupport(order = 25)
     @ApiOperation(value = "合同段树节点详情", notes = "传入id")
-    public R<MeterTreeContractVO> contractDetail(@RequestParam String id) {
-        MeterTreeContract basicInfo = jdbcTemplate.query("select * from s_meter_tree_contract where is_deleted = 0 and id = " + id, new BeanPropertyRowMapper<>(MeterTreeContract.class)).stream().findAny().orElse(null);
-        if (basicInfo != null) {
-            MeterTreeContractVO vo = new MeterTreeContractVO();
-            BeanUtil.copyProperties(basicInfo, vo);
-
-            if (ObjectUtil.isNotEmpty(basicInfo.getStakeType())) {
-                Dict dict = jdbcTemplate.query("SELECT dict_value FROM blade_dict WHERE is_deleted = 0 AND code = 'meter_stake_type' AND dict_key = " + basicInfo.getStakeType(), new BeanPropertyRowMapper<>(Dict.class)).stream().findAny().orElse(null);
-                if (dict != null) {
-                    vo.setStakeTypeName(dict.getDictValue());
-                }
-            }
-            if (basicInfo.getNodeType() != null){
-                Dict dict = jdbcTemplate.query("SELECT dict_value FROM blade_dict_biz WHERE is_deleted = 0 AND code = 'meter_unit_type' AND dict_key = " + basicInfo.getNodeType(), new BeanPropertyRowMapper<>(Dict.class)).stream().findAny().orElse(null);
-                if (dict != null) {
-                    vo.setNodeTypeName(dict.getDictValue());
-                }
-            }
-            //判断是否为最底层节点,如果为最底层节点则直接查询清单,不为最底层节点则汇总子节点总和
-            long count = meterTreeContractService.count(new LambdaQueryWrapper<MeterTreeContract>()
-                    .eq(MeterTreeContract::getContractId, basicInfo.getContractId())
-                    .eq(MeterTreeContract::getParentId, basicInfo.getId()));
-            if (count == 0) {
-                //设置是否被计量
-                int total = Math.toIntExact(middleMeterApplyService.count(new LambdaQueryWrapper<MiddleMeterApply>()
-                        .eq(MiddleMeterApply::getContractId, basicInfo.getContractId())
-                        .eq(MiddleMeterApply::getContractUnitId, id)));
-                if (total == 0){
-                    vo.setIsMeter(0);
-                }else {
-                    vo.setIsMeter(1);
-                }
-                //设置清单
-                List<ContractFromVO> contrFormAllByContrId = contractInventoryFormService.getNodeResolveForm(basicInfo.getContractId(), basicInfo.getId());
-                vo.setDecompositionList(contrFormAllByContrId);
-                //设置关联节点信息
-                List<MeterTreeLinkWbsTreeVO> wbsTreeVOS = meterTreeLinkWbsTreeService.getWbsListByMeterId(basicInfo.getContractId(), basicInfo.getId());
-                vo.setLinkNodeList(wbsTreeVOS);
-            } else {
-                meterTreeContractService.getAllChildNodeMoney(vo);
-            }
-            return R.data(vo);
+    public R<MeterTreeContractVO> contractDetail(@RequestParam Long id) {
+        MeterTreeContractVO vo =  meterTreeContractService.contractDetail(id);
+        //判断是否是最底层
+        if (vo.getChildTotal() == 0) {
+            //设置清单
+            List<ContractFromVO> contrFormAllByContrId = contractInventoryFormService.getNodeResolveForm(vo.getContractId(), vo.getId());
+            vo.setDecompositionList(contrFormAllByContrId);
+            //设置关联节点信息
+            List<MeterTreeLinkWbsTreeVO> wbsTreeVOS = meterTreeLinkWbsTreeService.getWbsListByMeterId(vo.getContractId(), vo.getId());
+            vo.setLinkNodeList(wbsTreeVOS);
+        } else {
+            meterTreeContractService.getAllChildNodeMoney(vo);
         }
-        return R.data(null);
+        return R.data(vo);
     }
 
     @GetMapping("/contract/lazy")

+ 2 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeContractMapper.java

@@ -57,4 +57,6 @@ public interface MeterTreeContractMapper extends BaseMapper<MeterTreeContract> {
     void batchUpdateMeter(@Param("list") List<MeterTreeContract> voList);
 
     void updateBatchForm(@Param("list") List<InventoryFormMeterVO> resultFormListUpdate2);
+
+    MeterTreeContractVO contractDetail(@Param("id") Long id);
 }

+ 12 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeContractMapper.xml

@@ -143,6 +143,18 @@
         from s_inventory_form_meter ifm
         where contract_id = #{contractId} and is_deleted = 0
     </select>
+    <select id="contractDetail" resultType="org.springblade.meter.vo.MeterTreeContractVO">
+        SELECT *, if(LENGTH(mtc1.ancestor) - LENGTH(REPLACE(mtc1.ancestor, ',', ''))>1,
+                     (select smts.node_name from s_meter_tree_contract smts
+                        WHERE smts.id = SUBSTRING_INDEX(SUBSTRING_INDEX(mtc1.ancestor, ',', 3),',', -1)),'')  as engineeringTypeName,
+               (SELECT dict_value FROM blade_dict WHERE is_deleted = 0 AND code = 'meter_stake_type' AND dict_key = mtc1.stake_type and is_deleted = 0) as stakeTypeName,
+               (SELECT dict_value FROM blade_dict_biz WHERE is_deleted = 0 AND code = 'meter_unit_type' AND dict_key = mtc1.node_type and is_deleted = 0) as nodeTypeName,
+               if((select count(1) from s_middle_meter_apply mma where mma.contract_id = mtc1.contract_id
+                                            and mma.contract_unit_id = mtc1.id and mma.is_deleted = 0 ) = 0,0,1) as isMeter,
+               (select count(1) from s_meter_tree_contract mtc2 where mtc2.contract_id = mtc1.contract_id
+                                                    and mtc2.parent_id = mtc1.id and mtc2.is_deleted = 0 ) as childTotal
+        from s_meter_tree_contract mtc1 WHERE  id = #{id}
+    </select>
 
 
 </mapper>

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

@@ -10,4 +10,5 @@ public interface MeterTreeProjectMapper extends BaseMapper<MeterTreeProject> {
     @Select("SELECT MAX(sort) FROM s_meter_tree_project WHERE parent_id = #{parentId} AND status = 1 AND is_deleted = 0")
     Integer selectMaxSort(@Param("parentId") Long parentId);
 
+    MeterTreeProject projectDetail(@Param("id") String id);
 }

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MeterTreeProjectMapper.xml

@@ -2,4 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.meter.mapper.MeterTreeProjectMapper">
 
+    <select id="projectDetail" resultType="org.springblade.meter.entity.MeterTreeProject">
+        SELECT *, if(LENGTH(mts.ancestor) - LENGTH(REPLACE(mts.ancestor, ',', ''))>1,
+                     (select smts.node_name from s_meter_tree_project smts WHERE smts.id = SUBSTRING_INDEX(SUBSTRING_INDEX(mts.ancestor, ',', 3),',', -1)),'')  as engineeringTypeName
+        from s_meter_tree_project mts WHERE  id = #{id}
+    </select>
 </mapper>

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

@@ -10,4 +10,5 @@ public interface MeterTreeSystemMapper extends BaseMapper<MeterTreeSystem> {
     @Select("SELECT MAX(sort) FROM s_meter_tree_system WHERE parent_id = #{parentId} AND status = 1 AND is_deleted = 0")
     Integer selectMaxSort(@Param("parentId") Long parentId);
 
+    MeterTreeSystem systemDetail(@Param("id") String id);
 }

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

@@ -2,4 +2,10 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.meter.mapper.MeterTreeSystemMapper">
 
+    <select id="systemDetail" resultType="org.springblade.meter.entity.MeterTreeSystem">
+        SELECT *, if(LENGTH(mts.ancestor) - LENGTH(REPLACE(mts.ancestor, ',', ''))>1,
+            (select smts.node_name from s_meter_tree_system smts WHERE smts.id = SUBSTRING_INDEX(SUBSTRING_INDEX(mts.ancestor, ',', 3),',', -1)),'')  as engineeringTypeName
+        from s_meter_tree_system mts WHERE  id = #{id}
+
+    </select>
 </mapper>

+ 2 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/MeterTreeContractService.java

@@ -50,4 +50,6 @@ public interface MeterTreeContractService extends BaseService<MeterTreeContract>
     String LinkMeterTreeAndWbsTree(LinkMeterTreeAndWbsTreeDTO dto);
 
     void deleteLinkWbsTree(Map<String, String> ids);
+
+    MeterTreeContractVO contractDetail(Long id);
 }

+ 2 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/MeterTreeProjectService.java

@@ -11,4 +11,6 @@ public interface MeterTreeProjectService extends BaseService<MeterTreeProject> {
     R<Object> projectTreeInitOrSync(Long meterTemplateId, Long projectId);
 
     void projectUpdate(MeterTreeProject obj);
+
+    MeterTreeProject projectDetail(String id);
 }

+ 2 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/MeterTreeSystemService.java

@@ -8,4 +8,6 @@ public interface MeterTreeSystemService extends BaseService<MeterTreeSystem> {
     Integer selectMaxSort(Long parentId);
 
     void systemUpdate(MeterTreeSystem obj);
+
+    MeterTreeSystem systemDetail(String id);
 }

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeContractServiceImpl.java

@@ -2355,6 +2355,11 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
         meterTreeLinkWbsTreeService.removeBatchByIds(Func.toLongList(map.get("ids")));
     }
 
+    @Override
+    public MeterTreeContractVO contractDetail(Long id) {
+        return baseMapper.contractDetail(id);
+    }
+
     /**
      *  通过清单信息和合同计量单元节点,施工图数量,返回组装好的中间表对象
      */

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeProjectServiceImpl.java

@@ -288,6 +288,11 @@ public class MeterTreeProjectServiceImpl extends BaseServiceImpl<MeterTreeProjec
         this.updateById(obj);
     }
 
+    @Override
+    public MeterTreeProject projectDetail(String id) {
+        return baseMapper.projectDetail(id);
+    }
+
     /**
      * 获取对应的父级的ancestor字段
      *

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeSystemServiceImpl.java

@@ -29,4 +29,9 @@ public class MeterTreeSystemServiceImpl extends BaseServiceImpl<MeterTreeSystemM
         this.updateById(obj);
     }
 
+    @Override
+    public MeterTreeSystem systemDetail(String id) {
+        return baseMapper.systemDetail(id);
+    }
+
 }