Przeglądaj źródła

Merge remote-tracking branch 'origin/test-merge' into test-merge

LHB 1 dzień temu
rodzic
commit
ba46ef41a2

+ 17 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/HideProcess.java

@@ -0,0 +1,17 @@
+package org.springblade.business.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName("m_hide_process")
+public class HideProcess implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+    private Long contractId;
+    private Integer classifyType;
+    private Integer hideType;
+}

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

@@ -1,6 +1,7 @@
 package org.springblade.business.vo;
 
 import io.swagger.annotations.ApiModelProperty;
+import io.swagger.models.auth.In;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -22,8 +23,8 @@ public class MaterialProgressVO {
     @ApiModelProperty("WBS进度")
     private List<TreeMaterialProgress> treeMaterialProgressList = new ArrayList<>();
 
-    public void setProcessMaterialList(String title, Integer amount, Long successAmount) {
-        this.processMaterialList.add(new ProcessMaterial(title, amount, successAmount));
+    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) {
@@ -195,8 +196,12 @@ public class MaterialProgressVO {
         private Long successAmount;
         @ApiModelProperty("完成率")
         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) {
+        public ProcessMaterial(String title, Integer amount, Long successAmount,Integer isHide,Integer hideType) {
             this.title = title;
             this.amount = amount;
             this.successAmount = successAmount;
@@ -206,6 +211,8 @@ public class MaterialProgressVO {
             } else {
                 this.ratio = new BigDecimal("0");
             }
+            this.isHide = isHide;
+            this.hideType = hideType;
         }
 
     }

+ 2 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -5590,13 +5590,13 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			try {
 				url = prefix + URLEncoder.encode(suffix, "UTF-8");
 				// 使用内存限制设置 10MB 主内存
-				MemoryUsageSetting memUsage = MemoryUsageSetting.setupMainMemoryOnly(10_000_000);
+				MemoryUsageSetting memUsage = MemoryUsageSetting.setupMixed(10_000_000);
 				try (InputStream ossIs = CommonUtil.getOSSInputStream(url); PDDocument document = PDDocument.load(ossIs, memUsage);) {
 					PDPage page = document.getPage(0);
 					// 获取pdf 的dpi信息
 					int dpi = (int) (page.getCropBox().getWidth() / page.getTrimBox().getWidth() * 72);
 					if (dpi < 300) {
-						status += "3";
+						status = "";
 					}
 					// todo 检测pdf是否有遮挡或者污渍
 					if (status.isEmpty()) {

+ 11 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -2002,6 +2002,17 @@ public R<Boolean> diySort(@RequestBody DiySortVO vo) {
         if (needCopyNode != null && ObjectUtil.isNotEmpty(needCopyNode.getContractId())) {
             informationQueryService.delAsyncWbsTree(needCopyNode.getContractId());
         }
+        try {
+            JSONObject json = new JSONObject();
+            json.put("operationObjIds", sortLists);
+            json.put("operationObjName", "节点排序");
+            json.put("projectId", needCopyNode == null ? null : needCopyNode.getProjectId());
+            json.put("contractId", needCopyNode == null ? null : needCopyNode.getContractId());
+            json.put("saveData", vo);
+            operationLogClient.saveUserOperationLog(3, "资料管理", "工序资料", json);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
     return R.status(b);
 }

+ 46 - 11
blade-service/blade-business/src/main/java/org/springblade/business/controller/MaterialProgressController.java

@@ -22,11 +22,13 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.StringUtils;
+import org.springblade.business.entity.HideProcess;
 import org.springblade.business.entity.InformationQuery;
 import org.springblade.business.service.IImageClassificationFileService;
 import org.springblade.business.service.IInformationQueryService;
 import org.springblade.business.vo.MaterialProgressVO;
 import org.springblade.business.vo.QueryProcessDataVO;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -41,10 +43,7 @@ import org.springblade.system.entity.Menu;
 import org.springblade.system.entity.RoleMenu;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.Iterator;
@@ -490,7 +489,7 @@ public class MaterialProgressController extends BladeController {
                 }
                 if (countList.size() > 0) {
                     //设置参数
-                    this.setParameter(countList, reVO, classifyType);
+                    this.setParameter(countList, reVO, classifyType,contractId);
                 }
                 filtetDataByRole(contract, reVO,1);
                 return R.data(reVO);
@@ -501,7 +500,7 @@ public class MaterialProgressController extends BladeController {
             List<WbsTreeContract> submitNodeList = this.wbsTreeContractClient.queryContractSubmitWbsTreeByContractId(contractId);
             if (submitNodeList != null && submitNodeList.size() > 0) {
                 //设置参数
-                this.setParameter(submitNodeList, reVO, classifyType);
+                this.setParameter(submitNodeList, reVO, classifyType,contractId);
                 filtetDataByRole(contract, reVO,1);
                 return R.data(reVO);
             }
@@ -513,7 +512,7 @@ public class MaterialProgressController extends BladeController {
     /**
      * 设置参数
      */
-    private void setParameter(List<WbsTreeContract> submitNodeList, MaterialProgressVO reVO, String classifyType) {
+    private void setParameter(List<WbsTreeContract> submitNodeList, MaterialProgressVO reVO, String classifyType,String contractId) {
         classifyType = StringUtils.isEmpty(classifyType) ? "1" : classifyType;
         //汇总四个填报类型的总数
         List<String> process = new ArrayList<>(), workStartReports = new ArrayList<>(), evaluation = new ArrayList<>(), completion = new ArrayList<>();
@@ -541,11 +540,47 @@ public class MaterialProgressController extends BladeController {
         if (completion.size() > 0) {
             completionAmount = this.informationQueryService.count(Wrappers.<InformationQuery>query().select("distinct wbs_id").in("wbs_id", completion).eq("classify", classifyType));
         }
+        String sql="select * from m_hide_process where contract_id= "+contractId+" and classify_type= "+classifyType;
+        List<HideProcess> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HideProcess.class));
+        String hideTypes="";
+        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,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);
+    }
 
-        reVO.setProcessMaterialList("开工报告", workStartReports.size(), workStartReportsAmount);
-        reVO.setProcessMaterialList("工序资料", process.size(), processAmount);
-        reVO.setProcessMaterialList("评定资料", evaluation.size(), evaluationAmount);
-        reVO.setProcessMaterialList("中间交工", completion.size(), completionAmount);
+    /**
+     *
+     * @param contractId
+     * @param classifyType 1施工2监理
+     * @param hideType 1开工报告 2工序资料 3评定资料 4中间交工
+     * @param type 0显示 1隐藏
+     * @return
+     */
+    @GetMapping("/hideProcessMaterial")
+    @ApiOperation(value = "隐藏进度")
+    @ApiOperationSupport(order = 2)
+    private 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;
+            List<HideProcess> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HideProcess.class));
+            if(!list.isEmpty()){
+                String delete="delete from m_hide_process where id="+list.get(0).getId();
+                jdbcTemplate.execute(delete);
+            }
+        }else {
+            String sql="select * from m_hide_process where contract_id= "+contractId+" and classify_type= "+classifyType+" and hide_type= "+hideType;
+            List<HideProcess> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(HideProcess.class));
+            if(list.isEmpty()){
+                String insertSql="insert into m_hide_process(id,contract_id,classify_type,hide_type) values("+ SnowFlakeUtil.getId()+","+contractId+","+classifyType+","+hideType+")";
+                jdbcTemplate.execute(insertSql);
+            }
+        }
+        return R.success("操作成功");
     }
 
     /**

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -98,7 +98,7 @@
         <if test="vo.sourceType != null and vo.sourceType != ''">
             and u.source_type = #{vo.sourceType}
         </if>
-        <if test="vo.isArchive != null and vo.isArchive != ''">
+        <if test="vo.isArchive != null">
             <choose>
                 <when test="vo.isArchive == 0">
                     AND (u.is_archive = #{vo.isArchive} OR u.is_archive IS NULL)
@@ -184,7 +184,7 @@
         <if test="vo.sourceType != null and vo.sourceType != ''">
             and u.source_type = #{vo.sourceType}
         </if>
-        <if test="vo.isArchive != null and vo.isArchive != ''">
+        <if test="vo.isArchive != null">
             <choose>
                 <when test="vo.isArchive == 0">
                     AND (u.is_archive = #{vo.isArchive} OR u.is_archive IS NULL)

+ 6 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/WbsTreeContractStatisticsMapper.xml

@@ -38,6 +38,12 @@
         SET a.leaf_num = ifnull(t.leaf_num, a.leaf_num), a.fill_num = ifnull(t.fill_num, a.fill_num),a.approve_num = ifnull(t.approve_num, a.approve_num),
             a.complete_num = ifnull(t.complete_num, a.complete_num), a.jl_fill_num = ifnull(t.jl_fill_num, a.jl_fill_num), a.jl_approve_num = ifnull(t.jl_approve_num, a.jl_approve_num),
             a.jl_complete_num = ifnull(t.jl_complete_num, a.jl_complete_num), a.is_leaf = if(t.leaf_num > 0, 0, 1);
+        update m_wbs_tree_contract_statistics a set fill_num = 0, approve_num = 0, complete_num = 0, jl_fill_num= 0, jl_approve_num = 0, jl_complete_num = 0
+                                                where (is_leaf = 1 or leaf_num = 0) and is_deleted = 0 and id in (
+        <foreach collection="ids" item="item" separator=",">
+            #{item}
+        </foreach>
+        ) and not exists (SELECT 1 from m_wbs_tree_contract where p_id = a.id and is_deleted = 0);
     </update>
     <select id="getByIdOnLock" resultMap="ResultMap">
         select <include refid="includeSql"/> from m_wbs_tree_contract_statistics where id = #{id} for update

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -250,7 +250,7 @@
     <update id="updateSortById3">
         UPDATE m_wbs_tree_private
         SET sort = #{sort}
-        WHERE id = #{id}
+        WHERE tree_p_id = #{id}
           AND status = 1
           AND is_deleted = 0
     </update>

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

@@ -38,10 +38,7 @@ import org.springblade.business.dto.EKeyDto;
 import org.springblade.business.dto.ImportTreeDto;
 import org.springblade.business.entity.ConstructionLedger;
 import org.springblade.business.entity.InformationQuery;
-import org.springblade.business.feign.ConstructionLedgerFeignClient;
-import org.springblade.business.feign.InformationQueryClient;
-import org.springblade.business.feign.TrialCyAccessoriesClient;
-import org.springblade.business.feign.WbsTreeContractStatisticsClient;
+import org.springblade.business.feign.*;
 import org.springblade.business.vo.QueryProcessDataVO;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.Colour;
@@ -141,6 +138,7 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
     private final WbsTreeContractStatisticsClient wbsTreeContractStatisticsClient;
     private final FormulaDataBlockMapper formulaDataBlockMapper;
     private final WbsTreeContractExtendService wbsTreeContractExtendService;
+    private final OperationLogClient operationLogClient;
 
 
 
@@ -4321,6 +4319,17 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
             this.update(new LambdaUpdateWrapper<WbsTreeContract>()
                     .eq(WbsTreeContract::getPKeyId, dto.getNodeIds())
                     .set(WbsTreeContract::getIsUseSort, 1));
+            try{
+                JSONObject json = new JSONObject();
+                json.put("operationObjIds", Collections.singletonList(dto.getNodeIds()));
+                json.put("operationObjName", "表单排序");
+                json.put("projectId", dto.getProjectId());
+                json.put("contractId", dto.getContractId());
+                json.put("saveData", dto);
+                operationLogClient.saveUserOperationLog(3, "资料管理", "工序资料", json);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         } else {
             throw new ServiceException("请传入ids");
         }

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -428,6 +428,13 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                         .eq(WbsTreeContract::getProjectId, projectId)
                         .eq(WbsTreeContract::getOldId, id)
                 );
+                //修改项目中对应合同段节点
+                wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate()
+                        .set(WbsTreeContract::getSort, number)
+                        .eq(WbsTreeContract::getWbsId, wbsId)
+                        .eq(WbsTreeContract::getProjectId, projectId)
+                        .eq(WbsTreeContract::getIsTypePrivatePid, objPrivate.getPKeyId())
+                );
             }
             number++;
         }

+ 5 - 0
blade-service/blade-user/pom.xml

@@ -93,6 +93,11 @@
             <artifactId>commons-io</artifactId>
             <version>2.18.0</version>
         </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml-schemas</artifactId>
+            <version>4.1.2</version>
+        </dependency>
 
     </dependencies>