瀏覽代碼

内外页统计,与档案柜

qianxb 1 年之前
父節點
當前提交
24a9cada11
共有 14 個文件被更改,包括 433 次插入256 次删除
  1. 25 0
      blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/CabinetVO.java
  2. 27 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ProjectStatVO.java
  3. 13 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterInventoryVO.java
  4. 12 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java
  5. 2 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.java
  6. 10 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml
  7. 2 0
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java
  8. 259 253
      blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java
  9. 15 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java
  10. 7 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.java
  11. 12 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml
  12. 34 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  13. 7 2
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml
  14. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

+ 25 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/CabinetVO.java

@@ -0,0 +1,25 @@
+package org.springblade.archive.vo;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * @Param   大屏档案柜,单个档案信息
+ * @Author wangwl
+ * @Date 2024/1/30 18:17
+ **/
+@Data
+public class CabinetVO {
+    Long id;
+    String name;
+    String fileNumber;
+    String unit;
+    LocalDate startDate;
+    LocalDate endDate;
+    String storageTime;
+    String secretLevel;
+    String secretLevelValue;
+    String storageTimeValue;
+    String sideNumber;
+}

+ 27 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ProjectStatVO.java

@@ -0,0 +1,27 @@
+package org.springblade.manager.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Param   统计项目的内页外页 档案大屏用
+ * @Author wangwl
+ * @Date 2024/1/30 15:06
+ **/
+@Data
+public class ProjectStatVO {
+    @ApiModelProperty(value = "内页")
+    private StatInfo inner;
+
+    @ApiModelProperty(value = "外业")
+    private StatInfo outer;
+
+    @Data
+    public static class StatInfo{
+        @ApiModelProperty(value = "比例")
+        private Integer ratio;
+
+        @ApiModelProperty(value = "总数")
+        private Integer total;
+    }
+}

+ 13 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterInventoryVO.java

@@ -34,7 +34,7 @@ public class MeterInventoryVO {
     @ApiModelProperty(value = "分解数量")
     @ApiModelProperty(value = "分解数量")
     private BigDecimal resolveTotal;
     private BigDecimal resolveTotal;
 
 
-    @ApiModelProperty(value = "变更后数量")
+    @ApiModelProperty(value = "变更后分解数量")
     private BigDecimal changeTotal;
     private BigDecimal changeTotal;
 
 
     @ApiModelProperty(value = "本期计量数量")
     @ApiModelProperty(value = "本期计量数量")
@@ -52,5 +52,17 @@ public class MeterInventoryVO {
     @ApiModelProperty(value = "其他计量期计量量")
     @ApiModelProperty(value = "其他计量期计量量")
     private BigDecimal otherMeterTotal;
     private BigDecimal otherMeterTotal;
 
 
+    @ApiModelProperty(value = "施工图变更后数量是否大于合同变更后数量:1是0否")
+    private Integer isBuildThanContract;
+
+    @ApiModelProperty(value = "合同段是否允许超计:1是0否")
+    private Integer isContractOver;
+
+    @ApiModelProperty(value = "是否生成划分:1是0否")
+    private Integer isCreateDivide;
+
+    @ApiModelProperty(value = "清单合同变更后数量")
+    private BigDecimal contractChangeAllTotal;
+
 
 
 }
 }

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

@@ -187,6 +187,18 @@ public class ArchivesAutoController extends BladeController {
 		}
 		}
 	}
 	}
 
 
+	@GetMapping("/pageByArchivesAuto2")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "档案柜查询返回当前单位所有档案柜,大屏使用", notes = "传入项目id和单位类型:1建设2监理3施工")
+	@ApiImplicitParams({
+			@ApiImplicitParam(name = "projectId", value = "项目id", required = true),
+			@ApiImplicitParam(name = "type", value = "1建设2监理3施工", required = true)
+	})
+	public R pageByArchivesAuto2(Long projectId,Integer type) {
+		List<List<Map<String, List<CabinetVO>>>> lists = archivesAutoService.getUnitAllCabinet(projectId,type);
+		return R.data(lists);
+	}
+
 	/**
 	/**
 	 * 查询档案里的文件
 	 * 查询档案里的文件
 	 */
 	 */

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

