Kaynağa Gözat

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

lvy 4 gün önce
ebeveyn
işleme
58a5e3fd7f

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

@@ -508,4 +508,14 @@ public class ArchiveFileController extends BladeController {
         FindAndReplaceDto1 dto1 = new FindAndReplaceDto1(dto, archiveFiles);
         return R.status(archiveFileClient.findAndReplace(dto1));
     }
+    @PostMapping("/sumPageTotal")
+    @ApiOperationSupport(order = 19)
+    @ApiOperation(value = "统计页数")
+    public R sumPageTotal(@RequestBody List<Integer>list){
+        if(!list.isEmpty()){
+            return R.data(list.stream().mapToInt(Integer::intValue).sum());
+        }else {
+            return R.data(0);
+        }
+    }
 }

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

@@ -1317,4 +1317,19 @@ public class ArchivesAutoController extends BladeController {
 		return R.status(true);
 	}
 
+
+	/**
+	 *	案卷并卷后推荐名称
+	 *	项目名称+合同段编号+多个文件名称(去掉项目名称+合同段编号+案卷后缀)去重以、号拼接+案卷后缀
+	 */
+	@PostMapping("/jointNomination")
+	@ApiOperationSupport(order = 44)
+	@ApiModelProperty(value = "案卷并卷后推荐名称")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "authId", value = "案卷Id", required = true)
+	})
+	public R jointNomination(String authId){
+		return R.data(archivesAutoService.jointNomination(Arrays.asList(authId.split(","))));
+	}
+
 }

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

@@ -192,4 +192,7 @@ public interface IArchivesAutoService extends BaseService<ArchivesAuto> {
 
 	void reCreateArchiveAuto2(List<ArchivesAuto> archivesAutoList, String ids, String name);
 	void checkFileInfo(List<String> ids);
+
+
+    String jointNomination(List<String> authId);
 }

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

@@ -5618,6 +5618,54 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			}
 		}
 	}
+
+	@Override
+	public String jointNomination(List<String> authId) {
+		StringBuilder sb = new StringBuilder();
+		//案卷信息  案卷名称
+		List<ArchivesAuto> archivesAutos = this.listByIds(authId);
+		if(CollectionUtils.isNotEmpty(archivesAutos)){
+			//案卷后缀
+			String suffix = "";
+
+			ArchivesAuto archivesAuto = archivesAutos.get(0);
+			//获取项目信息和合同段信息
+			ProjectInfo byId = projectClient.getById(archivesAuto.getProjectId().toString());
+			sb.append(byId.getProjectName());
+			ContractInfo contractById = contractClient.getContractById(archivesAuto.getContractId());
+			sb.append(contractById.getContractNumber());
+			//获取节点信息  文件后缀
+			List<Long> collect1 = archivesAutos.stream().map(ArchivesAuto::getNodeId).collect(Collectors.toList());
+			List<ArchiveTreeContract> archiveTreeContractListByList = archiveTreeContractClient.getArchiveTreeContractListByList(collect1);
+			//获取第一个文件后缀
+			archiveTreeContractListByList = archiveTreeContractListByList.stream().filter(f -> StringUtils.isNotEmpty(f.getArchiveNameSuffix())).collect(Collectors.toList());
+			//id 与 文件后缀的映射关系
+			Map<Long, String> map = archiveTreeContractListByList.stream().collect(Collectors.toMap(ArchiveTreeContract::getId, ArchiveTreeContract::getArchiveNameSuffix));
+			if(CollectionUtils.isNotEmpty(archiveTreeContractListByList)){
+				ArchiveTreeContract archiveTreeContract = archiveTreeContractListByList.get(0);
+				suffix = archiveTreeContract.getArchiveNameSuffix();
+			}
+			List<String> strings = new ArrayList<>();
+			archivesAutos.forEach(f->{
+				//当前案卷所属节点的文件后缀
+				String s = map.get(f.getNodeId());
+				//案卷名称
+				String name = f.getName();
+
+				String newName = name.replace(sb, "");
+				if(s != null){
+					newName = newName.replace(s,"");
+				}
+				strings.add(newName);
+			});
+			//名称去重
+			List<String> distinctList = strings.stream()
+					.distinct()
+					.collect(Collectors.toList());
+			sb.append(StringUtils.join(distinctList,"、")).append(suffix);
+		}
+		return sb.toString();
+	}
 }
 
 

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialCyFinishTestReportMapper.xml

