Forráskód Böngészése

计量单编号重复

qianxb 1 éve
szülő
commit
12d7179cf4

+ 4 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterTreeLinkWbsTreeVO.java

@@ -31,4 +31,8 @@ public class MeterTreeLinkWbsTreeVO {
 
     @ApiModelProperty(value = "wbs树pkeyId,字符串拼接")
     private String wbsTreeIds;
+
+    @ApiModelProperty(value = "wbs树pKeyId")
+    private String wbsTreeId2;
+
 }

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

@@ -66,14 +66,13 @@
         select contract_name from m_contract_info where id = #{contractId}
     </select>
     <select id="getAllLinkByContractId" resultType="org.springblade.meter.vo.MeterTreeLinkWbsTreeVO">
-        select meter_tree_id,GROUP_CONCAT(wbs_tree_id) as wbsTreeIds
+        select meter_tree_id,wbs_tree_id,wbs_tree_id as wbsTreeId2
         from s_meter_tree_link_wbs_tree smtlwt1
         where contract_id = #{contractId}  and is_deleted = 0
         and meter_tree_id in
         <foreach item="id" collection="ids" open="(" close=")" separator=",">
             #{id}
         </foreach>
-        group by meter_tree_id
     </select>
     <select id="getAllWbsNode" resultType="org.springblade.meter.vo.NodePartVO">
         select p_key_id,id,parent_id,node_type,

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

@@ -19,6 +19,7 @@ package org.springblade.meter.mapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.business.entity.InformationQuery;
+import org.springblade.business.entity.Task;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.meter.dto.WbsNodeDTO;
@@ -108,5 +109,5 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
 
     List<InventoryFormMeterVO> getAllFormMeter(@Param("contractId")Long contractId,@Param("ids") List<Long> meterIds);
 
-
+    Task getTaskInfo(@Param("contractId")Long contractId,@Param("id") Long id);
 }

+ 4 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml

@@ -335,7 +335,7 @@
                (select GROUP_CONCAT(ifm.contract_form_id) from s_inventory_form_meter ifm
                     where ifm.contract_id = #{contractId} and smtc.id = ifm.contract_meter_id and ifm.is_deleted = 0) as linkForm,
                (select GROUP_CONCAT(mma.id) from s_middle_meter_apply mma
-                    where mma.contract_id = #{contractId} and smtc.id = mma.contract_unit_id and mma.is_deleted = 0) as linkMiddle
+                    where mma.contract_id = #{contractId} and mma.contract_period_id = #{periodId} and smtc.id = mma.contract_unit_id and mma.is_deleted = 0) as linkMiddle
         from s_meter_tree_contract smtc where contract_id = #{contractId} and is_auto_meter = 1 and is_deleted = 0
     </select>
     <select id="getAllLinkWbsInfo" resultType="org.springblade.meter.vo.MeterLinkWbsInfoVO">
@@ -371,7 +371,9 @@
             #{id}
         </foreach>
     </select>
-
+    <select id="getTaskInfo" resultType="org.springblade.business.entity.Task">
+        select * from u_task WHERE contract_id = #{contractId} and  form_data_id = id and is_deleted = 0
+    </select>
 
 
 </mapper>

+ 7 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MeterTreeContractServiceImpl.java

@@ -1917,7 +1917,13 @@ public class MeterTreeContractServiceImpl extends BaseServiceImpl<MeterTreeContr
         Map<Long, String> map = new HashMap<>();
         if (linkList.size() > 0){
             isLinkInfo = false;
-            map = linkList.stream().collect(Collectors.toMap(l -> l.getMeterTreeId(), l -> l.getWbsTreeIds()));
+            map = linkList.stream().collect(Collectors.groupingBy(
+                    MeterTreeLinkWbsTreeVO::getMeterTreeId,
+                    Collectors.mapping(
+                            MeterTreeLinkWbsTreeVO::getWbsTreeId2,
+                            Collectors.joining(",")
+                    )
+            ));
         }
         //循环
         for (Long meterId : meterIds) {

+ 38 - 3
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -265,6 +265,19 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
              throw new ServiceException("请添加需要计量的清单");
          }
         this.save(apply);
+         if (StringUtils.isNotBlank(apply.getCalculateFormula())) {
+             //如果存在计算式,每次同步修改所有期的当前节点计算式
+             this.update(new LambdaUpdateWrapper<MiddleMeterApply>()
+                    .eq(MiddleMeterApply::getContractId,dto.getContractId())
+                    .eq(MiddleMeterApply::getContractUnitId,dto.getContractUnitId())
+                    .set(MiddleMeterApply::getCalculateFormula,dto.getCalculateFormula()));
+             //再同步修改合同计量单元当前节点的计算式
+             meterTreeContractService.update(new LambdaUpdateWrapper<MeterTreeContract>()
+                    .eq(MeterTreeContract::getId,dto.getContractUnitId())
+                    .set(MeterTreeContract::getCalculateFormula,dto.getCalculateFormula()));
+
+         }
+
 
     }
 
@@ -438,6 +451,18 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
             inventoryFormApplyService.saveBatch(formApplies);
         }
         this.updateById(apply);
