Bladeren bron

Merge remote-tracking branch 'origin/master'

liuyc 2 jaren geleden
bovenliggende
commit
781fc6335a

+ 3 - 3
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -342,14 +342,14 @@ public class ArchivesAutoController extends BladeController {
 			archivesAutoService.archiveAutoMethod(projectId);
 			//刷新项目档号
 			archivesAutoService.refreshFileNumberNoSlipt(projectId,contractId,nodeId);
-
+			//设置自动组卷结束
+			projectClient.updateIsArchivesAutoById(projectId,0);
 			return R.data("自动组卷结束");
 		}catch (Exception e){
 			e.printStackTrace();
-			return R.fail(e.getMessage());
-		}finally {
 			//设置自动组卷结束
 			projectClient.updateIsArchivesAutoById(projectId,0);
+			return R.fail(e.getMessage());
 		}
 
 	}

+ 2 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -144,13 +144,13 @@
                 select id from u_archives_auto where project_id=#{projectId}
                   and is_auto_file!=1
                   and is_deleted=0
-                  and is_lock=0
+                  and is_lock!=1
             );
         /**把未锁定案卷去掉*/
         update u_archives_auto set is_deleted=1 where project_id=#{projectId}
             and is_auto_file!=1
             and is_deleted=0
-            and is_lock=0;
+            and is_lock!=1;
     </update>
 
     <select id="getFilePageUrlList" resultType="java.lang.String">

+ 3 - 1
blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java

@@ -444,12 +444,14 @@ public class CustomFunction {
 			}
 			DateTime dt = new DateTime(date.toString());
 			dt.offset(DateField.HOUR_OF_DAY,24*Integer.parseInt(n.toString()));
-			return dt.toString(DatePattern.UTC_PATTERN);
+			//return dt.toString(DatePattern.UTC_PATTERN);
+			return dt.toString(DatePattern.CHINESE_DATE_PATTERN);
 		}
 		return "";
 	}
 
 
