Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

[user3] vor 4 Jahren
Ursprung
Commit
06db8d1b6f

+ 6 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/dao/WorkContractBorrowDao.java

@@ -58,4 +58,10 @@ public interface WorkContractBorrowDao extends CrudDao<WorkCntractBorrow> {
 	 * @return
 	 */
 	List<WorkCntractBorrow> getWorkCntractBorrowList(String contractId);
+
+	/**
+	 * 保存借用信息之后修改合同中信息
+	 * @param workCntractBorrow
+	 */
+	void updateContractInfo(WorkCntractBorrow workCntractBorrow);
 }

+ 8 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/dao/WorkContractInfoDao.java

@@ -8,6 +8,7 @@ import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractAnnex;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractListInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -75,4 +76,11 @@ public interface WorkContractInfoDao extends CrudDao<WorkContractInfo> {
      * @param workContractInfo
      */
     void updateWorkContractRecord(WorkContractInfo workContractInfo);
+
+    /**
+     * 获取合同年份信息
+     * @param workContractListInfo
+     * @return
+     */
+    List<Integer> getYear(WorkContractListInfo workContractListInfo);
 }

+ 183 - 73
src/main/java/com/jeeplus/modules/workcontractinfo/entity/WorkContractListInfo.java

@@ -40,6 +40,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	private String projectNum;//投标标号
 	private String totalContractName;//总合同名称
 	private String officeName;
+	private String officeId;
 	private BigDecimal contractPrice;		// 合同金额(元)
     private String money1;
 	private String contractState;		// 合同状态
@@ -63,6 +64,14 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	private String recordNum;   //归档编号
 	private String contrractRecordId;   //归档合同id
 	private String createName;   //登记人
