Browse Source

工作内容-工程量清单及控制价编制与审核-内容详情添加工程量清单最高投标限价审核项目明细表

user5 5 năm trước cách đây
mục cha
commit
ce87fe41a7

+ 23 - 0
src/main/java/com/jeeplus/modules/workcontent/dao/WorkContentBidLimitPriceDao.java

@@ -0,0 +1,23 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo;
+
+import java.util.List;
+
+/**
+ *   清单及控制价编审DAO接口
+ * @author ssrh
+ * @version 2018-06-05
+ */
+@MyBatisDao
+public interface WorkContentBidLimitPriceDao extends CrudDao<WorkContentBidLimitPriceInfo> {
+
+
+    void batchInsert(List<WorkContentBidLimitPriceInfo> newRecords);
+
+}

+ 118 - 0
src/main/java/com/jeeplus/modules/workcontent/entity/WorkContentBidLimitPriceInfo.java

@@ -0,0 +1,118 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.entity;
+
+
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+import org.springframework.format.annotation.NumberFormat;
+
+/**
+ *   工程量清单最高投标限价审核项目明细表
+ * @author 徐滕
+ * @version 2020-06-10
+ */
+public class WorkContentBidLimitPriceInfo extends DataEntity<WorkContentBidLimitPriceInfo> {
+
+	private static final long serialVersionUID = 1L;
+	private String projectId;		// 项目id
+	private String contentId;		// 工作内容ID
+	private String inventoryType;		// 清单类型
+	private String constructionUnit;		// 建设单位名称
+	private String projectName;		// 工程名称
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double constructionBudget;		// 施工图预算静态投资
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double highestBidBefore;		// 工程量清单最高投标限价评审前
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double highestBidAfter;		// 工程量清单最高投标限价评审后
+    @NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double highestBidAdjust;		// 工程量清单最高投标限价调整额
+
+	public WorkContentBidLimitPriceInfo() {
+		super();
+	}
+
+	public WorkContentBidLimitPriceInfo(String id){
+		super(id);
+	}
+
+	public String getProjectId() {
+		return projectId;
+	}
+
+	public void setProjectId(String projectId) {
+		this.projectId = projectId;
+	}
+	
+	public String getContentId() {
+		return contentId;
+	}
+
+	public void setContentId(String contentId) {
+		this.contentId = contentId;
+	}
+	
+	public String getInventoryType() {
+		return inventoryType;
+	}
+
+	public void setInventoryType(String inventoryType) {
+		this.inventoryType = inventoryType;
+	}
+	
+	@ExcelField(title="建设单位名称", align=2, sort=10)
+	public String getConstructionUnit() {
+		return constructionUnit;
+	}
+	public void setConstructionUnit(String constructionUnit) {
+		this.constructionUnit = constructionUnit;
+	}
+
+
+	@ExcelField(title="工程名称", align=2, sort=11)
+	public String getProjectName() {
+		return projectName;
+	}
+
+	public void setProjectName(String projectName) {
+		this.projectName = projectName;
+	}
+
+	@ExcelField(title="施工图预算静态投资", align=2, sort=12)
+	public Double getConstructionBudget() {
+		return constructionBudget;
+	}
+
+	public void setConstructionBudget(Double constructionBudget) {
+		this.constructionBudget = constructionBudget;
+	}
+
+	@ExcelField(title="工程量清单最高投标限价评审前", align=2, sort=13)
+	public Double getHighestBidBefore() {
+		return highestBidBefore;
+	}
+
+	public void setHighestBidBefore(Double highestBidBefore) {
+		this.highestBidBefore = highestBidBefore;
+	}
+
+	@ExcelField(title="工程量清单最高投标限价评审后", align=2, sort=14)
+	public Double getHighestBidAfter() {
+		return highestBidAfter;
+	}
+
+	public void setHighestBidAfter(Double highestBidAfter) {
+		this.highestBidAfter = highestBidAfter;
+	}
+
+	@ExcelField(title="工程量清单最高投标限价调整额", align=2, sort=15)
+	public Double getHighestBidAdjust() {
+		return highestBidAdjust;
+	}
+
+	public void setHighestBidAdjust(Double highestBidAdjust) {
+		this.highestBidAdjust = highestBidAdjust;
+	}
+}

