Ver Fonte

合同清单相关修改

qianxb há 1 ano atrás
pai
commit
3898c6a88d
14 ficheiros alterados com 114 adições e 4 exclusões
  1. 5 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InventoryFormApply.java
  2. 5 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MiddleMeterApply.java
  3. 2 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ContractInventoryFormVO2.java
  4. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/InventoryFormDetailVO.java
  5. 4 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterInventoryDetailVO.java
  6. 2 2
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ZeroChangeVO.java
  7. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MiddleMeterApplyController.java
  8. 4 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.java
  9. 9 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml
  10. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.java
  11. 4 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml
  12. 2 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IMiddleMeterApplyService.java
  13. 27 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java
  14. 31 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

+ 5 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InventoryFormApply.java

@@ -59,6 +59,11 @@ public class InventoryFormApply extends BaseEntity {
      */
     @ApiModelProperty(value = "中间计量申请id")
     private Long middleMeterId;
+    /**
+     * 计量单编号
+     */
+    @ApiModelProperty(value = "计量单编号")
+    private String meterNumber;
     /**
      * 本期计量数量
      */

+ 5 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MiddleMeterApply.java

@@ -60,6 +60,11 @@ public class MiddleMeterApply extends BaseEntity {
      */
     @ApiModelProperty(value = "合同计量期id")
     private Long contractPeriodId;
+    /**
+     * 合同计量期期号
+     */
+    @ApiModelProperty(value = "合同计量期期号")
+    private String periodNumber;
     /**
      * 计量单编号
      */

+ 2 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ContractInventoryFormVO2.java

@@ -37,4 +37,6 @@ public class ContractInventoryFormVO2 extends ContractInventoryForm {
 
 	@ApiModelProperty(value = "节点名称")
 	private String nodeName;
+
+
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/InventoryFormDetailVO.java

@@ -44,4 +44,7 @@ public class InventoryFormDetailVO extends ContractInventoryForm {
 	@ApiModelProperty(value = "引用状态,0未引用,1引用")
 	private Integer citeStatus;
 
+	@ApiModelProperty(value = "是否专项暂定金")
+	private String isSpecialFund;
+
 }

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

@@ -36,7 +36,7 @@ public class MeterInventoryDetailVO {
     @ApiModelProperty(value = "工程划分")
     private String engineerDivide;
 
-    @ApiModelProperty(value = "审核状态名称")
+    @ApiModelProperty(value = "清单名称")
     private String formName;
 
     @ApiModelProperty(value = "单价")
@@ -57,5 +57,8 @@ public class MeterInventoryDetailVO {
     @ApiModelProperty(value = "明细")
     private List<MeterInventoryDetailVO> detail;
 
+    @ApiModelProperty(value = "计量单编号")
+    private String meterNumber;
+
 
 }

+ 2 - 2
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ZeroChangeVO.java

@@ -51,7 +51,7 @@ public class ZeroChangeVO {
     @ApiModelProperty(value = "核实金额")
     private BigDecimal verifyMoney;
 
-    @ApiModelProperty(value = "状态")
-    private Integer statusName;
+    @ApiModelProperty(value = "状态名称")
+    private String statusName;
 
 }

+ 14 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MiddleMeterApplyController.java

@@ -182,6 +182,20 @@ public class MiddleMeterApplyController extends BladeController {
 		return R.data(middleMeterApplyService.formDetail(middleMeterApply));
 	}
 
+	/**
+	 * 获取计量单编号
+	 */
+	@GetMapping("/getMeterNumber")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "获取计量单编号", notes = "传入合同id,合同计量期id,返回值为计量单编号")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "contractId", value = "合同id", required = true),
+			@ApiImplicitParam(name = "contractPeriodId", value = "合同计量期id", required = true)
+	})
+	public R<String> getMeterNumber(MiddleMeterApply middleMeterApply) {
+		return R.data(middleMeterApplyService.getMeterNumber(middleMeterApply));
+	}
+
 
 	
 }

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

@@ -55,4 +55,8 @@ public interface ContractInventoryFormMapper extends BaseMapper<ContractInventor
      * @return
      */
     List<ContractFromVO> getContrFormAllByContrId(@Param("contractId") Long contractId, @Param("formNum") String formNum,@Param("type") int type,@Param("meterId") Long meterId);
+
+    void updateAllChildType(@Param("id") Long id,@Param("contractId") Long contractId,@Param("formType") Integer formType);
+
+    void updateAllChildChapterNumber(@Param("id") Long id,@Param("contractId") Long contractId,@Param("chapterNumber") String chapterNumber);
 }

+ 9 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml

