Kaynağa Gözat

试验取消关联,日志任务重签

chenr 5 ay önce
ebeveyn
işleme
c955ad8fa4
14 değiştirilmiş dosya ile 199 ekleme ve 67 silme
  1. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java
  2. 19 3
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  3. 5 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  4. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsParamController.java
  5. 44 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java
  6. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  7. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ExcelTabClientImpl.java
  8. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IExcelTabService.java
  9. 8 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsParamService.java
  10. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreeContractService.java
  11. 66 43
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  12. 7 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java
  13. 35 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java
  14. 8 13
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -1831,7 +1831,7 @@ public class TaskController extends BladeController {
         //封装入参SQL
         List<Object> params = new ArrayList<>();
         Integer eVisaStatus = dto.getVisaStatus();
-        StringBuilder sqlString = new StringBuilder("SELECT * FROM u_task WHERE approval_type != 4 AND status != 3 AND contract_id = " + dto.getContractId()); //approval_type != 4 非档案的任务就是1填报资料,2工程文件,3日志资料
+        StringBuilder sqlString = new StringBuilder("SELECT * FROM u_task WHERE approval_type != 4 AND status != 3 AND is_deleted=0 AND contract_id = " + dto.getContractId()); //approval_type != 4 非档案的任务就是1填报资料,2工程文件,3日志资料
 
         if (StringUtils.isNotBlank(dto.getStartTimeValue()) && StringUtils.isNotBlank(dto.getEndTimeValue())) {
             if (dto.getStartTimeValue().equals(dto.getEndTimeValue())) {

+ 19 - 3
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -1863,9 +1863,20 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                                 .set(InformationQuery::getEVisaPdfUrl, null)
                                 .set(InformationQuery::getPdfUrl, null));
                     }else {
-                        b = informationQueryService.update(new LambdaUpdateWrapper<InformationQuery>()
+                        if(task.getApprovalType()==3){
+                           b=contractLogService.update(new LambdaUpdateWrapper<ContractLog>()
+                               .eq(ContractLog::getId,task.getFormDataId())
+                               .set(ContractLog::getEVisaPdfUrl,null));
+                           if(!b){
+                               jdbcTemplate.update("update u_task set is_deleted=1 where id="+task.getId());
+                               return;
+                           }
+                        }else {
+                            b = informationQueryService.update(new LambdaUpdateWrapper<InformationQuery>()
                                 .eq(InformationQuery::getId, task.getFormDataId())
                                 .set(InformationQuery::getEVisaPdfUrl, null));
+                        }
+
                     }
 
                     if (type == 1) {
@@ -1886,9 +1897,14 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                             EntrustInfo info = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(EntrustInfo.class));
                             ReSigningEntrustDto dto=new ReSigningEntrustDto(info.getId().toString(),task.getId().toString(),contractId,info.getNodeId(),2,1);
                             result=excelTabClient.saveReEntrustTabData(dto,header);
+                            if(result.getCode()==200){
+                                if(result.getData()!=null){
+                                    informationQueryService.update(new LambdaUpdateWrapper<InformationQuery>()
+                                        .eq(InformationQuery::getId, task.getFormDataId())
+                                        .set(InformationQuery::getPdfUrl,result.getData()));
+                                }
+                            }
                         }
-
-
                         long endTime_1 = System.currentTimeMillis();
                         long executionTime_1 = endTime_1 - startTime_1;
                         log.info("saveNodePdf执行时间:" + executionTime_1 + " 毫秒");

+ 5 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -4389,10 +4389,13 @@ public class ExcelTabController extends BladeController {
             @ApiImplicitParam(name = "id", value = "记录id-当做groupId", required = true),
             @ApiImplicitParam(name = "contractId", value = "合同段id", required = true)
     })
