Przeglądaj źródła

自动检测日期感叹号

cr 3 tygodni temu
rodzic
commit
3831bbf9a7

+ 42 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -38,10 +38,7 @@ import org.springblade.business.feign.ContractLogClient;
 import org.springblade.business.feign.InformationQueryClient;
 import org.springblade.business.vo.SaveContractLogVO;
 import org.springblade.common.constant.CommonConstant;
-import org.springblade.common.utils.BaseUtils;
-import org.springblade.common.utils.CommonUtil;
-import org.springblade.common.utils.MathUtil;
-import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.common.utils.*;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
@@ -58,9 +55,11 @@ import org.springblade.manager.dto.AddBussFileSortDTO;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.enums.ExecuteType;
 import org.springblade.manager.mapper.ExcelTabMapper;
+import org.springblade.manager.mapper.WbsTreeContractMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.utils.*;
+import org.springblade.manager.utils.FileUtils;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.wrapper.ExcelTabWrapper;
 import org.springblade.resource.feign.CommonFileClient;
@@ -163,6 +162,8 @@ public class ExcelTabController extends BladeController {
 
     private final  SignFtpUtil signFtpUtil;
 
+    private final WbsTreeContractMapper wbsTreeContractMapper;
+
 
     @Autowired
     StringRedisTemplate RedisTemplate;
@@ -4800,4 +4801,41 @@ public class ExcelTabController extends BladeController {
         List<ParameterElementVO2> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ParameterElementVO2.class));
         return R.data(query);
     }
+
+    @GetMapping("/checkAllNodeDate")
+    @ApiOperationSupport(order = 43)
+    @ApiOperation(value = "检查所有表单是否填写完毕日期")
+    public R checkAllNodeDate(Long projectId,Long contractId) throws Exception {
+        //查询出当前项目或合同段下所有的表单
+        List<WbsTreeContract>list= wbsTreeContractMapper.selectListForcheckAllNodeDate(projectId,contractId);
+        //将表单通过pid分组
+        Map<Long, List<WbsTreeContract>> map = list.stream().collect(Collectors.groupingBy(WbsTreeContract::getPId));
+        for (Map.Entry<Long, List<WbsTreeContract>> entry : map.entrySet()) {
+            Long pId = entry.getKey();
+            WbsTreeContract parent = wbsTreeContractMapper.selectOne(new LambdaQueryWrapper<>(WbsTreeContract.class).eq(WbsTreeContract::getPKeyId, pId));
+            List<WbsTreeContract> wbsTreeContractList = entry.getValue();
+            for (WbsTreeContract contract : wbsTreeContractList) {
+                Map<String, Object> dataInfo = excelTabService.getBussDataInfo(contract.getPKeyId(), 0, true);
+                InputStream inputStreamByUrl = FileUtils.getInputStreamByUrl(contract.getHtmlUrl());
+                String htmlString = IoUtil.readToString(inputStreamByUrl);
+                Document doc = Jsoup.parse(htmlString);
+                Elements dateElements = doc.select("el-date-picker");
+                if(!dateElements.isEmpty()){
+                    Boolean dateFlag=true;
+                    for (Element element : dateElements) {
+                        String keyname = element.attr("keyname");
+                        if(!dataInfo.containsKey(keyname)||(StringUtils.isEmpty(dataInfo.get(keyname).toString()))){
+                            dateFlag=false;
+                            break;
+                        }
+                    }
+                    if(!dateFlag){
+                        wbsTreeContractMapper.update(contract,new LambdaUpdateWrapper<WbsTreeContract>().eq(WbsTreeContract::getPKeyId,contract.getPKeyId()).set(WbsTreeContract::getDateIsComplete,2));
+                    }
+                }
+            }
+            wbsTreeContractService.checkNodeAllDate(parent);
+        }
+        return R.status(true);
+    }
 }

+ 1 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -825,11 +825,6 @@ public class WbsTreeContractController extends BladeController {
         wbsTreeContractServiceImpl.resetTableDate(projectId);
         return R.success("成功");
     }
-    @GetMapping("/checkAllNodeDate")
-    @ApiOperationSupport(order = 43)
-    @ApiOperation(value = "检查所有表单是否填写完毕日期")
-    public R checkAllNodeDate(Long projectId,Long contractId){
-        return R.status(wbsTreeContractServiceImpl.checkAllNodeDate(projectId,contractId));
-    }
+
 
 }

+ 0 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java

@@ -90,6 +90,4 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
     EKeyDto getEKey(String contractId, Long pKeyId, String wbsId);
 
     boolean checkNodeAllDate(WbsTreeContract contract);
-
-    boolean checkAllNodeDate(Long projectId, Long contractId);
 }