@@ -43,6 +43,14 @@
         update s_contract_inventory_form set is_deleted = 1 where
             contract_id = #{contractId} and (id = #{id} or FIND_IN_SET(#{id},ancestors) > 0)
     </update>
+    <update id="updateAllChildType">
+        update s_contract_inventory_form set form_type = #{formType} where
+            contract_id = #{contractId} and (id = #{id} or FIND_IN_SET(#{id},ancestors) > 0)
+    </update>
+    <update id="updateAllChildChapterNumber">
+        update s_contract_inventory_form set chapter_number = #{chapterNumber} where
+            contract_id = #{contractId} and (id = #{id} or FIND_IN_SET(#{id},ancestors) > 0)
+    </update>
     <select id="getAllNode" resultType="org.springblade.meter.vo.FormTreeVO">
         select id,parent_id,is_lock,chapter_number,form_type,
                if(scif.is_supplement=0,concat(scif.form_number, scif.form_name),concat(scif.form_number, scif.form_name,'[增补]')) as form_name,
@@ -54,6 +62,7 @@
     </select>
     <select id="getById" resultType="org.springblade.meter.vo.InventoryFormDetailVO">
         select *,
+               if(scif.form_type=1,'否','是') as isSpecialFund,
                 if(scif.form_type=0,'',(select dict_value from blade_dict where is_deleted = 0 and code = 'meter_form_type' and dict_key = scif.form_type))  as formTypeName
         from s_contract_inventory_form scif where id = #{id}
     </select>

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

@@ -56,4 +56,6 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
     List<MeterInventoryVO> getForm(@Param("id") Long id,@Param("contractId") Long contractId);
 
     ChangeTokenForm getTokenById(@Param("id") Long id);
+
+    String getContractInfo(@Param("contractId") Long contractId);
 }

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

@@ -74,7 +74,7 @@
                   )
     </select>
     <select id="meterPeriodAllForm" resultType="org.springblade.meter.vo.MeterInventoryDetailVO">
-        SELECT cif.id,cif.form_number,cif.form_name,cif.current_price,cif.change_total,ifa.current_meter_total,ifa.current_meter_money,ifa.contract_form_id,
+        SELECT cif.id,ifa.meter_number,cif.form_number,cif.form_name,cif.current_price,cif.change_total,ifa.current_meter_total,ifa.current_meter_money,ifa.contract_form_id,
                (select period_number from s_contract_meter_period cmp where cmp.id = ifa.contract_period_id) as meterPeriodName,
                 (select engineer_divide from s_middle_meter_apply mma where mma.id = ifa.middle_meter_id) as engineerDivide,
                CASE when (select approve_status from s_middle_meter_apply mma where mma.id = ifa.middle_meter_id) = 0 then '未上报' when (select approve_status from s_middle_meter_apply mma where mma.id = ifa.middle_meter_id) = 1 then '待审批' when (select approve_status from s_middle_meter_apply mma where mma.id = ifa.middle_meter_id) = 2 then '已审批'
@@ -100,6 +100,9 @@
         select *
         from s_change_token_form where id = #{id}
     </select>
+    <select id="getContractInfo" resultType="java.lang.String">
+        select contract_number from m_contract_info where id = #{contractId}
+    </select>
 
 
 </mapper>

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

@@ -56,4 +56,6 @@ public interface IMiddleMeterApplyService extends BaseService<MiddleMeterApply>
     List<MeterInventoryDetailVO> formDetail(MiddleMeterApply middleMeterApply);
 
     MiddleMeterApplyVO detail(Long id);
+
+    String getMeterNumber(MiddleMeterApply middleMeterApply);
 }

+ 27 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java

@@ -110,6 +110,10 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
                 if (StringUtils.isBlank(excel.getImportNumber()) || StringUtils.isBlank(excel.getFormNumber() ) || StringUtils.isBlank(excel.getFormName())){
                     throw new ServiceException("excel中有必填项未填写,请检查后重新导入");
                 }
+                //校验清单类型是否填写,未填写默认为1
+                if (excel.getFormType() == null){
+                    excel.setFormType(1);
+                }
                 excel.setProjectId(projectId);
                 excel.setContractId(contractId);
                 //判断是否已经存在于合同段
@@ -261,6 +265,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
             info.setFormNumber("");
             info.setFormName("合同工程清单");
             info.setIsFormNode(0);
+            info.setNodeTier(-1);
             baseMapper.insert(info);
             vos = baseMapper.getAllNode(projectId, contractId);
             return vos;
@@ -357,6 +362,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
                 throw new ServiceException("子节点的清单类型,必须与父节点的清单类型相同");
             }
         }
