|
@@ -35,10 +35,12 @@ 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";
|
|
@@ -49,40 +51,57 @@ public class OverheadLineController extends BaseController {
|
|
|
*/
|
|
|
@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");
|
|
|
+ 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){
|
|
|
+ //保存数据到数据库
|
|
|
+ overheadLineService.save(file,sl,projectName,id);
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ addMessage(redirectAttributes, "导入失败"+e.getMessage());
|
|
|
+ return "modules/sg/free/indexProject";
|
|
|
+ } catch (Exception e){
|
|
|
addMessage(redirectAttributes, "导入失败");
|
|
|
+ return "modules/sg/free/indexProject";
|
|
|
}
|
|
|
-
|
|
|
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("/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();
|
|
|
+ String code = ftData.getCode(); //分摊费用类型
|
|
|
+ String state = ftData.getState(); //1:增加 2:减少
|
|
|
+ String type = ftData.getType(); //分摊费用名
|
|
|
double fee = ftData.getFee();
|
|
|
double total = 0.00;
|
|
|
try {
|
|
@@ -93,7 +112,8 @@ public class OverheadLineController extends BaseController {
|
|
|
jkxlDetailFees.add(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("1")){
|
|
|
+ //人工费
|
|
|
+ if(code.equals(BashInfo.TZ_RGF)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getRgCost();
|
|
|
}
|
|
@@ -115,7 +135,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("2")){
|
|
|
+ //承包人采购
|
|
|
+ if(code.equals(BashInfo.TZ_CBRCG)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getCbrCost();
|
|
|
}
|
|
@@ -137,7 +158,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("3")){
|
|
|
+ //发包人采购
|
|
|
+ if(code.equals(BashInfo.TZ_FBRCG)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getFbrCost();
|
|
|
}
|
|
@@ -159,7 +181,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("4")){
|
|
|
+ //机械费
|
|
|
+ if(code.equals(BashInfo.TZ_JX)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getJxCost();
|
|
|
}
|
|
@@ -181,7 +204,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("5")){
|
|
|
+ //措施费一(1)
|
|
|
+ if(code.equals(BashInfo.TZ_CSF1)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getMeasuresFee1();
|
|
|
}
|
|
@@ -204,7 +228,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("6")){
|
|
|
+ //措施费一(2)
|
|
|
+ if(code.equals(BashInfo.TZ_CSF2)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getMeasuresFee2();
|
|
|
}
|
|
@@ -227,7 +252,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("7")){
|
|
|
+ //措施费二
|
|
|
+ if(code.equals(BashInfo.TZ_CSF3)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getMeasuresFee3();
|
|
|
}
|
|
@@ -250,7 +276,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("8")){
|
|
|
+ //其他费
|
|
|
+ if(code.equals(BashInfo.TZ_QTF)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getOtherCost();
|
|
|
}
|
|
@@ -273,7 +300,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("9")){
|
|
|
+ //规费
|
|
|
+ if(code.equals(BashInfo.TZ_GF)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getFees();
|
|
|
}
|
|
@@ -296,7 +324,8 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
- if(code.equals("10")){
|
|
|
+ //税费
|
|
|
+ if(code.equals(BashInfo.TZ_SF)){
|
|
|
for(JkxlDetailFee jkxlDetailFee : jkxlDetailFees) {
|
|
|
total += jkxlDetailFee.getTex();
|
|
|
}
|
|
@@ -319,6 +348,7 @@ public class OverheadLineController extends BaseController {
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
+ //更新未识别费用表
|
|
|
JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
|
|
|
jkxlAdjustFee.setType(type);
|
|
|
jkxlAdjustFee.setId(id);
|
|
@@ -335,15 +365,15 @@ public class OverheadLineController extends BaseController {
|
|
|
*金额单独调整
|
|
|
*/
|
|
|
@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();
|
|
|
+ public String ddtz(FtData ftData, Model model, RedirectAttributes redirectAttributes){
|
|
|
+ String id = ftData.getId();
|
|
|
+ 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);
|
|
|
try {
|
|
|
+ //更新细节费用表
|
|
|
for(DdtzData ddtzData: ts){
|
|
|
double tzFee = Double.valueOf(ddtzData.getFee());
|
|
|
String wbsCode = ddtzData.getWbsCode();
|
|
@@ -364,6 +394,10 @@ public class OverheadLineController extends BaseController {
|
|
|
jkxlDetailFee.setTotalFee(totalFee);
|
|
|
overheadLineService.updataDate(jkxlDetailFee);
|
|
|
}
|
|
|
+ //更新未识别费用表
|
|
|
+ JkxlAdjustFee jkxlAdjustFee = new JkxlAdjustFee();
|
|
|
+ jkxlAdjustFee.setType(ftData.getType());
|
|
|
+ jkxlAdjustFee.setId(id);
|
|
|
feeAdjustService.updateFee(jkxlAdjustFee);
|
|
|
|
|
|
}catch (Exception e){
|
|
@@ -376,28 +410,6 @@ public class OverheadLineController extends BaseController {
|
|
|
|
|
|
|
|
|
|
|
|
- @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";
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
*导出
|
|
@@ -408,6 +420,7 @@ public class OverheadLineController extends BaseController {
|
|
|
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){
|
|
@@ -418,306 +431,6 @@ public class OverheadLineController extends BaseController {
|
|
|
}
|
|
|
|
|
|
|
|
|
- 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
|
|
@@ -740,11 +453,13 @@ public class OverheadLineController extends BaseController {
|
|
|
private List<JkxlDetailFee> getTotal(List<JkxlDetailFee> list) {
|
|
|
List<JkxlDetailFee> list1 = new ArrayList<>();
|
|
|
List<JkxlDetailFee> list2 = new ArrayList<>();
|
|
|
+ //获取主体部分list集合
|
|
|
for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
if(jkxlDetailFee.getOriginalTotalCost() != null){
|
|
|
list1.add(jkxlDetailFee);
|
|
|
}
|
|
|
}
|
|
|
+ //获取其他费用list集合
|
|
|
for(JkxlDetailFee jkxlDetailFee : list){
|
|
|
if(jkxlDetailFee.getOriginalTotalCost() == null && jkxlDetailFee.getTotalFee() != null){
|
|
|
list2.add(jkxlDetailFee);
|
|
@@ -805,10 +520,10 @@ public class OverheadLineController extends BaseController {
|
|
|
jkxlDetailFee.setTotalFee(new BigDecimal(zFee[21]).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
jkxlDetailFee.setWbsCode("合计");
|
|
|
jkxlDetailFee.setParentNode("30000000");
|
|
|
- jkxlDetailFee.setState("1");
|
|
|
+ jkxlDetailFee.setFeeType("1");
|
|
|
jkxlDetailFee1.setWbsCode("合计");
|
|
|
jkxlDetailFee1.setParentNode("34000000");
|
|
|
- jkxlDetailFee1.setState("0");
|
|
|
+ jkxlDetailFee1.setFeeType("0");
|
|
|
jkxlDetailFee1.setTotalFee(total1);
|
|
|
List<JkxlDetailFee> list3 = new ArrayList<>();
|
|
|
list3.add(jkxlDetailFee);
|