chengqiang 5 rokov pred
rodič
commit
5e947cad39

+ 11 - 1
src/main/java/com/jeeplus/common/utils/excel/ImportExcel.java

@@ -194,7 +194,17 @@ public class ImportExcel {
 		log.debug("Initialize success.");
 	}
 
-
+	/**
+	 * 在excel文件中查找是否含有sheetName中的页签名,如果有则将该页签作为ImportExcel对象的页签,没有再根据flag判断,
+	 * true则抛出异常,false则对象页签为空
+	 * @param fileName
+	 * @param is
+	 * @param headerNum
+	 * @param sheetName
+	 * @param flag
+	 * @throws InvalidFormatException
+	 * @throws IOException
+	 */
 	public ImportExcel(String fileName, InputStream is, int headerNum, String[] sheetName,boolean flag)
 			throws InvalidFormatException, IOException {
 		int i = 100;

+ 13 - 2
src/main/java/com/jeeplus/common/utils/sg/ExcelUtil.java

@@ -11,6 +11,7 @@ public class ExcelUtil {
 
     /**
      * 根据字段读取数据
+     * 方法逻辑:遍历column1列值,当值等于st时,获取对应column2列值
      * @param importExcel
      * @param st
      * @param column1
@@ -56,7 +57,7 @@ public class ExcelUtil {
 
 
     /**
-     * 根据字段读取数据
+     * 根据字段读取数据,遍历column1的文字,与sts中文字进行匹配,匹配上了,就获取coulumn2数据增加到新数组对应位置
      * @param importExcel 文件对象
      * @param sts   字段
      * @param column1 字段列号
@@ -82,6 +83,14 @@ public class ExcelUtil {
     }
 
 
+    /**
+     * 遍历excel页签,column1列,查找值为st的行,返回column2中数字表示多个列的值
+     * @param importExcel
+     * @param st
+     * @param column1
+     * @param column2
+     * @return
+     */
     public static double[] getDoubleArray(ImportExcel importExcel,String st,int column1,int[] column2){
         int lastRow = importExcel.getLastDataRowNum();
         int len = column2.length;
@@ -229,6 +238,7 @@ public class ExcelUtil {
 
     /**
      * 读取税率
+     * 代码逻辑:读取“:”与“%”之间的值 除以100
      */
     public static double getTexRate(ImportExcel importExcel){
         double rate = 0.00;
@@ -248,6 +258,7 @@ public class ExcelUtil {
 
     /**
      * 读取税金
+     * 代码逻辑:读取第一个包含税金的行的值
      */
     public static double getTex(ImportExcel importExcel){
         double rate = 0.00;
@@ -263,7 +274,7 @@ public class ExcelUtil {
     }
 
     /**
-     * 读取发包人采购
+     * 读取发包人采购设备费
      */
     public static double getFbr(ImportExcel importExcel){
         double rate = 0.00;

+ 22 - 4
src/main/java/com/jeeplus/modules/sg/overheadline/service/OverheadLineService.java

@@ -276,7 +276,8 @@ public List<JkxlDetailFee> findList(String id,String type){
         ImportExcel qt = new ImportExcel(file,1,BashInfo.SHEET_QTFY,true);  //其他项目清单计价表
         ImportExcel gzhz = new ImportExcel(file,1,new String[]{BashInfo.SHEET_GCHZ,BashInfo.SHEET_GCHZ1},true );   //架空线路工程费用汇总
         ImportExcel cbrsb = new ImportExcel(file,1,new String[]{BashInfo.SHEET_TBRCG,BashInfo.SHEET_CBRCG},false);//承包人采购设备计价表
-        //获取表格数据
+
+//        获取《工程项目竣工结算汇总表》数据
         double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2); //获取措施费
         double csFees2 = ExcelUtil.getDouble(total,BashInfo.CSXM2,1,2);//措施费二
         double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);  //获取规费
@@ -286,12 +287,18 @@ public List<JkxlDetailFee> findList(String id,String type){
         double btex = BashInfo.getBtex(total);  //获取补税额
         double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
         double gcjsFee = BashInfo.getGcjsFee(total);  //获取工程结算价
+
+//        获取《架空线路工程费用汇总》中各分部分项的合计费用和直接工程费
         double[] originalTotalFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,2); //获取合计费
         double[] zjgcFees = ExcelUtil.getDoubleArray(gzhz,BashInfo.HZ_ALL,1,3);  //获取直接工程费
         double zjgcTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,3);//直接工程费合计
+
+//        获取《分部分项工程量清单计价表》详细费用数据
         double totalRgFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,13);  //获取人工费合计金额
         double[][] originalFees = ExcelUtil.getDoubleArrays(importExcel,BashInfo.MX_ALL,2, new int[]{13, 14, 15, 17}); //获取分部分项费用
         double fbrFee = ExcelUtil.getDouble(importExcel,BashInfo.PROJECTNAME,2,15); //发包人采购计价表合计金额
+
+//        从《 措施项目清单计价表(一)》《(二)》获取措施费
         double csFees = BashInfo.getCsFee(csqd); //获取措施费
         double[] csRate = BashInfo.getCsRate(csqd); //获取措施费率
         double wordtotal2 =  0.0;  //措施费二合计
@@ -301,16 +308,25 @@ public List<JkxlDetailFee> findList(String id,String type){
 //        double[] aqwmFees = ExcelUtil.getDoubleArray(csqd,BashInfo.CS_AQWM,1, new int[]{3, 4});  //安全文明施工费
 //        double[] aqwmJzFees = BashInfo.getAqwfJzFee(csqd1);  //建筑安全文明施工费
         double[] aqwmFees = BashInfo.getAqwfJzFee(csqd);  //安全文明施工费
+
+//        获取《规费项目清单计价表》合计
         double gfFees = BashInfo.getJkGf(gf); //规费合计
+
+//        获取《承包人采购设备计价表》合计
         double cbperson =  0.0; //承包人采购设备费
         if(ImportExcel.getSheet(cbrsb) != null){
             cbperson = ExcelUtil.getDouble(cbrsb,BashInfo.QT_HJ,0,6);
         }
+
+//        获取《其他项目清单计价表》中其他费用和
         double otherTotal =  ExcelUtil.getDouble(qt,BashInfo.QT_HJ,0,2);//获取其他项目费合计
         double[] qtFees = BashInfo.getQtFees(qt);  //获取其他费用中场地租用费和招标代理费
+
+//        根据安全文明施工费、费率、直接工程费合计计算进项税率
         double zg = zjgcTotal-(aqwmFees[1]/(aqwmFees[0]/100));
         double jxsl = zg/(fbrFee-zg); //进项税率
-        //措施项目
+
+//        部分结算书的《架空线路工程费用汇总》和《分部分项工程量清单计价表》中多出措施项目的分部分项,处理方法是将该部分数据放到“辅助工程”中
         double csxmHj = ExcelUtil.getDouble(gzhz,BashInfo.HZ_CH,1,2);//措施项目合计
         double[] csxmFees = ExcelUtil.getDoubleArray(importExcel,BashInfo.CS,2,new int[]{13, 14, 15, 17});//措施项目费
         originalTotalFees[5] = originalTotalFees[5] + csxmHj;
@@ -318,6 +334,7 @@ public List<JkxlDetailFee> findList(String id,String type){
         originalFees[5][1] = originalFees[5][1] + csxmFees[1];
         originalFees[5][2] = originalFees[5][2] + csxmFees[2];
         originalFees[5][3] = originalFees[5][3] + csxmFees[3];
+
         //数据核验数据
         List<Settlement> settlementList =  SettementUtil.getComparison(total);
         double builtTotal = ExcelUtil.getDouble(gzhz,BashInfo.QT_HJ,0,2);//获取架空线路工程费用汇总表 分部分项 合计
@@ -326,7 +343,8 @@ public List<JkxlDetailFee> findList(String id,String type){
         List<Settlement> settlements=SettementUtil.getComparison(settlementList,builtTotal,divisiontotal,wordtotal1,wordtotal2,otherTotal,gfFees,cbperson);
         Boolean f = SettementUtil.getFlag;
         settlementService.save(settlements,id);
-       //将本体工程费用明细存入集合
+
+        //将本体工程费用明细存入集合
        List<JkxlDetailFee> list = new ArrayList<>();
        for(int i=0;i<originalTotalFees.length;i++){
            double tax = 0.00; //税金
@@ -334,7 +352,7 @@ public List<JkxlDetailFee> findList(String id,String type){
            JkxlDetailFee jkxlDetailFee = new JkxlDetailFee();
            double originalTotalCost = originalTotalFees[i]; //原合计
            double otherRate = originalTotalCost/builtTotal;   //其他费用分摊比例
-           double otherFee = qtFees[2]*otherRate;  //其他费用
+           double otherFee = qtFees[2]*otherRate;  //除场地租用费、招标代理费外费用根据分部分项合计费用所占比例分摊
            double zjgcFee = zjgcFees[i];//直接工程费
            double originalRgCost = originalFees[i][0];// 原人工费
            double rgfRate = originalRgCost/totalRgFee; //人工费比例

+ 38 - 11
src/main/java/com/jeeplus/modules/sg/overheadline/util/BashInfo.java

@@ -236,7 +236,9 @@ public class BashInfo {
     }
 
     /**
-     * 获取电缆建筑工程措施费率
+     * 获取建筑工程措施费率
+     * 代码逻辑:获取“安装措施项目”前的费率和
+     * 这里默认如果建筑安装都有建筑排前面
      */
      public static double getJzRate(ImportExcel importExcel){
          int lastRow = importExcel.getLastDataRowNum();
@@ -328,7 +330,8 @@ public class BashInfo {
     }
 
     /**
-     * 获取电缆安装工程措施费率
+     * 获取安装工程措施费率
+     * 代码逻辑:从“安装措施费”行往下找所有费率,将“临时设施费”和“安全文明施工费”费率放一起,剩余费率放一起
      */
     public static double[] getAzRate(ImportExcel importExcel){
         int lastRow = importExcel.getLastDataRowNum();
@@ -402,7 +405,9 @@ public class BashInfo {
     }
 
     /**
-     * 获取电缆安装措施费
+     * 获取安装措施费中除去“临时设施费”、“安全文明施工费”以外金额合计
+     * 代码逻辑:找到“安装措施项目”,往下找“临时设施费“、”安全文明施工费“、”小计“,
+     * 返回“小计” - “临时设施费” - “安全文明施工费”结果
      */
     public static double getAzCsfee(ImportExcel importExcel){
         int lastRow = importExcel.getLastDataRowNum();
@@ -462,7 +467,10 @@ public class BashInfo {
     }
 
     /**
-     *电缆建筑获取规费率
+     *获取建筑部分规费费率
+     *代码逻辑:查看《规费项目清单计价表》页签B列,在“安装规费项目”行前进行操作(这样写代码即默认页签中建筑相关信息在安装信息之前)
+     *查找“危险作业意外伤害保险费”,同时查找所有C列不为空的费率累加
+     * 返回数组,[0]为“危险作业意外伤害保险费”费率,[1]为剩余费率和
      */
     public static double[] getJzGfRate(ImportExcel importExcel) {
         int lastRow = importExcel.getLastDataRowNum();
@@ -520,7 +528,9 @@ public class BashInfo {
     }
 
     /**
-     * 电缆建筑规费
+     * 获取建筑部分规费
+     * 代码逻辑:查看《规费项目清单计价表》页签B列,如果没有找到值为“建筑规费项目”的单元格,返回0,
+     * 若找到返回A列第一个小计值
      * @param importExcel
      * @return
      */
@@ -549,7 +559,9 @@ public class BashInfo {
     }
 
     /**
-     *电缆安装获取规费
+     *获取安装部分规费
+     * 代码逻辑:查看《规费项目清单计价表》页签B列,如果没有找到值为“安装规费项目”的单元格,返回0,
+     * 若找到返回A列最后一个小计值
      */
     public static double getAzGf(ImportExcel importExcel) {
         int lastRow = importExcel.getLastDataRowNum();
@@ -576,7 +588,8 @@ public class BashInfo {
     }
 
     /**
-     * 电缆建筑措施费合计
+     * 建筑措施费合计
+     * 代码逻辑:查找第二列文字,如果存在有值为“建筑措施项目”,则判断存在建筑措施费,获取第一个“小计”的值
      * @param importExcel
      * @return
      */
@@ -605,7 +618,9 @@ public class BashInfo {
     }
 
     /**
-     *电缆安装措施费合计
+     *安装措施费合计
+     * 查找第二列“安装措施项目”,如果存在,从该行往下找,找到最后一个“小计”行的值
+     * 这里默认安装措施费出现在文档后面
      */
     public static double getAzCs(ImportExcel importExcel) {
         int lastRow = importExcel.getLastDataRowNum();
@@ -633,6 +648,8 @@ public class BashInfo {
 
     /**
      * 获取其他费用
+     * 代码逻辑:查看《其他费用清单计价表》页签B列,查找“施工场地租用费”、“招标代理”,查找A列“合计“金额
+     * 获得其他费用列表,其中[0]为“施工场地租用费”,[1]为“招标代理”费用,[2]为剩余其他费用
      */
     public static double[] getQtFees(ImportExcel importExcel) {
         int lastRow = importExcel.getLastDataRowNum();
@@ -664,7 +681,9 @@ public class BashInfo {
 
 
     /**
-     * 获取发包人建筑费
+     * 获取建筑部分承包人采购设备费
+     * 代码逻辑:查看承包人采购设备计价表页签B列,如果没有找到值为“建筑”的单元格,返回0,
+     * 若找到返回A列第一个小计值
      * @param importExcel
      * @return
      */
@@ -712,7 +731,9 @@ public class BashInfo {
 //    }
 
     /**
-     * 获取发包人安装费
+     * 获取安装部分承包人采购设备费
+     * 代码逻辑:查看承包人采购设备计价表页签B列,如果没有找到值为“安装”的单元格,返回0,
+     * 若找到返回A列最后一个小计值
      * @param importExcel
      * @return
      */
@@ -740,7 +761,8 @@ public class BashInfo {
     }
 
     /**
-     * 建筑安全文明措施费
+     * 获取建筑安全文明措施费和费率
+     * 代码逻辑:这里默认是存在建筑工程,读取“安全文明施工费”的第3列,第4列金额返回
      * @param importExcel
      * @return
      */
@@ -792,6 +814,7 @@ public class BashInfo {
 
     /**
      * 获取工程结算价
+     * 代码逻辑:获取最后一个包含竣工结算价相关文字的行的金额
      */
     public static double getGcjsFee(ImportExcel importExcel){
         int lastRow = importExcel.getLastDataRowNum();
@@ -808,6 +831,9 @@ public class BashInfo {
 
     /**
      * 获取未识别费用
+     * 代码逻辑:在税金和竣工结算价中间查找未识别费用
+     * 税金以第一个找到为准,后面还有可能有补税什么的
+     * 竣工结算价名称不尽相同,我们以最后一个找到为准
      */
     public static List<JkxlAdjustFee> getWsbFee(ImportExcel importExcel) {
         int lastRow = importExcel.getLastDataRowNum();
@@ -848,6 +874,7 @@ public class BashInfo {
 
     /**
      * 获取补税额
+     * 代码逻辑:在税金后读取包含“税金”或“税额”行的金额
      */
     public static double getBtex(ImportExcel importExcel) {
         int lastRow = importExcel.getLastDataRowNum();

+ 8 - 7
src/main/java/com/jeeplus/modules/sg/project/mapper/xml/ProjectMapper.xml

@@ -49,28 +49,29 @@
 		FROM sg_wbs_project a
 		left join sys_user b on a.create_by = b.id
 		<where>
+			a.del_flag = '0'
 		   <!--<if test="createBy != null">-->
 				<!--a.create_by = #{createBy.id} AND-->
 		   <!--</if>-->
 		    <if test="projectId !=null and projectId != ''">
-				a.id = #{projectId} AND
+				AND a.id = #{projectId}
 			</if>
 			<if test="projectName != null and projectName != ''">
-				a.project_name LIKE CONCAT(CONCAT('%',#{projectName},'%')) AND
+				AND a.project_name LIKE CONCAT(CONCAT('%',#{projectName},'%'))
 			</if>
 			<if test="creator != null  and creator != ''">
-				 b.name LIKE CONCAT(CONCAT('%',#{creator},'%')) AND
+				AND b.name LIKE CONCAT(CONCAT('%',#{creator},'%'))
 			</if>
 			<if test="projectStartDate != null and projectEndDate != ''">
-				 a.create_date &gt;= #{projectStartDate} AND
+				AND a.create_date &gt;= #{projectStartDate}
 			</if>
 			<if test="projectEndDate != null and projectEndDate != ''">
-				 a.create_date &lt;= #{projectEndDate} AND
+				AND a.create_date &lt;= #{projectEndDate}
 			</if>
 			<if test="dataScope != null and dataScope != ''">
-			  ${dataScope} and
+				${dataScope}
 			</if>
-			  a.del_flag = '0'
+
 		</where>
 		 ORDER BY a.update_date DESC
 

+ 3 - 2
src/main/java/com/jeeplus/modules/sg/project/web/ProjectTemController.java

@@ -44,7 +44,7 @@ public class ProjectTemController extends BaseController {
 
 
     /**
-     *首页跳转
+     *首页跳转  单体工程管理页面
      */
     @RequestMapping("/index")
     public String toIndex(){
@@ -69,7 +69,7 @@ public class ProjectTemController extends BaseController {
 
 
     /**
-     * 多文件导入
+     * 多文件导入  导入工程
      * @param file 文件数组
      * @param projectName 单体工程名称
      * @param projectNo  单体工程编号
@@ -81,6 +81,7 @@ public class ProjectTemController extends BaseController {
     @RequestMapping("/import")
     public HashMap importFile(@RequestParam(value = "file")MultipartFile[] file,String projectName,String projectNo,String[] itemNames,String[] units) {
         HashMap map = new HashMap();
+//        添加工程
         WbsProject wbsProject = new WbsProject();
         wbsProject.setProjectName(projectName);
         wbsProject.setProjectNo(projectNo);

+ 37 - 10
src/main/java/com/jeeplus/modules/sg/substation/service/SubstationService.java

@@ -58,22 +58,28 @@ public class SubstationService {
         ImportExcel gf = new ImportExcel(file,1,BashInfo.SHEET_GFQD,true);  //规费项目清单计价表
         ImportExcel qt = new ImportExcel(file,1,BashInfo.SHEET_QTFY,true);  //其他项目清单计价表
         ImportExcel tbrsb = new ImportExcel(file,1,new String[]{BashInfo.SHEET_CBRCG,BashInfo.SHEET_TBRCG},false);//投标人采购设备计价表
+
+//        从《工程项目竣工结算汇总表》获取相关值
         double jzgc = ExcelUtil.getDouble(total,new String[]{BashInfo.HZ_JZGC,BashInfo.HZ_JZGCF},1,2);//汇总表建筑金额
         double azgc = ExcelUtil.getDouble(total,new String[]{BashInfo.HZ_AZGC,BashInfo.HZ_AZGCF},1,2);//汇总表安装金额
-        double cbrFee = ExcelUtil.getDouble(total,new String[]{BashInfo.JS_CBRF,BashInfo.JS_TBRF},1,2);//汇总表安装金额
+        double cbrFee = ExcelUtil.getDouble(total,new String[]{BashInfo.JS_CBRF,BashInfo.JS_TBRF},1,2);//承包人采购设备费
         double jsCs = ExcelUtil.getDouble(total,BashInfo.JS_CSXM,1,2); //获取措施费合计
         double jsGf = ExcelUtil.getDouble(total,BashInfo.JS_GF,1,2);  //获取规费合计
         double texRate = ExcelUtil.getTexRate(total); //获取税率
         double textotal = ExcelUtil.getTex(total);  //获取税金合计
         double btex = BashInfo.getBtex(total);  //获取补税额
-        double fbrFees = ExcelUtil.getFbr(total); //获取发包人费
+        double fbrFees = ExcelUtil.getFbr(total); //获取发包人采购设备
         double gcjsFee = BashInfo.getGcjsFee(total);  //获取工程结算价
+
+//        从《措施项目清单计价表(一)》中获取建筑和安装的措施费
         double jzcsRate = BashInfo.getJzRate(csqd1); //获取建筑措施费率
         double[] azcsRate = BashInfo.getAzRate(csqd1); //获取安装措施费率
         double jzcs = BashInfo.getJzCs(csqd1); //建筑措施费
         double azcs = BashInfo.getAzCs(csqd1);  //安装措施费
-        double azCsFee = BashInfo.getAzCsfee(csqd1); //安装除临时施工费和安全文明施工费合计
+        double azCsFee = BashInfo.getAzCsfee(csqd1); //安装措施费 临时施工费和安全文明施工费剩下措施费合计
         double word1total =  jzcs+azcs;//获取措施费合计
+
+
         double csJzFee = 0.00;  //建筑措施分摊费
         double csAzFee = 0.00;  //安装措施分摊费
         double word2total=0.00;  //获取措施费二表措施项目合计金额
@@ -82,6 +88,8 @@ public class SubstationService {
              csAzFee = SubstationInfo.getCsAzFee(csqd2);
              word2total=csJzFee+csAzFee;
         }
+
+//       从《承包人采购设备计价表》中,获取承包人采购设备费
         double tbrJzFee = 0.00; //投标人建筑费
         double tbrAzFee = 0.00; //投标人安装费
         double cbperson = 0.00; //投标人合计
@@ -91,19 +99,29 @@ public class SubstationService {
 //            cbperson = ExcelUtil.getDouble(tbrsb,BashInfo.QT_HJ,0,6);
             cbperson = tbrJzFee+tbrAzFee;
         }
+
+//        从《规费项目清单计价表》中获取规费
         double jzGf = BashInfo.getJzGf(gf);//建筑规费合计
         double azGf = BashInfo.getAzGf(gf); //安装规费合计
         double feesBdzCount =  jzGf+azGf;//获取规费合计
+
+//       从《规费项目清单计价表》中获取建筑规费费率,包括“危险作业意外伤害保险费”和剩余费率和
         double[] jzgfRate = BashInfo.getJzGfRate(gf);  //获取建筑规费率
+
+//        从《其他费用清单计价表》中获取,“施工场地租用费”,“招标代理”,以及除这两项外其他费用和
         double[] qtFees = BashInfo.getQtFees(qt);  //获取其他费
+//       从《其他费用清单计价表》中获取其他费用合计
         double otherBdzTotal =  ExcelUtil.getDouble(qt,BashInfo.QT_HJ,0,2);//获取其他项目费合计
-       //获取未识别费用
+
+//       从《工程项目竣工结算汇总表》中查找未识别费用
         List<JkxlAdjustFee> wsbFees = BashInfo.getWsbFee(total);
         double wsbfee = 0.00;
         double tax = 0.00; //税金
         double totalfee = 0.00;  //合计
         //变电站 结算汇总
         List<Settlement> settlementsBdz =  SettementUtil.getComparison(total);
+
+//        《工程项目竣工结算汇总表》中“建筑工程”、“安装工程”金额都不为空时处理方式
         if(jzgc !=0.00 && azgc != 0.00){
             ImportExcel jzqd = new ImportExcel(file, 1, BashInfo.SHEET_JZFBFXJJ,true);  //建筑分部分项工程量清单计价表
             ImportExcel azqd = new ImportExcel(file, 1, BashInfo.SHEET_AZFBFXJJ,true);  //安装分部分项工程量清单计价表
@@ -111,15 +129,23 @@ public class SubstationService {
             ImportExcel azhz = new ImportExcel(file, 1, SubstationInfo.SHEET_HZHZB,true);   //安装工程费用汇总表
             //变电站结算汇总
             int[] comlumn2 = {12,15};//定义所要数组
+
+//            从《工程费用汇总表》中获取“合计”行的合计金额
             double built1Total = ExcelUtil.getDouble(jzhz,BashInfo.QT_HJ,0,2);//变电站建筑
             double built2Total = ExcelUtil.getDouble(azhz,BashInfo.QT_HJ,0,2);//变电站安装
             double[] builtTotal={built1Total,built2Total};
+
+//            从《分部分项工程量清单计价表》分别获取“变电站建筑工程”、“变电站安装工程”的“合计”、“招标人采购”
             double[] division1total=ExcelUtil.getDoubleArray(jzqd,SubstationInfo.JZMX_BJZ,2,comlumn2);//建筑分部分项比对数据清单合计
             double[] division2total=ExcelUtil.getDoubleArray(azqd,SubstationInfo.AZMX_BDZAZ,2,comlumn2);//安装分部分项比对数据清单合计
             double[] division = {division1total[0],division1total[1],division2total[0],division2total[1]};
-            //结算取值汇总结束
+
+
+            //获取甲供材进项税额
+//            从《工程费用汇总表》中获取“合计”行的直接工程费
             double zjgcJzTotal = ExcelUtil.getDouble(jzhz,SubstationInfo.QT_HJ,0,3);//建筑直接工程费合计
             double zjgcAzTotal = ExcelUtil.getDouble(azhz,SubstationInfo.QT_HJ,0,3);//安装直接工程费合计
+//            从《安装工程费用汇总表》中获取“合计”行的人工费
             double rgAzTotal = ExcelUtil.getDouble(azhz,SubstationInfo.QT_HJ,0,4);//安装人工费合计
 //            double csJzFee = SubstationInfo.getCsJzFee(csqd2);//建筑措施分摊费
 //            double csAzFee = SubstationInfo.getCsAzFee(csqd2);//安装措施分摊费
@@ -127,19 +153,20 @@ public class SubstationService {
 //            double tbrAzFee = BashInfo.getFbrAzFee(tbrsb); //投标人安装费
             double zjgcTotal = zjgcAzTotal+zjgcJzTotal;
 //            double[] aqwmJzFees = ExcelUtil.getDoubleArray(csqd1,SubstationInfo.CS_AQWM,1, new int[]{3, 4});  //建筑安全文明施工费
-            double[] aqwmJzFees = BashInfo.getAqwfJzFee(csqd1);  //建筑安全文明施工费
-            double[] aqwmAzFees = BashInfo.getAqwfAzFee(csqd1);  //安装安全文明施工费
-            double fbrJzFee = ExcelUtil.getDouble(jzqd,SubstationInfo.JZMX_BJZ,2,15);
+            double[] aqwmJzFees = BashInfo.getAqwfJzFee(csqd1);  //建筑安全文明施工费、费率
+            double[] aqwmAzFees = BashInfo.getAqwfAzFee(csqd1);  //安装安全文明施工费、费率
+//            从两个《分部分项工程量清单计价表》的“变电站建筑工程”、“变电站安装工程”获取建筑和安装的发包人采购材料
+            double fbrJzFee = ExcelUtil.getDouble(jzqd,SubstationInfo.JZMX_BJZ,2,15); //
             double fbrAzFee = ExcelUtil.getDouble(azqd,SubstationInfo.AZMX_BDZAZ,2,15);
             double jxslJz = 0.00;
             double jxslAz = 0.00;
             if (fbrJzFee != 0.00) {
                     double zgJz = zjgcJzTotal - aqwmJzFees[1] / (aqwmJzFees[0]/100);
-                    jxslJz = zgJz / (fbrJzFee - zgJz); //建筑进项税率
+                    jxslJz = zgJz / (fbrJzFee - zgJz); //建筑甲供材进项税率
             }
             if (fbrAzFee != 0.00) {
                     double zgAz = zjgcAzTotal - aqwmAzFees[1] / (aqwmAzFees[0]/100);
-                    jxslAz = zgAz / (fbrAzFee - zgAz); //安装进项税率
+                    jxslAz = zgAz / (fbrAzFee - zgAz); //安装甲供材进项税率
             }
 
             //建筑部分基础数据

+ 6 - 2
src/main/java/com/jeeplus/modules/sg/substation/util/SubstationInfo.java

@@ -1090,7 +1090,9 @@ public class SubstationInfo {
 
 
     /**
-     * 建筑工程措施费2
+     * 获取措施费2中的建筑措施费
+     * 代码逻辑:如果第一列有“小计”返回该列值,如果没有继续判断,如果第三列没有“建筑措施项目”
+     * 返回0,如果有返回第二列文字为“一”行的值
      */
     public static double getCsJzFee(ImportExcel importExcel){
         int lastRow = importExcel.getLastDataRowNum();
@@ -1124,7 +1126,9 @@ public class SubstationInfo {
 
 
     /**
-     * 安装工程措施费2
+     * 获取措施费2中 安装措施费
+     * 代码逻辑:查找第三列,如果不包含“安装措施项目”则返回0,
+     * 否则返回“一”行金额。(结合上面获取建筑费)的方法似乎,措施费2中,建筑和安装只存在一种
      */
     public static double getCsAzFee(ImportExcel importExcel){
         int lastRow = importExcel.getLastDataRowNum();

+ 30 - 22
src/main/webapp/webpage/modules/sg/project/management.jsp

@@ -44,12 +44,12 @@
                                    </div>
 
                                </div>
-                               <div class="layui-inline">
-                                   <div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">
-                                   <label class="layui-font-style">登记人:</label>
-                                       <input type="text" name="creator"  autocomplete="off" class="layui-input">
-                                   </div>
-                               </div>
+                               <%--<div class="layui-inline">--%>
+                                   <%--<div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">--%>
+                                   <%--<label class="layui-font-style">登记人:</label>--%>
+                                       <%--<input type="text" name="creator"  autocomplete="off" class="layui-input">--%>
+                                   <%--</div>--%>
+                               <%--</div>--%>
                                <div class="layui-inline">
                                    <div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">
                                        <label class="layui-font-style">工程登记时间:</label>
@@ -73,9 +73,17 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
+                                   <%--<div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">--%>
+                                   <%--<label class="layui-font-style">结算书划分:</label>--%>
+                                       <%--<input type="text" name="type"  autocomplete="off" class="layui-input">--%>
+                                   <%--</div>--%>
+
                                    <div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">
-                                   <label class="layui-font-style">结算书划分:</label>
-                                       <input type="text" name="type"  autocomplete="off" class="layui-input">
+                                       <label class="layui-font-style">结算书划分:</label>
+                                       <form:select path="wbsProject.type"  class="form-control m-b">
+                                           <form:option value="" label=""/>
+                                           <form:options items="${fns:getDictList('sg_project_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                                       </form:select>
                                    </div>
                                </div>
                                <div class="layui-inline">
@@ -86,20 +94,20 @@
                                </div>
                            </div>
                            <div class="layui-form-item">
-                               <div class="layui-inline">
-                                   <div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">
-                                   <label class="layui-font-style">结算书登记时间:</label>
-                                       <table>
-                                           <tbody>
-                                           <tr>
-                                               <td><input type="text" name="itemStartDate" id="beginDate2"  placeholder="开始时间" autocomplete="off" class="layui-input input-meself-time"></td>
-                                               <td>~</td>
-                                               <td> <input type="text" name="itemEndDate" id="endDate2"  placeholder="结束时间" autocomplete="off" class="layui-input input-meself-time"></td>
-                                           </tr>
-                                           </tbody>
-                                       </table>
-                                   </div>
-                               </div>
+                               <%--<div class="layui-inline">--%>
+                                   <%--<div class="col-xs-12 col-sm-6 col-md-4" style="margin-left: 20px">--%>
+                                   <%--<label class="layui-font-style">结算书登记时间:</label>--%>
+                                       <%--<table>--%>
+                                           <%--<tbody>--%>
+                                           <%--<tr>--%>
+                                               <%--<td><input type="text" name="itemStartDate" id="beginDate2"  placeholder="开始时间" autocomplete="off" class="layui-input input-meself-time"></td>--%>
+                                               <%--<td>~</td>--%>
+                                               <%--<td> <input type="text" name="itemEndDate" id="endDate2"  placeholder="结束时间" autocomplete="off" class="layui-input input-meself-time"></td>--%>
+                                           <%--</tr>--%>
+                                           <%--</tbody>--%>
+                                       <%--</table>--%>
+                                   <%--</div>--%>
+                               <%--</div>--%>
 
                                <div class="layui-inline">
                                    <div class="col-xs-12 col-sm-6 col-md-4 layui-mesl-mit">