+        if (StringUtils.isNotBlank(apply.getCalculateFormula())) {
+            //如果存在计算式,每次同步修改所有期的当前节点计算式
+            this.update(new LambdaUpdateWrapper<MiddleMeterApply>()
+                    .eq(MiddleMeterApply::getContractId,dto.getContractId())
+                    .eq(MiddleMeterApply::getContractUnitId,dto.getContractUnitId())
+                    .set(MiddleMeterApply::getCalculateFormula,dto.getCalculateFormula()));
+            //再同步修改合同计量单元当前节点的计算式
+            meterTreeContractService.update(new LambdaUpdateWrapper<MeterTreeContract>()
+                    .eq(MeterTreeContract::getId,dto.getContractUnitId())
+                    .set(MeterTreeContract::getCalculateFormula,dto.getCalculateFormula()));
+
+        }
 
     }
 
@@ -885,6 +910,16 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         if (apply == null){
             throw new ServiceException("未找到中间计量申请信息");
         }
+        //查询查询当前计量期信息
+        ContractMeterPeriod period = contractMeterPeriodService.getById(apply.getContractPeriodId());
+        if (period == null){
+            throw new ServiceException("未找到当前计量期信息");
+        }
+        //获取任务信息
+        Task task = baseMapper.getTaskInfo(apply.getContractId(),period.getId());
+        if (task == null){
+            throw new ServiceException("未找到任务信息");
+        }
         //根据文件id,查询出queryInfo数据
         if (StringUtils.isBlank(fileIds)){
             throw new ServiceException("请选择关联资料");
@@ -1073,8 +1108,8 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
                 }
                 //末尾拼接所有WBS节点,所有计量节点
                 str.append(vo2.getLinkWbs()+",");
-                str2.append(vo2.getId());
-                str3.append(vo2.getLinkForm());
+                str2.append(vo2.getId()+",");
+                str3.append(vo2.getLinkForm()+",");
 
             }
             if (voList.size() == 0 || StringUtils.isBlank(str.toString()) || StringUtils.isBlank(str2.toString()) || StringUtils.isBlank(str3.toString())){
@@ -1111,7 +1146,7 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
             //查询出当前计量期所有未删除的计量单,如果不为空,则过滤出最大后缀
             List<MiddleMeterApply> applyList = this.list(new LambdaQueryWrapper<MiddleMeterApply>()
                     .eq(MiddleMeterApply::getContractId, contractId)
-                    .eq(MiddleMeterApply::getContractPeriodId, period));
+                    .eq(MiddleMeterApply::getContractPeriodId, periodId));
             //获取当前计量期所有已经计量的数量(),用于生成计量单编号
             if (applyList.size() == 0){
                 count = 1;