瀏覽代碼

Merge remote-tracking branch 'origin/master' into master

yangyj 1 年之前
父節點
當前提交
90539678e6

+ 2 - 0
blade-service-api/blade-archive-api/src/main/java/org/springblade/archive/vo/ArchivesAutoVO2.java

@@ -30,4 +30,6 @@ public class ArchivesAutoVO2  {
 
     private Integer pageN;
 
+    private String ancestors;
+
 }

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

@@ -1036,7 +1036,7 @@
     </select>
     <select id="getUnitAllArchive2" resultType="org.springblade.archive.vo.ArchivesAutoVO2">
         select
-               SUBSTRING_INDEX(SUBSTRING_INDEX(matc.ancestors,",",#{grade}),",",-1) as masterNode,
+               concat(matc.ancestors,',',matc.id)  as ancestors,
                uaa.id,uaa.name,uaa.page_n ,uaa.remark ,uaa.file_number,
                 (select bdb.dict_value  from blade_dict_biz bdb WHERE bdb.is_sealed = 0 and bdb.code = 'storage_period' and bdb.dict_key = uaa.storage_time limit 1 ) as storageTimeValue
         from m_archive_tree_contract matc right join u_archives_auto uaa on matc.id = uaa.node_id

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

@@ -2769,13 +2769,21 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		}
 		List<ArchiveInspectPreviewVO.NodeList> nodeLists = new ArrayList<>();
 		//档案按照二级节点分组
-		Map<Long, List<ArchivesAutoVO2>> archiveMap = unitAllArchive.stream().collect(Collectors.groupingBy(ArchivesAutoVO2::getMasterNode));
+//		Map<Long, List<ArchivesAutoVO2>> archiveMap = unitAllArchive.stream().collect(Collectors.groupingBy(ArchivesAutoVO2::getMasterNode));
 		//循环二级节点,分别统计档案数据,把档案设置进结果集
 		for (ArchiveTreeContract unitNode : unitNodes) {
 			//获取节点名称
 			String nodeName = unitNode.getNodeName();
 			//获取节点档案
-			List<ArchivesAutoVO2> list = archiveMap.get(unitNode.getId());
+			Iterator<ArchivesAutoVO2> iterator = unitAllArchive.iterator();
+			List<ArchivesAutoVO2> list = new ArrayList<>();
+			while(iterator.hasNext()){
+				ArchivesAutoVO2 vo2 = iterator.next();
+				if (vo2.getAncestors().contains(unitNode.getId()+"")){
+					list.add(vo2);
+					iterator.remove();
+				}
+			}
 			ArchiveInspectPreviewVO.NodeList nodeList = new ArchiveInspectPreviewVO.NodeList();
 			if (list == null || list.size() == 0) {
 				//如果档案为空,直接设置名称跳出

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

@@ -19,6 +19,7 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.WbsTreeContractClient;
@@ -119,7 +120,7 @@ public class ConstructionLedgerController extends BladeController {
         }
 
         List<QueryProcessDataVO> queryDataResult;
-        if (!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())) {
+        if (!new Integer("6").equals(node.getNodeType()) && ObjectUtil.isNotEmpty(node.getMajorDataType())  && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())) {
             //非填报节点
             queryDataResult = this.informationQueryService.queryProcessDataByParentIdAndContractId(node.getId().toString(), 1, vo.getContractId().toString());
         } else {

+ 13 - 13
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -220,23 +220,23 @@ public class ImageClassificationFileController extends BladeController {
                                                 picture.resize();
 
                                                 //图片定位
-                                                FileUtils.imageOrientation(sheet, anchor, i == 1 ? new DataVO(1, 28) : new DataVO(0, 0));
+                                                FileUtils.imageOrientation(sheet, anchor, i == 1 ? new DataVO(1, 8) : new DataVO(0, 0));
 
                                                 //定位其它信息
                                                 //文字说明
-                                                sheet.getRow(i == 0 ? 1 : 29).getCell(i == 0 ? 5 : 0).setCellValue(file.getTextContent());
+                                                sheet.getRow(i == 0 ? 0 : 6).getCell(i == 0 ? 3 : 0).setCellValue("文字说明:\n" + "  " + file.getTextContent());
                                                 //照片号
-                                                sheet.getRow(i == 0 ? 11 : 39).getCell(i == 0 ? 5 : 0).setCellValue(file.getPhotoCode());
+                                                sheet.getRow(i == 0 ? 1 : 7).getCell(i == 0 ? 3 : 0).setCellValue("照片号:\n" + "  " + file.getPhotoCode());
                                                 //底片号
-                                                sheet.getRow(i == 0 ? 17 : 45).getCell(i == 0 ? 5 : 0).setCellValue(file.getFilmCode());
+                                                sheet.getRow(i == 0 ? 2 : 8).getCell(i == 0 ? 3 : 0).setCellValue("底片号:\n" + "  " + file.getFilmCode());
                                                 //题名
-                                                sheet.getRow(i == 0 ? 23 : 51).getCell(i == 0 ? 0 : 3).setCellValue(file.getTitle());
+                                                sheet.getRow(i == 0 ? 3 : 9).getCell(i == 0 ? 0 : 2).setCellValue("题名:\n" + "  " + file.getTitle());
                                                 //参见号
-                                                sheet.getRow(i == 0 ? 23 : 51).getCell(i == 0 ? 3 : 0).setCellValue(file.getSeeAlsoCode());
+                                                sheet.getRow(i == 0 ? 3 : 9).getCell(i == 0 ? 2 : 0).setCellValue("参见号:\n" + "  " + file.getSeeAlsoCode());
                                                 //拍摄时间
-                                                sheet.getRow(i == 0 ? 25 : 53).getCell(i == 0 ? 3 : 0).setCellValue(DateUtil.format(file.getShootingTime(), "yyyy-MM-dd"));
+                                                sheet.getRow(i == 0 ? 4 : 10).getCell(i == 0 ? 2 : 0).setCellValue("拍摄时间:\n" + "  " + DateUtil.format(file.getShootingTime(), "yyyy-MM-dd"));
                                                 //拍摄者
-                                                sheet.getRow(i == 0 ? 27 : 55).getCell(i == 0 ? 3 : 0).setCellValue(file.getShootingUser());
+                                                sheet.getRow(i == 0 ? 5 : 11).getCell(i == 0 ? 2 : 0).setCellValue("拍摄者:\n" + "  " + file.getShootingUser());
 
                                             } catch (Exception e) {
                                                 e.printStackTrace();
@@ -792,18 +792,18 @@ public class ImageClassificationFileController extends BladeController {
      * 写这个方法是因为声像资料同步那边,一定要有可以预览的东西,
      * 以前的逻辑是有前端点击查看按钮时,才会根据type等条件调用preview()这个方法
      */
-    private void generateMergePdfUrl(Boolean flag, ImageClassificationFile newFile){
-        if(true){
+    private void generateMergePdfUrl(Boolean flag, ImageClassificationFile newFile) {
+        if (true) {
             // 文件类型为图片时
-            if(newFile.getType() == 2){
+            if (newFile.getType() == 2) {
                 // 生成合并的pdfUrl
                 R<String> preview = preview(newFile.getId().toString());
-                if(preview.getCode() == ResultCode.SUCCESS.getCode()){
+                if (preview.getCode() == ResultCode.SUCCESS.getCode()) {
                     // 获得合并后的pdfUrl
                     /**后续要多注意preview()这个方法所返回回来的值,现在固定的返回集合中的第一个**/
                     String data = preview.getData();
                     // 获取pdf页码
-                    String pdfPage  = commonFileClient.getPdfNum(data);
+                    String pdfPage = commonFileClient.getPdfNum(data);
                     // 更新mergePdfUrl
                     this.imageClassificationFileService.update(Wrappers.<ImageClassificationFile>lambdaUpdate()
                             .set(ImageClassificationFile::getMargePdfUrl, preview.getData())

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

@@ -3796,6 +3796,7 @@ public class InformationWriteQueryController extends BladeController {
             obj.setStatus(1);
             obj.setIsDeleted(0);
             obj.setIsCustom(1);
+            obj.setMajorDataType(0);
 
             if (ObjectUtil.isNotEmpty(SecureUtil.getUser())) {
                 obj.setCreateUser(SecureUtil.getUserId());

+ 4 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/NeiYeController.java

@@ -19,6 +19,7 @@ import org.springblade.business.vo.QueryProcessDataVO;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.ContractClient;
@@ -84,9 +85,9 @@ public class NeiYeController {
                 node = this.wbsTreeContractClient.getContractWbsTreeByContractIdAndId(Long.parseLong(queryVO.getWbsIds().get(0)), Long.parseLong(contractId));
             }
             //不是工序,则查询当前节点下的所有填报节点
-            List<QueryProcessDataVO> queryDataResult = new ArrayList<>();
+            List<QueryProcessDataVO> queryDataResult;
             //有些填报节点的MajorDataType为0
-            if (!new Integer("6").equals(node.getNodeType()) && !Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())
+            if (!new Integer("6").equals(node.getNodeType()) && ObjectUtil.isNotEmpty(node.getMajorDataType()) &&!Arrays.asList("1,2,3,4".split(",")).contains(node.getMajorDataType().toString())
                     && !node.getNodeName().contains("开工报告") && !node.getNodeName().contains("质量检验评定表")) {
                 //非填报节点
                 if (node.getParentId() == 0) {
@@ -105,7 +106,7 @@ public class NeiYeController {
                 //判断是否关联工程部位
                 String sql = "select quality_node_id from u_trial_self_quality_project";
                 List<String> stringList = jdbcTemplate.queryForList(sql, String.class);
-                if (stringList != null && stringList.size() > 0) {
+                if (stringList.size() > 0) {
                     queryDataResult.stream().forEach(qdr -> {
                         if (stringList.contains(qdr.getPrimaryKeyId())) {
                             qdr.setIsExperiment("true");

+ 20 - 6
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -131,19 +131,33 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         List<ArchiveFileVO> list = fileMapper.getAllArchiveFileByContractType(projectId);
         List<ContractInfo> infos = contractClient.queryContractListByIds(Arrays.asList(projectId));
         int key1 = 0, key2 = 0, key3 = 0;
+        int key4 = 0, key5 = 0, key6 = 0;
         //判断文件属于1施工,2监理,还是3业主
         if (list != null && list.size() > 0) {
             for (ArchiveFileVO l : list) {
                 String type = l.getContractType();
                 if (StringUtils.isBlank(type)) {
                     //业主
-                    key3++;
+                    if (l.getSourceType() != null && l.getSourceType() == 1){
+                        key4++;
+                    }else {
+                        key3++;
+                    }
                 } else if ("S".equals(type)) {
                     //监理
-                    key2++;
+                    if (l.getSourceType() != null && l.getSourceType() == 1){
+                        key5++;
+                    }else {
+                        key2++;
+                    }
+
                 } else if ("C".equals(type)) {
                     //施工
-                    key1++;
+                    if (l.getSourceType() != null && l.getSourceType() == 1){
+                        key6++;
+                    }else {
+                        key1++;
+                    }
                 } else if (type.length() > 10) {
                     for (ContractInfo info : infos) {
                         if (type.equals(info.getId() + "")) {
@@ -197,15 +211,15 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         List<Map<String, Object>> mapList = new ArrayList<>();
         Map<String, Object> map = new HashMap<>();
         map.put("title", "施工");
-        map.put("key1", 0);
+        map.put("key1", key6);
         map.put("key2", key1);
         Map<String, Object> map2 = new HashMap<>();
         map2.put("title", "监理");
-        map2.put("key1", 0);
+        map2.put("key1", key5);
         map2.put("key2", key2);
         Map<String, Object> map3 = new HashMap<>();
         map3.put("title", "业主");
-        map3.put("key1", 0);
+        map3.put("key1", key4);
         map3.put("key2", key3);
         mapList.add(map);
         mapList.add(map2);

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

@@ -18,6 +18,7 @@ package org.springblade.meter.mapper;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.manager.entity.ContractInfo;
 import org.springblade.meter.entity.ChangeTokenForm;
 import org.springblade.meter.entity.ChangeTokenMeter;
 import org.springblade.meter.entity.MeterTreeContract;
@@ -60,7 +61,7 @@ public interface MiddleMeterApplyMapper extends BaseMapper<MiddleMeterApply> {
 
     ChangeTokenForm getTokenById(@Param("id") Long id);
 
-    String getContractInfo(@Param("contractId") Long contractId);
+    ContractInfo getContractInfo(@Param("contractId") Long contractId);
 
     Integer getNodeChild(@Param("contractId") Long contractId,@Param("nodeId") Long contractUnitId);
 

+ 4 - 3
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MiddleMeterApplyMapper.xml

@@ -154,9 +154,7 @@
         select *
         from s_change_token_form where id = #{id}
     </select>
-    <select id="getContractInfo" resultType="java.lang.String">
-        select contract_number from m_contract_info where id = #{contractId}
-    </select>
+
     <select id="getNodeChild" resultType="java.lang.Integer">
         select count(1) from s_meter_tree_contract where contract_id = #{contractId} and parent_id = #{nodeId} and is_deleted = 0
     </select>
@@ -222,6 +220,9 @@
             #{id}
         </foreach>
     </select>
+    <select id="getContractInfo" resultType="org.springblade.manager.entity.ContractInfo">
+        select * from m_contract_info where id = #{contractId}
+    </select>
 
 
 </mapper>

+ 34 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MiddleMeterApplyServiceImpl.java

@@ -27,6 +27,7 @@ import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.manager.entity.ContractInfo;
 import org.springblade.meter.dto.MiddleMeterApplyDTO;
 import org.springblade.meter.entity.*;
 import org.springblade.meter.mapper.MiddleMeterApplyMapper;
@@ -162,9 +163,25 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         //保存计量清单
         List<MeterInventoryVO> formList = dto.getFormList();
          if (formList.size() != 0){
+             //获取合同段信息
+             ContractInfo info = baseMapper.getContractInfo(dto.getContractId());
+             if (info == null || info.getIsOverMeter() == null){
+                 throw new ServiceException("未获取到合同段信息,保存失败");
+             }
+             //如果没有则
              BigDecimal big = new BigDecimal(0);
              //保存清单
             List<InventoryFormApply> formApplies = formList.stream().map(l -> {
+                //校验数据
+                if (l.getIsBuildThanContract() == 1){
+                    if (info.getIsOverMeter() == 0 || l.getIsCreateDivide() == 0){
+                        throw new ServiceException("施工图数量未大于合同数量,保存失败");
+                    }
+                }else {
+                    if (l.getAllMeterTotal().compareTo(l.getChangeTotal()) == 1 && info.getIsOverMeter() == 0){
+                        throw new ServiceException("计量量超出施工图数量,保存失败");
+                    }
+                }
                 InventoryFormApply formApply = new InventoryFormApply();
                 formApply.setBusinessDate(dto.getBusinessDate());
                 formApply.setProjectId(dto.getProjectId());
@@ -294,9 +311,24 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
         //删除当前节点本期清单
         inventoryFormApplyService.deleteByMiddleId(dto.getId());
         if (formList.size() != 0){
+            //获取合同段信息
+            ContractInfo info = baseMapper.getContractInfo(dto.getContractId());
+            if (info == null || info.getIsOverMeter() == null){
+                throw new ServiceException("未获取到合同段信息,保存失败");
+            }
             BigDecimal big = new BigDecimal(0);
             //保存清单
             List<InventoryFormApply> formApplies = formList.stream().map(l -> {
+                //校验数据
+                if (l.getIsBuildThanContract() == 1){
+                    if (info.getIsOverMeter() == 0 || l.getIsCreateDivide() == 0){
+                        throw new ServiceException("施工图数量未大于合同数量,保存失败");
+                    }
+                }else {
+                    if (l.getAllMeterTotal().compareTo(l.getChangeTotal()) == 1 && info.getIsOverMeter() == 0){
+                        throw new ServiceException("计量量超出施工图数量,保存失败");
+                    }
+                }
                 InventoryFormApply formApply = new InventoryFormApply();
                 formApply.setBusinessDate(dto.getBusinessDate());
                 formApply.setProjectId(dto.getProjectId());
@@ -458,7 +490,8 @@ public class MiddleMeterApplyServiceImpl extends BaseServiceImpl<MiddleMeterAppl
     public String getMeterNumber(MiddleMeterApply apply) {
         StringBuilder str = new StringBuilder();
         //获取合同信息
-        String contractNumber = baseMapper.getContractInfo(apply.getContractId());
+        ContractInfo info = baseMapper.getContractInfo(apply.getContractId());
+        String contractNumber = info.getContractNumber();
         if (StringUtils.isBlank(contractNumber)){
             throw new ServiceException("未获取到当前合同段编号信息");
         }