+        form.setNodeTier(parentNode.getNodeTier() + 1);
         //设置祖级节点
         form.setAncestors(parentNode.getAncestors()+","+parentNode.getId());
         //如果不是根节点则设置层级
@@ -374,6 +380,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
      * 修改 合同工程清单表
      */
     @Override
+    @Transactional
     public void updateForm(ContractInventoryForm form) {
         //获取当前节点信息
         ContractInventoryForm nodeInfo = this.getById(form.getId());
@@ -424,6 +431,25 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
                 form.setChangeMoney(null);
             }
         }
+        //当前节点的清单类型是否被修改了,
+        if (nodeInfo.getFormType() != form.getFormType()){
+            //校验是否为二级节点,
+            if (nodeInfo.getNodeTier() != 0){
+                throw new ServiceException("非根节点不能修改清单类型");
+            }
+            //修改所有子节点的清单类型
+            baseMapper.updateAllChildType(form.getId(),form.getContractId(),form.getFormType());
+
+        }
+        //当前节点的章编号是否被修改了,
+        if (StringUtils.isNotBlank(form.getChapterNumber()) && !form.getChapterNumber().equals(nodeInfo.getChapterNumber())){
+            //校验是否为二级节点,
+            if (nodeInfo.getNodeTier() != 0){
+                throw new ServiceException("非根节点不能修改章编号");
+            }
+            //修改所有子节点的章编号
+            baseMapper.updateAllChildChapterNumber(form.getId(),form.getContractId(),form.getChapterNumber());
+        }
         this.updateById(form);
     }
 
@@ -466,6 +492,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
             info.setFormNumber("");
             info.setFormName("合同工程清单");
             info.setIsFormNode(0);
+            info.setNodeTier(-1);
             baseMapper.insert(info);
             vos = baseMapper.getChildNode(contractId,0L);
             return vos;

+ 31 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -62,6 +62,9 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
 
     private final IAttachmentFormService attachmentFormService;
 
+    //合同计量期
+    private final IContractMeterPeriodService contractMeterPeriodService;
+
     
 
     /**
@@ -126,6 +129,7 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
                 formApply.setContractFormId(l.getId());
                 formApply.setMiddleMeterId(id);
                 formApply.setContractPeriodId(dto.getContractPeriodId());
+                formApply.setMeterNumber(dto.getMeterNumber());
                 if (l.getCurrentMeterTotal() != null && l.getCurrentPrice() != null) {
                     formApply.setCurrentMeterTotal(l.getCurrentMeterTotal());
                     formApply.setCurrentMeterMoney(l.getCurrentPrice().multiply(new BigDecimal(l.getCurrentMeterTotal())));
@@ -219,6 +223,7 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
                 formApply.setContractFormId(l.getId());
                 formApply.setMiddleMeterId(dto.getId());
                 formApply.setContractPeriodId(dto.getContractPeriodId());
+                formApply.setMeterNumber(dto.getMeterNumber());
                 if (l.getCurrentMeterTotal() != null && l.getCurrentPrice() != null) {
                     formApply.setCurrentMeterTotal(l.getCurrentMeterTotal());
                     formApply.setCurrentMeterMoney(l.getCurrentPrice().multiply(new BigDecimal(l.getCurrentMeterTotal())));
@@ -327,4 +332,30 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         vo.setFileList(list);
         return vo;
     }
+
+    /**
+     * 获取计量单编号
+     */
+    @Override
+    public String getMeterNumber(MiddleMeterApply apply) {
+        StringBuilder str = new StringBuilder();
+        //获取合同信息
+        String contractNumber = baseMapper.getContractInfo(apply.getContractId());
+        if (StringUtils.isBlank(contractNumber)){
+            throw new ServiceException("未获取到当前合同段编号信息");
+        }
+        str.append(contractNumber+"-");
+        //获取计量期信息
+        ContractMeterPeriod contractMeterPeriod = contractMeterPeriodService.getById(apply.getContractPeriodId());
+        if (contractMeterPeriod == null || StringUtils.isBlank(contractMeterPeriod.getPeriodNumber())){
+            throw new ServiceException("未获取到计量期期号信息");
+        }
+        str.append(contractMeterPeriod.getPeriodNumber()+"-");
+        //获取流水号:当前合同段存在的所有合同计量申请的数量+1
+        long count = this.count(new LambdaQueryWrapper<MiddleMeterApply>()
+                .eq(MiddleMeterApply::getContractId, apply.getContractId())
+                .eq(MiddleMeterApply::getContractPeriodId,apply.getContractPeriodId()));
+        str.append(count+1);
+        return str.toString();
+    }
 }