|
@@ -8,6 +8,8 @@ import com.jeeplus.modules.sg.overheadline.entity.Settlement;
|
|
|
import com.jeeplus.modules.sg.overheadline.entity.WbsProject;
|
|
|
import com.jeeplus.modules.sg.overheadline.mapper.OverheadLineMapper;
|
|
|
import com.jeeplus.modules.sg.overheadline.util.BashInfo;
|
|
|
+import com.jeeplus.modules.sg.project.entity.WbsItem;
|
|
|
+import com.jeeplus.modules.sg.project.service.ItemService;
|
|
|
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -29,6 +31,8 @@ public class OverheadLineService {
|
|
|
private RuleRatioService ruleRatioService;
|
|
|
@Autowired
|
|
|
private SettlementService settlementService;
|
|
|
+ @Autowired
|
|
|
+ private ItemService itemService;
|
|
|
|
|
|
|
|
|
|
|
@@ -82,13 +86,22 @@ public class OverheadLineService {
|
|
|
}
|
|
|
|
|
|
@Transactional(readOnly = false)
|
|
|
- public void save(MultipartFile file,double sl,String name,String id) throws IOException, InvalidFormatException {
|
|
|
-// WbsProject wbsProject = new WbsProject();
|
|
|
-// wbsProject.setId(id);
|
|
|
-// wbsProject.setName(name);
|
|
|
-// wbsProject.setCreateDate(new Date());
|
|
|
- //保存项目
|
|
|
-// overheadLineMapper.saveProject(wbsProject);
|
|
|
+ public void save(MultipartFile file,String name,String id,String projectId) throws IOException, InvalidFormatException {
|
|
|
+ WbsItem wbsItem = itemService.get(id);
|
|
|
+ if(wbsItem == null){
|
|
|
+ WbsItem wbsItem1 = new WbsItem();
|
|
|
+ wbsItem1.setProjectId(projectId);
|
|
|
+ wbsItem1.setId(id);
|
|
|
+ wbsItem1.setItemName(name);
|
|
|
+ //保存项目
|
|
|
+ itemService.save(wbsItem1);
|
|
|
+ }
|
|
|
+ List<JkxlDetailFee> jkxlDetailFees = overheadLineMapper.findList(id);
|
|
|
+ if(jkxlDetailFees != null && jkxlDetailFees.size()>0){
|
|
|
+ overheadLineMapper.delete(id);
|
|
|
+ feeAdjustService.delete(id);
|
|
|
+ settlementService.delete(id);
|
|
|
+ }
|
|
|
//获取调差系数
|
|
|
double[] tcRate = new double[3];
|
|
|
tcRate[0] = ruleRatioService.getValueByName(BashInfo.RATIO_RGTC).getValue()/100;
|
|
@@ -100,8 +113,9 @@ public class OverheadLineService {
|
|
|
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 ); //架空线路工程费用汇总表
|
|
|
- //数据核验数据
|
|
|
+ ImportExcel gzhz = new ImportExcel(file,1,BashInfo.SHEET_GCHZ ); //架空线路工程费用汇总
|
|
|
+ ImportExcel fbrcg = new ImportExcel(file,1,BashInfo.SHEET_FBRCG); //发包人采购材料设备计价表
|
|
|
+ //数据核验数据
|
|
|
Map<String,Object[]> builtMap = BashInfo.getCompletionWorks(total);//获取工程项目竣工所有数据
|
|
|
double builtTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
|
|
|
double wordtotal = ExcelUtil.getDouble(csqd,BashInfo.QT_HJ,0,4);//获取措施费清单计价表
|
|
@@ -122,6 +136,11 @@ public class OverheadLineService {
|
|
|
double[] gfRate = BashInfo.getGfRate(gf); //获取规费率
|
|
|
double[] qtFees = BashInfo.getQtFees(qt); //获取其他费用
|
|
|
double gcjsFee = BashInfo.getGcjsFee(total); //获取工程结算价
|
|
|
+ double fbrFee = ExcelUtil.getDouble(fbrcg,BashInfo.QT_HJ,0,6); //发包人采购计价表合计金额
|
|
|
+ double zjgcTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,3);//直接工程费合计
|
|
|
+ double[] aqwmFees = ExcelUtil.getDoubleArray(csqd,BashInfo.CS_AQWM,1, new int[]{3, 4}); //安全文明施工费
|
|
|
+ double zg = zjgcTotal-(aqwmFees[1]/(aqwmFees[0]/100));
|
|
|
+ double jxsl = new BigDecimal(zg/(fbrFee-zg)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); //进项税率
|
|
|
//将本体工程费用明细存入集合
|
|
|
List<JkxlDetailFee> list = new ArrayList<>();
|
|
|
for(int i=0;i<originalTotalFees.length;i++){
|
|
@@ -136,10 +155,10 @@ public class OverheadLineService {
|
|
|
double originalCbrCost = originalFees[i][1]; //原承包人采购
|
|
|
double cbrCost = originalCbrCost/(1+tcRate[1]); //后承包人采购
|
|
|
double originalFbrCost = originalFees[i][2]; //原发包人采购
|
|
|
- double fbrCost = originalFbrCost/(1+sl); //后发包人采购
|
|
|
+ double fbrCost = originalFbrCost/(1+jxsl); //后发包人采购
|
|
|
double originalJxrCost = originalFees[i][3]; //原机械费
|
|
|
double jxCost = originalJxrCost/(1+tcRate[2]); //后机械费
|
|
|
- double measuresFee1 = (zjgcFee-fbrCost*sl)*csRate[0]; //措施费一(2)
|
|
|
+ double measuresFee1 = (zjgcFee-fbrCost*jxsl)*csRate[0]; //措施费一(2)
|
|
|
double measuresFee2 = rgCost*csRate[1]; //措施费一(1)
|
|
|
double measuresFee3 = 0.00; //措施费二
|
|
|
double fees = rgCost*gfRate[1]*1.12+rgCost*gfRate[0]; //规费
|