+	private String createNameStr;   //登记人
+	private String createId;   //登记人Id
+	private String year;            //年份
+	private Date beginDate;		// 开始 登记日期
+	private Date endDate;		// 结束 登记日期
+	private String workContractBorrow;   //借阅情况
+	private String borrowStatus;   //合同借用状态
+	private String giveStatus;   //合同归还状态
 	@Override
 	public String getId() {
 		return id;
@@ -72,15 +81,26 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setId(String id) {
 		this.id = id;
 	}
-	@ExcelField(title="合同编号", align=2, sort=1)
-	public String getContractNum() {
-		return contractNum;
+
+	@ExcelField(title="年份", align=2, sort=1)
+	public String getYear() {
+		return year;
 	}
 
-	public void setContractNum(String contractNum) {
-		this.contractNum = contractNum;
+	public void setYear(String year) {
+		this.year = year;
 	}
-	@ExcelField(title="合同名称", align=2, sort=2)
+
+	@ExcelField(title="客户名称", align=2, sort=2)
+	public String getClientName() {
+		return clientName;
+	}
+
+	public void setClientName(String clientName) {
+		this.clientName = clientName;
+	}
+
+	@ExcelField(title="合同名称", align=2, sort=3)
 	public String getName() {
 		return name;
 	}
@@ -88,7 +108,96 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setName(String name) {
 		this.name = name;
 	}
-	@ExcelField(title="合同来源", align=2, sort=3)
+
+	@ExcelField(title="合同编号", align=2, sort=4)
+	public String getContractNum() {
+		return contractNum;
+	}
+
+	public void setContractNum(String contractNum) {
+		this.contractNum = contractNum;
+	}
+
+	@ExcelField(title="合同类型",mainDictType="contract_info_type", align=2, sort=5)
+	public String getContractTypeDoc() {
+		return contractTypeDoc;
+	}
+
+	public void setContractTypeDoc(String contractTypeDoc) {
+		this.contractTypeDoc = contractTypeDoc;
+	}
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelField(title="签订日期", align=2, sort=6)
+	public Date getContractDate() {
+		return contractDate;
+	}
+
+	public void setContractDate(Date contractDate) {
+		this.contractDate = contractDate;
+	}
+
+	@ExcelField(title="登记人", align=2, sort=7)
+	public String getCreateName() {
+		return createName;
+	}
+
+	public void setCreateName(String createName) {
+		this.createName = createName;
+	}
+
+	@Override
+	@ExcelField(title="登记日期", align=2, sort=8)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	public Date getCreateDate() {
+		return super.getCreateDate();
+	}
+
+	@ExcelField(title="登记部门", align=2, sort=9)
+	public String getOfficeName() {
+		return officeName;
+	}
+
+	public void setOfficeName(String officeName) {
+		this.officeName = officeName;
+	}
+
+	@ExcelField(title="归档编号", align=2, sort=10)
+	public String getRecordNum() {
+		return recordNum;
+	}
+
+	public void setRecordNum(String recordNum) {
+		this.recordNum = recordNum;
+	}
+
+	@ExcelField(title="签订状态",/*dictType="audit_contract_state",*/ align=2, sort=11)
+	public String getContractState() {
+		return contractState;
+	}
+
+	public void setContractState(String contractState) {
+		this.contractState = contractState;
+	}
+
+	@ExcelField(title="归档状态",/*dictType="archive_state",*/ align=2, sort=12)
+	public String getContrractRecordStatus() {
+		return contrractRecordStatus;
+	}
+
+	public void setContrractRecordStatus(String contrractRecordStatus) {
+		this.contrractRecordStatus = contrractRecordStatus;
+	}
+
+	@ExcelField(title="借阅状态",/*dictType="archive_state",*/ align=2, sort=13)
+	public String getBorrowStatus() {
+		return borrowStatus;
+	}
+
+	public void setBorrowStatus(String borrowStatus) {
+		this.borrowStatus = borrowStatus;
+	}
+
 	public String getExt() {
 		if("0".equals(ext)){
 			return "投标项目";
@@ -101,7 +210,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setExt(String ext) {
 		this.ext = ext;
 	}
-	@ExcelField(title="投标名称", align=2, sort=4)
+	//@ExcelField(title="投标名称", align=2, sort=4)
 	public String getProjectName() {
 		return projectName;
 	}
@@ -109,7 +218,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setProjectName(String projectName) {
 		this.projectName = projectName;
 	}
-	@ExcelField(title="投标编号", align=2, sort=5)
+	//@ExcelField(title="投标编号", align=2, sort=5)
 	public String getProjectNum() {
 		return projectNum;
 	}
@@ -117,7 +226,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setProjectNum(String projectNum) {
 		this.projectNum = projectNum;
 	}
-	@ExcelField(title="总合同名称", align=2, sort=6)
+	//@ExcelField(title="总合同名称", align=2, sort=6)
 	public String getTotalContractName() {
 		return totalContractName;
 	}
@@ -125,33 +234,13 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setTotalContractName(String totalContractName) {
 		this.totalContractName = totalContractName;
 	}
-	@ExcelField(title="所属部门", align=2, sort=7)
-	public String getOfficeName() {
-		return officeName;
-	}
-	public void setOfficeName(String officeName) {
-		this.officeName = officeName;
-	}
 	public BigDecimal getContractPrice() {
 		return contractPrice;
 	}
 	public void setContractPrice(BigDecimal contractPrice) {
 		this.contractPrice = contractPrice;
 	}
-	@ExcelField(title="合同状态",dictType="audit_completion_state", align=2, sort=9)
-	public String getContractState() {
-		return contractState;
-	}
-	public void setContractState(String contractState) {
-		this.contractState = contractState;
-	}
-	@ExcelField(title="委托方", align=2, sort=10)
-	public String getClientName() {
-		return clientName;
-	}
-	public void setClientName(String clientName) {
-		this.clientName = clientName;
-	}
+
 	public Date getBeginContractDate() {
 		return beginContractDate;
 	}
@@ -165,15 +254,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 		this.endContractDate = endContractDate;
 	}
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@ExcelField(title="签订日期", align=2, sort=11)
-	public Date getContractDate() {
-		return contractDate;
-	}
-	public void setContractDate(Date contractDate) {
-		this.contractDate = contractDate;
-	}
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@ExcelField(title="合同生效日期", align=2, sort=12)
+	//@ExcelField(title="合同生效日期", align=2, sort=12)
 	public Date getEffectiveDate() {
 		return effectiveDate;
 	}
@@ -181,14 +262,14 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 		this.effectiveDate = effectiveDate;
 	}
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@ExcelField(title="合同终止日期", align=2, sort=13)
+	//@ExcelField(title="合同终止日期", align=2, sort=13)
 	public Date getClosingDate() {
 		return closingDate;
 	}
 	public void setClosingDate(Date closingDate) {
 		this.closingDate = closingDate;
 	}
-	@ExcelField(title="对方合同编号", align=2, sort=14)
+	//@ExcelField(title="对方合同编号", align=2, sort=14)
 	public String getAnotherContractNum() {
 		return anotherContractNum;
 	}
@@ -198,18 +279,18 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public BigDecimal getInvestmentAmount() {
 		return investmentAmount;
 	}
-    @ExcelField(title="合同金额(元)", align=2, sort=8)
+    //@ExcelField(title="合同金额(元)", align=2, sort=8)
     public String getMoney1() {
         return UserUtils.getDecimalFormat(contractPrice);
     }
-    @ExcelField(title="投资额(万元)", align=2, sort=15)
+   //@ExcelField(title="投资额(万元)", align=2, sort=15)
     public String getMoney2() {
         return UserUtils.getDecimalFormat(investmentAmount);
     }
 	public void setInvestmentAmount(BigDecimal investmentAmount) {
 		this.investmentAmount = investmentAmount;
 	}
-	@ExcelField(title="工程分类",mainDictType="contract_type",  align=2, sort=16)
+	//@ExcelField(title="工程分类",mainDictType="contract_type",  align=2, sort=16)
 	public String getContractType() {
 		return contractType;
 	}
@@ -217,7 +298,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setContractType(String contractType) {
 		this.contractType = contractType;
 	}
-	@ExcelField(title="归档状态",dictType="record_state",  align=2, sort=17)
+	//@ExcelField(title="归档状态",dictType="record_state",  align=2, sort=17)
 	public String getRecordState() {
 		return recordState;
 	}
@@ -225,7 +306,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setRecordState(String recordState) {
 		this.recordState = recordState;
 	}
-	@ExcelField(title="付款摘要", align=2, sort=18)
+	//@ExcelField(title="付款摘要", align=2, sort=18)
 	public String getSummaryPayment() {
 		return summaryPayment;
 	}
@@ -233,7 +314,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setSummaryPayment(String summaryPayment) {
 		this.summaryPayment = summaryPayment;
 	}
-	@ExcelField(title="合同特别条款", align=2, sort=19)
+	//@ExcelField(title="合同特别条款", align=2, sort=19)
 	public String getContractSpecial() {
 		return contractSpecial;
 	}
@@ -241,17 +322,9 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setContractSpecial(String contractSpecial) {
 		this.contractSpecial = contractSpecial;
 	}
-	@ExcelField(title="合同类型说明",mainDictType="contract_info_type", align=2, sort=20)
-	public String getContractTypeDoc() {
-		return contractTypeDoc;
-	}
-
-	public void setContractTypeDoc(String contractTypeDoc) {
-		this.contractTypeDoc = contractTypeDoc;
-	}
 
 	@Override
-	@ExcelField(title="备注信息", align=2, sort=21)
+	//@ExcelField(title="备注信息", align=2, sort=21)
 	public String getRemarks() {
 		return remarks;
 	}
@@ -269,35 +342,72 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 		this.client = client;
 	}
 
-	public String getContrractRecordStatus() {
-		return contrractRecordStatus;
+
+
+	public String getContrractRecordId() {
+		return contrractRecordId;
 	}
 
-	public void setContrractRecordStatus(String contrractRecordStatus) {
-		this.contrractRecordStatus = contrractRecordStatus;
+	public void setContrractRecordId(String contrractRecordId) {
+		this.contrractRecordId = contrractRecordId;
 	}
 
-	public String getRecordNum() {
-		return recordNum;
+
+	public String getOfficeId() {
+		return officeId;
 	}
 
-	public void setRecordNum(String recordNum) {
-		this.recordNum = recordNum;
+	public void setOfficeId(String officeId) {
+		this.officeId = officeId;
 	}
 
-	public String getContrractRecordId() {
-		return contrractRecordId;
+	public Date getBeginDate() {
+		return beginDate;
 	}
 
-	public void setContrractRecordId(String contrractRecordId) {
-		this.contrractRecordId = contrractRecordId;
+	public void setBeginDate(Date beginDate) {
+		this.beginDate = beginDate;
 	}
 
-	public String getCreateName() {
-		return createName;
+	public Date getEndDate() {
+		return endDate;
 	}
 
-	public void setCreateName(String createName) {
-		this.createName = createName;
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public String getWorkContractBorrow() {
+		return workContractBorrow;
+	}
+
+	public void setWorkContractBorrow(String workContractBorrow) {
+		this.workContractBorrow = workContractBorrow;
+	}
+
+	public String getCreateId() {
+		return createId;
+	}
+
+	public void setCreateId(String createId) {
+		this.createId = createId;
+	}
+
+	public String getCreateNameStr() {
+		return createNameStr;
+	}
+
+	public void setCreateNameStr(String createNameStr) {
+		this.createNameStr = createNameStr;
+	}
+
+
+
+	public String getGiveStatus() {
+		return giveStatus;
+	}
+
+	public void setGiveStatus(String giveStatus) {
+		this.giveStatus = giveStatus;
 	}
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractBorrowService.java

@@ -113,6 +113,8 @@ public class WorkContractBorrowService extends CrudService<WorkContractBorrowDao
 		User user = UserUtils.getUser();
 
 		super.save(workCntractBorrow);
+		//修改合同中对应的借用id参数
+		dao.updateContractInfo(workCntractBorrow);
 		Office office = officeService.get(workCntractBorrow.getOfficeId());
 		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 		String aboutGiveDateStr = formatter.format(workCntractBorrow.getAboutGiveDate());

+ 11 - 3
src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractInfoService.java

@@ -30,7 +30,6 @@ import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.RoleActivityEnname;
 import com.jeeplus.modules.sys.utils.UserUtils;
-import com.jeeplus.modules.utils.ViewFileUtil;
 import com.jeeplus.modules.workactivity.dao.WorkActivityProcessDao;
 import com.jeeplus.modules.workactivity.entity.Activity;
 import com.jeeplus.modules.workactivity.entity.WorkActivityProcess;
@@ -3160,7 +3159,7 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 	}
 
 	public Page<WorkContractListInfo> findListPage(Page<WorkContractListInfo> page, WorkContractListInfo workContractListInfo) {
-		if(workContractListInfo.getBeginContractDate()==null){
+		/*if(workContractListInfo.getBeginContractDate()==null){
 			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 			SimpleDateFormat format3 = new SimpleDateFormat("yyyy");
 			String time1 = format3.format(new Date());
@@ -3174,7 +3173,7 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 		}
 		if(workContractListInfo.getEndContractDate()==null){
 			workContractListInfo.setEndContractDate(new Date());
-		}
+		}*/
 		String companyId = UserUtils.getUser().getComId();
 		workContractListInfo.getSqlMap().put("dsf","and (a.company_id='"+companyId+"')");
 //		workContractListInfo.getSqlMap().put("dsf", dataScopeFilter(workContractListInfo.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_CONTRACT_LIST_INFO.getValue()));
@@ -3222,4 +3221,13 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 	public void updateWorkContractRecord(WorkContractInfo workContractInfo){
 		dao.updateWorkContractRecord(workContractInfo);
 	}
+
+	/**
+	 * 获取合同年份信息
+	 * @param workContractInfo
+	 * @return
+	 */
+	public List<Integer> getYear(WorkContractListInfo workContractListInfo){
+		return dao.getYear(workContractListInfo);
+	}
 }

+ 25 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/web/WorkContractInfoController.java

@@ -1982,8 +1982,15 @@ public class WorkContractInfoController extends BaseController {
 
     @RequestMapping(value = "workContractList")
     public String workContractList(WorkContractListInfo workContractListInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
+        //获取合同年份信息
+        List<Integer> yearList = workContractInfoService.getYear(workContractListInfo);
+        Integer[] years = yearList.toArray(new Integer[yearList.size()]);
+        Arrays.sort(years);
+        yearList = Arrays.asList(years);
         Page<WorkContractListInfo> page = workContractInfoService.findListPage(new Page<WorkContractListInfo>(request, response), workContractListInfo);
+        model.addAttribute("yearList", yearList);
         model.addAttribute("page", page);
+        model.addAttribute("yearValue", workContractListInfo.getYear());
         return "modules/workcontractinfo/workContractListInfoList";
     }
 
@@ -1995,6 +2002,24 @@ public class WorkContractInfoController extends BaseController {
             User user = UserUtils.getUser();
             workContractListInfo.setCurrentUser(user);
             List<WorkContractListInfo> list = workContractInfoService.findListList(workContractListInfo);
+            for (WorkContractListInfo info : list) {
+                if("5".equals(info.getContractState())){
+                    info.setContractState("已签");
+                }else{
+                    info.setContractState("未签");
+                }
+                if("5".equals(info.getContrractRecordStatus())){
+                    info.setContrractRecordStatus("已归档");
+                }else{
+                    info.setContrractRecordStatus("未归档");
+                }
+
+                if("0".equals(info.getBorrowStatus()) || "4".equals(info.getBorrowStatus()) || "5".equals(info.getGiveStatus())){
+                    info.setBorrowStatus("未借");
+                }else{
+                    info.setBorrowStatus("已借");
+                }
+            }
             new ExportExcel(false,"合同一览表", WorkContractListInfo.class,1).setDataList(list).write(response, fileName,request.getHeader("USER-AGENT")).dispose();
             return null;
         } catch (Exception e) {

+ 6 - 0
src/main/resources/mappings/modules/workcontractinfo/WorkContractBorrowDao.xml

@@ -326,4 +326,10 @@
 		 SELECT a2.record_num from(select * from work_contract_record a
 		 where a.del_flag = 0 and a.record_num like concat(#{num},'%') ORDER BY a.create_date desc LIMIT 1) a2
 	</select>
+
+	<update id="updateContractInfo">
+		UPDATE work_contract_info SET
+		borrow_id = #{id}
+		WHERE id = #{workContractInfo.id}
+	</update>
 </mapper>

+ 9 - 0
src/main/resources/mappings/modules/workcontractinfo/WorkContractInfoDao.xml

@@ -1297,4 +1297,13 @@
 		WHERE contract_info_id = #{id}
 	</update>
 
+	<select id="getYear" resultType="java.lang.Integer">
+		SELECT
+		distinct(year(a.contract_date)) as "year"
+		FROM work_contract_info a
+		<where>
+			a.del_flag = 0 and a.contract_state = 5
+		</where>
+	</select>
+
 </mapper>

+ 57 - 10
src/main/resources/mappings/modules/workcontractinfo/WorkContractListInfoDao.xml

@@ -25,7 +25,7 @@
 		a.contract_type AS "contractType",
 		a.contract_special AS "contractSpecial",
 		a.contract_state AS "contractState",
-		a.charge_company_name AS "officeName",
+		/*a.charge_company_name AS "officeName",*/
 		a.record_state AS "recordState",
 		a.summary_payment AS "summaryPayment",
 		a.investment_amount AS "investmentAmount",
@@ -51,45 +51,92 @@
 		LEFT JOIN work_bid_project p ON  p.id = a.project_id
 		LEFT JOIN sys_office s ON s.id = a.company_id
 		LEFT JOIN work_contract_info b ON b.id = a.total_contract_id
+		LEFT JOIN sys_office so ON so.id = a.office_id
 	</sql>
 
 	<select id="findList" resultType="WorkContractListInfo" >
 		SELECT
 		<include refid="workContractListInfoColumns"/>
+		,year(a.contract_date) as "year"
 		,a.client_id AS "client.id"
 		,client.name AS "client.name"
 		,ifnull(wcr.status,0) as "contrractRecordStatus"
-		,ifnull(wcr.record_num,"") as "recordNum"
+		,ifnull(wcr.file_num,"") as "recordNum"
 		,wcr.id as "contrractRecordId"
+		,so.name as "officeName"
+		,ifnull(wcb.status,0) as "borrowStatus"
+		,ifnull(wcb.give_status,0) as "giveStatus"
 		FROM work_contract_info a
 		<include refid="workContractListInfoJoins"/>
 		left join work_contract_record wcr on wcr.contract_info_id = a.id
+		left join work_contract_borrow wcb on wcb.id = a.borrow_id
 		<where>
 			a.del_flag = '0' and (a.alter_state is null or a.alter_state ="")
+			and a.contract_state != 7
 			<if test="id != null and id != ''">
 				AND a.id = #{id}
 			</if>
 			<if test="beginContractDate != null and endContractDate != null and beginContractDate != '' and endContractDate != ''">
 				AND a.contract_date BETWEEN #{beginContractDate} AND #{endContractDate}
 			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE 
-					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
-			</if>
 			<if test="contractPrice != '' and contractPrice != null">
 				AND a.contract_price like concat('%',#{contractPrice},'%')
 			</if>
 			<if test="contractState != null and contractState != ''">
 				AND a.contract_state = #{contractState}
 			</if>
-			<if test="contractNum != null and contractNum!= ''">
-				AND a.contract_num like  concat('%',#{contractNum},'%')
+
+
+			/*合同年份*/
+			<if test="year != null and year != ''">
+				AND YEAR(a.contract_date) = #{year}
+			</if>
+			/*创建部门*/
+			<if test="officeId != null and officeId != ''">
+				AND a.office_id = #{officeId}
 			</if>
+			/*创建时间*/
+			<if test="beginDate != null and endDate != null and beginDate != '' and endDate != ''">
+				AND a.create_date BETWEEN #{beginDate} AND #{endDate}
+			</if>
+			/*客户名称*/
 			<if test="clientName != null and clientName!= ''">
 				AND client.name like  concat('%',#{clientName},'%')
 			</if>
+			/*合同名称*/
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			/*合同编号*/
+			<if test="contractNum != null and contractNum!= ''">
+				AND a.contract_num like  concat('%',#{contractNum},'%')
+			</if>
+			/*合同类型*/
+			<if test="contractType != null and contractType != ''">
+				AND a.contractTypeDoc = #{contractType}
+			</if>
+			/*登记人*/
+			<if test="(createId != null and createId != '') or (createNameStr != null and createNameStr != '')">
+				AND (a.create_by = #{createId} or u.name like concat('%',#{createNameStr},'%'))
+			</if>
+			/*归档编号*/
+			<if test="recordNum != null and recordNum!= ''">
+				AND wcr.file_num like  concat('%',#{recordNum},'%')
+			</if>
+			/*借阅情况*/
+			<if test="workContractBorrow != null and workContractBorrow != ''">
+				<choose>
+					<when test="workContractBorrow == 0">
+						and (wcb.status=0 or wcb.status=4 or wcb.give_status=5 or wcb.status is null)
+					</when>
+					<otherwise>
+						and ((wcb.status=2 or wcb.status=3 or wcb.status=5) and (wcb.give_status != 5 or wcb.give_status is null))
+					</otherwise>
+				</choose>
+			</if>
 			${sqlMap.dsf}
 		</where>
 		<choose>

+ 135 - 19
src/main/webapp/webpage/modules/workcontractinfo/workContractListInfoList.jsp

@@ -31,7 +31,45 @@
                 type : 'date'
 , trigger: 'click'
             });
+
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
         });
+
+		function cBlur(obj) {
+			var id = $("#createId").val();
+			if(undefined != obj.value && null != obj.value && '' != obj.value){
+				$.ajax({
+					url:'${ctx}/sys/user/getUserByName?name='+obj.value,
+					type:"post",
+					success:function(data){
+						var user = data.body.data;
+						if(undefined == user || null == user || '' == user){
+							$("#createId").val("");
+						}else{
+							if(data.body.data.id != id){
+								if(undefined != id && null != id && '' != id){
+									$("#createId").val("");
+								}
+							}
+						}
+					}
+				});
+			}else{
+				$("#createId").val("");
+			}
+
+		}
 	</script>
 	<style>
 		body{
@@ -66,21 +104,20 @@
 				<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
 				<div class="commonQuery lw7">
 					<div class="layui-item query athird">
-						<label class="layui-form-label">合同名称:</label>
+						<label class="layui-form-label">年份:</label>
 						<div class="layui-input-block with-icon">
-							<form:input path="name" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							<form:select path="year" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<c:forEach items="${yearList}" var="year">
+									<option value="${year}" <c:if test="${yearValue==year}">selected</c:if> >${year}</option>
+								</c:forEach>
+							</form:select>
 						</div>
 					</div>
 					<div class="layui-item query athird">
-						<label class="layui-form-label">签订日期:</label>
-						<div class="layui-input-block">
-							<input id="beginContractDate" name="beginContractDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
-								   value="<fmt:formatDate value="${workContractListInfo.beginContractDate}" pattern="yyyy-MM-dd"/>"/>
-							</input>
-							<span class="group-sep">-</span>
-							<input id="endContractDate" name="endContractDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
-								   value="<fmt:formatDate value="${workContractListInfo.endContractDate}" pattern="yyyy-MM-dd"/>"/>
-							</input>
+						<label class="layui-form-label">客户名称:</label>
+						<div class="layui-input-block with-icon">
+							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
 						</div>
 					</div>
 					<div class="layui-item athird">
@@ -93,6 +130,12 @@
 					<div style="    clear:both;"></div>
 				</div>
 				<div id="moresees" class="lw7" style="clear:both;display:none;">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">合同名称:</label>
+						<div class="layui-input-block with-icon">
+							<form:input path="name" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+						</div>
+					</div>
                     <div class="layui-item query athird">
                         <label class="layui-form-label">合同编号:</label>
                         <div class="layui-input-block with-icon">
@@ -100,12 +143,56 @@
                         </div>
                     </div>
 					<div class="layui-item query athird">
-						<label class="layui-form-label">客户名称:</label>
+						<label class="layui-form-label">合同类型:</label>
 						<div class="layui-input-block with-icon">
-							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							<form:select path="contractType"  class="form-control simple-select">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getMainDictList('contract_info_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
 						</div>
 					</div>
 					<div class="layui-item query athird">
+						<label class="layui-form-label">登记人:</label>
+						<div class="layui-input-block  with-icon">
+							<sys:inquireselectUserNotReadolny id="create" name="createId" value="${createId}" labelName="createNameStr" labelValue="${createName}"
+															  title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">登记日期:</label>
+						<div class="layui-input-block">
+							<input id="beginDate" name="beginDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+								   value="<fmt:formatDate value="${workContractListInfo.beginDate}" pattern="yyyy-MM-dd"/>"/>
+							</input>
+							<span class="group-sep">-</span>
+							<input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+								   value="<fmt:formatDate value="${workContractListInfo.endDate}" pattern="yyyy-MM-dd"/>"/>
+							</input>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">登记部门:</label>
+						<div class="layui-input-block with-icon">
+							<sys:treeselect id="officeId" name="officeId" value="${workContractListInfo.officeId}" labelName="officeName" labelValue="${workContractListInfo.officeName}"
+											title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">归档编号:</label>
+						<div class="layui-input-block with-icon">
+							<form:input path="recordNum" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">借阅情况:</label>
+						<div class="layui-input-block with-icon">
+							<form:select path="workContractBorrow"  class="form-control simple-select">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getMainDictList('work_contract_borrow')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
+						</div>
+					</div>
+					<%--<div class="layui-item query athird">
 						<label class="layui-form-label">合同状态:</label>
 						<div class="layui-input-block with-icon">
 							<form:select path="contractState"  class="form-control simple-select">
@@ -113,7 +200,7 @@
 								<form:options items="${fns:getDictList('audit_contract_state')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
 							</form:select>
 						</div>
-					</div>
+					</div>--%>
 				</div>
 				</form:form>
 			</div>
@@ -154,8 +241,11 @@
 				,{field:'name',align:'center', title: '合同名称',minWidth:200,templet:function(d){
                         return "<a class=\"attention-info\" title=\""+d.name+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同管理', '${ctx}/workcontractinfo/workContractInfo/lookForm?id=" + d.id + "','95%', '95%')\">" + d.name + "</a>";
                     }}
-				,{field:'contractType', align:'center',title: '合同类型', width:120,templet:function(d){
-						return "<span title='"+ d.contractType +"'>" + d.contractType + "</span>";
+				,{field:'contractNum', align:'center',title: '合同编号', width:200,templet:function(d){
+						return "<span title='"+ d.contractNum +"'>" + d.contractNum + "</span>";
+					}}
+				,{field:'contractTypeDoc', align:'center',title: '合同类型', width:120,templet:function(d){
+						return "<span title='"+ d.contractTypeDoc +"'>" + d.contractTypeDoc + "</span>";
 					}}
 				,{field:'contractDate',align:'center', title: '签订日期',minWidth:160,templet:function(d){
 						return "<span title='"+ d.contractDate +"'>" + d.contractDate + "</span>";
@@ -166,14 +256,22 @@
 				,{field:'createDate',align:'center', title: '登记日期',  width:80,templet:function(d){
 						return "<span title='"+ d.createDate +"'>" + d.createDate + "</span>";
 					}}
-				,{field:'officeName',align:'center', title: '登记部门',minWidth:160,templet:function(d){
+				,{field:'officeName',align:'center', title: '登记部门',width:80,templet:function(d){
 						return "<span title='"+ d.officeName +"'>" + d.officeName + "</span>";
 					}}
 				,{field:'recordNum',align:'center', title: '归档编号',minWidth:200,templet:function(d){
 						return "<a class=\"attention-info\" title=\""+d.recordNum+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同归档信息', '${ctx}/workcontractrecord/workContractRecord/form?id=" + d.contrractRecordId + "&tabId=1','95%', '95%')\">" + d.recordNum + "</a>";
 					}}
-				,{field:'investmentAmount',align:'center', title: '投资额(万元)',minWidth:160,templet:function(d){
+				/*,{field:'investmentAmount',align:'center', title: '投资额(万元)',minWidth:160,templet:function(d){
 						return "<span title='"+ d.investmentAmount +"'>" + d.investmentAmount + "</span>";
+					}}*/
+				,{align:'center', title: '签订状态',  width:70,templet:function(d){
+						var st = getAuditContractState(d.status);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/workcontractinfo/workContractInfo/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
 					}}
 				,{align:'center', title: '归档状态',  width:70,templet:function(d){
 						var st = getRuralProjectArchiveState(d.contrractRecordStatus);
@@ -183,6 +281,20 @@
 							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
 						return xml;
 					}}
+				,{align:'center', title: '借阅情况',  width:70,templet:function(d){
+						var result = '';
+						if(d.borrowStatus == "0" || d.borrowStatus == "4" || d.giveStatus == "5"){
+							result = "0";
+						}else if(d.borrowStatus == "5" || d.borrowStatus != "5"){
+							result = "5";
+						}
+						var st = getBorrowState(result);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('借用详情列表', '${ctx}/workContractBorrow/workContractBorrow/getWorkCntractBorrowList?contractId=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
 				/*,{field:'ext',align:'center', title: '合同来源',minWidth:160,templet:function(d){
                         return "<span title='"+ d.ext +"'>" + d.ext + "</span>";
                     }}
@@ -254,12 +366,16 @@
                     ,"closingDate":"<fmt:formatDate value="${workContractListInfo.closingDate}" pattern="yyyy-MM-dd"/>"
                     ,"anotherContractNum":"${workContractListInfo.anotherContractNum}"
                     ,"investmentAmount":"${workContractListInfo.investmentAmount}"
-                    ,"contractType":"${fns:getMainDictLabel(workContractListInfo.contractType, 'contract_type', '')}"
+                    ,"contractType":"${fns:getMainDictLabel(workContractListInfo.contractTypeDoc, 'contract_type', '')}"
                     ,"recordState":"${fns:getDictLabel(workContractListInfo.recordState, 'record_state', '')}"
                     ,"summaryPayment":"${workContractListInfo.summaryPayment}"
                     ,"contractSpecial":"${workContractListInfo.contractSpecial}"
 					,"contractTypeDoc":"${fns:getMainDictLabel(workContractListInfo.contractTypeDoc, 'contract_info_type', '')}"
                     ,"remarks":"${workContractListInfo.remarks}"
+                    ,"contractNum":"${workContractListInfo.contractNum}"
+                    ,"status":"${workContractListInfo.contractState}"
+                    ,"borrowStatus":"${workContractListInfo.borrowStatus}"
+                    ,"giveStatus":"${workContractListInfo.giveStatus}"
                 }
                 </c:forEach>
                 </c:if>