|
@@ -6,7 +6,7 @@ import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.modules.projectBudget.entity.ProjectBudget;
|
|
|
import org.jeecg.modules.projectBudget.mapper.ProjectBudgetMapper;
|
|
|
import org.jeecg.modules.projectBudget.service.IProjectBudgetService;
|
|
|
-import org.jeecg.modules.projectChbSwf.mapper.ProjectChbSwfMapper;
|
|
|
+import org.jeecg.modules.projectCost.mapper.ProjectCostMapper;
|
|
|
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
|
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -16,7 +16,11 @@ import java.io.FileInputStream;
|
|
|
import java.io.FileNotFoundException;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
/**
|
|
|
* @Description: 项目预算
|
|
@@ -32,6 +36,61 @@ public class ProjectBudgetServiceImpl extends ServiceImpl<ProjectBudgetMapper, P
|
|
|
@Autowired
|
|
|
@SuppressWarnings("all")
|
|
|
public ProjectBudgetMapper budgetMapper;
|
|
|
+ @Autowired
|
|
|
+ @SuppressWarnings("all")
|
|
|
+ public ProjectCostMapper costMapper;
|
|
|
+
|
|
|
+
|
|
|
+ /**计算外协预算*/
|
|
|
+ public BigDecimal countWXYS(ProjectBudget budget){
|
|
|
+ BigDecimal wxys = new BigDecimal(0);
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //可靠性设计(万)
|
|
|
+ BigDecimal kkxsj = new BigDecimal(budget.getKkxSheji());
|
|
|
+ wxys = wxys.add(kkxsj);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //结构加工(万)
|
|
|
+ BigDecimal jgjg = new BigDecimal(budget.getJgJiagong());
|
|
|
+ wxys = wxys.add(jgjg);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //表面处理(万)
|
|
|
+ BigDecimal bmcl = new BigDecimal(budget.getBmChuli());
|
|
|
+ wxys = wxys.add(bmcl);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //环境试验(万)
|
|
|
+ BigDecimal hjsy = new BigDecimal(budget.getHjShiyan());
|
|
|
+ wxys = wxys.add(hjsy);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //电缆加工(万)
|
|
|
+ BigDecimal dljg = new BigDecimal(budget.getDlJiagong());
|
|
|
+ wxys = wxys.add(dljg);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //印制板设计及加工(万)
|
|
|
+ BigDecimal yzsjjg = new BigDecimal(budget.getYzbSheji());
|
|
|
+ wxys = wxys.add(yzsjjg);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //试验工装(万)
|
|
|
+ BigDecimal sygz = new BigDecimal(budget.getSyGongzhuang());
|
|
|
+ wxys = wxys.add(sygz);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //测试工装(万)
|
|
|
+ BigDecimal csgz = new BigDecimal(budget.getCsGongzhuang());
|
|
|
+ wxys = wxys.add(csgz);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //包装箱(万)
|
|
|
+ BigDecimal bzx = new BigDecimal(budget.getBaozhuangxiang());
|
|
|
+ wxys = wxys.add(bzx);
|
|
|
+ }
|
|
|
+ if (Objects.nonNull(budget.getKkxSheji())){ //软件设计(万)
|
|
|
+ BigDecimal rjsj = new BigDecimal(budget.getRjSheji());
|
|
|
+ wxys = wxys.add(rjsj);
|
|
|
+ }if (Objects.nonNull(budget.getKkxSheji())){ //其他项目(万)
|
|
|
+ BigDecimal qtxm = new BigDecimal(budget.getQtXiangmu());
|
|
|
+ wxys = wxys.add(qtxm);
|
|
|
+ }
|
|
|
+
|
|
|
+ return wxys;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 通过excel导入数据
|
|
@@ -54,33 +113,23 @@ public class ProjectBudgetServiceImpl extends ServiceImpl<ProjectBudgetMapper, P
|
|
|
try {
|
|
|
List<ProjectBudget> list = ExcelImportUtil.importExcel(inputStream, clazz, params);
|
|
|
|
|
|
-// List<ProjectBudget> list1 = new ArrayList<>();
|
|
|
-// for(ProjectBudget fy:list){
|
|
|
-// String nd = fy.getNd();
|
|
|
-// String taskNo = fy.getTaskno();
|
|
|
-// if(!nd.equals("") && !taskNo.equals("") && nd!=null && taskNo!=null){
|
|
|
-// ProjectBudget fy1 = new ProjectBudget();
|
|
|
-// fy1.setNd(nd);
|
|
|
-// fy1.setTaskno(taskNo);
|
|
|
-// boolean yon = true;
|
|
|
-// for (ProjectBudget fy2 : list1){
|
|
|
-// if(fy2.equals(fy1)){
|
|
|
-// yon = false;
|
|
|
-// break;
|
|
|
-// }else {
|
|
|
-// continue;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if(yon) list1.add(fy1);
|
|
|
-// //删除该年度该任务号所有数据
|
|
|
-// for (ProjectBudget fy3 : list1){
|
|
|
-// Map<String, Object> map = new HashMap<>();
|
|
|
-// map.put("nd",fy3.getNd());
|
|
|
-// map.put("taskno",fy3.getTaskno());
|
|
|
-// budgetMapper.deleteByMap(map);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
+ //处理数据、每个任务号有唯一的项目预算
|
|
|
+ Map<String, Object> columnMap;
|
|
|
+ for (ProjectBudget budget : list){
|
|
|
+ BigDecimal clys = new BigDecimal(budget.getCailiaofei());//材料预算
|
|
|
+ BigDecimal wxys = countWXYS(budget);//外协预算
|
|
|
+ budget.setWxys(wxys.toString());
|
|
|
+
|
|
|
+ if(!Objects.equals(budget.getTaskNumber(),"")){
|
|
|
+ //删除原来的项目预算
|
|
|
+ columnMap = new HashMap<>();
|
|
|
+ columnMap.put("task_number",budget.getTaskNumber());
|
|
|
+ this.budgetMapper.deleteByMap(columnMap);
|
|
|
+
|
|
|
+ //修改项目成本对应任务号的材料预算、外协预算
|
|
|
+ costMapper.updateYS(clys,wxys,budget.getTaskNumber());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
//update-begin-author:taoyan date:20190528 for:批量插入数据
|
|
|
long start = System.currentTimeMillis();
|