@@ -200,4 +200,6 @@ public interface ArchivesAutoMapper extends BaseMapper<ArchivesAuto> {
     List<ArchiveWarningVO> getRoutingInspection(@Param("projectId") Long projectId,@Param("nodeId") Long nodeId,@Param("rec") Integer rectification);
     List<ArchiveWarningVO> getRoutingInspection(@Param("projectId") Long projectId,@Param("nodeId") Long nodeId,@Param("rec") Integer rectification);
 
 
 	List<ArchiveWarningVO> getSpotCheck(@Param("projectId") Long projectId,@Param("nodeId") Long nodeId);
 	List<ArchiveWarningVO> getSpotCheck(@Param("projectId") Long projectId,@Param("nodeId") Long nodeId);
+
+	List<CabinetVO> getUnitAllCabinet(@Param("projectId") Long projectId,@Param("nodeId") Long nodeId);
 }
 }

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

@@ -1159,6 +1159,16 @@
           and (atc.id = #{nodeId} or FIND_IN_SET(#{nodeId}, atc.ancestors))
           and (atc.id = #{nodeId} or FIND_IN_SET(#{nodeId}, atc.ancestors))
         GROUP by aei.file_id
         GROUP by aei.file_id
     </select>
     </select>
+    <select id="getUnitAllCabinet" resultType="org.springblade.archive.vo.CabinetVO">
+        select uaa.id,uaa.name,uaa.file_number,uaa.unit,uaa.storage_time,uaa.secret_level,uaa.start_date,uaa.end_date
+        from
+        (SELECT id FROM m_archive_tree_contract WHERE project_id =#{projectId}
+        and  ancestors like concat('%',#{nodeId},'%')
+        ) matc left join u_archives_auto uaa on matc.id = uaa.node_id
+        where uaa.is_deleted = 0 and uaa.is_archive = 1
+        GROUP BY uaa.id
+        order by uaa.tree_sort,uaa.auto_file_sort,uaa.file_number asc
+    </select>
 
 
 
 
     <update id="splitFiles">
     <update id="splitFiles">

+ 2 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/service/IArchivesAutoService.java

@@ -149,4 +149,6 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 	ExcelEditCallback callbackSave(ExcelEditCallback callback);
 	ExcelEditCallback callbackSave(ExcelEditCallback callback);
 
 
     IPage<ArchiveWarningVO> warningPage(Query query, ArchiveWarningDTO dto);
     IPage<ArchiveWarningVO> warningPage(Query query, ArchiveWarningDTO dto);
+
+	List<List<Map<String, List<CabinetVO>>>> getUnitAllCabinet(Long projectId, Integer type);
 }
 }

文件差異過大導致無法顯示
+ 259 - 253
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java


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

@@ -37,6 +37,7 @@ import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
 import org.springblade.manager.utils.FileUtils;
 import org.springblade.manager.utils.FileUtils;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.vo.*;
+import org.springblade.meter.entity.MiddleMeterApply;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -697,5 +698,19 @@ public class WbsTreeContractController extends BladeController {
         }
         }
     }
     }
 
 
+    /**
+     * 获取项目内外页台账完成比例
+     * @return
+     */
+    @GetMapping("/getProjectStat")
+    @ApiOperationSupport(order = 40)
+    @ApiOperation(value = "获取项目内外页台账完成比例", notes = "返回内外页台账完成比例")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "projectId", value = "项目id", required = true),
+    })
+    public R<ProjectStatVO> getProjectStat(@RequestParam Long projectId) {
+        return R.data(wbsTreeContractServiceImpl.getProjectStat(projectId));
+    }
+
 
 
 }
 }

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.java

@@ -92,4 +92,11 @@ public interface WbsTreeContractMapper extends EasyBaseMapper<WbsTreeContract> {
     Long getAllTableFileSize(@Param("projectId") Long projectId);
     Long getAllTableFileSize(@Param("projectId") Long projectId);
 
 
     void syncCurrentFormToAllContract(@Param("wbsTreePrivate") WbsTreePrivate wbsTreePrivate);
     void syncCurrentFormToAllContract(@Param("wbsTreePrivate") WbsTreePrivate wbsTreePrivate);
+
+    Integer getProjectAllFillNode(@Param("projectId") Long projectId);
+
+    Integer getAllAppTotal(@Param("projectId")Long projectId);
+
+    Integer getAllAppTotal2(@Param("projectId")Long projectId);
+
 }
 }