+ 106 - 2
src/main/java/com/jeeplus/modules/workcontent/entity/WorkContentCtrlprice.java

@@ -14,11 +14,115 @@ import org.springframework.format.annotation.NumberFormat;
  * @version 2018-06-05
  */
 public class WorkContentCtrlprice extends DataEntity<WorkContentCtrlprice> {
-	
+
+
+
 	private static final long serialVersionUID = 1L;
 	private String projectId;		// 项目id
 	private String contentId;		// 工作内容ID
 	private String inventoryType;		// 清单类型
+	private String constructionUnit;		// 建设单位名称
+	private String projectName;		// 工程名称
+	@NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double constructionBudget;		// 施工图预算静态投资
+	@NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double highestBidBefore;		// 工程量清单最高投标限价评审前
+	@NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double highestBidAfter;		// 工程量清单最高投标限价评审后
+	@NumberFormat(style = NumberFormat.Style.CURRENCY)
+	private Double highestBidAdjust;		// 工程量清单最高投标限价调整额
+
+	public WorkContentCtrlprice() {
+		super();
+	}
+
+	public WorkContentCtrlprice(String id){
+		super(id);
+	}
+
+	public String getProjectId() {
+		return projectId;
+	}
+
+	public void setProjectId(String projectId) {
+		this.projectId = projectId;
+	}
+
+	public String getContentId() {
+		return contentId;
+	}
+
+	public void setContentId(String contentId) {
+		this.contentId = contentId;
+	}
+
+	public String getInventoryType() {
+		return inventoryType;
+	}
+
+	public void setInventoryType(String inventoryType) {
+		this.inventoryType = inventoryType;
+	}
+
+	@ExcelField(title="建设单位名称", align=2, sort=10)
+	public String getConstructionUnit() {
+		return constructionUnit;
+	}
+	public void setConstructionUnit(String constructionUnit) {
+		this.constructionUnit = constructionUnit;
+	}
+
+
+	@ExcelField(title="工程名称", align=2, sort=11)
+	public String getProjectName() {
+		return projectName;
+	}
+
+	public void setProjectName(String projectName) {
+		this.projectName = projectName;
+	}
+
+	@ExcelField(title="施工图预算静态投资", align=2, sort=12)
+	public Double getConstructionBudget() {
+		return constructionBudget;
+	}
+
+	public void setConstructionBudget(Double constructionBudget) {
+		this.constructionBudget = constructionBudget;
+	}
+
+	@ExcelField(title="工程量清单最高投标限价评审前", align=2, sort=13)
+	public Double getHighestBidBefore() {
+		return highestBidBefore;
+	}
+
+	public void setHighestBidBefore(Double highestBidBefore) {
+		this.highestBidBefore = highestBidBefore;
+	}
+
+	@ExcelField(title="工程量清单最高投标限价评审后", align=2, sort=14)
+	public Double getHighestBidAfter() {
+		return highestBidAfter;
+	}
+
+	public void setHighestBidAfter(Double highestBidAfter) {
+		this.highestBidAfter = highestBidAfter;
+	}
+
+	@ExcelField(title="工程量清单最高投标限价调整额", align=2, sort=15)
+	public Double getHighestBidAdjust() {
+		return highestBidAdjust;
+	}
+
+	public void setHighestBidAdjust(Double highestBidAdjust) {
+		this.highestBidAdjust = highestBidAdjust;
+	}
+
+
+	/*private static final long serialVersionUID = 1L;
+	private String projectId;		// 项目id
+	private String contentId;		// 工作内容ID
+	private String inventoryType;		// 清单类型
 	private String ctrlNum;		// 编号
 	private String costName;		// 工程费用名称
     @NumberFormat(style = NumberFormat.Style.CURRENCY)
@@ -124,6 +228,6 @@ public class WorkContentCtrlprice extends DataEntity<WorkContentCtrlprice> {
 
 	public void setNodeTypes(String nodeTypes) {
 		this.nodeTypes = nodeTypes;
-	}
+	}*/
 	
 }

+ 67 - 0
src/main/java/com/jeeplus/modules/workcontent/service/WorkContentBidLimitPriceService.java