@@ -34,6 +34,7 @@
                 AND reportNo like concat('%',#{query.reportNo},'%')
             </if>
         </where>
+        ORDER BY reportDate DESC
     </select>
     <select id="selectViewPdfList" resultType="java.lang.String">
         select

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

@@ -1694,6 +1694,9 @@ public class CustomFunction {
             Integer type = RandomNumberHolder.getRandomTemplateType();
             if(type==null||type==1){
                 for (Integer i : index) {
+                    if (i < nodes.size()) {
+                        continue;
+                    }
                     boolean isExist = false;
                     //获取当前节点的名称
                     String title = nodes.get(i);

+ 5 - 5
blade-service/blade-manager/src/main/java/org/springblade/manager/formula/impl/ExecutorMeter.java

@@ -1107,12 +1107,12 @@ public class ExecutorMeter extends FormulaExecutor {
                             .add(BaseUtils.str2BigDecimal(StringUtils.handleNull(change.getChangeEndPeriodUnit())));
                     if(addTotal.compareTo(BigDecimal.ZERO)!=0){
                         change.setAfterChangePeriodUnit(addTotal.stripTrailingZeros().toPlainString());
-                        if(inventory.getCurrentPrice().compareTo(BigDecimal.ZERO)!=0){
-                            BigDecimal multiplyMoney = addTotal.multiply(inventory.getCurrentPrice());
-                            /*到本期末变更后(金额)*/
-                            change.setAfterChangePeriodAmount(multiplyMoney.stripTrailingZeros().toPlainString());
-                        }
                     }
+                    /*到本期末变更后(金额)*/
+                    //合同清单数量(金额)+到本期末变更累计(金额)
+                    BigDecimal contractAmount = BaseUtils.str2BigDecimal(StringUtils.handleNull(change.getContractInventoryAmount()));
+                    BigDecimal changeEndAmount = BaseUtils.str2BigDecimal(StringUtils.handleNull(change.getChangeEndPeriodAmount()));
+                    change.setAfterChangePeriodAmount(contractAmount.add(changeEndAmount).stripTrailingZeros().toPlainString());
                     dataList.add(change);
                 }
                 if(!dataList.isEmpty()){

+ 32 - 30
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -2987,37 +2987,39 @@ public class WbsTreeContractServiceImpl extends BaseServiceImpl<WbsTreeContractM
         try (InputStream inputStream = file.getInputStream()) {
             // 立即处理文件流
             Workbook workbook = new XSSFWorkbook(inputStream);
-            Sheet sheet = workbook.getSheetAt(0);
-            // 处理Excel数据...
-            unmergeCells(sheet);
             List<ImportTreeDto> list = new ArrayList<>();
-            for (int i = 2; i <= sheet.getLastRowNum(); i++) {
-                Row row = sheet.getRow(i);
-                if (row == null) continue;
-//                if(StringUtils.isEmpty(getCellValue(row.getCell(1)))){
-//                    throw new ServerException("单位工程类型名称不能为空");
-//                }
-//                if(StringUtils.isEmpty(getCellValue(row.getCell(3)))){
-//                    throw new ServerException("单位工程名称不能为空");
-//                }
-//                if(StringUtils.isEmpty(getCellValue(row.getCell(5)))){
-//                    throw new ServerException("分部工程名称不能为空");
-//                }
-                // 获取每一列的值
-                String unitCode = getCellValue(row.getCell(0)); // A列:单位工程编号
-                String unitName = getCellValue(row.getCell(1)); // B列:单位工程名称
-                String subUnitCode = getCellValue(row.getCell(2)); // C列:子单位工程编号
-                String subUnitName = getCellValue(row.getCell(3)); // D列:子单位工程名称
-                String divisionCode = getCellValue(row.getCell(4)); // E列:分部工程编号
-                String divisionName = getCellValue(row.getCell(5)); // F列:分部工程名称
-                String subDivisionCode = getCellValue(row.getCell(6)); // G列:子分部工程编号
-                String subDivisionName = getCellValue(row.getCell(7)); // H列:子分部工程名称
-                String itemCode = getCellValue(row.getCell(8)); // I列:分项工程编号
-                String itemName = getCellValue(row.getCell(9)); // J列:分项工程名称
-                String subItemCode = getCellValue(row.getCell(10));// K列:子分项工程编号
-                String subItemName = getCellValue(row.getCell(11)); // L列:子分项工程名称
-                ImportTreeDto dto = new ImportTreeDto(unitName, unitCode, 1, StringUtils.isEmpty(unitName), subUnitName, subUnitCode, 18, StringUtils.isEmpty(subUnitName), divisionName, divisionCode, 2, StringUtils.isEmpty(divisionName), subDivisionName, subDivisionCode, 3, StringUtils.isEmpty(subDivisionName), itemName, itemCode, 4, StringUtils.isEmpty(itemName), subItemName, subItemCode, 5, StringUtils.isEmpty(subItemName));
-                list.add(dto);
+            // 遍历所有工作表
+            for (int sheetIndex = 0; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++) {
+                Sheet sheet = workbook.getSheetAt(sheetIndex);
+                // 处理Excel数据...
+                unmergeCells(sheet);
+                for (int i = 2; i <= sheet.getLastRowNum(); i++) {
+                    Row row = sheet.getRow(i);
+                    if (row == null) continue;
+                    // 获取每一列的值
+                    String unitCode = getCellValue(row.getCell(0)); // A列:单位工程编号
+                    String unitName = getCellValue(row.getCell(1)); // B列:单位工程名称
+                    String subUnitCode = getCellValue(row.getCell(2)); // C列:子单位工程编号
+                    String subUnitName = getCellValue(row.getCell(3)); // D列:子单位工程名称
+                    String divisionCode = getCellValue(row.getCell(4)); // E列:分部工程编号
+                    String divisionName = getCellValue(row.getCell(5)); // F列:分部工程名称
+                    String subDivisionCode = getCellValue(row.getCell(6)); // G列:子分部工程编号
+                    String subDivisionName = getCellValue(row.getCell(7)); // H列:子分部工程名称
+                    String itemCode = getCellValue(row.getCell(8)); // I列:分项工程编号
+                    String itemName = getCellValue(row.getCell(9)); // J列:分项工程名称
+                    String subItemCode = getCellValue(row.getCell(10));// K列:子分项工程编号
+                    String subItemName = getCellValue(row.getCell(11)); // L列:子分项工程名称
+
+                    ImportTreeDto dto = new ImportTreeDto(
+                            unitName, unitCode, 1, StringUtils.isEmpty(unitName),
+                            subUnitName, subUnitCode, 18, StringUtils.isEmpty(subUnitName),
+                            divisionName, divisionCode, 2, StringUtils.isEmpty(divisionName),
+                            subDivisionName, subDivisionCode, 3, StringUtils.isEmpty(subDivisionName),
+                            itemName, itemCode, 4, StringUtils.isEmpty(itemName),
+                            subItemName, subItemCode, 5, StringUtils.isEmpty(subItemName)
+                    );
+                    list.add(dto);
+                }
             }
             if (list.isEmpty()) {
                 throw new ServiceException("导入模版为空,请先填写数据");