Browse Source

成本模型(产品价格库)

丁治程 1 year ago
parent
commit
28eefc789b

+ 125 - 0
module_kzks/src/main/java/org/jeecg/modules/projectCostHuiji/service/impl/ProjectCostHuijiServiceImpl.java

@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.modules.costModelProductPrice.entity.KzksCostModelProductPrice;
+import org.jeecg.modules.costModelProductPrice.mapper.KzksCostModelProductPriceMapper;
 import org.jeecg.modules.dataSourceSwitch.annotation.TargetDataSource;
 import org.jeecg.modules.dataSourceSwitch.enums.DataSourceType;
 import org.jeecg.modules.projectCost.entity.ProjectCost;
@@ -37,6 +40,10 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
     @SuppressWarnings("all")
     private ProjectCostHuijiMapper huijiMapper;
 
+    @Autowired
+    @SuppressWarnings("all")
+    private KzksCostModelProductPriceMapper productPriceMapper;
+
     /**
      * 分页查询
      */
@@ -117,4 +124,122 @@ public class ProjectCostHuijiServiceImpl extends ServiceImpl<ProjectCostHuijiMap
         return huijiMapper.costHJSumByProjectCostByTaskList(taskList);
     }
 
+    /**
+     *   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) {
+            tasknoList.add(projectCostHuiji.getTaskno());
+            BigDecimal yzsl = BigDecimal.valueOf(0);
+            if (projectCostHuiji.getYzsl() != 0){
+                yzsl = BigDecimal.valueOf(projectCostHuiji.getYzsl()); // 研制数量
+            }
+            // 单台 -- 预估价
+            BigDecimal oneEstimationcoat = projectCostHuiji.getEstimationcoat().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 合同分配额
+            BigDecimal oneContractfpe = projectCostHuiji.getContractfpe().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 已收款
+            BigDecimal oneTaskmoney = projectCostHuiji.getTaskmoney().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 总成本
+            BigDecimal oneZcb = projectCostHuiji.getZcb().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 材料费
+            BigDecimal oneClf = projectCostHuiji.getClf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 事务费
+            BigDecimal oneSwf = projectCostHuiji.getSwf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 外协费
+            BigDecimal oneWxf = projectCostHuiji.getWxf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 专用费
+            BigDecimal oneZyf = projectCostHuiji.getZyf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 燃料动力费
+            BigDecimal oneRldlf = projectCostHuiji.getRldlf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 固定资产折旧费
+            BigDecimal oneGdzczj = projectCostHuiji.getGdzczj().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 工资及劳务费
+            BigDecimal oneGzjlwf = projectCostHuiji.getGzjlwf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 管理费
+            BigDecimal oneGlf = projectCostHuiji.getGlf().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 装机成本
+            BigDecimal oneZjcb = projectCostHuiji.getZjcb().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 内部试验
+            BigDecimal oneLbsy = projectCostHuiji.getLbsy().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 工时
+            BigDecimal oneWorkhour = projectCostHuiji.getWorkhour().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 设计工时
+            BigDecimal oneSjgs = projectCostHuiji.getSjgs().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+            // 单台 -- 生产工时
+            BigDecimal oneScgs = projectCostHuiji.getScgs().divide(yzsl,5,BigDecimal.ROUND_HALF_UP);
+
+            KzksCostModelProductPrice productPrice = new KzksCostModelProductPrice();
+            productPrice.setTaskno(projectCostHuiji.getTaskno());
+            if (projectCostHuiji.getTaskname() != null) productPrice.setTaskname(projectCostHuiji.getTaskname());
+            if (projectCostHuiji.getXhname() != null) productPrice.setXhname(projectCostHuiji.getXhname());
+            if (productPrice.getJhwcsj() != null) productPrice.setJhwcsj(productPrice.getJhwcsj());
+            if (projectCostHuiji.getYzjdname() != null) productPrice.setYzjdname(projectCostHuiji.getYzjdname());
+            if (projectCostHuiji.getProcesspercent() != null && !ObjectUtils.isEmpty(projectCostHuiji.getProcesspercent())) {
+                productPrice.setProcesspercent(projectCostHuiji.getProcesspercent());
+            }else {
+                productPrice.setProcesspercent("0");
+            }
+            if (projectCostHuiji.getCostPercent() != null && !ObjectUtils.isEmpty(projectCostHuiji.getCostPercent())) {
+                productPrice.setCostPercent(projectCostHuiji.getCostPercent());
+            }else {
+                productPrice.setCostPercent("0");
+            }
+            productPrice.setYzsl(projectCostHuiji.getYzsl());
+            productPrice.setOneIncome(projectCostHuiji.getOneIncome());
+            productPrice.setOneCost(projectCostHuiji.getOneCost());
+            productPrice.setOneProfit(projectCostHuiji.getOneProfit());
+            productPrice.setLre(projectCostHuiji.getLre());
+            productPrice.setLrl(projectCostHuiji.getLrl());
+            productPrice.setEstimationcoat(oneEstimationcoat);
+            productPrice.setContractfpe(oneContractfpe);
+            productPrice.setTaskmoney(oneTaskmoney);
+            productPrice.setZcb(oneZcb);
+            productPrice.setClf(oneClf);
+            productPrice.setZyf(oneZyf);
+            productPrice.setSwf(oneSwf);
+            productPrice.setWxf(oneWxf);
+            productPrice.setRldlf(oneRldlf);
+            productPrice.setGdzczj(oneGdzczj);
+            productPrice.setGzjlwf(oneGzjlwf);
+            productPrice.setGlf(oneGlf);
+            productPrice.setZjcb(oneZjcb);
+            productPrice.setLbsy(oneLbsy);
+            productPrice.setWorkhour(oneWorkhour);
+            if (projectCostHuiji.getZrbm() != null) productPrice.setZrbm(projectCostHuiji.getZrbm());
+            if (projectCostHuiji.getJycsid() != null) productPrice.setJycsid(projectCostHuiji.getJycsid());
+            if (projectCostHuiji.getJycs() != null) productPrice.setJycs(projectCostHuiji.getJycs());
+            if (projectCostHuiji.getHxzxid() != null) productPrice.setHxzxid(projectCostHuiji.getHxzxid());
+            if (projectCostHuiji.getHxzxname() != null) productPrice.setHxzxname(projectCostHuiji.getHxzxname());
+            if (projectCostHuiji.getTasktype() != null) productPrice.setTasktype(projectCostHuiji.getTasktype());
+            if (projectCostHuiji.getAuditprice() != null) productPrice.setAuditprice(projectCostHuiji.getAuditprice());
+            if (projectCostHuiji.getIflag() != null) productPrice.setIflag(projectCostHuiji.getIflag());
+            if (projectCostHuiji.getBrief() != null) productPrice.setBrief(projectCostHuiji.getBrief());
+            if (projectCostHuiji.getReftaskno() != null) productPrice.setReftaskno(projectCostHuiji.getReftaskno());
+            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());
+            productPrice.setSjgs(oneSjgs);
+            productPrice.setScgs(oneScgs);
+            productPrice.setStatus(projectCostHuiji.getStatus());
+            productPriceList.add(productPrice);
+        }
+        /** 2、修改指定任务号的status为4 */
+        int i1 = huijiMapper.updateStatus1(tasknoList);
+        /** 3、将对象的集合插入到成本模型表中 */
+        int i2 = productPriceMapper.insertBatchIntoKzksCostModelProductPrice(productPriceList);
+        if (i1 > 0 && i2 > 0){
+            return true;
+        }
+        return false;
+    }
+
 }