+ 12 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -760,4 +760,16 @@
             != ''
             != ''
         GROUP by mwtc.init_table_name );
         GROUP by mwtc.init_table_name );
     </select>
     </select>
+    <select id="getProjectAllFillNode" resultType="java.lang.Integer">
+        select COUNT(1) from m_wbs_tree_contract
+        WHERE project_id = #{projectId} and node_type = 6 and is_deleted = 0
+    </select>
+    <select id="getAllAppTotal" resultType="java.lang.Integer">
+        select COUNT(1) from u_information_query
+        WHERE project_id = #{projectId} and status = 2 and classify = 1 and is_deleted = 0
+    </select>
+    <select id="getAllAppTotal2" resultType="java.lang.Integer">
+        select COUNT(1) from u_construction_ledger
+        WHERE project_id = #{projectId} and is_deleted = 0 and site_end_time &lt; NOW()
+    </select>
 </mapper>
 </mapper>

+ 34 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -57,6 +57,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import java.io.*;
 import java.io.*;
+import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.BigInteger;
 import java.util.*;
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.*;
@@ -2287,4 +2288,37 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         return list;
         return list;
     }
     }
 
 
+    /**
+     * 获取项目内外页台账完成比例
+     * @return
+     */
+    public ProjectStatVO getProjectStat(Long projectId) {
+        ProjectStatVO vo = new ProjectStatVO();
+        ProjectStatVO.StatInfo info1 = new ProjectStatVO.StatInfo();
+        ProjectStatVO.StatInfo info2 = new ProjectStatVO.StatInfo();
+        //获取总填报节点
+        Integer total = baseMapper.getProjectAllFillNode(projectId);
+        if (total == 0){
+            throw new ServiceException("统计内外页,未获取到项目信息");
+        }
+        info1.setTotal(total);
+        info2.setTotal(total);
+        //获取内页资料已审批数量
+        Integer appTotal = baseMapper.getAllAppTotal(projectId);
+        if (appTotal >= total){
+            info1.setRatio(100);
+        }else {
+            info1.setRatio(new BigDecimal(appTotal).divide(new BigDecimal(total),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue());
+        }
+        //获取外业资料已审批数量
+        Integer appTotal2 = baseMapper.getAllAppTotal2(projectId);
+        if (appTotal2 >= total){
+            info2.setRatio(100);
+        }else {
+            info2.setRatio(new BigDecimal(appTotal2).divide(new BigDecimal(total),2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).intValue());
+        }
+        vo.setInner(info1);
+        vo.setOuter(info2);
+        return vo;
+    }
 }
 }

+ 7 - 2
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml

@@ -40,7 +40,7 @@
     <select id="getFormList" resultType="org.springblade.meter.vo.ResolveInventoryVO">
     <select id="getFormList" resultType="org.springblade.meter.vo.ResolveInventoryVO">
         select id,form_number,form_name,current_price,contract_total,change_total,
         select id,form_number,form_name,current_price,contract_total,change_total,
                change_total as buildChangeTotal,
                change_total as buildChangeTotal,
-        (change_total - IFNULL((select sum(build_picture_total) from s_inventory_form_meter where is_deleted = 0 and contract_form_id = cif.id),0)) as resolveResidueTotal
+                (change_total - IFNULL((select sum(build_picture_total) from s_inventory_form_meter where is_deleted = 0 and contract_form_id = cif.id),0)) as resolveResidueTotal
         from s_contract_inventory_form  cif where contract_id = #{contractId} and is_deleted = 0 and is_form_node = 1
         from s_contract_inventory_form  cif where contract_id = #{contractId} and is_deleted = 0 and is_form_node = 1
             AND id in
             AND id in
             <foreach collection="ids" item="id" open="(" separator="," close=")">
             <foreach collection="ids" item="id" open="(" separator="," close=")">
@@ -48,7 +48,9 @@
             </foreach>
             </foreach>
     </select>
     </select>
     <select id="getResolveFormInfo" resultType="org.springblade.meter.vo.MeterInventoryVO">
     <select id="getResolveFormInfo" resultType="org.springblade.meter.vo.MeterInventoryVO">
