|
|
@@ -38,7 +38,6 @@ import java.io.InputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.net.URLEncoder;
|
|
|
-import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
@@ -68,13 +67,17 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
throw new ServiceException("资产【" + asset.getZcbm() + "】已存在");
|
|
|
}
|
|
|
|
|
|
+ if(!isFixedAsset(asset.getZclb())){
|
|
|
+ asset.setGl("/");
|
|
|
+ }
|
|
|
+
|
|
|
//使用寿命-已使用月份数=0时,即已足额折旧
|
|
|
// 仪器设置的算法:当前时间为2025年01月-2024年5月,差额为9个月,因为折旧从次月开始,所以已使用月数为8个月(即9-1=8),再将使用寿命-已使用月份数=0时,即已足额折旧。
|
|
|
// 无形资产:当月即摊销,不需要-1
|
|
|
|
|
|
long ysysm = cn.hutool.core.date.DateUtil.betweenMonth(cn.hutool.core.date.DateUtil.date(), asset.getKssj(), false);
|
|
|
// 这里
|
|
|
- if (!Func.equals("仪器设备", asset.getZclb())) {
|
|
|
+ if (!isFixedAsset(asset.getZclb())) {
|
|
|
ysysm++;
|
|
|
}
|
|
|
asset.setYsysm((int) ysysm);
|
|
|
@@ -106,6 +109,9 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
throw new ServiceException("资产编号【" + excel.getZcbm() + "】已存在");
|
|
|
}
|
|
|
|
|
|
+ if(Func.notNull(zc.getJcz())){
|
|
|
+ zc.setJcz(Math.min(zc.getJcz() / 100.0, 1.0));
|
|
|
+ }
|
|
|
int status = AssetStatusEnum.valueOf(excel.getStatusName()).getCode();
|
|
|
zc.setStatus(status);
|
|
|
this.save(zc);
|
|
|
@@ -150,6 +156,14 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
|
|
|
@Override
|
|
|
public boolean physicalDeleteByIds(List<Long> ids) {
|
|
|
+ //删除说明
|
|
|
+ //① 删除:如果此资产,在研发项目中,已使用情况下,不可以删除。系统提示:资产已被使用,无法删除!
|
|
|
+ //② 如果此资产,无任何研发项目使用,可以在资产清单管理中,将此资产进行删除。
|
|
|
+ //③ 如果此资产,曾经被研发项目使用(可能研发项目后续不再使用此资产),这一类情况也不可以进行删除。
|
|
|
+ List<Long> list = baseMapper.checkAssetUsage(ids);
|
|
|
+ if(Func.isNotEmpty(list)){
|
|
|
+ throw new ServiceException("资产已被使用,无法删除!");
|
|
|
+ }
|
|
|
return baseMapper.physicalDeleteByIds(ids);
|
|
|
}
|
|
|
|
|
|
@@ -242,6 +256,9 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
throw new ServiceException("资产【" + asset.getZcbm() + "】已存在");
|
|
|
}
|
|
|
|
|
|
+ if(!isFixedAsset(asset.getZclb())){
|
|
|
+ asset.setGl("/");
|
|
|
+ }
|
|
|
// 正常状态、停用状态,可修改资产数据。其他情况不能修改。假设在修改资产时,正好出现使用寿命-已使用月份数=0时,即已足额折旧状态时,就显示为已足额折旧状态了,不可以再次修改了。
|
|
|
// 修改资产时,系统需要二次确认。
|
|
|
|
|
|
@@ -278,7 +295,7 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
throw new ServiceException("资产不存在");
|
|
|
}
|
|
|
|
|
|
- if (List.of("仪器设备", "房屋建筑物").contains(dbAsset.getZclb())) {
|
|
|
+ if (asset.getStatus() == AssetStatusEnum.改造.getCode() && !isFixedAsset(dbAsset.getZclb())) {
|
|
|
throw new ServiceException("只有固定资产才能改造");
|
|
|
}
|
|
|
// String name = AssetStatusEnum.改造.name();
|
|
|
@@ -295,22 +312,22 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
if (Func.equals(dbAsset.getStatus(), AssetStatusEnum.资产处置.getCode())) {
|
|
|
throw new ServiceException("该资产已处置");
|
|
|
}
|
|
|
- if (Func.equals(AssetStatusEnum.正常.getCode(), dbAsset.getStatus())) {
|
|
|
- //① 正常状态:表示正常使用中;正常折旧,已使用寿命/月数累加。可进行“改造”、“停用”、“资产处置”。
|
|
|
- if (!Arrays.asList(AssetStatusEnum.改造.getCode(), AssetStatusEnum.停用.getCode(), AssetStatusEnum.资产处置.getCode()).contains(asset.getStatus())) {
|
|
|
- throw new ServiceException("状态为正常的资产,可进行改造、停用、资产处置操作");
|
|
|
- }
|
|
|
- } else if (Func.equals(AssetStatusEnum.停用.getCode(), dbAsset.getStatus())) {
|
|
|
- //② 停用状态:表示停止使用状态;虽然停用,但是正常折旧,已使用寿命/月数继续累加。停用后,可点击“恢复”恢复为正常状态。可进行“改造”、“资产处置”。
|
|
|
- if (!Arrays.asList(AssetStatusEnum.改造.getCode(), AssetStatusEnum.资产处置.getCode(), AssetStatusEnum.正常.getCode()).contains(asset.getStatus())) {
|
|
|
- throw new ServiceException("状态为停用的资产,可进行改造、恢复、资产处置操作");
|
|
|
- }
|
|
|
- } else if (Func.equals(AssetStatusEnum.改造.getCode(), dbAsset.getStatus())) {
|
|
|
- //改造状态:表示改造中,改造期已使用寿命/月数/折旧为“全部暂停”状态。改造完成,需点击“恢复按钮”,恢复时需对资产内容进行修改完成。恢复为正常状态。
|
|
|
- if (!List.of(AssetStatusEnum.正常.getCode()).contains(asset.getStatus())) {
|
|
|
- throw new ServiceException("状态为改造的资产,可进行恢复操作");
|
|
|
- }
|
|
|
- }
|
|
|
+// if (Func.equals(AssetStatusEnum.正常.getCode(), dbAsset.getStatus())) {
|
|
|
+// //① 正常状态:表示正常使用中;正常折旧,已使用寿命/月数累加。可进行“改造”、“停用”、“资产处置”。
|
|
|
+// if (!Arrays.asList(AssetStatusEnum.改造.getCode(), AssetStatusEnum.停用.getCode(), AssetStatusEnum.资产处置.getCode()).contains(asset.getStatus())) {
|
|
|
+// throw new ServiceException("状态为正常的资产,可进行改造、停用、资产处置操作");
|
|
|
+// }
|
|
|
+// } else if (Func.equals(AssetStatusEnum.停用.getCode(), dbAsset.getStatus())) {
|
|
|
+// //② 停用状态:表示停止使用状态;虽然停用,但是正常折旧,已使用寿命/月数继续累加。停用后,可点击“恢复”恢复为正常状态。可进行“改造”、“资产处置”。
|
|
|
+// if (!Arrays.asList(AssetStatusEnum.改造.getCode(), AssetStatusEnum.资产处置.getCode(), AssetStatusEnum.正常.getCode()).contains(asset.getStatus())) {
|
|
|
+// throw new ServiceException("状态为停用的资产,可进行改造、恢复、资产处置操作");
|
|
|
+// }
|
|
|
+// } else if (Func.equals(AssetStatusEnum.改造.getCode(), dbAsset.getStatus())) {
|
|
|
+// //改造状态:表示改造中,改造期已使用寿命/月数/折旧为“全部暂停”状态。改造完成,需点击“恢复按钮”,恢复时需对资产内容进行修改完成。恢复为正常状态。
|
|
|
+// if (!List.of(AssetStatusEnum.正常.getCode()).contains(asset.getStatus())) {
|
|
|
+// throw new ServiceException("状态为改造的资产,可进行恢复操作");
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
return baseMapper.updateStatus(asset.getId(), asset.getStatus()) == 1;
|
|
|
}
|
|
|
@@ -321,9 +338,9 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
if(Func.isNull(asset.getId())){
|
|
|
throw new ServiceException("参数id不能为空");
|
|
|
}
|
|
|
- if (!List.of(AssetStatusEnum.改造.getCode(), AssetStatusEnum.停用.getCode()).contains(asset.getStatus())) {
|
|
|
- throw new ServiceException("状态为改造/停用的资产,可进行恢复操作");
|
|
|
- }
|
|
|
+// if (!List.of(AssetStatusEnum.改造.getCode(), AssetStatusEnum.停用.getCode()).contains(asset.getStatus())) {
|
|
|
+// throw new ServiceException("状态为改造/停用的资产,可进行恢复操作");
|
|
|
+// }
|
|
|
|
|
|
asset.setStatus(AssetStatusEnum.正常.getCode());
|
|
|
if (Func.isNull(asset.getYsysm())) {
|
|
|
@@ -332,7 +349,7 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
// 无形资产:当月即摊销,不需要-1
|
|
|
long ysysm = cn.hutool.core.date.DateUtil.betweenMonth(cn.hutool.core.date.DateUtil.date(), asset.getKssj(), false);
|
|
|
// 这里
|
|
|
- if (!Func.equals("仪器设备", asset.getZclb())) {
|
|
|
+ if (!isFixedAsset(asset.getZclb())) {
|
|
|
ysysm++;
|
|
|
}
|
|
|
asset.setYsysm((int) ysysm);
|
|
|
@@ -343,4 +360,7 @@ public class AssetServiceImpl extends BaseServiceImpl<AssetMapper, AssetEntity>
|
|
|
return this.updateById(asset);
|
|
|
}
|
|
|
|
|
|
+ public static boolean isFixedAsset(String zclb) {
|
|
|
+ return List.of("仪器设备", "房屋建筑物").contains(zclb);
|
|
|
+ }
|
|
|
}
|