@@ -0,0 +1,67 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.workcontent.service;
+
+import com.alibaba.fastjson.JSON;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.workcontent.dao.WorkContentBidLimitPriceDao;
+import com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo;
+import com.jeeplus.modules.workcontent.entity.WorkContentCtrlprice;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ *   工程量清单最高投标限价审核项目明细表Service
+ * @author 徐滕
+ * @version 2020-06-10
+ */
+@Service
+@Transactional(readOnly = true)
+public class WorkContentBidLimitPriceService extends CrudService<WorkContentBidLimitPriceDao, WorkContentBidLimitPriceInfo> implements WorkContentDetailBaseService {
+
+	public WorkContentBidLimitPriceInfo get(String id) {
+		return super.get(id);
+	}
+	
+	public List<WorkContentBidLimitPriceInfo> findList(WorkContentBidLimitPriceInfo workContentCtrlprice) {
+		return super.findList(workContentCtrlprice);
+	}
+	
+	public Page<WorkContentBidLimitPriceInfo> findPage(Page<WorkContentBidLimitPriceInfo> page, WorkContentBidLimitPriceInfo workContentCtrlprice) {
+		return super.findPage(page, workContentCtrlprice);
+	}
+	
+	@Transactional(readOnly = false)
+	public void save(WorkContentBidLimitPriceInfo workContentCtrlprice) {
+		super.save(workContentCtrlprice);
+	}
+	
+	@Transactional(readOnly = false)
+	public void delete(WorkContentBidLimitPriceInfo workContentCtrlprice) {
+		super.delete(workContentCtrlprice);
+	}
+
+    @Override
+    @Transactional(readOnly = false)
+    public void saveDetails(String detailStr, String projectId, String contentId) {
+        if(StringUtils.isBlank(detailStr)){
+            return;
+        }
+        List<WorkContentBidLimitPriceInfo> bidLimitPriceInfoList = JSON.parseArray(detailStr, WorkContentBidLimitPriceInfo.class);
+        for (WorkContentBidLimitPriceInfo bidLimitPriceInfo : bidLimitPriceInfoList) {
+            if(WorkContentCtrlprice.DEL_FLAG_DELETE.equals(bidLimitPriceInfo.getDelFlag())){
+                dao.delete(bidLimitPriceInfo);
+                continue;
+            }
+            bidLimitPriceInfo.setContentId(contentId);
+            bidLimitPriceInfo.setProjectId(projectId);
+            this.save(bidLimitPriceInfo);
+        }
+    }
+
+}

+ 17 - 19
src/main/java/com/jeeplus/modules/workcontent/web/WorkContentCtrlpriceController.java

@@ -3,20 +3,17 @@
  */
 package com.jeeplus.modules.workcontent.web;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.ConstraintViolationException;
-
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.workcontent.entity.WorkContentCtrlprice;
 import com.jeeplus.modules.workcontent.service.WorkContentCtrlpriceService;
 import com.jeeplus.modules.workreceiptsregister.entity.ResponseEntity;
