OverheadLineController.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. package com.jeeplus.modules.sg.overheadline.web;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.jeeplus.common.utils.DateUtils;
  4. import com.jeeplus.common.utils.excel.ExportExcel;
  5. import com.jeeplus.common.utils.excel.ImportExcel;
  6. import com.jeeplus.common.utils.sg.ExcelUtil;
  7. import com.jeeplus.core.web.BaseController;
  8. import com.jeeplus.modules.sg.overheadline.entity.*;
  9. import com.jeeplus.modules.sg.overheadline.service.FeeAdjustService;
  10. import com.jeeplus.modules.sg.overheadline.service.OverheadLineService;
  11. import com.jeeplus.modules.sg.overheadline.service.RuleRatioService;
  12. import com.jeeplus.modules.sg.overheadline.service.SettlementService;
  13. import com.jeeplus.modules.sg.overheadline.util.BashInfo;
  14. import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Controller;
  17. import org.springframework.ui.Model;
  18. import org.springframework.web.bind.annotation.RequestMapping;
  19. import org.springframework.web.multipart.MultipartFile;
  20. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.servlet.http.HttpServletResponse;
  23. import java.io.IOException;
  24. import java.math.BigDecimal;
  25. import java.text.SimpleDateFormat;
  26. import java.util.*;
  27. /**
  28. * 架空线路
  29. */
  30. @Controller
  31. @RequestMapping(value = "${adminPath}/jkxl")
  32. public class OverheadLineController extends BaseController {
  33. @Autowired
  34. private OverheadLineService overheadLineService;
  35. @Autowired
  36. private FeeAdjustService feeAdjustService;
  37. @Autowired
  38. private SettlementService settlementService;
  39. /**
  40. * 首页跳转
  41. */
  42. @RequestMapping("/index")
  43. public String toImport(){
  44. return "modules/sg/free/indexProject";
  45. }
  46. /**
  47. *数据导入
  48. */
  49. @RequestMapping("/import")
  50. public String importFile(MultipartFile file, RedirectAttributes redirectAttributes, HttpServletRequest request, Model model){
  51. double sl = Double.valueOf(request.getParameter("jxsl")); //进项税率
  52. String projectName = request.getParameter("name"); //项目名称
  53. String id = getId();
  54. try {
  55. //保存数据到数据库
  56. overheadLineService.save(file,sl,projectName,id);
  57. } catch (RuntimeException e) {
  58. addMessage(redirectAttributes, "导入失败"+e.getMessage());
  59. return "modules/sg/free/indexProject";
  60. } catch (Exception e){
  61. addMessage(redirectAttributes, "导入失败");
  62. return "modules/sg/free/indexProject";
  63. }
  64. addMessage(redirectAttributes, "导入成功");
  65. return "redirect:/a/jkxl/list?id="+id;
  66. }
  67. @RequestMapping("/list")
  68. public String list(HttpServletRequest request,Model model){
  69. String id = request.getParameter("id");
  70. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  71. JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
  72. jkxlDetailFee.setId(id);
  73. jkxlAdjustFee.setId(id);
  74. List<JkxlDetailFee> list1 = new ArrayList<>();
  75. list1.add(jkxlDetailFee);
  76. //查询费用明细
  77. List<JkxlDetailFee> list = overheadLineService.getList(id);
  78. //求和
  79. list.addAll(getTotal(list));
  80. //查询未识别数据
  81. List<JkxlAdjustFee> list2 = feeAdjustService.getTzFee(jkxlAdjustFee);
  82. //数据校验展示
  83. List<Settlement> list3 = settlementService.selectSettlementService(id);
  84. HashMap map = new HashMap();
  85. map.put("list1",list1);
  86. map.put("list",list);
  87. map.put("list2",list2);
  88. map.put("list3",list3);
  89. model.addAttribute("map",map);
  90. return "modules/sg/free/wbslist";
  91. }
  92. /**
  93. *金额分摊调整
  94. */
  95. @RequestMapping("/fttz")
  96. public String reList(FtData ftData, Model model,RedirectAttributes redirectAttributes){
  97. String id = ftData.getId();
  98. String code = ftData.getCode(); //分摊费用类型
  99. String state = ftData.getState(); //1:增加 2:减少
  100. String type = ftData.getType(); //分摊费用名
  101. double fee = ftData.getFee();
  102. double total = 0.00;
  103. try {
  104. List<JkxlDetailFee> jkxl = overheadLineService.getList(id);
  105. //获取本体部分费用明细
  106. List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
  107. for(JkxlDetailFee jkxlDetailFee : jkxl){
  108. if(jkxlDetailFee.getOriginalTotalCost() != null){
  109. jkxlDetailFees.add(jkxlDetailFee);
  110. }
  111. }
  112. //人工费
  113. if(code.equals(BashInfo.TZ_RGF)){
  114. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  115. total += jkxlDetailFee.getRgCost();
  116. }
  117. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  118. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  119. jkxlDetailFee.setId(id);
  120. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  121. double rgFee = jkxlDetailFee1.getRgCost();
  122. double totalFee = jkxlDetailFee1.getTotalFee();
  123. double ftFee = rgFee/total*fee;
  124. jkxlDetailFee.setRgFtFee(ftFee);
  125. if(state.equals("1")){
  126. double zFee = totalFee+ftFee;
  127. jkxlDetailFee.setTotalFee(zFee);
  128. }else {
  129. double zFee = totalFee-ftFee;
  130. jkxlDetailFee.setTotalFee(zFee);
  131. }
  132. overheadLineService.updataDate(jkxlDetailFee);
  133. }
  134. }
  135. //承包人采购
  136. if(code.equals(BashInfo.TZ_CBRCG)){
  137. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  138. total += jkxlDetailFee.getCbrCost();
  139. }
  140. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  141. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  142. jkxlDetailFee.setId(id);
  143. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  144. double rgFee = jkxlDetailFee1.getCbrCost();
  145. double totalFee = jkxlDetailFee1.getTotalFee();
  146. double ftFee = rgFee/total*fee;
  147. jkxlDetailFee.setCbrFtFee(ftFee);
  148. if(state.equals("1")){
  149. double zFee = totalFee+ftFee;
  150. jkxlDetailFee.setTotalFee(zFee);
  151. }else {
  152. double zFee = totalFee-ftFee;
  153. jkxlDetailFee.setTotalFee(zFee);
  154. }
  155. overheadLineService.updataDate(jkxlDetailFee);
  156. }
  157. }
  158. //发包人采购
  159. if(code.equals(BashInfo.TZ_FBRCG)){
  160. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  161. total += jkxlDetailFee.getFbrCost();
  162. }
  163. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  164. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  165. jkxlDetailFee.setId(id);
  166. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  167. double rgFee = jkxlDetailFee1.getFbrCost();
  168. double totalFee = jkxlDetailFee1.getTotalFee();
  169. double ftFee = rgFee/total*fee;
  170. jkxlDetailFee.setFbrFtFee(ftFee);
  171. if(state.equals("1")){
  172. double zFee = totalFee+ftFee;
  173. jkxlDetailFee.setTotalFee(zFee);
  174. }else {
  175. double zFee = totalFee-ftFee;
  176. jkxlDetailFee.setTotalFee(zFee);
  177. }
  178. overheadLineService.updataDate(jkxlDetailFee);
  179. }
  180. }
  181. //机械费
  182. if(code.equals(BashInfo.TZ_JX)){
  183. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  184. total += jkxlDetailFee.getJxCost();
  185. }
  186. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  187. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  188. jkxlDetailFee.setId(id);
  189. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  190. double rgFee = jkxlDetailFee1.getJxCost();
  191. double totalFee = jkxlDetailFee1.getTotalFee();
  192. double ftFee = rgFee/total*fee;
  193. jkxlDetailFee.setJxFtFee(ftFee);
  194. if(state.equals("1")){
  195. double zFee = totalFee+ftFee;
  196. jkxlDetailFee.setTotalFee(zFee);
  197. }else {
  198. double zFee = totalFee-ftFee;
  199. jkxlDetailFee.setTotalFee(zFee);
  200. }
  201. overheadLineService.updataDate(jkxlDetailFee);
  202. }
  203. }
  204. //措施费一(1)
  205. if(code.equals(BashInfo.TZ_CSF1)){
  206. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  207. total += jkxlDetailFee.getMeasuresFee1();
  208. }
  209. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  210. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  211. jkxlDetailFee.setId(id);
  212. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  213. double rgFee = jkxlDetailFee1.getMeasuresFee1();
  214. double totalFee = jkxlDetailFee1.getTotalFee();
  215. double ftFee = rgFee/total*fee;
  216. if(state.equals("1")){
  217. double zFee = totalFee+ftFee;
  218. jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
  219. jkxlDetailFee.setTotalFee(zFee);
  220. }else {
  221. double zFee = totalFee-ftFee;
  222. jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
  223. jkxlDetailFee.setTotalFee(zFee);
  224. }
  225. overheadLineService.updataDate(jkxlDetailFee);
  226. }
  227. }
  228. //措施费一(2)
  229. if(code.equals(BashInfo.TZ_CSF2)){
  230. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  231. total += jkxlDetailFee.getMeasuresFee2();
  232. }
  233. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  234. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  235. jkxlDetailFee.setId(id);
  236. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  237. double rgFee = jkxlDetailFee1.getMeasuresFee2();
  238. double totalFee = jkxlDetailFee1.getTotalFee();
  239. double ftFee = rgFee/total*fee;
  240. if(state.equals("1")){
  241. double zFee = totalFee+ftFee;
  242. jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
  243. jkxlDetailFee.setTotalFee(zFee);
  244. }else {
  245. double zFee = totalFee-ftFee;
  246. jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
  247. jkxlDetailFee.setTotalFee(zFee);
  248. }
  249. overheadLineService.updataDate(jkxlDetailFee);
  250. }
  251. }
  252. //措施费二
  253. if(code.equals(BashInfo.TZ_CSF3)){
  254. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  255. total += jkxlDetailFee.getMeasuresFee3();
  256. }
  257. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  258. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  259. jkxlDetailFee.setId(id);
  260. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  261. double rgFee = jkxlDetailFee1.getMeasuresFee3();
  262. double totalFee = jkxlDetailFee1.getTotalFee();
  263. double ftFee = rgFee/total*fee;
  264. if(state.equals("1")){
  265. double zFee = totalFee+ftFee;
  266. jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
  267. jkxlDetailFee.setTotalFee(zFee);
  268. }else {
  269. double zFee = totalFee-ftFee;
  270. jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
  271. jkxlDetailFee.setTotalFee(zFee);
  272. }
  273. overheadLineService.updataDate(jkxlDetailFee);
  274. }
  275. }
  276. //其他费
  277. if(code.equals(BashInfo.TZ_QTF)){
  278. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  279. total += jkxlDetailFee.getOtherCost();
  280. }
  281. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  282. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  283. jkxlDetailFee.setId(id);
  284. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  285. double rgFee = jkxlDetailFee1.getOtherCost();
  286. double totalFee = jkxlDetailFee1.getTotalFee();
  287. double ftFee = rgFee/total*fee;
  288. if(state.equals("1")){
  289. double zFee = totalFee+ftFee;
  290. jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
  291. jkxlDetailFee.setTotalFee(zFee);
  292. }else {
  293. double zFee = totalFee-ftFee;
  294. jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
  295. jkxlDetailFee.setTotalFee(zFee);
  296. }
  297. overheadLineService.updataDate(jkxlDetailFee);
  298. }
  299. }
  300. //规费
  301. if(code.equals(BashInfo.TZ_GF)){
  302. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  303. total += jkxlDetailFee.getFees();
  304. }
  305. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  306. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  307. jkxlDetailFee.setId(id);
  308. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  309. double rgFee = jkxlDetailFee1.getFees();
  310. double totalFee = jkxlDetailFee1.getTotalFee();
  311. double ftFee = rgFee/total*fee;
  312. if(state.equals("1")){
  313. double zFee = totalFee+ftFee;
  314. jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
  315. jkxlDetailFee.setTotalFee(zFee);
  316. }else {
  317. double zFee = totalFee-ftFee;
  318. jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
  319. jkxlDetailFee.setTotalFee(zFee);
  320. }
  321. overheadLineService.updataDate(jkxlDetailFee);
  322. }
  323. }
  324. //税费
  325. if(code.equals(BashInfo.TZ_SF)){
  326. for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
  327. total += jkxlDetailFee.getTex();
  328. }
  329. for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
  330. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  331. jkxlDetailFee.setId(id);
  332. jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
  333. double rgFee = jkxlDetailFee1.getTex();
  334. double totalFee = jkxlDetailFee1.getTotalFee();
  335. double ftFee = rgFee/total*fee;
  336. if(state.equals("1")){
  337. double zFee = totalFee+ftFee;
  338. jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
  339. jkxlDetailFee.setTotalFee(zFee);
  340. }else {
  341. double zFee = totalFee-ftFee;
  342. jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
  343. jkxlDetailFee.setTotalFee(zFee);
  344. }
  345. overheadLineService.updataDate(jkxlDetailFee);
  346. }
  347. }
  348. //更新未识别费用表
  349. JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
  350. jkxlAdjustFee.setType(type);
  351. jkxlAdjustFee.setId(id);
  352. feeAdjustService.updateFee(jkxlAdjustFee);
  353. } catch (Exception e){
  354. addMessage(redirectAttributes, "调整失败");
  355. }
  356. addMessage(redirectAttributes, "调整成功");
  357. return "redirect:/a/jkxl/list?id="+id;
  358. }
  359. /**
  360. *金额单独调整
  361. */
  362. @RequestMapping("/ddtz")
  363. public String ddtz(FtData ftData, Model model, RedirectAttributes redirectAttributes){
  364. String id = ftData.getId();
  365. String state = ftData.getState(); // 1:增加 2:减少
  366. String data1 = ftData.getTableData(); //表格数据JOSN字符串
  367. String row = data1.replaceAll("&quot;","\\\"");
  368. //将JSON字符串转为list
  369. List<DdtzData> ts = (List<DdtzData>) JSONArray.parseArray(row, DdtzData.class);
  370. try {
  371. //更新细节费用表
  372. for(DdtzData ddtzData: ts){
  373. double tzFee = Double.valueOf(ddtzData.getFee());
  374. String wbsCode = ddtzData.getWbsCode();
  375. double otherFee = overheadLineService.getDate(id,wbsCode).getOtherCost();
  376. double totalFee = overheadLineService.getDate(id,wbsCode).getTotalFee();
  377. if(state.equals("1")){
  378. otherFee = otherFee+tzFee;
  379. totalFee = totalFee+tzFee;
  380. }
  381. if(state.equals("2")){
  382. otherFee = otherFee-tzFee;
  383. totalFee = totalFee-tzFee;
  384. }
  385. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  386. jkxlDetailFee.setId(id);
  387. jkxlDetailFee.setWbsCode(wbsCode);
  388. jkxlDetailFee.setOtherCost(otherFee);
  389. jkxlDetailFee.setTotalFee(totalFee);
  390. overheadLineService.updataDate(jkxlDetailFee);
  391. }
  392. //更新未识别费用表
  393. JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
  394. jkxlAdjustFee.setType(ftData.getType());
  395. jkxlAdjustFee.setId(id);
  396. feeAdjustService.updateFee(jkxlAdjustFee);
  397. }catch (Exception e){
  398. addMessage(redirectAttributes, "调整失败");
  399. }
  400. addMessage(redirectAttributes, "调整成功");
  401. return "redirect:/a/jkxl/list?id="+id;
  402. }
  403. /**
  404. *导出
  405. */
  406. @RequestMapping("/export")
  407. public String export(HttpServletRequest request, HttpServletResponse response,Model model,RedirectAttributes redirectAttributes) {
  408. String id = request.getParameter("id");
  409. try{
  410. String fileName = "架空线路"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
  411. List<JkxlDetailFee> list = overheadLineService.findList(id);
  412. //导出
  413. new ExportExcel(null, JkxlDetailFee.class).setDataList(list).write(response, fileName).dispose();
  414. return null;
  415. }catch (Exception e){
  416. addMessage(redirectAttributes, "导出失败");
  417. }
  418. addMessage(redirectAttributes, "导出成功");
  419. return "redirect:/a/jkxl/list?id="+id;
  420. }
  421. /**
  422. * 创建项目ID
  423. */
  424. public String getId() {
  425. SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
  426. String newDate=sdf.format(new Date());
  427. String result="";
  428. Random random=new Random();
  429. for(int i=0;i<3;i++){
  430. result+=random.nextInt(10);
  431. }
  432. return newDate+result;
  433. }
  434. /**
  435. *求和
  436. */
  437. private List<JkxlDetailFee> getTotal(List<JkxlDetailFee> list) {
  438. List<JkxlDetailFee> list1 = new ArrayList<>();
  439. List<JkxlDetailFee> list2 = new ArrayList<>();
  440. //获取主体部分list集合
  441. for(JkxlDetailFee jkxlDetailFee : list){
  442. if(jkxlDetailFee.getOriginalTotalCost() != null){
  443. list1.add(jkxlDetailFee);
  444. }
  445. }
  446. //获取其他费用list集合
  447. for(JkxlDetailFee jkxlDetailFee : list){
  448. if(jkxlDetailFee.getOriginalTotalCost() == null && jkxlDetailFee.getTotalFee() != null){
  449. list2.add(jkxlDetailFee);
  450. }
  451. }
  452. double total1 = 0.00;
  453. for (JkxlDetailFee jkxlDetailFee :list2){
  454. total1 += jkxlDetailFee.getTotalFee();
  455. }
  456. double [] zFee = new double[22];
  457. for(JkxlDetailFee jkxlDetailFee :list1){
  458. zFee[0] += jkxlDetailFee.getOriginalTotalCost();
  459. zFee[1] += jkxlDetailFee.getZjgcFee();
  460. zFee[2] += jkxlDetailFee.getOriginalRgCost();
  461. zFee[3] += jkxlDetailFee.getOriginalCbrCost();
  462. zFee[4] += jkxlDetailFee.getOriginalFbrCost();
  463. zFee[5] += jkxlDetailFee.getOriginalJxCost();
  464. zFee[6] += jkxlDetailFee.getRgCost();
  465. zFee[7] += jkxlDetailFee.getCbrCost();
  466. zFee[8] += jkxlDetailFee.getFbrCost();
  467. zFee[9] += jkxlDetailFee.getJxCost();
  468. zFee[10] += jkxlDetailFee.getRgFtFee()!=null? jkxlDetailFee.getRgFtFee():0.00;
  469. zFee[11] += jkxlDetailFee.getCbrFtFee()!=null? jkxlDetailFee.getCbrFtFee():0.00;
  470. zFee[12] += jkxlDetailFee.getFbrFtFee()!=null? jkxlDetailFee.getFbrFtFee():0.00;
  471. zFee[13] += jkxlDetailFee.getJxFtFee()!=null? jkxlDetailFee.getJxFtFee():0.00;
  472. zFee[14] += jkxlDetailFee.getMeasuresFee1();
  473. zFee[15] += jkxlDetailFee.getMeasuresFee2();
  474. zFee[16] += jkxlDetailFee.getMeasuresFee3()!=null? jkxlDetailFee.getMeasuresFee3():0.00;
  475. zFee[17] += jkxlDetailFee.getOtherCost();
  476. zFee[18] += jkxlDetailFee.getFees();
  477. zFee[19] += jkxlDetailFee.getTex();
  478. // zFee[20] += jkxlDetailFee.getGxFee();
  479. zFee[21] += jkxlDetailFee.getTotalFee();
  480. }
  481. JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
  482. JkxlDetailFee jkxlDetailFee1 = new JkxlDetailFee();
  483. java.text.NumberFormat NF = java.text.NumberFormat.getInstance();
  484. NF.setGroupingUsed(false);//去掉科学计数法显示
  485. jkxlDetailFee.setOriginalTotalCost(new BigDecimal(NF.format(zFee[0])).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  486. jkxlDetailFee.setZjgcFee(new BigDecimal(zFee[1]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  487. jkxlDetailFee.setOriginalRgCost(new BigDecimal(zFee[2]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  488. jkxlDetailFee.setOriginalCbrCost(new BigDecimal(zFee[3]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  489. jkxlDetailFee.setOriginalFbrCost(new BigDecimal(zFee[4]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  490. jkxlDetailFee.setOriginalJxCost(new BigDecimal(zFee[5]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  491. jkxlDetailFee.setRgCost(new BigDecimal(zFee[6]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  492. jkxlDetailFee.setCbrCost(new BigDecimal(zFee[7]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  493. jkxlDetailFee.setFbrCost(new BigDecimal(zFee[8]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  494. jkxlDetailFee.setJxCost(new BigDecimal(zFee[9]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  495. jkxlDetailFee.setRgFtFee(new BigDecimal(zFee[10]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  496. jkxlDetailFee.setCbrFtFee(new BigDecimal(zFee[11]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  497. jkxlDetailFee.setFbrFtFee(new BigDecimal(zFee[12]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  498. jkxlDetailFee.setJxFtFee(new BigDecimal(zFee[13]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  499. jkxlDetailFee.setMeasuresFee1(new BigDecimal(zFee[14]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  500. jkxlDetailFee.setMeasuresFee2(new BigDecimal(zFee[15]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  501. jkxlDetailFee.setMeasuresFee3(new BigDecimal(zFee[16]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  502. jkxlDetailFee.setOtherCost(new BigDecimal(zFee[17]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  503. jkxlDetailFee.setFees(new BigDecimal(zFee[18]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  504. jkxlDetailFee.setTex(new BigDecimal(zFee[19]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  505. // jkxlDetailFee.setGxFee(new BigDecimal(zFee[20]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  506. jkxlDetailFee.setTotalFee(new BigDecimal(NF.format(zFee[21])).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
  507. jkxlDetailFee.setWbsCode("合计");
  508. jkxlDetailFee.setParentNode("30000000");
  509. jkxlDetailFee.setFeeType("1");
  510. jkxlDetailFee1.setWbsCode("合计");
  511. jkxlDetailFee1.setParentNode("34000000");
  512. jkxlDetailFee1.setFeeType("0");
  513. jkxlDetailFee1.setTotalFee(total1);
  514. List<JkxlDetailFee> list3 = new ArrayList<>();
  515. list3.add(jkxlDetailFee);
  516. list3.add(jkxlDetailFee1);
  517. return list3;
  518. }
  519. }