-    public R<List<Map<String, Object>>> getBussDataInfoTrialentrust(Long id, Long pkeyId, Long contractId, Long sampleId, String formData) {
+    public R<List<Map<String, Object>>> getBussDataInfoTrialentrust(Long id, Long pkeyId, Long contractId, Long sampleId, String formData,Boolean isCancel) {
         JSONObject jsonObject = JSONObject.parseObject(formData);
         Boolean isrmove=true;
-        List<Map<String, Object>> bussDataInfoTrial = excelTabService.getBussDataInfoTrialentrust(id, pkeyId, contractId, sampleId, jsonObject,isrmove);
+        if(isCancel==null){
+            isCancel=false;
+        }
+        List<Map<String, Object>> bussDataInfoTrial = excelTabService.getBussDataInfoTrialentrust(id, pkeyId, contractId, sampleId, jsonObject,isrmove,isCancel);
         return R.data(bussDataInfoTrial);
     }
 

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsParamController.java

@@ -535,11 +535,11 @@ public class WbsParamController {
             return this.service.treeCodeUpdateProjectAllForJob();
     }
 
-/*每天固定时间刷新treeCode*/
+     /*每天固定时间刷新treeCode*/
     @Scheduled(cron = " 0 0 3,13 * * ?")
     public  void job(){
         System.out.println("treeCode刷新任务开始"+ LocalDateTime.now());
-        if(!Optional.ofNullable(System.getProperty("os.name")).orElse(StringPool.EMPTY).equals("Linux")){
+        if(Optional.ofNullable(System.getProperty("os.name")).orElse(StringPool.EMPTY).equals("Linux")){
               this.service.treeCodeUpdateProjectAllForJob();
         }
     }

+ 44 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -36,9 +36,11 @@ import org.springblade.core.tool.utils.ResourceUtil;
 import org.springblade.manager.dto.TableSortDTO;
 import org.springblade.manager.dto.WbsTreeContractDTO2;
 import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.WbsParam;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.feign.ContractClient;
+import org.springblade.manager.service.IWbsParamService;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
 import org.springblade.manager.utils.FileUtils;
@@ -75,6 +77,7 @@ public class WbsTreeContractController extends BladeController {
     private final IWbsTreeContractService iWbsTreeContractService;
     private final WbsTreeContractServiceImpl wbsTreeContractServiceImpl;
     private final ContractClient contractClient;
+    private final IWbsParamService iWbsParamService;
     private static Logger logger = LoggerFactory.getLogger(WbsTreeContractController.class);
 
     private final ExcelTabController excelTabController;
@@ -143,6 +146,47 @@ public class WbsTreeContractController extends BladeController {
     public R importTree(@RequestParam("file") MultipartFile file, @RequestParam Long pkeyId) throws IOException {
         return iWbsTreeContractService.importTree(file,pkeyId);
     }
+    @GetMapping("/getNameRuleByRule")
+    @ApiOperationSupport(order = 32)
+    @ApiOperation(value = "节点配置根据选择的文件题名规则获取文件题名", notes = "传入规则和节点pkeyId")
+    public R getNameRuleByRule(String nameRule,Long pkeyId){
+        String[] codes = nameRule.split("-");
+        Arrays.sort(codes, Comparator.comparingInt(s -> Integer.parseInt(s.substring(1))));
+        nameRule= String.join("-", codes);
+        String sql="Select * from m_wbs_tree_contract where p_key_id="+pkeyId;
+        WbsTreeContract contract = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(WbsTreeContract.class));
+        return R.data(iWbsParamService.createFileTitle1(contract,nameRule));
+    }
+    //节点命名配置
+    @GetMapping("/saveContractNameRule")
+    @ApiOperationSupport(order = 33)
+    @ApiOperation(value = "合同段保存文件题名规则")
+    public R saveContractNameRule(String nameRule,Long pkeyId,Long projectId){
+        String[] codes = nameRule.split("-");
+        Arrays.sort(codes, Comparator.comparingInt(s -> Integer.parseInt(s.substring(1))));
+        nameRule= String.join("-", codes);
+        List<WbsParam> list = iWbsParamService.getBaseMapper().selectList(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, pkeyId).eq(WbsParam::getK, "FILE_TITLE").eq(WbsParam::getType, 200));
+        if(list.size()>0){
+            WbsParam wbsParam = list.get(0);
+            wbsParam.setV(nameRule);
+            iWbsParamService.getBaseMapper().updateById(wbsParam);
+        }else {
+        WbsParam param = new WbsParam();
+        param.setName("文件题名");
+        param.setK("FILE_TITLE");
+        param.setV(nameRule);
+        param.setType(11);
+        param.setProjectId(projectId);
+        param.setNameId(SnowFlakeUtil.getId());
+        param.setNameType(2);
+        param.setType(200);
+        param.setNodeId(pkeyId);
+        iWbsParamService.getBaseMapper().insert(param);
+    }
+      return R.success("操作成功");
+    }
+
+
 
 
 

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -897,6 +897,7 @@ public class WbsTreePrivateController extends BladeController {
                 param.setProjectId(dto.getProjectId());
                 param.setNameId(SnowFlakeUtil.getId());
                 param.setNameType(dto.getType());
+                param.setType(100);
                 //如果nameID不为空,先删除在保存
                 if(dto.getNameId()!=null){
                     iWbsParamService.getBaseMapper().delete(new QueryWrapper<WbsParam>().eq("name_id",dto.getNameId()));

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/feign/ExcelTabClientImpl.java

@@ -448,7 +448,7 @@ public class ExcelTabClientImpl implements ExcelTabClient {
     public R saveReEntrustTabData(ReSigningEntrustDto dto, String header) {
         WbsTreePrivate wbsTreePrivate = jdbcTemplate.queryForObject("select * from m_wbs_tree_private where p_key_id=" + dto.getNodeId(), new BeanPropertyRowMapper<>(WbsTreePrivate.class));
         Boolean isRemove=false;
-        List<Map<String, Object>> list = excelTabService.getBussDataInfoTrialentrust(Long.parseLong(dto.getEntrustId()), wbsTreePrivate.getJlerTreeId(), Long.parseLong(dto.getContractId()), null, null,isRemove);
+        List<Map<String, Object>> list = excelTabService.getBussDataInfoTrialentrust(Long.parseLong(dto.getEntrustId()), wbsTreePrivate.getJlerTreeId(), Long.parseLong(dto.getContractId()), null, null,isRemove,false);
         Map<String, Object> map = list.get(0);
         if(!map.containsKey("contractId")){
             map.put("contractId",dto.getContractId());

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IExcelTabService.java

@@ -210,5 +210,5 @@ public interface IExcelTabService extends BaseService<ExcelTab> {
      * @param contractId
      * @return
      */
-    List<Map<String, Object>> getBussDataInfoTrialentrust(Long id, Long pkeyId, Long contractId, Long sampleId, JSONObject jsonObject,Boolean isremove);
+    List<Map<String, Object>> getBussDataInfoTrialentrust(Long id, Long pkeyId, Long contractId, Long sampleId, JSONObject jsonObject,Boolean isremove,Boolean isCaneal);
 }

+ 8 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsParamService.java

@@ -28,6 +28,14 @@ public interface IWbsParamService extends BaseService<WbsParam> {
 
     String createFileTitle(Long pkeyId);
 
+    /**
+     * 根据题名规则生成文件题名 当前节点的实体类,参数规则
+     * @param wtc
+     * @param wp
+     * @return
+     */
+    String createFileTitle1(WbsTreeContract wtc,String wp);
+
     /**
      * @Description 获取节点参数 nodeId:项目级节点id
      * @Author yangyj

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

@@ -83,4 +83,5 @@ public interface IWbsTreeContractService extends BaseService<WbsTreeContract> {
     void diGuiWbs(int i);
 
     R importTree(MultipartFile file, Long pkeyId) throws IOException;
+
 }

+ 66 - 43
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -2606,7 +2606,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     trialMaterialMobilization = null;
                 }
                 //通过html获取页面上的key值 返回key值对应的数据
-                setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization,entrustInfo);
+                List<String> isCancelList = setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, entrustInfo, false);
             }
             //第一次新增 回显系统生成的编号
             if(type != null && nodeId != null){
@@ -4479,7 +4479,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
      * 试验 委托单获取填报信息  groupId和sampleId1必须传其中一个
      */
     @Override
-    public List<Map<String, Object>> getBussDataInfoTrialentrust(Long groupId, Long pkeyId, Long contractId,Long sampleId1,JSONObject jsonObject,Boolean isremove) {
+    public List<Map<String, Object>> getBussDataInfoTrialentrust(Long groupId, Long pkeyId, Long contractId,Long sampleId1,JSONObject jsonObject,Boolean isremove,Boolean isCancel) {
         String file_path = ParamCache.getValue(CommonConstant.SYS_LOCAL_URL);
         String sys_file_net_url = ParamCache.getValue(CommonConstant.SYS_FILE_NET_URL);
         List<Map<String, Object>> list = new ArrayList<>();
@@ -4506,7 +4506,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         String loadDataId = "";
         String sampleId = "";
         if(groupId == null){
-            sampleId = sampleId1.toString();
+            if(sampleId1!=null){
+                sampleId = sampleId1.toString();
+            }
+
         }
 
         try {
@@ -4548,7 +4551,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         //实体数据
         String querySql = "select * from " + wbsTreePrivate.getInitTableName() + " where p_key_id=" + pkeyId + " and group_id = " + groupId;
         List<Map<String, Object>> dataIn = jdbcTemplate.queryForList(querySql);
-
+        List<String> isCancelList=new ArrayList<>();
         //匹配关联
         try {
             String fileUrl = wbsTreePrivate.getHtmlUrl();
@@ -4631,7 +4634,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 }
             }
             //通过html获取页面上的key值 返回key值对应的数据
-            setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization,null);
+             isCancelList = setBasicFormData(doc, reData, sampleInfo, trialMaterialMobilization, null, isCancel);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -4663,6 +4666,12 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
         chart(reData, wbsTreePrivate);
         if(ObjectUtil.isNotEmpty(jsonObject)){
+            if(isCancel){
+                if(isCancelList.size()>0){
+                    List<String> finalIsCancelList = isCancelList;
+                    jsonObject.entrySet().removeIf(entry -> finalIsCancelList.contains(entry.getKey()));
+                }
+            }
             for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
                 if(entry.getKey().contains("key")){
                     if(!reData.containsKey(entry.getKey())){
@@ -4675,48 +4684,57 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         return list;
     }
 
-    private static void setBasicFormData(Document doc, Map<String, Object> reData, TrialSampleInfo sampleInfo ,TrialMaterialMobilization trialMaterialMobilization, EntrustInfo entrustInfo) {
+    private static List<String> setBasicFormData(Document doc, Map<String, Object> reData, TrialSampleInfo sampleInfo ,TrialMaterialMobilization trialMaterialMobilization, EntrustInfo entrustInfo,Boolean isCancel) {
+        List<String> isCancelList=new ArrayList<>();
+        if(sampleInfo==null){
+            sampleInfo=new TrialSampleInfo();
+        }
         String representativeCount = sampleInfo.getRepresentativeCount();
         String calculationUnit = sampleInfo.getCalculationUnit();
-        Date mobilizationDate = sampleInfo.getMobilizationDate();
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String format = simpleDateFormat.format(mobilizationDate);
-
-        setFirstData(doc,"批号",sampleInfo.getBatchNumber(),reData);
-        setFirstData(doc,"生产批号",sampleInfo.getBatchNumber(),reData);
-        setFirstData(doc,"样品编号",sampleInfo.getSpecificationNumber(),reData);
-        setFirstData(doc,"取样地点",sampleInfo.getSamplingLocation(),reData);
-        setFirstData(doc,"样品描述",sampleInfo.getSampleDescription(),reData);
-        setFirstData(doc,"取样时间",sampleInfo.getSamplingDate(),reData);
-        setFirstData(doc,"取样日期",sampleInfo.getSamplingDate(),reData);
-        setFirstData(doc,"试样名称",sampleInfo.getMaterialName(),reData);
-        setFirstData(doc,"样品名称",sampleInfo.getMaterialName(),reData);
-        setFirstData(doc,"材料名称",sampleInfo.getMaterialName(),reData);
-        setFirstData(doc,"规格 型号",sampleInfo.getSpecificationModel(),reData);
-        setFirstData(doc,"规格型号",sampleInfo.getSpecificationModel(),reData);
-        setFirstData(doc,"材料规格",sampleInfo.getSpecificationModel(),reData);
-        setFirstData(doc,"规格(mm)",sampleInfo.getSpecificationModel(),reData);
-        setFirstData(doc,"试样 数量",sampleInfo.getMaterialCount(),reData);
-        setFirstData(doc,"试样数量",sampleInfo.getMaterialCount(),reData);
-        setFirstData(doc,"代表数量",sampleInfo.getMaterialCount(),reData);
-        setFirstData(doc,"拟用结构部 位",sampleInfo.getProposedPosition(),reData);
-        setFirstData(doc,"拟用结构部位",sampleInfo.getProposedPosition(),reData);
-        setFirstData(doc,"工程部位、构件编号",sampleInfo.getProposedPosition(),reData);
-        setFirstData(doc,"工程部位、高程桩号",sampleInfo.getProposedPosition(),reData);
-        setFirstData(doc,"设计强度 等级",sampleInfo.getDesignStrength(),reData);
-        setFirstData(doc,"设计强度等级",sampleInfo.getDesignStrength(),reData);
-        setFirstData(doc,"用途(使用在何工程部位)",sampleInfo.getProposedPosition(),reData);
-        setFirstData(doc,"进场日期代表数量",format+"/"+representativeCount+calculationUnit,reData);
-        setFirstData(doc,"材料进场日期",format,reData);
+        String format="";
+        if(sampleInfo.getMobilizationDate()!=null){
+            Date mobilizationDate = sampleInfo.getMobilizationDate();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            format= simpleDateFormat.format(mobilizationDate);
+        }
+        setFirstData(doc,"批号",sampleInfo.getBatchNumber(),reData,isCancel,isCancelList);
+        setFirstData(doc,"生产批号",sampleInfo.getBatchNumber(),reData,isCancel,isCancelList);
+        setFirstData(doc,"样品编号",sampleInfo.getSpecificationNumber(),reData,isCancel,isCancelList);
+        setFirstData(doc,"取样地点",sampleInfo.getSamplingLocation(),reData,isCancel,isCancelList);
+        setFirstData(doc,"样品描述",sampleInfo.getSampleDescription(),reData,isCancel,isCancelList);
+        setFirstData(doc,"取样时间",sampleInfo.getSamplingDate(),reData,isCancel,isCancelList);
+        setFirstData(doc,"取样日期",sampleInfo.getSamplingDate(),reData,isCancel,isCancelList);
+        setFirstData(doc,"试样名称",sampleInfo.getMaterialName(),reData,isCancel,isCancelList);
+        setFirstData(doc,"样品名称",sampleInfo.getMaterialName(),reData,isCancel,isCancelList);
+        setFirstData(doc,"材料名称",sampleInfo.getMaterialName(),reData,isCancel,isCancelList);
+        setFirstData(doc,"规格 型号",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
+        setFirstData(doc,"规格型号",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
+        setFirstData(doc,"材料规格",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
+        setFirstData(doc,"规格(mm)",sampleInfo.getSpecificationModel(),reData,isCancel,isCancelList);
+        setFirstData(doc,"试样 数量",sampleInfo.getMaterialCount(),reData,isCancel,isCancelList);
+        setFirstData(doc,"试样数量",sampleInfo.getMaterialCount(),reData,isCancel,isCancelList);
+        setFirstData(doc,"代表数量",sampleInfo.getMaterialCount(),reData,isCancel,isCancelList);
+        setFirstData(doc,"拟用结构部 位",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
+        setFirstData(doc,"拟用结构部位",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
+        setFirstData(doc,"工程部位、构件编号",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
+        setFirstData(doc,"工程部位、高程桩号",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
+        setFirstData(doc,"设计强度 等级",sampleInfo.getDesignStrength(),reData,isCancel,isCancelList);
+        setFirstData(doc,"设计强度等级",sampleInfo.getDesignStrength(),reData,isCancel,isCancelList);
+        setFirstData(doc,"用途(使用在何工程部位)",sampleInfo.getProposedPosition(),reData,isCancel,isCancelList);
+        setFirstData(doc,"成型日期",null,reData,isCancel,isCancelList);
+        setFirstData(doc,"试件编号",sampleInfo.getSpecificationNumber(),reData,isCancel,isCancelList);
+        setFirstData(doc,"进场日期代表数量",format+"/"+representativeCount+calculationUnit,reData,isCancel,isCancelList);
+        setFirstData(doc,"材料进场日期",format,reData,isCancel,isCancelList);
 
         if(entrustInfo != null){
-            setFirstData(doc,"委托编号",entrustInfo.getEntrustNo(),reData);
-            setFirstData(doc,"本批材料数量",entrustInfo.getExpCount()+calculationUnit,reData);
+            setFirstData(doc,"委托编号",entrustInfo.getEntrustNo(),reData,isCancel,isCancelList);
+            setFirstData(doc,"本批材料数量",entrustInfo.getExpCount()+calculationUnit,reData,isCancel,isCancelList);
         }
         if(trialMaterialMobilization != null){
-            setFirstData(doc,"生产厂家",trialMaterialMobilization.getPlaceOfProduction(),reData);
-            setFirstData(doc,"供应商",trialMaterialMobilization.getPlaceOfProduction(),reData);
+            setFirstData(doc,"生产厂家",trialMaterialMobilization.getPlaceOfProduction(),reData,isCancel,isCancelList);
+            setFirstData(doc,"供应商",trialMaterialMobilization.getPlaceOfProduction(),reData,isCancel,isCancelList);
         }
+        return isCancelList;
     }
 
     /**
@@ -4726,7 +4744,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
      * @param value
      * @param reData
      */
-    private static void setFirstData(Document doc, String elementValue,Object value,Map<String, Object> reData) {
+    private static void  setFirstData(Document doc, String elementValue,Object value,Map<String, Object> reData,Boolean isCancel,List<String> isCancelList) {
 
         Elements select = doc.select("[placeholderxx=" + elementValue + "]");
 
@@ -4748,10 +4766,13 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     reData.put(keyName, value);
                 }
 
-                return;
+                return ;
             }
             if(textareaElement != null){//正常情况
                 String id = textareaElement.attr("id");
+                if(isCancel){
+                    isCancelList.add(id);
+                }
                 if(ObjectUtil.isNotEmpty(value)){
                     reData.put(id, value);
                 }
@@ -4780,10 +4801,12 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 Element textareaElement = select2.first();
                 if(textareaElement != null){//正常情况
                     String id = textareaElement.attr("id");
+                    if(isCancel){
+                        isCancelList.add(id);
+                    }
                     if(ObjectUtil.isNotEmpty(value)){
                         reData.put(id, value);
                     }
-
                 }
             }
         }

+ 7 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -243,6 +243,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         List<String> missingList = new ArrayList<>();
         if (tec.isNew) {
             tec.formDataList.forEach(fd -> {
+                if(fd.getCode().equals("m_20240124150234_1750051448990728192:key_25")){
+                    System.out.println("111");
+                }
                 if (fd.executable()) {
                     FormulaUtils.relyParse(fd.getFormula());
                     Formula f = fd.getFormula();
@@ -259,6 +262,9 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             missingFill2(missingList, tec);
         } else {
             tec.formDataList.forEach(fd -> {
+                if(fd.getCode().equals("m_20240124150234_1750051448990728192:key_25")){
+                    System.out.println("111");
+                }
                 if (fd.executable()) {
                     FormulaUtils.relyParse(fd.getFormula());
                     Formula f = fd.getFormula();
@@ -1174,7 +1180,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             checkTable = op.get().getInitTableName();
         }
         for (FormData fd : tec.formDataList) {
-            if(fd.getCode().equals("m_20220928163111_1575040410223378432:key_14")){
+            if(fd.getCode().equals("m_20240124150022_1750050896693166080:key_42")){
                 System.out.println(111);
             }
             if (fd.verify()) {

+ 35 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsParamServiceImpl.java

@@ -19,7 +19,9 @@ import org.springblade.manager.mapper.WbsParamMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
 import org.springblade.manager.vo.WbsParamVo2;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.Cacheable;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
@@ -37,6 +39,7 @@ import java.util.stream.Collectors;
 @Service
 @AllArgsConstructor
 public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsParam> implements IWbsParamService {
+
     private final IWbsTreeContractService treeContractService;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
     private final IElementFormulaMappingService elementFormulaMappingService;
@@ -83,6 +86,33 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
             return "找不到节点";
         }
     }
+    //根据选择的文件题名规则,返回文件题名;
+    @Override
+    public String createFileTitle1(WbsTreeContract wtc,String wp) {
+        if(wtc!=null&&wtc.getPKeyId()!=null){
+            List<WbsTreeContract> nodes = tracing(wtc.getPKeyId());
+            if (Func.isNotEmpty(nodes)) {
+                WbsTreePrivate wtp = this.wtpId(wtc.getPKeyId());
+                if(wtp!=null){
+                    if (Func.isNotEmpty(wp)) {
+                        return CustomFunction.tree(nodes.stream().map(w->StringUtils.isNotEmpty(w.getFullName())?w.getFullName():w.getNodeName()).collect(Collectors.toList()), wp).toString();
+                    }else{
+                        return wtp.getNodeName()+"找不到文件题名配置";
+                    }
+                }else{
+                    return nodes.stream().filter(e->e.getNodeType()!=null&&(e.getNodeType().equals(2)||e.getNodeType().equals(4)||e.getNodeType().equals(6))).map(w->StringUtils.isNotEmpty(w.getFullName())?w.getFullName():w.getNodeName()).map(s->s.replaceAll("[\\s\\n\\t]+","")).collect(Collectors.joining());
+                    /* return "找不到项目配置信息";*/
+                }
+
+            }else{
+                return "层级断链";
+            }
+        }else {
+            return "找不到节点";
+        }
+    }
+
+
 
     public WbsTreePrivate getOriginWtp(Long pkeyId) {
 
@@ -148,6 +178,7 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
         return createFileTitle(wtc);
     }
 
+
     @Override
     public List<WbsTreeContract> tracing(@NotNull Long pkeyId){
         WbsTreeContract one = this.treeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pkeyId));
@@ -380,11 +411,15 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
             }
         });
         if(sqlList.size()>0){
+            final int[] num = {sqlList.size()};
+            System.out.println("总共需要更新:"+ num[0] +" 条数据");
             List<List<String>> sqlListSeg = BaseUtils.splitList(sqlList, 250);
             sqlListSeg.parallelStream().forEach(sql->{
+                num[0] = num[0] -250;
                 try {
                     String joinSql=String.join(";",sql);
                     this.jdbcTemplate.execute(joinSql);
+                    System.out.println("更新成功:"+sql.size()+"条数据,还有"+num[0]+"条数据");
                 }catch (Exception e){
                     e.printStackTrace();
                 }

+ 8 - 13
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.common.collect.Lists;
+import com.mixsmart.utils.CustomFunction;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.Cell;
@@ -49,11 +50,13 @@ import org.springblade.manager.mapper.ContractInfoMapper;
 import org.springblade.manager.mapper.WbsTreeContractMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.ITableFileService;
+import org.springblade.manager.service.IWbsParamService;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.utils.CompositeKey;
 import org.springblade.manager.vo.*;
 import org.springblade.system.cache.ParamCache;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.BadSqlGrammarException;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
@@ -98,6 +101,8 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     private final InformationQueryClient informationQueryClient;
     private final ContractClient contractClient;
     private final ITableFileService tableFileService;
+
+
     @Autowired
     StringRedisTemplate redisTemplate;
 
@@ -2283,19 +2288,6 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
                 }
             }
         }
-
-
-
-
-
-
-
-
-
-
-
-
-
         //新增
         for (ImportTreeDto dto : list) {
             //单位工程:如果没有被处理过,说明需要新增
@@ -2489,6 +2481,9 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         return R.success("新增了"+insertList.size()+"个节点"+","+String.join(",",updateList)+"节点编号已被修改");
     }
 
+
+
+
     //判断名称是否都在wbs的祖级节点里面
     private Boolean isTrueNode(List<String> list, WbsTreeContractVO vo){
         String sql="select node_name from m_wbs_tree_contract where id in ("+String.join("','", vo.getAncestors().split(","))+")";