-import org.apache.shiro.authz.annotation.Logical;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -24,15 +21,10 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
-import com.google.common.collect.Lists;
-import com.jeeplus.common.utils.DateUtils;
-import com.jeeplus.common.utils.MyBeanUtils;
-import com.jeeplus.common.config.Global;
-import com.jeeplus.common.persistence.Page;
-import com.jeeplus.common.web.BaseController;
-import com.jeeplus.common.utils.StringUtils;
-import com.jeeplus.common.utils.excel.ExportExcel;
-import com.jeeplus.common.utils.excel.ImportExcel;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  *   清单及控制价编审Controller
@@ -120,7 +112,13 @@ public class WorkContentCtrlpriceController extends BaseController {
 		try {
 			ImportExcel ei = new ImportExcel(file, 1, 0);
 			List<WorkContentCtrlprice> list = ei.getDataList(WorkContentCtrlprice.class);
-			responseEntity.setData(list);
+			List<WorkContentCtrlprice> listAll = new ArrayList<>();
+			for (WorkContentCtrlprice ctrlprice : list) {
+				if(StringUtils.isNotBlank(ctrlprice.getProjectName()) && StringUtils.isNotBlank(ctrlprice.getConstructionUnit()) && null != ctrlprice.getConstructionBudget() && null != ctrlprice.getHighestBidAfter()){
+					listAll.add(ctrlprice);
+				}
+			}
+			responseEntity.setData(listAll);
 		} catch (Exception e) {
             logger.error("导入清单及控制价编审失败!",e);
             responseEntity.setCode(400);

+ 5 - 4
src/main/resources/jeeplus.properties

@@ -6,11 +6,12 @@
 jdbc.type=mysql
 jdbc.driver=com.mysql.jdbc.Driver
 db.name=ruihuaoa-activity-data
-#jdbc.url=jdbc:mysql://192.168.2.4:3306/total_01?useUnicode=true&characterEncoding=utf-8
-jdbc.url=jdbc:mysql://127.0.0.1:3306/total_process_master?useUnicode=true&characterEncoding=utf-8
+#jdbc.url=jdbc:mysql://192.168.2.4:3306/total_process_master?useUnicode=true&characterEncoding=utf-8
+jdbc.url=jdbc:mysql://127.0.0.1:3306/ah_total_process_master?useUnicode=true&characterEncoding=utf-8
+#jdbc.url=jdbc:mysql://127.0.0.1:3306/xs_total_process?useUnicode=true&characterEncoding=utf-8
 jdbc.username=root
-jdbc.password=123456
-#jdbc.password=root
+#jdbc.password=123456
+jdbc.password=root
 
 #pool settings
 jdbc.pool.init=20

+ 192 - 0
src/main/resources/mappings/modules/workcontent/WorkContentBidLimitPriceDao.xml

@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.workcontent.dao.WorkContentBidLimitPriceDao">
+    
+	<sql id="workContentCtrlpriceColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.project_id AS "projectId",
+		a.content_id AS "contentId",
+		a.inventory_type AS "inventoryType",
+		a.ctrl_num AS "ctrlNum",
+		a.construction_unit AS "constructionUnit",
+		a.project_name AS "projectName",
+		a.construction_budget AS "constructionBudget",
+		a.highest_bid_before AS "highestBidBefore",
+		a.highest_bid_after AS "highestBidAfter",
+		a.highest_bid_adjust AS "highestBidAdjust"
+	</sql>
+	
+    
+	<select id="get" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" >
+		SELECT 
+			<include refid="workContentCtrlpriceColumns"/>
+		FROM work_content_bid_limit_price_info a
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" >
+		SELECT 
+			<include refid="workContentCtrlpriceColumns"/>
+		FROM work_content_bid_limit_price_info a
+		<where>
+            <if test="projectId!=null and projectId !=''">
+                AND a.project_id = #{projectId}
+            </if>
+            <if test="contentId!=null and contentId !=''">
+                AND a.content_id = #{contentId}
+            </if>
+            AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" >
+		SELECT 
+			<include refid="workContentCtrlpriceColumns"/>
+		FROM work_content_bid_limit_price_info a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert">
+		INSERT INTO work_content_bid_limit_price_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			project_id,
+			content_id,
+			inventory_type,
+			ctrl_num,
+			construction_unit,
+			project_name,
+			construction_budget,
+			highest_bid_before,
+			highest_bid_after,
+			highest_bid_adjust
+		) VALUES (
+			#{id},
+            #{createBy.id},
+            #{createDate},
+            #{updateBy.id},
+            #{updateDate},
+            #{remarks},
+            #{delFlag},
+            #{projectId},
+            #{contentId},
+            #{inventoryType},
+            #{ctrlNum},
+            #{constructionUnit},
+            #{projectName},
+            #{constructionBudget},
+            #{highestBidBefore},
+            #{highestBidAfter}),
+            #{highestBidAdjust}
+		)
+	</insert>
+
+    <insert id="batchInsert">
+        INSERT INTO work_content_bid_limit_price_info(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			project_id,
+			content_id,
+			inventory_type,
+			ctrl_num,
+			construction_unit,
+			project_name,
+			construction_budget,
+			highest_bid_before,
+			highest_bid_after,
+			highest_bid_adjust
+		) VALUES
+        <foreach collection="list" item="item" separator=",">
+            (#{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.remarks},
+            #{item.delFlag},
+            #{item.projectId},
+            #{item.contentId},
+            #{item.inventoryType},
+            #{item.ctrlNum},
+            #{item.constructionUnit},
+            #{item.projectName},
+            #{item.constructionBudget},
+            #{item.highestBidBefore},
+            #{item.highestBidAfter}),
+            #{item.highestBidAdjust})
+        </foreach>
+    </insert>
+	
+	<update id="update">
+		UPDATE work_content_bid_limit_price_info SET
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			project_id = #{projectId},
+			content_id = #{contentId},
+			inventory_type = #{inventoryType},
+			ctrl_num = #{ctrlNum},
+			construction_unit = #{constructionUnit},
+			project_name = #{projectName},
+			construction_budget = #{constructionBudget},
+			highest_bid_before = #{highestBidBefore},
+			highest_bid_after = #{highestBidAfter},
+			highest_bid_adjust = #{highestBidAdjust}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM work_content_bid_limit_price_info
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE work_content_bid_limit_price_info SET
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" statementType="STATEMENT">
+		select * FROM work_content_bid_limit_price_info  where ${propertyName} = '${value}'
+	</select>
+
+</mapper>

+ 196 - 10
src/main/resources/mappings/modules/workcontent/WorkContentCtrlpriceDao.xml

@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.jeeplus.modules.workcontent.dao.WorkContentCtrlpriceDao">
-    
+
+
+
 	<sql id="workContentCtrlpriceColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
@@ -14,6 +16,190 @@
 		a.content_id AS "contentId",
 		a.inventory_type AS "inventoryType",
 		a.ctrl_num AS "ctrlNum",
+		a.construction_unit AS "constructionUnit",
+		a.project_name AS "projectName",
+		a.construction_budget AS "constructionBudget",
+		a.highest_bid_before AS "highestBidBefore",
+		a.highest_bid_after AS "highestBidAfter",
+		a.highest_bid_adjust AS "highestBidAdjust"
+	</sql>
+
+
+	<select id="get" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" >
+		SELECT
+		<include refid="workContentCtrlpriceColumns"/>
+		FROM work_content_bid_limit_price_info a
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" >
+		SELECT
+		<include refid="workContentCtrlpriceColumns"/>
+		FROM work_content_bid_limit_price_info a
+		<where>
+			<if test="projectId!=null and projectId !=''">
+				AND a.project_id = #{projectId}
+			</if>
+			<if test="contentId!=null and contentId !=''">
+				AND a.content_id = #{contentId}
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="findAllList" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" >
+		SELECT
+		<include refid="workContentCtrlpriceColumns"/>
+		FROM work_content_bid_limit_price_info a
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<insert id="insert">
+		INSERT INTO work_content_bid_limit_price_info(
+		id,
+		create_by,
+		create_date,
+		update_by,
+		update_date,
+		remarks,
+		del_flag,
+		project_id,
+		content_id,
+		inventory_type,
+		construction_unit,
+		project_name,
+		construction_budget,
+		highest_bid_before,
+		highest_bid_after,
+		highest_bid_adjust
+		) VALUES (
+		#{id},
+		#{createBy.id},
+		#{createDate},
+		#{updateBy.id},
+		#{updateDate},
+		#{remarks},
+		#{delFlag},
+		#{projectId},
+		#{contentId},
+		#{inventoryType},
+		#{constructionUnit},
+		#{projectName},
+		#{constructionBudget},
+		#{highestBidBefore},
+		#{highestBidAfter},
+		#{highestBidAdjust}
+		)
+	</insert>
+
+	<insert id="batchInsert">
+		INSERT INTO work_content_bid_limit_price_info(
+		id,
+		create_by,
+		create_date,
+		update_by,
+		update_date,
+		remarks,
+		del_flag,
+		project_id,
+		content_id,
+		inventory_type,
+		construction_unit,
+		project_name,
+		construction_budget,
+		highest_bid_before,
+		highest_bid_after,
+		highest_bid_adjust
+		) VALUES
+		<foreach collection="list" item="item" separator=",">
+			(#{item.id},
+			#{item.createBy.id},
+			#{item.createDate},
+			#{item.updateBy.id},
+			#{item.updateDate},
+			#{item.remarks},
+			#{item.delFlag},
+			#{item.projectId},
+			#{item.contentId},
+			#{item.inventoryType},
+			#{item.constructionUnit},
+			#{item.projectName},
+			#{item.constructionBudget},
+			#{item.highestBidBefore},
+			#{item.highestBidAfter}),
+			#{item.highestBidAdjust})
+		</foreach>
+	</insert>
+
+	<update id="update">
+		UPDATE work_content_bid_limit_price_info SET
+		update_by = #{updateBy.id},
+		update_date = #{updateDate},
+		remarks = #{remarks},
+		project_id = #{projectId},
+		content_id = #{contentId},
+		inventory_type = #{inventoryType},
+		ctrl_num = #{ctrlNum},
+		construction_unit = #{constructionUnit},
+		project_name = #{projectName},
+		construction_budget = #{constructionBudget},
+		highest_bid_before = #{highestBidBefore},
+		highest_bid_after = #{highestBidAfter},
+		highest_bid_adjust = #{highestBidAdjust}
+		WHERE id = #{id}
+	</update>
+
+
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM work_content_bid_limit_price_info
+		WHERE id = #{id}
+	</update>
+
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE work_content_bid_limit_price_info SET
+		del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+
+
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="com.jeeplus.modules.workcontent.entity.WorkContentBidLimitPriceInfo" statementType="STATEMENT">
+		select * FROM work_content_bid_limit_price_info  where ${propertyName} = '${value}'
+	</select>
+
+
+	<!--<sql id="workContentCtrlpriceColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.project_id AS "projectId",
+		a.content_id AS "contentId",
+		a.inventory_type AS "inventoryType",
+		a.ctrl_num AS "ctrlNum",
 		a.cost_name AS "costName",
 		a.sum AS "sum",
 		a.construction_cost AS "constructionCost",
@@ -155,9 +341,9 @@
             #{item.estimate},
             #{item.nodeTypes})
         </foreach>
-    </insert>
+    </insert>-->
 	
-	<update id="update">
+	<!--<update id="update">
 		UPDATE work_content_ctrlprice SET 	
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
@@ -173,26 +359,26 @@
 			estimate = #{estimate},
 			node_types = #{nodeTypes}
 		WHERE id = #{id}
-	</update>
+	</update>-->
 	
 	
 	<!--物理删除-->
-	<update id="delete">
+	<!--<update id="delete">
 		DELETE FROM work_content_ctrlprice
 		WHERE id = #{id}
-	</update>
+	</update>-->
 	
 	<!--逻辑删除-->
-	<update id="deleteByLogic">
+	<!--<update id="deleteByLogic">
 		UPDATE work_content_ctrlprice SET 
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
-	</update>
+	</update>-->
 	
 	
 	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
-	<select id="findUniqueByProperty" resultType="WorkContentCtrlprice" statementType="STATEMENT">
+	<!--<select id="findUniqueByProperty" resultType="WorkContentCtrlprice" statementType="STATEMENT">
 		select * FROM work_content_ctrlprice  where ${propertyName} = '${value}'
-	</select>
+	</select>-->
 
 </mapper>

+ 2 - 2
src/main/resources/spring-context-jedis.xml

@@ -20,8 +20,8 @@
 		<constructor-arg index="0" ref="jedisPoolConfig" />
 		<constructor-arg index="1" value="${redis.host}" />
 		<constructor-arg index="2" value="${redis.port}" type="int" />
-		<!--<constructor-arg index="3" value="${redis.timeout}" type="int" />-->
-		<!--<constructor-arg index="4" value="${redis.password}" />-->
+		<constructor-arg index="3" value="${redis.timeout}" type="int" />
+		<constructor-arg index="4" value="${redis.password}" />
 	</bean>
 	
 </beans>

+ 68 - 1
src/main/webapp/webpage/modules/workcontent/workContentCtrlpriceList.jsp

@@ -21,8 +21,69 @@
     </div>
 
 	<!-- 表格 -->
+
+	<!-- 表格 -->
 	<table id="contentTable" class="table table-bordered table-condensed can-edit">
 		<thead>
+		<tr>
+			<th rowspan="2" class="hide"></th>
+			<th rowspan="2" style="width: 30px;">序号</th>
+			<th rowspan="2">建设单位</th>
+			<th rowspan="2">工程名称</th>
+			<th rowspan="2">施工图预算静态投资</th>
+			<th colspan="3">工程量清单最高投标限价</th>
+			<th rowspan="2">备注</th>
+			<th width="120" rowspan="2">操作</th>
+		</tr>
+		<tr>
+			<th>评审前</th>
+			<th>评审后</th>
+			<th>调整额</th>
+		</tr>
+		</thead>
+		<tbody id="ctrlpriceList">
+		</tbody>
+	</table>
+
+	<script type="text/template" id="ctrlpriceTpl">//<!--
+        <tr id="ctrlpriceList{{idx}}">
+            <td class="hide">
+                <input id="ctrlpriceList{{idx}}_id" subName="id" type="hidden" value="{{row.id}}" class="contentDetail"/>
+                <input id="ctrlpriceList{{idx}}_delFlag" subName="delFlag" type="hidden" value="0" class="contentDetail"/>
+            </td>
+            <td>
+                <input id="ctrlpriceList{{idx}}_ctrlNum" readonly="readonly" style="text-align: center" subName="ctrlNum" value="{{idx}}" type="text" class="form-control contentDetail"/>
+            </td>
+            <td>
+                <input style="text-align: center" id="ctrlpriceList{{idx}}_constructionUnit" subName="constructionUnit" value="{{row.constructionUnit}}" type="text" class="form-control contentDetail"/>
+            </td>
+            <td>
+                <input style="text-align: center" id="ctrlpriceList{{idx}}_projectName" subName="projectName" type="text" value="{{row.projectName}}" onchange="formatNum(this);" class="form-control contentDetail"/>
+            </td>
+            <td>
+                <input style="text-align: center" id="ctrlpriceList{{idx}}_constructionBudget" subName="constructionBudget" type="text" value="{{row.constructionBudget}}" onchange="formatNum(this);" class="form-control number contentDetail money"/>
+            </td>
+            <td>
+                <input style="text-align: center" id="ctrlpriceList{{idx}}_highestBidBefore" subName="highestBidBefore" type="text" value="{{row.highestBidBefore}}" onchange="formatNum(this);" class="form-control number contentDetail money"/>
+            </td>
+            <td>
+                <input style="text-align: center" id="ctrlpriceList{{idx}}_highestBidAfter" subName="highestBidAfter" type="text" value="{{row.highestBidAfter}}" onchange="formatNum(this);" class="form-control number contentDetail money"/>
+            </td>
+            <td>
+            	<input style="text-align: center" id="ctrlpriceList{{idx}}_highestBidAdjust" subName="highestBidAdjust" type="text" value="{{row.highestBidAdjust}}" onchange="formatNum(this);" class="form-control number contentDetail money"/>
+            </td>
+            <td>
+                <input style="text-align: center" id="ctrlpriceList{{idx}}_remarks" subName="remarks" type="text"  value="{{row.remarks}}" class="form-control contentDetail"/>
+            </td>
+            <td class="text-center op-td">
+                        <a href="#" onclick="delRow(this, '#ctrlpriceList{{idx}}')"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 取消</a>
+            </td>
+        </tr>//-->
+	</script>
+
+
+	<%--<table id="contentTable" class="table table-bordered table-condensed can-edit">
+		<thead>
 			<tr>
 				<th class="hide"></th>
 				<th>编号</th>
@@ -81,7 +142,7 @@
                         <a href="#" onclick="delRow(this, '#ctrlpriceList{{idx}}')"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 取消</a>
             </td>
         </tr>//-->
-        </script>
+        </script>--%>
         <script type="text/javascript">
             var ctrlpriceIdx = 0, ctrlpriceTpl = $("#ctrlpriceTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
             $(function(){
@@ -95,10 +156,16 @@
             });
 
             function addRow(list, idx, tpl, row){
+                idx=idx+1;
                 bornTemplete(list, idx, tpl, row, idx);
                 ctrlpriceIdx +=1;
             }
 
+            /*function addRow(list, idx, tpl, row){
+                bornTemplete(list, idx, tpl, row, idx);
+                ctrlpriceIdx +=1;
+            }*/
+
             function bornTemplete(list, idx, tpl, row, idx1){
                 var idx1 = $("#ctrlpriceList tr").length +1;
                 $(list).append(Mustache.render(tpl, {