Переглянути джерело

合同工程清单导入排序

qianxb 1 рік тому
батько
коміт
889b2a30df

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

@@ -84,7 +84,7 @@
                 WHERE contract_id = #{contractId} and is_deleted=0 and parent_id = scif.id) as hasChild
         from s_contract_inventory_form scif
         where contract_id = #{contractId} and is_deleted = 0 and parent_id = #{parentId}
-        order by sort
+        order by sort IS NOT NULL DESC,create_time
     </select>
 
     <select id="getContrFormAllByContrId" resultType="org.springblade.meter.vo.ContractFromVO">

+ 3 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java

@@ -91,6 +91,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
             if (excels == null || excels.size() == 0){
                 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中有必填项未填写,请检查(导入编号,清单编号,清单名称)后重新导入");
@@ -112,7 +113,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
                     .isNotNull(ContractInventoryForm::getImportNumber));
             nodes = allNode.size();
             Map<String, ContractInventoryForm> map = allNode.stream().collect(Collectors.toMap(ContractInventoryForm::getImportNumber, l -> l));
-            //校验必填字段是否为空,设置通用字段,并且通过导入编号对已经存在的节点做标识
+            //设置通用字段,并且通过导入编号对已经存在的节点做标识
             for (int i = 0; i < excels.size(); i++) {
                 ContractInventoryForm excel = excels.get(i);
                 excel.setImportNumber(excel.getImportNumber().trim());
@@ -152,6 +153,7 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
             if (size == 1){
                 lists.add(excels);
             }else {
+                //规则是首节点下跟着子节点
                 for (int i = 0; i < size-1; i++) {
                     lists.add(excels.subList(firstNode.get(i),firstNode.get(i+1)));
                 }