Browse Source

9999999999

zhoulisky 5 months ago
parent
commit
d39ce3d1b1

+ 2 - 1
kd-service-api/kd-scientific-api/src/main/java/org/sky/scientific/pojo/entity/YsZbtsysyfyEntity.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.EqualsAndHashCode;
 import org.sky.core.tenant.mp.TenantEntity;
 import java.io.Serial;
+import java.math.BigDecimal;
 
 /**
  * 项目预算-装备调试费用与试验费用 实体类
@@ -35,6 +36,6 @@ public class YsZbtsysyfyEntity extends TenantEntity {
 
 	@NotNull(message = "请填写预算金额")
 	@Schema(description = "预算金额")
-	private Double ysje;
+	private BigDecimal ysje;
 
 }

+ 2 - 1
kd-service/kd-scientific/src/main/java/org/sky/scientific/excel/YsZbtsysyfyExcel.java

@@ -9,6 +9,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 
 /**
@@ -32,5 +33,5 @@ public class YsZbtsysyfyExcel implements Serializable {
 
  	@Schema(description = "预算金额/万元")
 	@NotNull(message = "预算金额/万元不能为空")
-	private Double ysje;
+	private BigDecimal ysje;
 }

+ 3 - 2
kd-service/kd-scientific/src/main/java/org/sky/scientific/excel/listener/YsZbtsysyfyImportListener.java

@@ -8,6 +8,7 @@ import org.sky.scientific.excel.YsZbtsysyfyExcel;
 import org.sky.scientific.utils.ImportResult;
 import org.sky.scientific.utils.ValidationUtils;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -39,11 +40,11 @@ public class YsZbtsysyfyImportListener extends BaseReadListener {
 		excel.setFyje(data.get(1));
 		String ysje = data.get(3);
 		if(Func.isNotBlank(ysje)){
-			excel.setYsje(ValidationUtils.safeParseDouble(ysje));
+			excel.setYsje(ValidationUtils.safeParseBigDecimal(ysje));
 			if (Func.isNull(excel.getYsje())) {
 				errors.add("预算金额/万元数据格式错误");
 			}else {
-				excel.setYsje(excel.getYsje() * 10000);
+				excel.setYsje(excel.getYsje().multiply(BigDecimal.valueOf(10000)));
 			}
 		}
 

+ 6 - 5
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/ArchiveServiceImpl.java

@@ -306,7 +306,8 @@ public class ArchiveServiceImpl implements IArchiveService {
 		if (archiveAttach == null) {
 			archiveAttach = new ArchiveAttachEntity();
 		}
-		Path basePath = Paths.get(archiveDir, UUID.randomUUID().toString(), SecureUtil.getTenantId(), year, dir);
+//		Path basePath = Paths.get(archiveDir, UUID.randomUUID().toString(), SecureUtil.getTenantId(), year, dir);
+		Path basePath = Paths.get(archiveDir, UUID.randomUUID().toString());
 		if (FileUtil.exist(basePath.toString())) {
 			FileUtil.del(basePath.toString());
 		}
@@ -509,9 +510,9 @@ public class ArchiveServiceImpl implements IArchiveService {
 		log.info("一键导出耗时:{}", (new Date().getTime() - date.getTime()) / 1000 + "秒");
 
 
-		String zipPath = basePath + ".zip";
+		Path zipPath = Paths.get(archiveDir,year+"年" + dir + ".zip");
 		try {
-			ZipUtil.zip(basePath.toString(), zipPath);
+			ZipUtil.zip(basePath.toString(), zipPath.toString());
 		} catch (IORuntimeException e) {
 			log.error("创建zip文件失败,{}", e.getLocalizedMessage());
 		}
@@ -520,8 +521,8 @@ public class ArchiveServiceImpl implements IArchiveService {
 		//设置任务状态为 已完成
 			task.setStatus(2);
 			task.setDoneTime(new Date());
- 			task.setZipUrl(zipPath);
-		task.setFileSize(FileUtil.size(FileUtil.file(zipPath)));
+ 			task.setZipUrl(zipPath.toString());
+		task.setFileSize(FileUtil.size(FileUtil.file(zipPath.toString())));
 		downloadTaskMapper.updateById(task);
 	}
 

+ 10 - 4
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/YsWxzctxfyServiceImpl.java

@@ -132,19 +132,25 @@ public class YsWxzctxfyServiceImpl extends BaseServiceImpl<YsWxzctxfyMapper, YsW
 			YsWxzctxfyEntity entity = new YsWxzctxfyEntity();
 			entity.setXmId(xmId);
 
-			List<Long> list = dbAssetList.stream()
+			List<AssetEntity> list = dbAssetList.stream()
 				.filter(asset -> Func.equals(asset.getZcmc(), excel.getZcmc()))
-				.map(AssetEntity::getId).toList();
+				 .toList();
 			if (Func.isEmpty(list)) {
 				throw new ServiceException("资产[" + excel.getZcmc() + "]不存在");
 			}
 
-			if (dbYsList.stream().anyMatch(ys -> Func.equals(ys.getAssetId(), list.get(0)))) {
+			AssetEntity dbAsset = list.get(0);
+			if(AssetServiceImpl.isFixedAsset(dbAsset.getZclb())){
+				throw new ServiceException("不能导入仪器设备/房屋建筑物,请检查模板数据");
+			}
+
+			Long assetId = dbAsset.getId();
+			if (dbYsList.stream().anyMatch(ys -> Func.equals(ys.getAssetId(), assetId))) {
 				throw new ServiceException("序号[" + excel.getXh() + "]的资产已在预算表中");
 			}
 
 			BeanUtil.copyProperties(excel, entity);
-			entity.setAssetId(list.get(0));
+			entity.setAssetId(assetId);
 			insertList.add(entity);
 
 			if (insertList.size() % batchCount == 0 && this.saveBatch(insertList)) {

+ 4 - 3
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/YsZbtsysyfyServiceImpl.java

@@ -29,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.BufferedInputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -62,7 +63,7 @@ public class YsZbtsysyfyServiceImpl extends BaseServiceImpl<YsZbtsysyfyMapper, Y
 		if(baseMapper.selectCount(Wrappers.<YsZbtsysyfyEntity>lambdaQuery().eq(YsZbtsysyfyEntity::getFyje, ysZbtsysyfy.getYsje()).eq(YsZbtsysyfyEntity::getXmId, ysZbtsysyfy.getXmId())) > 0){
 			throw new ServiceException("费用内容已存在");
 		}
-		ysZbtsysyfy.setYsje(ysZbtsysyfy.getYsje() * 10000);
+		ysZbtsysyfy.setYsje(ysZbtsysyfy.getYsje().multiply(BigDecimal.valueOf(10000)));
 		return save(ysZbtsysyfy);
 	}
 
@@ -71,7 +72,7 @@ public class YsZbtsysyfyServiceImpl extends BaseServiceImpl<YsZbtsysyfyMapper, Y
 		if (ysZbtsysyfy.getXmId() == null) {
 			throw new ServiceException("请选择科研项目");
 		}
-		ysZbtsysyfy.setYsje(ysZbtsysyfy.getYsje()*10000);
+		ysZbtsysyfy.setYsje(ysZbtsysyfy.getYsje().multiply(BigDecimal.valueOf(10000)));
 		return this.updateById(ysZbtsysyfy);
 	}
 
@@ -121,7 +122,7 @@ public class YsZbtsysyfyServiceImpl extends BaseServiceImpl<YsZbtsysyfyMapper, Y
 		for (YsZbtsysyfyVO temp : list) {
 			temp.setXh(index.getAndIncrement() + "");
 			if (temp.getYsje() != null) {
-				temp.setYsje(temp.getYsje() / 10000);
+				temp.setYsje(temp.getYsje().multiply(BigDecimal.valueOf(0.0001)));
 			}
 		}
 		InputStream templateFileName = this.getClass().getClassLoader().getResourceAsStream("export-template/研发项目管理/预算编制/装备调试费用与试验费用.xls");

+ 12 - 4
kd-service/kd-scientific/src/main/java/org/sky/scientific/service/impl/YsZjfyycqdtfyServiceImpl.java

@@ -142,14 +142,22 @@ public class YsZjfyycqdtfyServiceImpl extends BaseServiceImpl<YsZjfyycqdtfyMappe
 			YsZjfyycqdtfyEntity entity = new YsZjfyycqdtfyEntity();
 			entity.setXmId(xmId);
 
-			List<Long> list = dbAssetList.stream()
+			List<AssetEntity> list = dbAssetList.stream()
 				.filter(asset -> Func.equals(asset.getZcmc(), excel.getZcmc()))
-				.map(AssetEntity::getId).toList();
+				.toList();
 			if (Func.isEmpty(list)) {
 				throw new ServiceException("资产[" + excel.getZcmc() + "]不存在");
 			}
 
-			if(dbYsList.stream().anyMatch(ys -> Func.equals(ys.getAssetId(), list.get(0)))){
+			AssetEntity dbAsset = list.get(0);
+
+			if(!AssetServiceImpl.isFixedAsset(dbAsset.getZclb())){
+				throw new ServiceException("只能导入仪器设备/房屋建筑物,请检查模板数据");
+			}
+
+			Long assetId = dbAsset.getId();
+
+			if(dbYsList.stream().anyMatch(ys -> Func.equals(ys.getAssetId(), assetId))){
 				throw new ServiceException("序号["+excel.getXh()+"]的资产已在预算表中");
 			}
 
@@ -165,7 +173,7 @@ public class YsZjfyycqdtfyServiceImpl extends BaseServiceImpl<YsZjfyycqdtfyMappe
 			}
 
 			BeanUtil.copyProperties(excel, entity);
-			entity.setAssetId(list.get(0));
+			entity.setAssetId(assetId);
 
 			insertList.add(entity);