|
@@ -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);
|
|
|
+ }
|
|
|
}
|