|
@@ -25,11 +25,12 @@ import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
/**
|
|
|
* @Description: 项目成本汇集表
|
|
|
* @Author: jeecg-boot
|
|
|
- * @Date: 2023-08-15
|
|
|
+ * @Date: 2023-08-15
|
|
|
* @Version: V1.0
|
|
|
*/
|
|
|
@Service
|
|
@@ -58,29 +59,40 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
|
|
|
// return huijiMapper.compareListByIds(ids);
|
|
|
// }
|
|
|
//sl修改添加每台的对比
|
|
|
- public ProjectCostHuijiCompare compareListByIds(List<String> ids){
|
|
|
+ public ProjectCostHuijiCompare compareListByIds(List<String> ids) {
|
|
|
ProjectCostHuijiCompare projectCostHuijiCompare = new ProjectCostHuijiCompare();
|
|
|
List<ProjectCostHuiji> listAll = huijiMapper.compareListByIds(ids);
|
|
|
List<ProjectCostHuiji> listOne = new ArrayList<>();
|
|
|
- for(ProjectCostHuiji projectCostHuiji:listAll){
|
|
|
- ProjectCostHuiji projectCostHuiji1 = (ProjectCostHuiji)projectCostHuiji.clone();
|
|
|
- if(projectCostHuiji1.getYzsl() != null && projectCostHuiji1.getYzsl() != 0){
|
|
|
+ for (ProjectCostHuiji projectCostHuiji : listAll) {
|
|
|
+ ProjectCostHuiji projectCostHuiji1 = (ProjectCostHuiji) projectCostHuiji.clone();
|
|
|
+ if (projectCostHuiji1.getYzsl() != null && projectCostHuiji1.getYzsl() != 0) {
|
|
|
int yzsl = projectCostHuiji1.getYzsl();//获取研制数量
|
|
|
BigDecimal yzslBigDec = BigDecimal.valueOf(yzsl);
|
|
|
System.out.println("研制数量为");
|
|
|
System.out.println(yzslBigDec);
|
|
|
- if(projectCostHuiji1.getGlf() != null) projectCostHuiji1.setGlf(projectCostHuiji1.getGlf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//管理费
|
|
|
- if(projectCostHuiji1.getSwf() != null) projectCostHuiji1.setSwf(projectCostHuiji1.getSwf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//事务费
|
|
|
- if(projectCostHuiji1.getWxf() != null) projectCostHuiji1.setWxf(projectCostHuiji1.getWxf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//外协费
|
|
|
- if(projectCostHuiji1.getZyf() != null) projectCostHuiji1.setZyf(projectCostHuiji1.getZyf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//专用费
|
|
|
- if(projectCostHuiji1.getGzjlwf() != null) projectCostHuiji1.setGzjlwf(projectCostHuiji1.getGzjlwf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//工资费
|
|
|
- if(projectCostHuiji1.getGdzczj() != null) projectCostHuiji1.setGdzczj(projectCostHuiji1.getGdzczj().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//固资费
|
|
|
- if(projectCostHuiji1.getClf() != null) projectCostHuiji1.setClf(projectCostHuiji1.getClf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//材料费
|
|
|
- if(projectCostHuiji1.getRldlf() != null) projectCostHuiji1.setRldlf(projectCostHuiji1.getRldlf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//燃动费
|
|
|
-
|
|
|
- if(projectCostHuiji1.getZjcb() != null) projectCostHuiji1.setZjcb(projectCostHuiji1.getZjcb().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//装机成本
|
|
|
- if(projectCostHuiji1.getLbsy() != null) projectCostHuiji1.setLbsy(projectCostHuiji1.getLbsy().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//内部试验
|
|
|
- if(projectCostHuiji1.getWorkhour() != null) projectCostHuiji1.setWorkhour(projectCostHuiji1.getWorkhour().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//工时
|
|
|
+ if (projectCostHuiji1.getGlf() != null)
|
|
|
+ projectCostHuiji1.setGlf(projectCostHuiji1.getGlf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//管理费
|
|
|
+ if (projectCostHuiji1.getSwf() != null)
|
|
|
+ projectCostHuiji1.setSwf(projectCostHuiji1.getSwf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//事务费
|
|
|
+ if (projectCostHuiji1.getWxf() != null)
|
|
|
+ projectCostHuiji1.setWxf(projectCostHuiji1.getWxf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//外协费
|
|
|
+ if (projectCostHuiji1.getZyf() != null)
|
|
|
+ projectCostHuiji1.setZyf(projectCostHuiji1.getZyf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//专用费
|
|
|
+ if (projectCostHuiji1.getGzjlwf() != null)
|
|
|
+ projectCostHuiji1.setGzjlwf(projectCostHuiji1.getGzjlwf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//工资费
|
|
|
+ if (projectCostHuiji1.getGdzczj() != null)
|
|
|
+ projectCostHuiji1.setGdzczj(projectCostHuiji1.getGdzczj().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//固资费
|
|
|
+ if (projectCostHuiji1.getClf() != null)
|
|
|
+ projectCostHuiji1.setClf(projectCostHuiji1.getClf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//材料费
|
|
|
+ if (projectCostHuiji1.getRldlf() != null)
|
|
|
+ projectCostHuiji1.setRldlf(projectCostHuiji1.getRldlf().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//燃动费
|
|
|
+
|
|
|
+ if (projectCostHuiji1.getZjcb() != null)
|
|
|
+ projectCostHuiji1.setZjcb(projectCostHuiji1.getZjcb().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//装机成本
|
|
|
+ if (projectCostHuiji1.getLbsy() != null)
|
|
|
+ projectCostHuiji1.setLbsy(projectCostHuiji1.getLbsy().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//内部试验
|
|
|
+ if (projectCostHuiji1.getWorkhour() != null)
|
|
|
+ projectCostHuiji1.setWorkhour(projectCostHuiji1.getWorkhour().divide(yzslBigDec, 2, RoundingMode.HALF_UP));//工时
|
|
|
}
|
|
|
listOne.add(projectCostHuiji1);
|
|
|
|
|
@@ -91,8 +103,10 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
|
|
|
return projectCostHuijiCompare;
|
|
|
}
|
|
|
|
|
|
- /**计算项目成本汇集的总和*/
|
|
|
- public ProjectCostHuiji costHJSum(ProjectCostHuiji projectCostHuiji){
|
|
|
+ /**
|
|
|
+ * 计算项目成本汇集的总和
|
|
|
+ */
|
|
|
+ public ProjectCostHuiji costHJSum(ProjectCostHuiji projectCostHuiji) {
|
|
|
return huijiMapper.costHJSum(projectCostHuiji);
|
|
|
}
|
|
|
|
|
@@ -122,56 +136,96 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * author: dzc
|
|
|
- * version: 1.0
|
|
|
- * des: 将选中的任务号加入到产品价格库中(添加到成本模型中) (将汇集表中的status改为4)
|
|
|
- * date: 2023/10/24
|
|
|
+ * author: dzc
|
|
|
+ * version: 1.0
|
|
|
+ * des: 将选中的任务号加入到产品价格库中(添加到成本模型中) (将汇集表中的status改为4)
|
|
|
+ * date: 2023/10/24
|
|
|
*/
|
|
|
@Override
|
|
|
public Boolean insertIntoCostModel(List<ProjectCostHuiji> projectCostHuijis) {
|
|
|
ArrayList<String> tasknoList = new ArrayList<>();
|
|
|
ArrayList<KzksCostModelProductPrice> productPriceList = new ArrayList<>();
|
|
|
/** 1、遍历对象集合,将任务号放入集合中 */
|
|
|
- for (ProjectCostHuiji projectCostHuiji:projectCostHuijis) {
|
|
|
+ for (ProjectCostHuiji projectCostHuiji : projectCostHuijis) {
|
|
|
tasknoList.add(projectCostHuiji.getTaskno());
|
|
|
BigDecimal yzsl = BigDecimal.valueOf(0);
|
|
|
- if (projectCostHuiji.getYzsl() != 0){
|
|
|
+ if (projectCostHuiji.getYzsl() != 0) {
|
|
|
yzsl = BigDecimal.valueOf(projectCostHuiji.getYzsl()); // 研制数量
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
// 单台 -- 预估价
|
|
|
- BigDecimal oneEstimationcoat = projectCostHuiji.getEstimationcoat().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneEstimationcoat = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 合同分配额
|
|
|
- BigDecimal oneContractfpe = projectCostHuiji.getContractfpe().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneContractfpe = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 已收款
|
|
|
- BigDecimal oneTaskmoney = projectCostHuiji.getTaskmoney().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneTaskmoney = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 总成本
|
|
|
- BigDecimal oneZcb = projectCostHuiji.getZcb().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneZcb = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 材料费
|
|
|
- BigDecimal oneClf = projectCostHuiji.getClf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneClf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 事务费
|
|
|
- BigDecimal oneSwf = projectCostHuiji.getSwf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneSwf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 外协费
|
|
|
- BigDecimal oneWxf = projectCostHuiji.getWxf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneWxf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 专用费
|
|
|
- BigDecimal oneZyf = projectCostHuiji.getZyf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneZyf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 燃料动力费
|
|
|
- BigDecimal oneRldlf = projectCostHuiji.getRldlf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneRldlf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 固定资产折旧费
|
|
|
- BigDecimal oneGdzczj = projectCostHuiji.getGdzczj().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneGdzczj = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 工资及劳务费
|
|
|
- BigDecimal oneGzjlwf = projectCostHuiji.getGzjlwf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneGzjlwf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 管理费
|
|
|
- BigDecimal oneGlf = projectCostHuiji.getGlf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneGlf = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 装机成本
|
|
|
- BigDecimal oneZjcb = projectCostHuiji.getZjcb().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneZjcb = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 内部试验
|
|
|
- BigDecimal oneLbsy = projectCostHuiji.getLbsy().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneLbsy = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 工时
|
|
|
- BigDecimal oneWorkhour = projectCostHuiji.getWorkhour().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneWorkhour = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 设计工时
|
|
|
- BigDecimal oneSjgs = projectCostHuiji.getSjgs().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneSjgs = BigDecimal.valueOf(0);
|
|
|
// 单台 -- 生产工时
|
|
|
- BigDecimal oneScgs = projectCostHuiji.getScgs().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
|
|
|
+ BigDecimal oneScgs = BigDecimal.valueOf(0);
|
|
|
+
|
|
|
+
|
|
|
+ if (yzsl.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
+ // 单台 -- 预估价
|
|
|
+ oneEstimationcoat = projectCostHuiji.getEstimationcoat().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 合同分配额
|
|
|
+ oneContractfpe = projectCostHuiji.getContractfpe().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 已收款
|
|
|
+ oneTaskmoney = projectCostHuiji.getTaskmoney().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 总成本
|
|
|
+ oneZcb = projectCostHuiji.getZcb().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 材料费
|
|
|
+ oneClf = projectCostHuiji.getClf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 事务费
|
|
|
+ oneSwf = projectCostHuiji.getSwf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 外协费
|
|
|
+ oneWxf = projectCostHuiji.getWxf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 专用费
|
|
|
+ oneZyf = projectCostHuiji.getZyf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 燃料动力费
|
|
|
+ oneRldlf = projectCostHuiji.getRldlf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 固定资产折旧费
|
|
|
+ oneGdzczj = projectCostHuiji.getGdzczj().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 工资及劳务费
|
|
|
+ oneGzjlwf = projectCostHuiji.getGzjlwf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 管理费
|
|
|
+ oneGlf = projectCostHuiji.getGlf().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 装机成本
|
|
|
+ oneZjcb = projectCostHuiji.getZjcb().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 内部试验
|
|
|
+ oneLbsy = projectCostHuiji.getLbsy().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 工时
|
|
|
+ oneWorkhour = projectCostHuiji.getWorkhour().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 设计工时
|
|
|
+ oneSjgs = projectCostHuiji.getSjgs().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ // 单台 -- 生产工时
|
|
|
+ oneScgs = projectCostHuiji.getScgs().divide(yzsl, 5, BigDecimal.ROUND_HALF_UP);
|
|
|
+ }
|
|
|
|
|
|
KzksCostModelProductPrice productPrice = new KzksCostModelProductPrice();
|
|
|
productPrice.setTaskno(projectCostHuiji.getTaskno());
|
|
@@ -181,12 +235,12 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
|
|
|
if (projectCostHuiji.getYzjdname() != null) productPrice.setYzjdname(projectCostHuiji.getYzjdname());
|
|
|
if (projectCostHuiji.getProcesspercent() != null && !ObjectUtils.isEmpty(projectCostHuiji.getProcesspercent())) {
|
|
|
productPrice.setProcesspercent(projectCostHuiji.getProcesspercent());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
productPrice.setProcesspercent("0");
|
|
|
}
|
|
|
if (projectCostHuiji.getCostPercent() != null && !ObjectUtils.isEmpty(projectCostHuiji.getCostPercent())) {
|
|
|
productPrice.setCostPercent(projectCostHuiji.getCostPercent());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
productPrice.setCostPercent("0");
|
|
|
}
|
|
|
productPrice.setYzsl(projectCostHuiji.getYzsl());
|
|
@@ -223,17 +277,19 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
|
|
|
if (projectCostHuiji.getPccode() != null) productPrice.setPccode(projectCostHuiji.getPccode());
|
|
|
if (projectCostHuiji.getBccode() != null) productPrice.setBccode(projectCostHuiji.getBccode());
|
|
|
if (projectCostHuiji.getBlcode() != null) productPrice.setBlcode(projectCostHuiji.getBlcode());
|
|
|
- if (projectCostHuiji.getBusinessman() != null) productPrice.setBusinessman(projectCostHuiji.getBusinessman());
|
|
|
+ if (projectCostHuiji.getBusinessman() != null)
|
|
|
+ productPrice.setBusinessman(projectCostHuiji.getBusinessman());
|
|
|
productPrice.setSjgs(oneSjgs);
|
|
|
productPrice.setScgs(oneScgs);
|
|
|
- productPrice.setStatus(projectCostHuiji.getStatus());
|
|
|
+ String status = Optional.ofNullable(projectCostHuiji.getStatus()).orElse("0");
|
|
|
+ productPrice.setStatus(status);
|
|
|
productPriceList.add(productPrice);
|
|
|
}
|
|
|
/** 2、修改指定任务号的status为4 */
|
|
|
int i1 = huijiMapper.updateStatus1(tasknoList);
|
|
|
/** 3、将对象的集合插入到成本模型表中 */
|
|
|
int i2 = productPriceMapper.insertBatchIntoKzksCostModelProductPrice(productPriceList);
|
|
|
- if (i1 > 0 && i2 > 0){
|
|
|
+ if (i1 > 0 && i2 > 0) {
|
|
|
return true;
|
|
|
}
|
|
|
return false;
|