|
@@ -654,30 +654,40 @@ public class OverheadLineController extends BaseController {
|
|
|
@RequestMapping("/bddtz")
|
|
|
public String bddtz(FtData ftData, Model model, RedirectAttributes redirectAttributes){
|
|
|
String id = ftData.getId();
|
|
|
- String itemType = ftData.getItemType();
|
|
|
+ String itemType = itemService.get(id).getType();
|
|
|
String state = ftData.getState(); // 1:增加 2:减少
|
|
|
String data1 = ftData.getTableData(); //表格数据JOSN字符串
|
|
|
String row = data1.replaceAll(""","\\\"");
|
|
|
//将JSON字符串转为list
|
|
|
List<DdtzData> ts = (List<DdtzData>) JSONArray.parseArray(row, DdtzData.class);
|
|
|
+ List<JkxlDetailFee> list = overheadLineService.getList(id,itemType);
|
|
|
try {
|
|
|
//更新细节费用表
|
|
|
for(DdtzData ddtzData: ts){
|
|
|
double tzFee = Double.valueOf(ddtzData.getFee());
|
|
|
String wbsCode = ddtzData.getWbsCode();
|
|
|
- double totalFee = overheadLineService.getDate(id,wbsCode).getTotalFee();
|
|
|
- if(state.equals("1")){
|
|
|
- totalFee = totalFee+tzFee;
|
|
|
- }
|
|
|
- if(state.equals("2")){
|
|
|
- totalFee = totalFee-tzFee;
|
|
|
+ JkxlDetailFee jkxlDetailFee1 = overheadLineService.getDate(id,wbsCode);
|
|
|
+ List<JkxlDetailFee> list1 = new ArrayList<>();
|
|
|
+ JkxlDetailFee jkxlDetailFee2 = getParent(jkxlDetailFee1,list,list1);
|
|
|
+ list1.add(jkxlDetailFee1);
|
|
|
+ for(JkxlDetailFee jkxlDetailFee3 : list1) {
|
|
|
+ if(jkxlDetailFee3.getWbsCode().equals("20000000")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ double totalFee = jkxlDetailFee3.getTotalFee();
|
|
|
+ if (state.equals("1")) {
|
|
|
+ totalFee = totalFee + tzFee;
|
|
|
+ }
|
|
|
+ if (state.equals("2")) {
|
|
|
+ totalFee = totalFee - tzFee;
|
|
|
+ }
|
|
|
+// JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
+// jkxlDetailFee.setId(id);
|
|
|
+// jkxlDetailFee.setWbsCode(wbsCode);
|
|
|
+ jkxlDetailFee3.setTotalFee(totalFee);
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee3);
|
|
|
}
|
|
|
- JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
- jkxlDetailFee.setId(id);
|
|
|
- jkxlDetailFee.setWbsCode(wbsCode);
|
|
|
- jkxlDetailFee.setTotalFee(totalFee);
|
|
|
- overheadLineService.updataDate(jkxlDetailFee);
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
//更新未识别费用表
|
|
|
JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
|
|
@@ -692,6 +702,21 @@ public class OverheadLineController extends BaseController {
|
|
|
return "redirect:/a/jkxl/list?id="+id+"&type="+itemType;
|
|
|
}
|
|
|
|
|
|
+ private JkxlDetailFee getParent(JkxlDetailFee jkxlDetailFee,List<JkxlDetailFee> list,List<JkxlDetailFee> list1){
|
|
|
+ if(jkxlDetailFee.getParentNode().equals("-1")){
|
|
|
+ return jkxlDetailFee;
|
|
|
+ }
|
|
|
+ JkxlDetailFee jkxlDetailFee1 = null;
|
|
|
+ for(JkxlDetailFee jkxlDetailFee2:list){
|
|
|
+ if(jkxlDetailFee2.getWbsCode().equals(jkxlDetailFee.getParentNode())){
|
|
|
+ jkxlDetailFee1 = jkxlDetailFee2;
|
|
|
+ list1.add(jkxlDetailFee1);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return getParent(jkxlDetailFee1,list,list1);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
|