-        select id,form_number,form_name,current_price,
+        select id,form_number,form_name,current_price,change_total as contractChangeAllTotal,
+               IF (cif.build_change_total is null ,0,1) as isCreateDivide,
+               (select is_over_meter from m_contract_info mci WHERE id = #{contractId}) as isContractOver,
                IFNULL((select sum(change_build_picture_total) from s_inventory_form_meter where is_deleted = 0
                IFNULL((select sum(change_build_picture_total) from s_inventory_form_meter where is_deleted = 0
                     and contract_meter_id = #{nodeId} and contract_form_id = cif.id),0) as change_total,
                     and contract_meter_id = #{nodeId} and contract_form_id = cif.id),0) as change_total,
                IFNULL((select sum(build_picture_total) from s_inventory_form_meter where is_deleted = 0
                IFNULL((select sum(build_picture_total) from s_inventory_form_meter where is_deleted = 0
@@ -122,6 +124,9 @@
                ifa.change_build_picture_total as changeTotal,
                ifa.change_build_picture_total as changeTotal,
                ifa.current_meter_total as currentMeterTotal,0 as containChangeTotal,
                ifa.current_meter_total as currentMeterTotal,0 as containChangeTotal,
                ifa.current_meter_money as currentMeterMoney,
                ifa.current_meter_money as currentMeterMoney,
+               (select cif.change_total  from s_contract_inventory_form cif where cif.id = ifa.contract_form_id ) as contractChangeAllTotal,
+               (select IF (cif.build_change_total is null ,0,1) from s_contract_inventory_form cif where cif.id = ifa.contract_form_id ) as isCreateDivide,
+               (select is_over_meter from m_contract_info mci WHERE id = #{contractId}) as isContractOver,
                (IFNULL((select sum(current_meter_total) from s_inventory_form_apply where is_deleted = 0
                (IFNULL((select sum(current_meter_total) from s_inventory_form_apply where is_deleted = 0
                       and contract_meter_id = #{nodeId} and contract_form_id = ifa.contract_form_id and id != ifa.id),0)) as otherMeterTotal,
                       and contract_meter_id = #{nodeId} and contract_form_id = ifa.contract_form_id and id != ifa.id),0)) as otherMeterTotal,
                (IFNULL((select sum(current_meter_total) from s_inventory_form_apply where is_deleted = 0
                (IFNULL((select sum(current_meter_total) from s_inventory_form_apply where is_deleted = 0

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -125,7 +125,10 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         List<Long> longs = Func.toLongList(ids);
         List<Long> longs = Func.toLongList(ids);
         vos = baseMapper.getResolveFormInfo(contractId,nodeId,longs);
         vos = baseMapper.getResolveFormInfo(contractId,nodeId,longs);
         for (MeterInventoryVO vo : vos) {
         for (MeterInventoryVO vo : vos) {
+            //设置其他计量总数
             vo.setOtherMeterTotal(vo.getAllMeterTotal().subtract(vo.getCurrentMeterTotal()));
             vo.setOtherMeterTotal(vo.getAllMeterTotal().subtract(vo.getCurrentMeterTotal()));
+            //设置施工图数量是否大于合同数量
+            vo.setIsBuildThanContract(vo.getChangeTotal().compareTo(vo.getContainChangeTotal()) == 1?1:0);
         }
         }
         return vos;
         return vos;
     }
     }
@@ -434,6 +437,11 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         MiddleMeterApplyVO vo = baseMapper.getById(id);
         MiddleMeterApplyVO vo = baseMapper.getById(id);
         //获取计量清单列表
         //获取计量清单列表
         List<MeterInventoryVO> formList = baseMapper.getForm(id,vo.getContractId(),vo.getContractUnitId());
         List<MeterInventoryVO> formList = baseMapper.getForm(id,vo.getContractId(),vo.getContractUnitId());
+        //计算分解数量是否超过合同数量
+        for (MeterInventoryVO form : formList) {
+            //设置施工图数量是否大于合同数量
+            form.setIsBuildThanContract(form.getChangeTotal().compareTo(form.getContractChangeAllTotal()) == 1?1:0);
+        }
         vo.setFormList(formList);
         vo.setFormList(formList);
         //获取附件列表
         //获取附件列表
         List<AttachmentForm> list = attachmentFormService.list(new LambdaQueryWrapper<AttachmentForm>()
         List<AttachmentForm> list = attachmentFormService.list(new LambdaQueryWrapper<AttachmentForm>()

部分文件因文件數量過多而無法顯示