Browse Source

newly committed

ylx 6 years ago
parent
commit
e91fc4c9be

+ 11 - 0
.project

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>CCB_Bank</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>

+ 10 - 7
ccb_fund_trusteeship/src/main/java/com/fuzamei/constant/StatusId.java

@@ -21,13 +21,16 @@ public class StatusId {
 	public static final Integer LAUNCHING = 10;								//发起
 	public static final Integer CHECKING = 11;                            	//审核
 
-	public static final Integer INSTRUCT_BUSINESS_ACCOUNTING =12;      //待指令业务岗审核
-	public static final Integer INSTRUCT_BUSINESS_ACCOUNTING_NO =13;    //指令业务岗审核不通过
-	public static final Integer CHECK_BUSINESS_ACCOUNTING =14;        //待核算业务岗岗审核
-	public static final Integer CHECK_BUSINESS_ACCOUNTING_NO =15;      //核算业务岗审核不通过
-	public static final Integer CHARGE_BUSINESS_ACCOUNTING =16;        //待核算主管岗审核
-	public static final Integer CHARGE_BUSINESS_ACCOUNTING_YES =17;     //核算主管岗通过
-	public static final Integer CHARGE_BUSINESS_ACCOUNTING_NO =18;      //核算主管岗审核不通过 
+	public static final Integer INSTRUCT_BUSINESS_ACCOUNTING =12;     		//待指令业务岗审核
+	public static final Integer INSTRUCT_BUSINESS_ACCOUNTING_NO =13;    	//指令业务岗审核不通过
+	public static final Integer CHECK_BUSINESS_ACCOUNTING =14;        		//待核算业务岗岗审核
+	public static final Integer CHECK_BUSINESS_ACCOUNTING_NO =15;     		//核算业务岗审核不通过
+	public static final Integer CHARGE_BUSINESS_ACCOUNTING =16;        		//待核算主管岗审核
+	public static final Integer CHARGE_BUSINESS_ACCOUNTING_YES =17;     	//核算主管岗通过
+	public static final Integer CHARGE_BUSINESS_ACCOUNTING_NO =18;      	//核算主管岗审核不通过 
+	public static final Integer INVALID =19;      							//未生效 
+	public static final Integer VALID =20;      							//已生效 
+	public static final Integer DUMPED =21;      							//作废
 	
 	
 	

+ 20 - 0
ccb_fund_trusteeship/src/main/java/com/fuzamei/dao/ContractManagementDao.java

@@ -1,8 +1,12 @@
 package com.fuzamei.dao;
 
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 
+import com.fuzamei.entity.ContractStatusTracking;
 import com.fuzamei.mapperInterface.ContractManagementMapper;
 
 @Repository
@@ -10,4 +14,20 @@ public class ContractManagementDao {
 	
 	@Autowired
 	private ContractManagementMapper contractManagementMapper;
+
+	public List<ContractStatusTracking> queryContractStatusTracking(Map<String, Object> map) {
+		return contractManagementMapper.queryContractStatusTracking(map);
+	}
+
+	public int findAllContractStatusTrackingInformation(Map<String, Object> map) {
+		return contractManagementMapper.findAllContractStatusTrackingInformation(map);
+	}
+
+	public List<ContractStatusTracking> queryContractRecord(Map<String, Object> map) {
+		return contractManagementMapper.queryContractRecord(map);
+	}
+
+	public int findAllContractRecordInformation(Map<String, Object> map) {
+		return contractManagementMapper.findAllContractRecordInformation(map);
+	}
 }

+ 82 - 0
ccb_fund_trusteeship/src/main/java/com/fuzamei/entity/ContractRecord.java

@@ -0,0 +1,82 @@
+package com.fuzamei.entity;
+
+public class ContractRecord {
+	private Integer id;					//主键id号
+	private Integer businessId;			//合同对应的业务id号
+	private Integer contract_id;		//合同附件的id号
+	private String contract_name;		//合同名称?================>>就是文件名
+	private String version;				//版本信息?格式是v1.0这样?
+	private String contract_party;		//签约方名字
+	private String upload_department;	//上传部门
+	private String upload_person;		//上传人
+	private String modify_opinion;		//修改意见
+	private String unconfirm_department;//未确认部门(初始状态肯定是三个部门--->省分行业务部门&管理人&省分行法律部门)
+	private Long commit_time;			//更新时间,提交时间
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public Integer getBusinessId() {
+		return businessId;
+	}
+	public void setBusinessId(Integer businessId) {
+		this.businessId = businessId;
+	}
+	public Integer getContract_id() {
+		return contract_id;
+	}
+	public void setContract_id(Integer contract_id) {
+		this.contract_id = contract_id;
+	}
+	public String getContract_name() {
+		return contract_name;
+	}
+	public void setContract_name(String contract_name) {
+		this.contract_name = contract_name;
+	}
+	public String getVersion() {
+		return version;
+	}
+	public void setVersion(String version) {
+		this.version = version;
+	}
+	public String getContract_party() {
+		return contract_party;
+	}
+	public void setContract_party(String contract_party) {
+		this.contract_party = contract_party;
+	}
+	public String getUpload_department() {
+		return upload_department;
+	}
+	public void setUpload_department(String upload_department) {
+		this.upload_department = upload_department;
+	}
+	public String getUpload_person() {
+		return upload_person;
+	}
+	public void setUpload_person(String upload_person) {
+		this.upload_person = upload_person;
+	}
+	public String getModify_opinion() {
+		return modify_opinion;
+	}
+	public void setModify_opinion(String modify_opinion) {
+		this.modify_opinion = modify_opinion;
+	}
+	public String getUnconfirm_department() {
+		return unconfirm_department;
+	}
+	public void setUnconfirm_department(String unconfirm_department) {
+		this.unconfirm_department = unconfirm_department;
+	}
+	public Long getCommit_time() {
+		return commit_time;
+	}
+	public void setCommit_time(Long commit_time) {
+		this.commit_time = commit_time;
+	}
+	
+}

+ 54 - 0
ccb_fund_trusteeship/src/main/java/com/fuzamei/entity/ContractStatusTracking.java

@@ -0,0 +1,54 @@
+package com.fuzamei.entity;
+
+public class ContractStatusTracking {
+	private Integer id;						//主键id
+	private Integer business_id;			//合同对应的业务id号
+	private String contract_name;			//合同名称
+	private String contract_party;			//签约方
+	private Long update_time;				//更新时间
+	private Integer status_id;				//状态id号
+	private String status_name;				//状态名
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public Integer getBusiness_id() {
+		return business_id;
+	}
+	public void setBusiness_id(Integer business_id) {
+		this.business_id = business_id;
+	}
+	public String getContract_name() {
+		return contract_name;
+	}
+	public void setContract_name(String contract_name) {
+		this.contract_name = contract_name;
+	}
+	public String getContract_party() {
+		return contract_party;
+	}
+	public void setContract_party(String contract_party) {
+		this.contract_party = contract_party;
+	}
+	public Integer getStatus_id() {
+		return status_id;
+	}
+	public void setStatus_id(Integer status_id) {
+		this.status_id = status_id;
+	}
+	public String getStatus_name() {
+		return status_name;
+	}
+	public void setStatus_name(String status_name) {
+		this.status_name = status_name;
+	}
+	public Long getUpdate_time() {
+		return update_time;
+	}
+	public void setUpdate_time(Long update_time) {
+		this.update_time = update_time;
+	}
+	
+}

+ 63 - 1
ccb_fund_trusteeship/src/main/java/com/fuzamei/mapper/ContractManagementMapper.xml

@@ -1,5 +1,67 @@
 <?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.fuzamei.mapperInterface.ContractManagementMapper"> 
+<mapper namespace="com.fuzamei.mapperInterface.ContractManagementMapper">
+
+	<!-- 根据条件查询所有符合条件的合同状态跟踪(contract_status_tracking)信息 -->
+	<select id="queryContractStatusTracking" resultType="com.fuzamei.entity.ContractStatusTracking">
+		select
+			sct.id,
+			sct.business_id,
+			sct.contract_name,
+			sct.contract_party,
+			sct.update_time,
+			sct.status_id,
+			s.status_name
+		from
+			contract_status_tracking sct
+		left join
+			status s
+		on
+			sct.status_id=s.status_id
+		<where>
+			<if test="businessId!=null">
+				sct.business_id=#{businessId}
+			</if>
+			<if test="contractParty!='' and contractParty!=null">
+				and sct.contract_party=#{contractParty}
+			</if>
+			<if test="startTime!=null and endTime!=null">
+				and sct.update_time between #{startTime} and #{endTime}
+			</if>
+		</where>
+		order by
+			sct.update_time desc
+		limit
+			 #{startPage},#{rowNum}
+	</select>
+	
+	<!-- 根据条件查询所有符合条件的合同状态跟踪信息(contract_status_tracking)条数 -->
+	<select id="findAllContractStatusTrackingInformation" resultType="int">
+		select
+			count(*)
+		from
+			contract_status_tracking
+		<where>
+			<if test="businessId!=null">
+				business_id=#{businessId}
+			</if>
+			<if test="contractParty!='' and contractParty!=null">
+				and contract_party=#{contractParty}
+			</if>
+			<if test="startTime!=null and endTime!=null">
+				and update_time between #{startTime} and #{endTime}
+			</if>
+		</where>
+	</select>
+	
+	<!-- 根据条件查询所有符合条件的合同记录表(contract_record)表信息 -->
+	<select id="queryContractRecord" resultType="">
+		
+	</select>
+	
+	<!-- 根据条件查询所有符合条件的合同记录表(contract_record)信息条数 -->
+	<select id="" resultType="int">
+		
+	</select>
 	
 </mapper>

+ 13 - 0
ccb_fund_trusteeship/src/main/java/com/fuzamei/mapperInterface/ContractManagementMapper.java

@@ -1,5 +1,18 @@
 package com.fuzamei.mapperInterface;
 
+import java.util.List;
+import java.util.Map;
+
+import com.fuzamei.entity.ContractStatusTracking;
+
 public interface ContractManagementMapper {
+
+	List<ContractStatusTracking> queryContractStatusTracking(Map<String, Object> map);
+
+	int findAllContractStatusTrackingInformation(Map<String, Object> map);
+
+	List<ContractStatusTracking> queryContractRecord(Map<String, Object> map);
+
+	int findAllContractRecordInformation(Map<String, Object> map);
 	
 }

+ 29 - 0
ccb_fund_trusteeship/src/main/java/com/fuzamei/service/ContractManagementService.java

@@ -1,11 +1,40 @@
 package com.fuzamei.service;
 
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.fuzamei.dao.ContractManagementDao;
+import com.fuzamei.entity.ContractStatusTracking;
+import com.fuzamei.utils.PageDTO;
 
 @Service
 public class ContractManagementService {
 	
+	@Autowired
 	private ContractManagementDao contractManagementDao;
+
+	public PageDTO queryContractStatusTracking(Map<String, Object> map) {
+		PageDTO pageDTO = new PageDTO();
+		//分页信息
+		List<ContractStatusTracking> list = contractManagementDao.queryContractStatusTracking(map);
+		//查询符合map中条件的条数
+		int count = contractManagementDao.findAllContractStatusTrackingInformation(map);
+		pageDTO.setRows(list);
+		pageDTO.setTotal(count);
+		return pageDTO;
+	}
+
+	public PageDTO queryContractRecord(Map<String, Object> map) {
+		PageDTO pageDTO = new PageDTO();
+		//分页信息
+		List<ContractStatusTracking> list = contractManagementDao.queryContractRecord(map);
+		//查询符合map中条件的条数
+		int count = contractManagementDao.findAllContractRecordInformation(map);
+		pageDTO.setRows(list);
+		pageDTO.setTotal(count);
+		return pageDTO;
+	}
 }

+ 47 - 14
ccb_fund_trusteeship/src/main/java/com/fuzamei/utils/ValidationUtil.java

@@ -329,10 +329,7 @@ public class ValidationUtil {
 	public static int checkMinAndAssignInt(final Object obj, int min) {
 		return checkRangeAndAssignInt(obj,min,Integer.MAX_VALUE);
 	}
-	public static void main(String[] args) {
-		int checkMinAndAssignInt = checkMinAndAssignInt(-1,1);
-		System.out.println(checkMinAndAssignInt);
-	}
+	
 	/**
 	 * @Title: checkMaxAndAssignInt
 	 * @Description: 针对传入的参数进行校验--->Integer类型
@@ -674,16 +671,52 @@ public class ValidationUtil {
 			return num;
 		}
 	}
-	/*public static void main(String[] args) {
-		String json="{'KEY1':'12','KEY2':23,'KEY3':null}";
-		Map parseObject = JSON.parseObject(json, Map.class);
-		Object obj=20000000;
-		long checkAndAssignDefaultLong = checkAndAssignDefaultLong(obj,1000);
-		System.out.println(checkAndAssignDefaultLong);
-//		Long.class.cast(obj
-//		Long cast = Long.class.cast(1L);
-//		System.out.println(checkAndAssignDefaultLong);
-	}*/
+	
+	/**
+	 * 
+	* @Title: checkAndAssignNullIntegerIfIsBlank
+	* @Description: TODO(如果校验的Object不能转换Long则抛出异常,如果是null,空字符串或者是长空串,统一返回用户null
+	* 				checkAndAssignInt的增强版(对传过来的空串等一系列问题进行扩展处理)
+	* @Attention: obj为null,空字符串""或者是长空串"   "都不会抛异常,而是直接返回默认值null
+	* @return Integer    返回类型
+	* @author ylx
+	* @date 2017年12月27日 下午1:51:43
+	 */
+	public static Integer checkAndAssignNullIntegerIfIsBlank(final Object obj){
+		String number = null;
+		try {
+			if (obj == null) {
+				return null;
+			}
+			number = String.class.cast(obj);
+			if("".equals(number.trim())){
+				return null;
+			}
+			try {
+				return Integer.parseInt(number.trim());
+			} catch (NumberFormatException e) {
+				throw new NumberFormatException();
+			}
+		} catch (Exception e) {
+			if (e instanceof NumberFormatException) {
+				throw new RuntimeException("数据类型解析异常");
+			}
+			Integer num = null;
+			try {
+				num=Integer.parseInt(String.valueOf(obj));
+			} catch (Exception e1) {
+				throw new RuntimeException("Integer解析异常");
+			}
+			return num;
+		}
+	}
+	
+	
+	public static void main(String[] args) {
+		System.out.println(checkAndAssignNullIntegerIfIsBlank(" "));
+	}
+	
+	
 }
 
 class OutOfRangeException extends RuntimeException{

+ 1 - 1
ccb_fund_trusteeship/src/main/java/com/fuzamei/web/BusinessDeclareAction.java

@@ -380,7 +380,7 @@ public class BusinessDeclareAction {
 //			mapToService.put("uploadDepartment", userDetail.getOrganization_name());		//上传部门按照组织名来写
 //			mapToService.put("uploadPerson", userDetail.getPerson_name());				//上传人员写活♥
 			mapToService.put("contractId", attachmentId);								//将合同的id写活♥
-			mapToService.put("contractName",filename);									//合同名称,用于存在attachment中的附件名
+			mapToService.put("contractName",filename);									//合同名称,用于存在attachment中的附件名=====================>>和同名到底是文件名还是文件里面的标题?TODO
 			mapToService.put("url", relativePath+filename);								//将文件下载路径url通过map传到service层进行校验
 			mapToService.put("hash", "to be calculated");								//文件hash值先写死,到时候需要从服务器上的文件获取
 			mapToService.put("userDetail", userDetail);									//直接将用户详细信息传到service层

+ 111 - 0
ccb_fund_trusteeship/src/main/java/com/fuzamei/web/ContractManagementAction.java

@@ -1,10 +1,24 @@
 package com.fuzamei.web;
 
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import com.alibaba.fastjson.JSON;
+import com.fuzamei.constant.HintMSG;
+import com.fuzamei.constant.Role;
+import com.fuzamei.entity.UserDetail;
 import com.fuzamei.service.ContractManagementService;
+import com.fuzamei.service.UserAuthoricationService;
+import com.fuzamei.utils.JSONUtil;
+import com.fuzamei.utils.PageDTO;
+import com.fuzamei.utils.ValidationUtil;
 
 /**
  * 合同管理模块
@@ -18,7 +32,104 @@ public class ContractManagementAction {
 	@Autowired
 	private ContractManagementService contractManagementService;
 	
+	@Autowired
+	private UserAuthoricationService userAuthoricationService;
+	
+	private static final int ROW_NUM = 10; // 分页每页显示数据的数量
+	/**
+	 * 
+	* @Title: queryContractStatusTracking
+	* @Description: TODO(查询合同状态跟踪表的信息,总表的信息)
+	* @param @param data
+			businessId:之前业务申报模块下来的id号
+			contractParty:签约方,也是在之前业务申报模块中获取的这个信息
+			{
+				"userId":"xxx",
+				"page":"1",
+				"businessId":"",
+				"contractParty":"",
+				"startTime":"",
+				"endTime":""
+			}
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月8日 上午11:30:09
+	* @throws
+	 */
+	@RequestMapping(value="/queryContractStatusTracking",method=RequestMethod.POST)
+	@ResponseBody
+	private Map<String, Object> queryContractStatusTracking(@RequestBody String data){
+		try {
+			System.out.println("查询合同状态跟踪表....");
+			@SuppressWarnings("unchecked")
+			Map<String,Object> map = JSON.parseObject(data, Map.class);
+			int userId = ValidationUtil.checkAndAssignInt(map.get("userId"));
+			//只有管理员,省分行业务主管部门,省分行法律部才有权限可以查看
+			userAuthoricationService.checkUserAuthority(userId, Role.ADMIN,Role.BUSINESS_CHIEF_DEP_OF_PBB,Role.LAW_DEP_OF_PBB);
+			int page = ValidationUtil.checkMinAndAssignInt(map.get("page"),1);
+			Integer businessId = ValidationUtil.checkAndAssignNullIntegerIfIsBlank(map.get("businessId"));
+			String contractParty = ValidationUtil.checkBlankStringAndAssignEmptyIfIsBlank(map.get("contractParty"));
+			long startTime = ValidationUtil.checkAndAssignDefaultLong(map.get("startTime"), 0L);
+			long endTime = ValidationUtil.checkAndAssignDefaultLong(map.get("endTime"), Long.MAX_VALUE);
+			Map<String, Object> mapToService = new LinkedHashMap<String, Object>();
+			mapToService.put("startPage", (page - 1) * ROW_NUM);
+			mapToService.put("businessId", businessId);
+			mapToService.put("contractParty", contractParty);
+			//如果时间顺序错位,要重新进行排位
+			mapToService.put("startTime", startTime);
+			if (startTime <= endTime) {
+				mapToService.put("endTime", endTime);
+			} else {
+				mapToService.put("endTime", Long.MAX_VALUE);
+			}
+			mapToService.put("rowNum", ROW_NUM); // 默认每页显示数据是10条,可根据需求修改分页数量
+			PageDTO pageDto=contractManagementService.queryContractStatusTracking(mapToService);
+			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
+		} catch (Exception e) {
+			return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
+		}
+	}
 	
+	/**
+	 * 
+	* @Title: queryContractRecordByBusinessId
+	* @Description: TODO(在合同状态跟踪表的基础上查询其中一条记录中的)
+	* @param @param data
+	{
+		"userId":"",
+		"page":"1",
+		"businessId":""
+	}
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月8日 下午2:50:36
+	* @throws
+	 */
+	@RequestMapping(value="/queryContractRecordByBusinessId",method=RequestMethod.POST)
+	@ResponseBody
+	public Map<String, Object> queryContractRecordByBusinessId(@RequestBody String data){
+		try {
+			System.out.println("查询合同状态跟踪表....");
+			@SuppressWarnings("unchecked")
+			Map<String,Object> map = JSON.parseObject(data, Map.class);
+			int userId = ValidationUtil.checkAndAssignInt(map.get("userId"));
+			//只有管理员,省分行业务主管部门,省分行法律部才有权限可以查看
+			userAuthoricationService.checkUserAuthority(userId, Role.ADMIN,Role.BUSINESS_CHIEF_DEP_OF_PBB,Role.LAW_DEP_OF_PBB);
+			int page = ValidationUtil.checkMinAndAssignInt(map.get("page"),1);
+			//这里的businessId是必查条件,所以不能默认为null,应该强制转换成int类型
+			Integer businessId = ValidationUtil.checkAndAssignInt(map.get("businessId"));
+			Map<String, Object> mapToService = new LinkedHashMap<String, Object>();
+			mapToService.put("startPage", (page - 1) * ROW_NUM);
+			mapToService.put("businessId", businessId);
+			mapToService.put("rowNum", ROW_NUM); // 默认每页显示数据是10条,可根据需求修改分页数量
+			PageDTO pageDto=contractManagementService.queryContractRecord(mapToService);
+			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
+		} catch (Exception e) {
+			return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
+		}
+	}
 	
 	
 }