+
 	public static Object dateMax(Object range){
 		if(StringUtils.isNotEmpty(range)){
 			String[] s= Func.toStr(range).replaceAll("[\\[\\]]","").split(",\\s+");

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

@@ -497,6 +497,13 @@ public class WbsTreePrivateController extends BladeController {
         return R.status(wbsTreePrivateService.syncNodeParam(projectId, pKeyId));
     }
 
+    @ApiOperationSupport(order = 14)
+    @ApiOperation(value = "同步项目下当前节点及其子节点的公式", notes = "传入项目projectId、节点pKeyId")
+    @RequestMapping(value = "/sync-formula", method = RequestMethod.POST)
+    public R syncFormula(@RequestParam String projectId, @RequestParam String pKeyId) {
+        return R.status(wbsTreePrivateService.syncNodeParam(projectId, pKeyId));
+    }
+
     /**
      * 同步项目下所有节点的电签默认信息
      */

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

@@ -57,7 +57,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
     boolean submitFullName(String pKeyId, String fullNames);
 
     boolean syncNodeParam(String projectId, String pKeyId);
-    boolean syncPrivateProjectFormula(Long projectId, Long pKeyId);
+    R<String> syncPrivateProjectFormula(Long projectId, Long pKeyId);
 
     boolean syncProjectEVisa(String projectId, String pKeyId) throws FileNotFoundException;
 

+ 57 - 45
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -893,7 +893,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    public boolean syncPrivateProjectFormula(Long projectId, Long pKeyId) {
+    public R<String> syncPrivateProjectFormula(Long projectId, Long pKeyId) {
         if(projectId!=null&&pKeyId!=null){
             ProjectInfo projectInfo = projectInfoMapper.selectById(projectId);
             ProjectInfo sourceProject=jdbcTemplate.queryForObject("select a.* from m_project_info a join m_wbs_tree_private b on a.id=b.project_id where b.p_key_id="+projectInfo.getReferenceWbsTemplateId()+" limit 1",new BeanPropertyRowMapper<>(ProjectInfo.class));
@@ -907,52 +907,75 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 List<Formula> insertFormulaList=new ArrayList<>();
                 List<Formula> updateFormulaList=new ArrayList<>();
                 /*同步公共部分*/
-                global(sourceProject.getId(),projectInfo.getId(),insertList,insertFormulaList,updateFormulaList);
+                global(sourceProject.getId(),projectInfo,insertList,insertFormulaList,updateFormulaList);
                 /*同步节点部分,查找模版的叶子节点,查找目标叶子节点,id一样的是关联数据  */
-
+                part(sourceProject.getId(),projectInfo,insertList,insertFormulaList,updateFormulaList);
                 /*保存记录*/
-                if(!insertList.isEmpty()) {
-                    this.elementFormulaMappingService.saveBatch(insertList);
-                }
-                if(!insertFormulaList.isEmpty()) {
-                    this.formulaService.saveBatch(insertFormulaList);
-                }
-                if(!updateFormulaList.isEmpty()) {
-                    this.formulaService.updateBatchById(updateFormulaList);
+                int n=saveAll(insertList,insertFormulaList,updateFormulaList);
+                if(n>0){
+                    R.success("成功同步"+n+"条公式");
                 }
             }
+            return R.success("引用公有模版无需同步");
         }
-        return false;
+        return R.fail("同步异常,请联系管理员");
     }
 
-    private void global(Long srcProjectId,Long distProjectId,List<ElementFormulaMapping> insertList, List<Formula> insertFormulaList, List<Formula> updateFormulaList){
-        Map<Long,ElementFormulaMapping> efmListScope10Map=new HashMap<>();
-        Map<Long,Formula> formulaScope10Map = new HashMap<>();
-        List<ElementFormulaMapping> efmListScope10=this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().eq(ElementFormulaMapping::getProjectId,distProjectId).eq(ElementFormulaMapping::getScope, FormulaBean.PRO_GLOBAL));
-        if(Func.isNotEmpty(efmListScope10)) {
-            /*全局scope=10 每个元素和efm一对一*/
-            efmListScope10Map = efmListScope10.stream().collect(Collectors.toMap(ElementFormulaMapping::getElementId, o -> o));
-            formulaScope10Map = this.formulaService.listByIds(efmListScope10.stream().map(ElementFormulaMapping::getFormulaId).collect(Collectors.toList())).stream().collect(Collectors.toMap(Formula::getId, f -> f));
+    private int saveAll(List<ElementFormulaMapping> insertList, List<Formula> insertFormulaList, List<Formula> updateFormulaList){
+        int n=0;
+        if(!insertList.isEmpty()) {
+            this.elementFormulaMappingService.saveBatch(insertList,1000);
+        }
+        if(!insertFormulaList.isEmpty()) {
+            this.formulaService.saveBatch(insertFormulaList,1000);
+            n+=insertList.size();
         }
-        Map<Long,ElementFormulaMapping> sourceEfmListScope10Map =new HashMap<>();
-        Map<Long,Formula> sourceFormulaScope10Map = new HashMap<>();
-        List<ElementFormulaMapping> sourceEfmListScope10=this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().eq(ElementFormulaMapping::getProjectId,srcProjectId).eq(ElementFormulaMapping::getScope, FormulaBean.PRO_GLOBAL));
-        if(Func.isNotEmpty(sourceEfmListScope10)) {
-            sourceEfmListScope10Map = sourceEfmListScope10.stream().collect(Collectors.toMap(ElementFormulaMapping::getElementId, o -> o));
-            sourceFormulaScope10Map = this.formulaService.listByIds(sourceEfmListScope10.stream().map(ElementFormulaMapping::getFormulaId).collect(Collectors.toList())).stream().collect(Collectors.toMap(Formula::getId, f -> f));
+        if(!updateFormulaList.isEmpty()) {
+            this.formulaService.updateBatchById(updateFormulaList,1000);
+            n+=updateFormulaList.size();
         }
+        return n;
+    }
 
+    private void global(Long srcProjectId,ProjectInfo distProject,List<ElementFormulaMapping> insertList, List<Formula> insertFormulaList, List<Formula> updateFormulaList){
+        this.check( srcProjectId, distProject, insertList,  insertFormulaList,  updateFormulaList,FormulaBean.PRO_GLOBAL);
+    }
+    private void part(Long srcProjectId,ProjectInfo distProject,List<ElementFormulaMapping> insertList, List<Formula> insertFormulaList, List<Formula> updateFormulaList){
+        this.check( srcProjectId, distProject, insertList,  insertFormulaList,  updateFormulaList,FormulaBean.PRO_PART);
+    }
+    private void check(Long srcProjectId,ProjectInfo distProject,List<ElementFormulaMapping> insertList, List<Formula> insertFormulaList, List<Formula> updateFormulaList,int model){
+        Map<String,ElementFormulaMapping> efmListScopeMap=new HashMap<>();
+        Map<String,ElementFormulaMapping> sourceEfmListScopeMap=new HashMap<>();
+        Map<Long,Formula> formulaScopeMap = new HashMap<>();
+        Map<Long,Formula> sourceFormulaScopeMap = new HashMap<>();
+        List<ElementFormulaMapping> efmListScope=this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().eq(ElementFormulaMapping::getProjectId,distProject.getId()).eq(ElementFormulaMapping::getScope, model));
+        if(!efmListScope.isEmpty()){
+            formulaScopeMap = this.formulaService.listByIds(efmListScope.stream().map(ElementFormulaMapping::getFormulaId).collect(Collectors.toList())).stream().collect(Collectors.toMap(Formula::getId, f -> f));
+        }
+        List<ElementFormulaMapping>sourceEfmListScope=this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().eq(ElementFormulaMapping::getProjectId,srcProjectId).eq(ElementFormulaMapping::getScope, model));
+        if(!sourceEfmListScope.isEmpty()){
+            sourceFormulaScopeMap = this.formulaService.listByIds(sourceEfmListScope.stream().map(ElementFormulaMapping::getFormulaId).collect(Collectors.toList())).stream().collect(Collectors.toMap(Formula::getId, f -> f));
+        }
+        if(FormulaBean.PRO_PART.equals(model)) {
+            efmListScopeMap = efmListScope.stream().collect(Collectors.toMap(e -> e.getElementId() + "" + e.getNodeId(), t -> t));
+            sourceEfmListScopeMap = sourceEfmListScope.stream().collect(Collectors.toMap(e -> e.getElementId() + "" + e.getNodeId(), t -> t));
+        }else{
+            efmListScopeMap = efmListScope.stream().collect(Collectors.toMap(e -> e.getElementId().toString(), t -> t));
+            sourceEfmListScopeMap = sourceEfmListScope.stream().collect(Collectors.toMap(e -> e.getElementId().toString(), t -> t));
+        }
         String[] exclude= new String[]{"id"};
-        Map<Long, ElementFormulaMapping> finalEfmListScope10Map = efmListScope10Map;
-        Map<Long, Formula> finalFormulaScope10Map = formulaScope10Map;
-        Map<Long, Formula> finalSourceFormulaScope10Map = sourceFormulaScope10Map;
-        sourceEfmListScope10Map.forEach((k, v)->{
-            if(!finalEfmListScope10Map.containsKey(k)){
+        Map<String, ElementFormulaMapping> finalEfmListScopeMap = efmListScopeMap;
+        Map<Long, Formula> finalSourceFormulaScopeMap = sourceFormulaScopeMap;
+        Map<Long, Formula> finalFormulaScopeMap = formulaScopeMap;
+        sourceEfmListScopeMap.forEach((k, v)->{
+            if(!finalEfmListScopeMap.containsKey(k)){
                 /*不存在*/
                 ElementFormulaMapping target = new ElementFormulaMapping();
                 BeanUtils.copyProperties(v,target,exclude);
+                target.setWbsId(distProject.getReferenceWbsTemplateId());
+                target.setProjectId(distProject.getId());
                 insertList.add(target);
-                Formula sf= finalFormulaScope10Map.get(v.getFormulaId());
+                Formula sf= finalSourceFormulaScopeMap.get(v.getFormulaId());
                 Formula target2= new Formula();
                 BeanUtils.copyProperties(sf,target2);
                 Long id=SnowFlakeUtil.getId();
@@ -961,8 +984,8 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 insertFormulaList.add(target2);
             }else{
                 /*存在则比较,有差异则覆盖*/
-                Formula sf= finalSourceFormulaScope10Map.get(v.getFormulaId());
-                Formula tf= finalFormulaScope10Map.get(finalEfmListScope10Map.get(k).getFormulaId());
+                Formula sf= finalSourceFormulaScopeMap.get(v.getFormulaId());
+                Formula tf= finalFormulaScopeMap.get(finalEfmListScopeMap.get(k).getFormulaId());
                 if(!tf.getFormula().equals(sf.getFormula())){
                     BeanUtils.copyProperties(sf,tf,exclude);
                     updateFormulaList.add(tf);
@@ -971,17 +994,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             }
         });
     }
-    private void part(Long srcProjectId,Long distProjectId,List<ElementFormulaMapping> insertList, List<Formula> insertFormulaList, List<Formula> updateFormulaList){
-        /**/
-        Map<String,ElementFormulaMapping> efmListScope20Map=new HashMap<>();
-        Map<String,ElementFormulaMapping> sourceEfmListScope20Map=new HashMap<>();
-        Map<Long,Formula> formulaScope20Map = new HashMap<>();
-        List<ElementFormulaMapping> efmListScope20=this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().eq(ElementFormulaMapping::getProjectId,distProjectId).eq(ElementFormulaMapping::getScope, FormulaBean.PRO_PART));
-        List<ElementFormulaMapping>sourceEfmListScope20=this.elementFormulaMappingService.list(Wrappers.<ElementFormulaMapping>lambdaQuery().eq(ElementFormulaMapping::getProjectId,srcProjectId).eq(ElementFormulaMapping::getScope, FormulaBean.PRO_PART));
-        efmListScope20Map= efmListScope20.stream().collect(Collectors.toMap(e->e.getElementId()+""+e.getNodeId(),t->t));
-        sourceEfmListScope20Map= sourceEfmListScope20.stream().collect(Collectors.toMap(e->e.getElementId()+""+e.getNodeId(),t->t));
-
-    }
 
     /**
      * 电签同步-获取所有子级节点、表