Browse Source

Merge branch 'test-merge' of http://219.151.181.73:3000/zhuwei/bladex into test-merge

lvy 18 hours ago
parent
commit
02c3a006af

+ 6 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/MaterialProgressVO.java

@@ -23,8 +23,8 @@ public class MaterialProgressVO {
     @ApiModelProperty("WBS进度")
     private List<TreeMaterialProgress> treeMaterialProgressList = new ArrayList<>();
 
-    public void setProcessMaterialList(String title, Integer amount, Long successAmount, Integer isHide) {
-        this.processMaterialList.add(new ProcessMaterial(title, amount, successAmount,isHide));
+    public void setProcessMaterialList(String title, Integer amount, Long successAmount, Integer isHide,Integer hideType) {
+        this.processMaterialList.add(new ProcessMaterial(title, amount, successAmount,isHide,hideType));
     }
 
     public void setProcessMaterialStatusList(String title, Integer submitAmount, Integer awaitAmount, Integer approvalAmount) {
@@ -198,8 +198,10 @@ public class MaterialProgressVO {
         private BigDecimal ratio;
         @ApiModelProperty("是否隐藏 0显示1隐藏")
         private Integer isHide;
+        @ApiModelProperty("1开工报告 2工序资料 3评定资料 4中间交工")
+        private Integer hideType;
 
-        public ProcessMaterial(String title, Integer amount, Long successAmount,Integer isHide) {
+        public ProcessMaterial(String title, Integer amount, Long successAmount,Integer isHide,Integer hideType) {
             this.title = title;
             this.amount = amount;
             this.successAmount = successAmount;
@@ -210,6 +212,7 @@ public class MaterialProgressVO {
                 this.ratio = new BigDecimal("0");
             }
             this.isHide = isHide;
+            this.hideType = hideType;
         }
 
     }

+ 10 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ScanFileController.java

@@ -135,6 +135,16 @@ public class ScanFileController {
         IPage<ScanFile> page=scanFileService.getScanFile(contractId,projectId,folderId,query,move);
         return R.data(page);
     }
+    @PostMapping("/addScanFolder")
+    @ApiOperation("新增节点扫描文件夹")
+    public R addScanFolder(Long projectId,Long contractId,String forderName,Long parentId){
+        return R.status(scanFileService.addScanFolder(projectId,contractId,forderName,parentId));
+    }
+    @PostMapping("/addScanFile")
+    @ApiOperation("新增节点扫描文件")
+    public R addScanFile(Long projectId,Long contractId,String forderName,Long forderId){
+        return R.status(scanFileService.addScanFile(projectId,contractId,forderName,forderId));
+    }
     @GetMapping("/getDetil")
     @ApiOperation("获取扫描文件详情")
     @ApiImplicitParam(name = "id", value = "文件ID")

+ 4 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/ScanFileService.java

@@ -28,4 +28,8 @@ public interface ScanFileService extends IService<ScanFile> {
     Boolean autoRecognize(String ids);
 
     boolean moveScanFile(List<Long> ids, Long nodeId);
+
+    boolean addScanFolder(Long projectId, Long contractId, String forderName, Long parentId);
+
+    boolean addScanFile(Long projectId, Long contractId, String forderName, Long forderId);
 }

+ 37 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ScanFileServiceImpl.java

@@ -17,6 +17,7 @@ import org.springblade.archive.vo.ScanFolderVO;
 import org.springblade.business.entity.ArchiveFile;
 import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.tool.api.R;
@@ -185,6 +186,42 @@ public class ScanFileServiceImpl  extends ServiceImpl<ScanFileMapper, ScanFile>
         }
     }
 
+    @Override
+    public boolean addScanFolder(Long projectId, Long contractId, String forderName, Long parentId) {
+            ScanFolder scanFolder = new ScanFolder();
+            scanFolder.setId(SnowFlakeUtil.getId());
+            scanFolder.setProjectId(projectId);
+            scanFolder.setContractId(contractId);
+            scanFolder.setFolderName(forderName);
+            scanFolder.setParentId(parentId);
+            scanFolder.setIsDeleted(0);
+            String folderPath="";
+            if(parentId!=0){
+                ScanFolder fatherFolder = scanFolderMapper.selectById(parentId);
+                if (fatherFolder!=null){
+                    String fatherPath = fatherFolder.getFolderPath();
+                    folderPath=fatherPath+"/"+forderName;
+                }
+            }else {
+                 folderPath=ROOT_PREFIX+"/"+contractId+"/"+forderName;
+            }
+            File folder = new File(folderPath);
+           if (!folder.exists()) {
+             boolean created = folder.mkdirs();
+             if (!created) {
+                throw new ServiceException("创建文件夹失败");
+             }
+           }
+          scanFolder.setFolderPath(folderPath);
+          int insert = scanFolderMapper.insert(scanFolder);
+          return insert == 1;
+    }
+
+    @Override
+    public boolean addScanFile(Long projectId, Long contractId, String forderName, Long forderId) {
+        return false;
+    }
+
     /**
      * 入口方法:扫描并入库指定contractId的所有文件夹
      * @param contractId 传入的合同ID(对应D:\PDF下的文件夹名)

+ 8 - 5
blade-service/blade-business/src/main/java/org/springblade/business/controller/MaterialProgressController.java

@@ -41,6 +41,7 @@ import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
 import org.springblade.system.entity.Menu;
 import org.springblade.system.entity.RoleMenu;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
@@ -71,8 +72,10 @@ public class MaterialProgressController extends BladeController {
     private final IImageClassificationFileService imageClassificationFileService;
 
     private final ContractClient contractClient;
+
     private final JdbcTemplate jdbcTemplate;
 
+
     /**
      * 资料进度
      */
@@ -546,10 +549,10 @@ public class MaterialProgressController extends BladeController {
         if(!list.isEmpty()){
             hideTypes= list.stream().map(HideProcess::getHideType).map(String::valueOf).collect(Collectors.joining(","));
         }
-        reVO.setProcessMaterialList("开工报告", workStartReports.size(), workStartReportsAmount,hideTypes.contains("1")?1:0);
-        reVO.setProcessMaterialList("工序资料", process.size(), processAmount,hideTypes.contains("2")?1:0);
-        reVO.setProcessMaterialList("评定资料", evaluation.size(), evaluationAmount,hideTypes.contains("3")?1:0);
-        reVO.setProcessMaterialList("中间交工", completion.size(), completionAmount,hideTypes.contains("4")?1:0);
+        reVO.setProcessMaterialList("开工报告", workStartReports.size(), workStartReportsAmount,hideTypes.contains("1")?1:0,1);
+        reVO.setProcessMaterialList("工序资料", process.size(), processAmount,hideTypes.contains("2")?1:0,2);
+        reVO.setProcessMaterialList("评定资料", evaluation.size(), evaluationAmount,hideTypes.contains("3")?1:0,3);
+        reVO.setProcessMaterialList("中间交工", completion.size(), completionAmount,hideTypes.contains("4")?1:0,4);
     }
 
     /**
@@ -563,7 +566,7 @@ public class MaterialProgressController extends BladeController {
     @GetMapping("/hideProcessMaterial")
     @ApiOperation(value = "隐藏进度")
     @ApiOperationSupport(order = 2)
-    private R hideProcessMaterial(Long contractId,Integer classifyType,Integer hideType,Integer type){
+    public R hideProcessMaterial(Long contractId,Integer classifyType,Integer hideType,Integer type){
         classifyType = StringUtils.isEmpty(String.valueOf(classifyType)) ? 1 : classifyType;
         if(type==0){
             String sql="select * from m_hide_process where contract_id= "+contractId+" and classify_type= "+classifyType+" and hide_type= "+hideType;

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

@@ -962,6 +962,8 @@ public class ExcelTabController extends BladeController {
                     .eq(WbsTreeContract::getWbsId, wbsTreeContract.getWbsId()).last("limit 1"));
             if (process != null) {
                 this.excelTabService.gsColor(pkeyId, process.getPKeyId().toString(), wbsTreeContract.getProjectId(), doc);
+                //设置自动获取的单元格添加html标识
+                this.excelTabService.setAutomatic(pkeyId,process.getPKeyId().toString(),doc);
             }
             doc.select("Col").remove();
 

+ 13 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/NodeBaseInfoController.java

@@ -327,7 +327,19 @@ public class NodeBaseInfoController extends BladeController {
 		return R.data(nodeBaseInfoService.getAllNodeBaseInfoByPkeyId(pkeyId,nodeId));
 	}
 
-
+    /**
+     * 需要自动获取
+     */
+    @GetMapping("/clearAutomatic")
+    @ApiOperationSupport(order = 9)
+    @ApiOperation(value = "设置自动获取", notes = "pkeyId表单Id,nodeId节点Id")
+    public R clearAutomatic(@RequestParam Long pkeyId, @RequestParam Long nodeId, @RequestParam(required = false) String paramName) {
+        Boolean b = nodeBaseInfoService.clearAutomatic(pkeyId, nodeId, paramName);
+        if(b){
+            return R.success("设置成功");
+        }
+        return R.fail("失败");
+    }
 
 
 }

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

@@ -231,4 +231,6 @@ public interface IExcelTabService extends BaseService<ExcelTab> {
     Boolean saveExcel(ExcelEditCallback callback);
 
     R getExcelPdf(ExcelEditCallback callback) throws Exception;
+
+    void setAutomatic(Long pkeyId, String string, Document doc);
 }

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

@@ -48,4 +48,6 @@ public interface INodeBaseInfoService extends BaseService<NodeBaseInfo> {
 	Map<String,Object> getAllNodeBaseInfoByPkeyId(Long pkeyId,Long nodeId) throws Exception;
 
 	String getNameRuleByRule(String nameRule, Long pkeyId);
+
+	Boolean clearAutomatic(Long pkeyId, Long nodeId, String paramName);
 }

+ 15 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -1125,6 +1125,21 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         }
     }
 
