Przeglądaj źródła

中间计量申请关联资料2,工程清单导入去除空格

qianxb 1 rok temu
rodzic
commit
61219f9012

+ 6 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/WbsNodeDTO.java

@@ -22,6 +22,12 @@ public class WbsNodeDTO {
     @ApiModelProperty(value = "WBS树节点id")
     private Long nodeId;
 
+    @ApiModelProperty(value = "1施工2监理")
+    private Integer classifyType;
+
+    @ApiModelProperty(value = "选中的id,selectId逗号拼接")
+    private String selectIds;
+
     @ApiModelProperty("当前页")
     private Integer current;
 

+ 6 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/AttachmentForm.java

@@ -74,5 +74,11 @@ public class AttachmentForm extends BaseEntity {
     @ApiModelProperty(value = "中间计量申请专用字段 1中间计量附件,2变更令附件")
     private Integer fileType;
 
+    /**
+     * 中间计量申请专用字段 质检文件的Id(query)
+     */
+    @ApiModelProperty(value = "中间计量申请专用字段 质检文件的Id(query)")
+    private Long selectId;
+
 
 }

+ 6 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/WbsFileVO.java

@@ -40,4 +40,10 @@ public class WbsFileVO implements Serializable {
 
     @ApiModelProperty(value = "父节点id")
     private Long parentId;
+
+    @ApiModelProperty(value = "选中行id")
+    private Long selectId;
+
+    @ApiModelProperty(value = "是否选中:0未选中,1选中")
+    private Integer isSelect;
 }

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

@@ -90,7 +90,7 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
 
     List<WbsNodeVO> getAllChildNode(@Param("dto") WbsNodeDTO dto);
 
-    List<WbsFileVO> getNodeData(@Param("ids") List<Long> ids);
+    List<WbsFileVO> getNodeData(@Param("ids") List<Long> ids,@Param("classifyType") Integer classifyType);
 
     List<WbsTreeContract> getAllAncestors(@Param("ids") HashSet<Long> set, @Param("contractId") Long contractId);
 

+ 8 - 5
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml

@@ -240,7 +240,7 @@
         order by sort,create_time
     </select>
     <select id="getNodeData" resultType="org.springblade.meter.vo.WbsFileVO">
-        select name as dataName,pdf_url as pdfUrl,e_visa_pdf_url as eVisaPdfUrl,
+        select name as dataName,pdf_url as pdfUrl,e_visa_pdf_url as eVisaPdfUrl, uiq.id as selectId,
                (select node_type from m_wbs_tree_contract wtc where wtc.p_key_id = uiq.wbs_id) as nodeType,
                (select ancestors from m_wbs_tree_contract wtc where wtc.p_key_id = uiq.wbs_id) as ancestors,
                (select node_name from m_wbs_tree_contract wtc where wtc.p_key_id = uiq.wbs_id) as nodeName,
@@ -250,12 +250,14 @@
         from u_information_query uiq
         where id in
         (
-            select MAX(id) from u_information_query where  is_deleted = 0 and wbs_id in
+            select MAX(id) from u_information_query uiq2
+            where uiq2.is_deleted = 0 and uiq2.classify = #{classifyType}
+            and uiq2.wbs_id in
             <foreach collection="ids" item="id" open="(" close=")" separator=",">
                     #{id}
             </foreach>
-            group by wbs_id
-            order by create_time desc
+            group by uiq2.wbs_id
+            order by uiq2.create_time desc
         )
         order by FIELD(wbs_id,
             <foreach collection="ids" item="id" separator=",">
@@ -279,7 +281,8 @@
     </select>
     <select id="getAllNode2" resultType="org.springblade.meter.vo.WbsNodeVO">
         SELECT id,parent_id,p_key_id as pId,ancestors,node_name,
-               (SELECT COUNT(1) from u_information_query uiq WHERE uiq.wbs_id = wtc.p_key_id) as isData
+               (SELECT COUNT(1) from u_information_query uiq
+                WHERE uiq.wbs_id = wtc.p_key_id and uiq.is_deleted = 0 and uiq.classify = #{dto.classifyType}) as isData
         from m_wbs_tree_contract wtc
         WHERE project_id  = #{dto.projectId} and contract_id = #{dto.contractId} and is_deleted = 0 and type = 1
         group by id

+ 13 - 5
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java

@@ -85,9 +85,17 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
                 throw new ServiceException("请传入excel文件");
             }
             List<ContractInventoryForm> excels = ExcelUtil.read(file, ContractInventoryForm.class);
+            excels = excels.stream()
+                    .filter(l->(StringUtils.isNotBlank(l.getImportNumber()) || StringUtils.isNotBlank(l.getFormNumber() ) || StringUtils.isNotBlank(l.getFormName())))
+                    .collect(Collectors.toList());
             if (excels == null || excels.size() == 0){
-                throw new ServiceException("未识别到excel中数据,请检查后重新导入");
+                throw new ServiceException("未检测到excel中清单数据,请检查格式后后重新导入");
             }
+            excels.stream().forEach(l->{
+                if (StringUtils.isBlank(l.getImportNumber()) || StringUtils.isBlank(l.getFormNumber() ) || StringUtils.isBlank(l.getFormName())){
+                    throw new ServiceException("excel中有必填项未填写,请检查(导入编号,清单编号,清单名称)后重新导入");
+                }
+            });
             allTotal = excels.size();
             List<Integer> firstNode = new ArrayList<>();
             //获取当前合同的首节点
@@ -107,9 +115,9 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
             //校验必填字段是否为空,设置通用字段,并且通过导入编号对已经存在的节点做标识
             for (int i = 0; i < excels.size(); i++) {
                 ContractInventoryForm excel = excels.get(i);
-                if (StringUtils.isBlank(excel.getImportNumber()) || StringUtils.isBlank(excel.getFormNumber() ) || StringUtils.isBlank(excel.getFormName())){
-                    throw new ServiceException("excel中有必填项未填写,请检查后重新导入");
-                }
+                excel.setImportNumber(excel.getImportNumber().trim());
+                excel.setFormNumber(excel.getFormNumber().trim());
+                excel.setFormName(excel.getFormName().trim());
                 //校验清单类型是否填写,未填写默认为1
                 if (excel.getFormType() == null){
                     excel.setFormType(1);
@@ -206,7 +214,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
                             throw new ServiceException("清单节点:"+f.getFormName()+"未找到上级节点");
                         }
                         if (fo.getIsFormNode() == 1){
-                            throw new ServiceException("清单节点:"+fo.getFormName()+"下还有节点,检查后重新上传excel");
+                            throw new ServiceException("清单节点:"+fo.getFormName()+"下还有节点,检查后重新上传excel");
                         }
                         if (f.getStatus() == 0) {
                             //设置章编号和清单类型,必须根父节点一致

+ 9 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -713,7 +713,7 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         //查询节点资料
         List<WbsFileVO> voList = new ArrayList<>();
         if (ids.size() != 0) {
-            voList = baseMapper.getNodeData(ids);
+            voList = baseMapper.getNodeData(ids,dto.getClassifyType());
             //节点划分
             if (voList.size() != 0) {
                 StringBuilder str = new StringBuilder();
@@ -728,7 +728,15 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
                     throw new ServiceException("未获取到节点划分信息");
                 }
                 Map<Long, WbsTreeContract> map = infoList.stream().collect(Collectors.toMap(l -> l.getId(), l -> l));
+                String selectIds = dto.getSelectIds();
                 for (WbsFileVO vo : voList) {
+                    //是否选中
+                    if (StringUtils.isNotBlank(selectIds) && selectIds.contains(vo.getSelectId()+"")){
+                        vo.setIsSelect(1);
+                    }else {
+                        vo.setIsSelect(0);
+                    }
+                    //工序划分
                     List<Long> longList = Func.toLongList(vo.getAncestors());
                     Collections.reverse(longList);
                     StringBuilder str2 = new StringBuilder();