|
@@ -0,0 +1,827 @@
|
|
|
|
+package com.jeeplus.modules.sg.overheadline.web;
|
|
|
|
+
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
|
+import com.jeeplus.common.utils.DateUtils;
|
|
|
|
+import com.jeeplus.common.utils.excel.ExportExcel;
|
|
|
|
+import com.jeeplus.common.utils.excel.ImportExcel;
|
|
|
|
+import com.jeeplus.common.utils.sg.ExcelUtil;
|
|
|
|
+import com.jeeplus.core.web.BaseController;
|
|
|
|
+import com.jeeplus.modules.sg.overheadline.entity.*;
|
|
|
|
+import com.jeeplus.modules.sg.overheadline.service.FeeAdjustService;
|
|
|
|
+import com.jeeplus.modules.sg.overheadline.service.OverheadLineService;
|
|
|
|
+import com.jeeplus.modules.sg.overheadline.service.RuleRatioService;
|
|
|
|
+import com.jeeplus.modules.sg.overheadline.util.BashInfo;
|
|
|
|
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
|
+import org.springframework.ui.Model;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
|
|
|
+
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.*;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 架空线路
|
|
|
|
+ */
|
|
|
|
+@Controller
|
|
|
|
+@RequestMapping(value = "${adminPath}/jkxl")
|
|
|
|
+public class OverheadLineController extends BaseController {
|
|
|
|
+ @Autowired
|
|
|
|
+ private OverheadLineService overheadLineService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private RuleRatioService ruleRatioService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private FeeAdjustService feeAdjustService;
|
|
|
|
+
|
|
|
|
+ @RequestMapping("/index")
|
|
|
|
+ public String toImport(){
|
|
|
|
+ return "modules/sg/free/indexProject";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *数据导入
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping("/import")
|
|
|
|
+ public String importFile(MultipartFile file, RedirectAttributes redirectAttributes, HttpServletRequest request, Model model){
|
|
|
|
+ double sl = Double.valueOf(request.getParameter("jxsl"));
|
|
|
|
+ String projectName = request.getParameter("name");
|
|
|
|
+ String id = getId();
|
|
|
|
+ try {
|
|
|
|
+ double[] rate = getRate();
|
|
|
|
+ WbsProject wbsProject = new WbsProject();
|
|
|
|
+ wbsProject.setId(id);
|
|
|
|
+ wbsProject.setName(projectName);
|
|
|
|
+ wbsProject.setCreateDate(new Date());
|
|
|
|
+ List<JkxlDetailFee> list = getData(file,rate,id,sl);
|
|
|
|
+ double[] tzfee = getTzFee(file);
|
|
|
|
+ HashMap<String,Object> map = new HashMap<String,Object>();
|
|
|
|
+ map.put("id",id);
|
|
|
|
+ map.put("list",list);
|
|
|
|
+ map.put("wbsProject",wbsProject);
|
|
|
|
+ map.put("tzFee",tzfee);
|
|
|
|
+ overheadLineService.save(map);
|
|
|
|
+ } catch (Exception e){
|
|
|
|
+ addMessage(redirectAttributes, "导入失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ addMessage(redirectAttributes, "导入成功");
|
|
|
|
+ return "redirect:/a/jkxl/list?id="+id;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *金额分摊调整
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping("/fttz")
|
|
|
|
+ public String reList(FtData ftData, Model model,RedirectAttributes redirectAttributes){
|
|
|
|
+ String id = ftData.getId();
|
|
|
|
+ String code = ftData.getCode();
|
|
|
|
+ String state = ftData.getState();
|
|
|
|
+ String type = ftData.getType();
|
|
|
|
+ double fee = ftData.getFee();
|
|
|
|
+ double total = 0.00;
|
|
|
|
+ try {
|
|
|
|
+ List<JkxlDetailFee> jkxl = overheadLineService.getList(id);
|
|
|
|
+ List<JkxlDetailFee> jkxlDetailFees = new ArrayList<>();
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxl){
|
|
|
|
+ if(jkxlDetailFee.getOriginalTotalCost() != null){
|
|
|
|
+ jkxlDetailFees.add(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("1")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getRgCost();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getRgCost();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ jkxlDetailFee.setRgFtFee(ftFee);
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("2")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getCbrCost();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getCbrCost();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ jkxlDetailFee.setCbrFtFee(ftFee);
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("3")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getFbrCost();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getFbrCost();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ jkxlDetailFee.setFbrFtFee(ftFee);
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("4")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getJxCost();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getJxCost();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ jkxlDetailFee.setJxFtFee(ftFee);
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("5")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getMeasuresFee1();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getMeasuresFee1();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("6")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getMeasuresFee2();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getMeasuresFee2();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("7")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getMeasuresFee3();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getMeasuresFee3();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("8")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getOtherCost();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getOtherCost();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("9")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getFees();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getFees();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(code.equals("10")){
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
|
+ total += jkxlDetailFee.getTex();
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee1 : jkxlDetailFees){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(jkxlDetailFee1.getWbsCode());
|
|
|
|
+ double rgFee = jkxlDetailFee1.getTex();
|
|
|
|
+ double totalFee = jkxlDetailFee1.getTotalFee();
|
|
|
|
+ double ftFee = rgFee/total*fee;
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ double zFee = totalFee+ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee+ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }else {
|
|
|
|
+ double zFee = totalFee-ftFee;
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(rgFee-ftFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(zFee);
|
|
|
|
+ }
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
|
|
|
|
+ jkxlAdjustFee.setType(type);
|
|
|
|
+ jkxlAdjustFee.setId(id);
|
|
|
|
+ feeAdjustService.updateFee(jkxlAdjustFee);
|
|
|
|
+ } catch (Exception e){
|
|
|
|
+ addMessage(redirectAttributes, "调整失败");
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "调整成功");
|
|
|
|
+ return "redirect:/a/jkxl/list?id="+id;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *金额单独调整
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping("/ddtz")
|
|
|
|
+ public String ddtz(JkxlAdjustFee jkxlAdjustFee, Model model, RedirectAttributes redirectAttributes){
|
|
|
|
+ String id = jkxlAdjustFee.getId();
|
|
|
|
+ String type = jkxlAdjustFee.getType();
|
|
|
|
+ String state = jkxlAdjustFee.getState();
|
|
|
|
+ double fee = jkxlAdjustFee.getFee();
|
|
|
|
+ String data1 = jkxlAdjustFee.getData1();
|
|
|
|
+ String row = data1.replaceAll(""","\\\"");
|
|
|
|
+ List<DdtzData> ts = (List<DdtzData>) JSONArray.parseArray(row, DdtzData.class);
|
|
|
|
+ try {
|
|
|
|
+ for(DdtzData ddtzData: ts){
|
|
|
|
+ double tzFee = Double.valueOf(ddtzData.getFee());
|
|
|
|
+ String wbsCode = ddtzData.getWbsCode();
|
|
|
|
+ double otherFee = overheadLineService.getDate(id,wbsCode).getOtherCost();
|
|
|
|
+ double totalFee = overheadLineService.getDate(id,wbsCode).getTotalFee();
|
|
|
|
+ if(state.equals("1")){
|
|
|
|
+ otherFee = otherFee+tzFee;
|
|
|
|
+ totalFee = totalFee+tzFee;
|
|
|
|
+ }
|
|
|
|
+ if(state.equals("2")){
|
|
|
|
+ otherFee = otherFee-tzFee;
|
|
|
|
+ totalFee = totalFee-tzFee;
|
|
|
|
+ }
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlDetailFee.setWbsCode(wbsCode);
|
|
|
|
+ jkxlDetailFee.setOtherCost(otherFee);
|
|
|
|
+ jkxlDetailFee.setTotalFee(totalFee);
|
|
|
|
+ overheadLineService.updataDate(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ feeAdjustService.updateFee(jkxlAdjustFee);
|
|
|
|
+
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ addMessage(redirectAttributes, "调整失败");
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "调整成功");
|
|
|
|
+ return "redirect:/a/jkxl/list?id="+id;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @RequestMapping("/list")
|
|
|
|
+ public String list(HttpServletRequest request,Model model){
|
|
|
|
+ String id = request.getParameter("id");
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ jkxlAdjustFee.setId(id);
|
|
|
|
+ List<JkxlDetailFee> list1 = new ArrayList<>();
|
|
|
|
+ list1.add(jkxlDetailFee);
|
|
|
|
+ List<JkxlDetailFee> list = overheadLineService.getList(id);
|
|
|
|
+ list.addAll(getTotal(list));
|
|
|
|
+ List<JkxlAdjustFee> list2 = feeAdjustService.getTzFee(jkxlAdjustFee);
|
|
|
|
+ HashMap map = new HashMap();
|
|
|
|
+ map.put("list1",list1);
|
|
|
|
+ map.put("list",list);
|
|
|
|
+ map.put("list2",list2);
|
|
|
|
+ model.addAttribute("map",map);
|
|
|
|
+ return "modules/sg/free/wbslist";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *导出
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping("/export")
|
|
|
|
+ public String export(HttpServletRequest request, HttpServletResponse response,Model model,RedirectAttributes redirectAttributes) {
|
|
|
|
+ String id = request.getParameter("id");
|
|
|
|
+ try{
|
|
|
|
+ String fileName = "架空线路"+ DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
|
|
|
|
+ List<JkxlDetailFee> list = overheadLineService.findList(id);
|
|
|
|
+ new ExportExcel(null, JkxlDetailFee.class).setDataList(list).write(response, fileName).dispose();
|
|
|
|
+ return null;
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ addMessage(redirectAttributes, "导出失败");
|
|
|
|
+ }
|
|
|
|
+ addMessage(redirectAttributes, "导出成功");
|
|
|
|
+ return "redirect:/a/jkxl/list?id="+id;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public List<JkxlDetailFee> getData(MultipartFile file, double[] rate, String id, double sl) throws IOException, InvalidFormatException {
|
|
|
|
+ ImportExcel importExcel = new ImportExcel(file,1,BashInfo.SHEET_FBFXJJ); //分部分项工程量清单计价表
|
|
|
|
+ ImportExcel csqd = new ImportExcel(file,1,BashInfo.SHEET_CSB); // 措施项目清单计价表(一)
|
|
|
|
+ ImportExcel gf = new ImportExcel(file,1,BashInfo.SHEET_GFQD); //规费项目清单计价表
|
|
|
|
+ ImportExcel qt = new ImportExcel(file,1,BashInfo.SHEET_QTFY); //其他项目清单计价表
|
|
|
|
+ ImportExcel total = new ImportExcel(file,1,BashInfo.SHEET_HZB ); //工程项目竣工结算汇总表
|
|
|
|
+ ImportExcel gzhz = new ImportExcel(file,1,BashInfo.SHEET_GCHZ ); //架空线路工程费用汇总表
|
|
|
|
+ double[] csRate = getCsRate(csqd);
|
|
|
|
+ double[] gfRate = getGfRate(gf);
|
|
|
|
+ double[] qtFees = getQtFees(qt);
|
|
|
|
+ //获取补增值税税率调整差额和扣减甲供材超供材料费和合计
|
|
|
|
+ double[] wsbFees = ExcelUtil.getDoubleArray(total, new String[]{BashInfo.BZZSSL,BashInfo.KJJGCC,BashInfo.GCJS},1,2);
|
|
|
|
+ int[] zjgcFee = getZjgcFee(gzhz);
|
|
|
|
+ double texRate = ExcelUtil.getTexRate(total); //获取税率
|
|
|
|
+ double totalFee = 0.00;
|
|
|
|
+ List<JkxlDetailFee> list = new ArrayList<>();
|
|
|
|
+ int lastRow = importExcel.getLastDataRowNum();
|
|
|
|
+ int[] row = new int[6];
|
|
|
|
+ for(int i=0;i<lastRow;i++){
|
|
|
|
+ String type = importExcel.getValue(i+1,2);
|
|
|
|
+ if(type.equals(BashInfo.PROJECTNAME)){
|
|
|
|
+ totalFee = importExcel.getDouble(i+1,12);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.JCGC)){
|
|
|
|
+ row[0] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.GTGC)){
|
|
|
|
+ row[1] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.JDGC)){
|
|
|
|
+ row[2] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.JXGC)){
|
|
|
|
+ row[3] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.FJAZGC)){
|
|
|
|
+ row[4] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.FZGC)){
|
|
|
|
+ row[5] = i+1;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for(int i=0;i<6;i++){
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ double originalTotalCost = gzhz.getDouble(zjgcFee[i],2); //原合计
|
|
|
|
+ double otherRate = originalTotalCost/totalFee; //其他费用分摊比例
|
|
|
|
+ double orRate = new BigDecimal(otherRate).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue(); //四舍五入
|
|
|
|
+ double otherFee = qtFees[2]*otherRate; //其他费用
|
|
|
|
+ double zjgcFees = gzhz.getDouble(zjgcFee[i],3);//直接工程费
|
|
|
|
+ double originalRgCost = importExcel.getDouble(row[i],13); //原人工费
|
|
|
|
+ double rgCost = originalRgCost/(1+rate[0]); //后人工费
|
|
|
|
+ double originalCbrCost = importExcel.getDouble(row[i],14); //原承包人采购
|
|
|
|
+ double cbrCost = originalCbrCost/(1+rate[1]); //后承包人采购
|
|
|
|
+ double originalFbrCost = importExcel.getDouble(row[i],15); //原发包人采购
|
|
|
|
+ double fbrCost = originalFbrCost/(1+sl); //后发包人采购
|
|
|
|
+ double originalJxrCost = importExcel.getDouble(row[i],17); //原机械费
|
|
|
|
+ double jxCost = originalJxrCost/(1+rate[2]); //后机械费
|
|
|
|
+ double measuresFee1 = (zjgcFees-fbrCost*sl)*csRate[0]; //措施费1
|
|
|
|
+ double measuresFee2 = rgCost*csRate[1]; //措施费2
|
|
|
|
+ double fees = rgCost*gfRate[1]*1.12+rgCost*gfRate[0]; //规费
|
|
|
|
+ double tax = (originalTotalCost+measuresFee1+measuresFee2+fees+otherFee-originalFbrCost)*texRate; //税金
|
|
|
|
+ double totalfee = originalTotalCost+measuresFee1+measuresFee2+fees+otherFee+tax-originalFbrCost; //合计
|
|
|
|
+ jkxlDetailFee.setOriginalTotalCost(originalTotalCost);
|
|
|
|
+ jkxlDetailFee.setOriginalRate(orRate);
|
|
|
|
+ jkxlDetailFee.setOriginalRgCost(originalRgCost);
|
|
|
|
+ jkxlDetailFee.setRgCost(rgCost);
|
|
|
|
+ jkxlDetailFee.setOriginalCbrCost(originalCbrCost);
|
|
|
|
+ jkxlDetailFee.setCbrCost(cbrCost);
|
|
|
|
+ jkxlDetailFee.setOriginalFbrCost(originalFbrCost);
|
|
|
|
+ jkxlDetailFee.setFbrCost(fbrCost);
|
|
|
|
+ jkxlDetailFee.setOriginalJxCost(originalJxrCost);
|
|
|
|
+ jkxlDetailFee.setJxCost(jxCost);
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(measuresFee1);
|
|
|
|
+ jkxlDetailFee.setMeasuresFee2(measuresFee2);
|
|
|
|
+ jkxlDetailFee.setFees(fees);
|
|
|
|
+ jkxlDetailFee.setOtherCost(otherFee);
|
|
|
|
+ jkxlDetailFee.setTex(tax);
|
|
|
|
+ jkxlDetailFee.setTotalFee(totalfee);
|
|
|
|
+ jkxlDetailFee.setZjgcFee(zjgcFees);
|
|
|
|
+ jkxlDetailFee.setWbsCode(BashInfo.ids[i]);
|
|
|
|
+ jkxlDetailFee.setId(id);
|
|
|
|
+ list.add(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ double tz = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ tz += jkxlDetailFee.getTotalFee();
|
|
|
|
+ }
|
|
|
|
+ if(wsbFees[2]>tz){
|
|
|
|
+ double gxFee = wsbFees[2]-tz-qtFees[0]-qtFees[1]-wsbFees[0]-wsbFees[1];
|
|
|
|
+ double rate1 = 0.00;
|
|
|
|
+ double gxFee1 = 0.00;
|
|
|
|
+ double totalF = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ rate1 = jkxlDetailFee.getTotalFee()/tz;
|
|
|
|
+ gxFee1 = gxFee*rate1;
|
|
|
|
+ totalF = gxFee1 + jkxlDetailFee.getTotalFee();
|
|
|
|
+ jkxlDetailFee.setGxFee(Math.abs(gxFee1));
|
|
|
|
+ jkxlDetailFee.setTotalFee(totalF);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ double gxFee = tz+qtFees[0]+qtFees[1]+wsbFees[0]+wsbFees[1]-wsbFees[2];
|
|
|
|
+ double rate1 = 0.00;
|
|
|
|
+ double gxFee1 = 0.00;
|
|
|
|
+ double totalF = 0.00;
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ rate1 = jkxlDetailFee.getTotalFee()/tz;
|
|
|
|
+ gxFee1 = gxFee*rate1;
|
|
|
|
+ totalF = jkxlDetailFee.getTotalFee()-gxFee1;
|
|
|
|
+ jkxlDetailFee.setGxFee(Math.abs(gxFee1));
|
|
|
|
+ jkxlDetailFee.setTotalFee(totalF);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ JkxlDetailFee jkxlDetailFee1 = new JkxlDetailFee();
|
|
|
|
+ JkxlDetailFee jkxlDetailFee2 = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee1.setId(id);
|
|
|
|
+ jkxlDetailFee1.setWbsCode("34120000");
|
|
|
|
+ jkxlDetailFee1.setTotalFee(qtFees[0]);
|
|
|
|
+ jkxlDetailFee2.setWbsCode("34220000");
|
|
|
|
+ jkxlDetailFee2.setTotalFee(qtFees[1]);
|
|
|
|
+ jkxlDetailFee2.setId(id);
|
|
|
|
+ list.add(jkxlDetailFee1);
|
|
|
|
+ list.add(jkxlDetailFee2);
|
|
|
|
+
|
|
|
|
+ return list;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *获取措施费率
|
|
|
|
+ */
|
|
|
|
+ public double[] getCsRate(ImportExcel importExcel){
|
|
|
|
+ int lastRow = importExcel.getLastDataRowNum();
|
|
|
|
+ double lsRate = 0.00;
|
|
|
|
+ double aqRate = 0.00;
|
|
|
|
+ double totalRate = 0.00;
|
|
|
|
+ for(int i=2;i<lastRow;i++){
|
|
|
|
+ String type = importExcel.getValue(i+1,1);
|
|
|
|
+ if(type.equals(BashInfo.CS_LS)){
|
|
|
|
+ lsRate = importExcel.getDouble(i+1,3);
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.CS_AQWM)){
|
|
|
|
+ aqRate = importExcel.getDouble(i+1,3);
|
|
|
|
+ }
|
|
|
|
+ totalRate += importExcel.getDouble(i+1,3);
|
|
|
|
+ }
|
|
|
|
+ double[] rate = new double[2];
|
|
|
|
+ rate[0] = (lsRate+aqRate)/100;
|
|
|
|
+ rate[1] = (totalRate-lsRate-aqRate)/100;
|
|
|
|
+ return rate;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *获取规费率
|
|
|
|
+ */
|
|
|
|
+ public double[] getGfRate(ImportExcel importExcel) {
|
|
|
|
+ int lastRow = importExcel.getLastDataRowNum();
|
|
|
|
+ double totalRate = 0.00;
|
|
|
|
+ double wxzyRate = 0.00;
|
|
|
|
+ for (int i = 2; i < lastRow; i++) {
|
|
|
|
+ String type = importExcel.getValue(i + 1, 1);
|
|
|
|
+ if (type.equals(BashInfo.GF_WXZY)) {
|
|
|
|
+ wxzyRate = importExcel.getDouble(i + 1, 3);
|
|
|
|
+ }
|
|
|
|
+ if (!importExcel.getValue(i + 1, 2).equals("")) {
|
|
|
|
+ totalRate += importExcel.getDouble(i + 1, 3);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ double[] rate = new double[2];
|
|
|
|
+ rate[0] = wxzyRate / 100;
|
|
|
|
+ rate[1] = (totalRate - wxzyRate) / 100;
|
|
|
|
+ return rate;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取其他费用
|
|
|
|
+ */
|
|
|
|
+ public double[] getQtFees(ImportExcel importExcel) {
|
|
|
|
+ int lastRow = importExcel.getLastDataRowNum();
|
|
|
|
+ double cdFree = 0.00;
|
|
|
|
+ double zbFree = 0.00;
|
|
|
|
+ double totalFree = 0.00;
|
|
|
|
+ for(int i=2;i<lastRow;i++){
|
|
|
|
+ String type = importExcel.getValue(i+1,1);
|
|
|
|
+ String type1 = importExcel.getValue(i+1,0);
|
|
|
|
+ if(type.equals(BashInfo.QT_SGCDZY)){
|
|
|
|
+ cdFree = importExcel.getDouble(i+1,2);
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.QT_ZBDL)){
|
|
|
|
+ zbFree = importExcel.getDouble(i+1,2);
|
|
|
|
+ }
|
|
|
|
+ if(type1.equals(BashInfo.QT_HJ)){
|
|
|
|
+ totalFree = importExcel.getDouble(i+1,2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ double[] rate = new double[3];
|
|
|
|
+ rate[0] = cdFree;
|
|
|
|
+ rate[1] = zbFree;
|
|
|
|
+ rate[2] = totalFree-cdFree-zbFree;
|
|
|
|
+ return rate;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取调差系数
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public double[] getRate(){
|
|
|
|
+ double[] rate = new double[3];
|
|
|
|
+ rate[0] = ruleRatioService.getValueByName(BashInfo.RATIO_RGTC).getValue()/100;
|
|
|
|
+ rate[1] = ruleRatioService.getValueByName(BashInfo.RATIO_CLTC).getValue()/100;
|
|
|
|
+ rate[2] = ruleRatioService.getValueByName(BashInfo.RATIO_JXTC).getValue()/100;
|
|
|
|
+ return rate;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取补增值税税率调整差额和扣减甲供材超供材料费
|
|
|
|
+ */
|
|
|
|
+ public double[] getFees(ImportExcel importExcel){
|
|
|
|
+ int lastRow = importExcel.getLastDataRowNum();
|
|
|
|
+ double bzFree = 0.00;
|
|
|
|
+ double kcFree = 0.00;
|
|
|
|
+ double gcjs = 0.00;
|
|
|
|
+ for(int i=0;i<lastRow;i++){
|
|
|
|
+ String type = importExcel.getValue(i+1,1);
|
|
|
|
+ if(type.equals(BashInfo.BZZSSL)){
|
|
|
|
+ bzFree = importExcel.getDouble(i+1,2);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.KJJGCC)){
|
|
|
|
+ kcFree = importExcel.getDouble(i+1,2);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.TBJG) || type.equals(BashInfo.GCJS)){
|
|
|
|
+ gcjs = importExcel.getDouble(i+1,2);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ double[] wsb = new double[3];
|
|
|
|
+ wsb[0] = bzFree;
|
|
|
|
+ wsb[1] = kcFree;
|
|
|
|
+ wsb[2] = gcjs;
|
|
|
|
+ return wsb;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *获取直接工程费
|
|
|
|
+ */
|
|
|
|
+ public int[] getZjgcFee(ImportExcel importExcel) {
|
|
|
|
+ int lastRow = importExcel.getLastDataRowNum();
|
|
|
|
+ int[] row = new int[6];
|
|
|
|
+ for(int i=0;i<lastRow;i++){
|
|
|
|
+ String type = importExcel.getValue(i+1,1);
|
|
|
|
+ if(type.equals(BashInfo.HZ_JCGC)){
|
|
|
|
+ row[0] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.HZ_GTGC)){
|
|
|
|
+ row[1] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.HZ_JDGC)){
|
|
|
|
+ row[2] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.HZ_JXGC)){
|
|
|
|
+ row[3] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.HZ_FJAZGC)){
|
|
|
|
+ row[4] = i+1;
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if(type.equals(BashInfo.HZ_FZ)){
|
|
|
|
+ row[5] = i+1;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return row;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public double[] getTzFee(MultipartFile file) throws IOException, InvalidFormatException {
|
|
|
|
+ ImportExcel total = new ImportExcel(file,1,BashInfo.SHEET_HZB );
|
|
|
|
+ double[] wsb = getFees(total);
|
|
|
|
+ return wsb;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 创建项目ID
|
|
|
|
+ */
|
|
|
|
+ public String getId() {
|
|
|
|
+ SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
+ String newDate=sdf.format(new Date());
|
|
|
|
+ String result="";
|
|
|
|
+ Random random=new Random();
|
|
|
|
+ for(int i=0;i<3;i++){
|
|
|
|
+ result+=random.nextInt(10);
|
|
|
|
+ }
|
|
|
|
+ return newDate+result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *求和
|
|
|
|
+ */
|
|
|
|
+ private List<JkxlDetailFee> getTotal(List<JkxlDetailFee> list) {
|
|
|
|
+ List<JkxlDetailFee> list1 = new ArrayList<>();
|
|
|
|
+ List<JkxlDetailFee> list2 = new ArrayList<>();
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ if(jkxlDetailFee.getOriginalTotalCost() != null){
|
|
|
|
+ list1.add(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
|
+ if(jkxlDetailFee.getOriginalTotalCost() == null && jkxlDetailFee.getTotalFee() != null){
|
|
|
|
+ list2.add(jkxlDetailFee);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ double total1 = 0.00;
|
|
|
|
+ for (JkxlDetailFee jkxlDetailFee :list2){
|
|
|
|
+ total1 += jkxlDetailFee.getTotalFee();
|
|
|
|
+ }
|
|
|
|
+ double [] zFee = new double[22];
|
|
|
|
+ for(JkxlDetailFee jkxlDetailFee :list1){
|
|
|
|
+ zFee[0] += jkxlDetailFee.getOriginalTotalCost();
|
|
|
|
+ zFee[1] += jkxlDetailFee.getZjgcFee();
|
|
|
|
+ zFee[2] += jkxlDetailFee.getOriginalRgCost();
|
|
|
|
+ zFee[3] += jkxlDetailFee.getOriginalCbrCost();
|
|
|
|
+ zFee[4] += jkxlDetailFee.getOriginalFbrCost();
|
|
|
|
+ zFee[5] += jkxlDetailFee.getOriginalJxCost();
|
|
|
|
+ zFee[6] += jkxlDetailFee.getRgCost();
|
|
|
|
+ zFee[7] += jkxlDetailFee.getCbrCost();
|
|
|
|
+ zFee[8] += jkxlDetailFee.getFbrCost();
|
|
|
|
+ zFee[9] += jkxlDetailFee.getJxCost();
|
|
|
|
+ zFee[10] += jkxlDetailFee.getRgFtFee()!=null? jkxlDetailFee.getRgFtFee():0.00;
|
|
|
|
+ zFee[11] += jkxlDetailFee.getCbrFtFee()!=null? jkxlDetailFee.getCbrFtFee():0.00;
|
|
|
|
+ zFee[12] += jkxlDetailFee.getFbrFtFee()!=null? jkxlDetailFee.getFbrFtFee():0.00;
|
|
|
|
+ zFee[13] += jkxlDetailFee.getJxFtFee()!=null? jkxlDetailFee.getJxFtFee():0.00;
|
|
|
|
+ zFee[14] += jkxlDetailFee.getMeasuresFee1();
|
|
|
|
+ zFee[15] += jkxlDetailFee.getMeasuresFee2();
|
|
|
|
+ zFee[16] += jkxlDetailFee.getMeasuresFee3()!=null? jkxlDetailFee.getMeasuresFee3():0.00;
|
|
|
|
+ zFee[17] += jkxlDetailFee.getOtherCost();
|
|
|
|
+ zFee[18] += jkxlDetailFee.getFees();
|
|
|
|
+ zFee[19] += jkxlDetailFee.getTex();
|
|
|
|
+ zFee[20] += jkxlDetailFee.getGxFee();
|
|
|
|
+ zFee[21] += jkxlDetailFee.getTotalFee();
|
|
|
|
+ }
|
|
|
|
+ JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
|
|
|
|
+ JkxlDetailFee jkxlDetailFee1 = new JkxlDetailFee();
|
|
|
|
+ jkxlDetailFee.setOriginalTotalCost(new BigDecimal(zFee[0]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setZjgcFee(new BigDecimal(zFee[1]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setOriginalRgCost(new BigDecimal(zFee[2]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setOriginalCbrCost(new BigDecimal(zFee[3]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setOriginalFbrCost(new BigDecimal(zFee[4]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setOriginalJxCost(new BigDecimal(zFee[5]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setRgCost(new BigDecimal(zFee[6]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setCbrCost(new BigDecimal(zFee[7]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setFbrCost(new BigDecimal(zFee[8]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setJxCost(new BigDecimal(zFee[9]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setRgFtFee(new BigDecimal(zFee[10]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setCbrFtFee(new BigDecimal(zFee[11]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setFbrFtFee(new BigDecimal(zFee[12]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setJxFtFee(new BigDecimal(zFee[13]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setMeasuresFee1(new BigDecimal(zFee[14]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setMeasuresFee2(new BigDecimal(zFee[15]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setMeasuresFee3(new BigDecimal(zFee[16]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setOtherCost(new BigDecimal(zFee[17]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setFees(new BigDecimal(zFee[18]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setTex(new BigDecimal(zFee[19]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setGxFee(new BigDecimal(zFee[20]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setTotalFee(new BigDecimal(zFee[21]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
+ jkxlDetailFee.setWbsCode("合计");
|
|
|
|
+ jkxlDetailFee.setParentNode("30000000");
|
|
|
|
+ jkxlDetailFee.setState("1");
|
|
|
|
+ jkxlDetailFee1.setWbsCode("合计");
|
|
|
|
+ jkxlDetailFee1.setParentNode("34000000");
|
|
|
|
+ jkxlDetailFee1.setState("0");
|
|
|
|
+ jkxlDetailFee1.setTotalFee(total1);
|
|
|
|
+ List<JkxlDetailFee> list3 = new ArrayList<>();
|
|
|
|
+ list3.add(jkxlDetailFee);
|
|
|
|
+ list3.add(jkxlDetailFee1);
|
|
|
|
+ return list3;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|