+    @Override
+    public void setAutomatic(Long pkeyId, String nodeId, Document doc) {
+        //自动获取数据查询
+        try {
+            Map<String, Object> nodeBaseInfo = nodeBaseInfoService.getAllNodeBaseInfoByPkeyId(pkeyId, Long.valueOf(nodeId));
+            nodeBaseInfo.keySet().forEach(key -> {
+                Elements select = doc.select("table").first().select("[keyname=" + key + "]");
+                select.stream().filter(Objects::nonNull).forEach(element -> element.attr("clearAutomatic", "1"));
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
     public Element findParentTd(Element element) {
         Element parent = element.parent();
         while (parent != null && !parent.tagName().equalsIgnoreCase("td")) {

+ 15 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/NodeBaseInfoServiceImpl.java

@@ -481,4 +481,19 @@ public class NodeBaseInfoServiceImpl extends BaseServiceImpl<NodeBaseInfoMapper,
         return result.toString();
     }
 
+    @Override
+    public Boolean clearAutomatic(Long pkeyId, Long nodeId, String paramName) {
+        WbsTreeContract wbsTreeContract = iWbsTreeContractService.getBaseMapper().selectOne(new QueryWrapper<WbsTreeContract>().eq("p_key_id", pkeyId));
+        if (wbsTreeContract.getCopyPkId() ==  null) {
+            wbsTreeContract.setCopyPkId(wbsTreeContract.getPKeyId() + "");
+            iWbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getCopyPkId, wbsTreeContract.getPKeyId()).eq(WbsTreeContract::getPKeyId, wbsTreeContract.getPKeyId()));
+        }
+        ParameterElement element = parameterElementService.getOne(Wrappers.<ParameterElement>lambdaQuery().eq(ParameterElement::getProjectId, wbsTreeContract.getProjectId())
+                .eq(ParameterElement::getContractId, wbsTreeContract.getContractId()).eq(ParameterElement::getType, 3)
+                .eq(ParameterElement::getElementName, paramName).eq(ParameterElement::getNodeId, wbsTreeContract.getCopyPkId()));
+        //软删除
+        return parameterElementService.update(Wrappers.<ParameterElement>update().lambda()
+                .set(ParameterElement::getIsDeleted, 1)
+                .eq(ParameterElement::getId, element.getId()));
+    }
 }