Explorar o código

1.合同管理--合同分发流转人员下拉接口;
2.合同管理--合同详情接口;
3.合同管理--合同流转分发保存接口

Antiloveg %!s(int64=8) %!d(string=hai) anos
pai
achega
d0fa46506f
Modificáronse 24 ficheiros con 430 adicións e 36 borrados
  1. 67 3
      src/main/java/com/goafanti/admin/controller/AdminContractApiController.java
  2. 9 10
      src/main/java/com/goafanti/admin/controller/AdminTechProjectApiController.java
  3. 2 0
      src/main/java/com/goafanti/admin/service/AdminService.java
  4. 6 0
      src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java
  5. 2 0
      src/main/java/com/goafanti/common/dao/AdminMapper.java
  6. 4 0
      src/main/java/com/goafanti/common/dao/ContractLogMapper.java
  7. 3 0
      src/main/java/com/goafanti/common/dao/ContractMapper.java
  8. 2 0
      src/main/java/com/goafanti/common/dao/NoticeMapper.java
  9. 52 0
      src/main/java/com/goafanti/common/enums/ContractLogFields.java
  10. 1 0
      src/main/java/com/goafanti/common/enums/NoticeStatus.java
  11. 10 4
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  12. 12 0
      src/main/java/com/goafanti/common/mapper/ContractLogMapper.xml
  13. 17 1
      src/main/java/com/goafanti/common/mapper/ContractMapper.xml
  14. 14 1
      src/main/java/com/goafanti/common/mapper/NoticeMapper.xml
  15. 6 0
      src/main/java/com/goafanti/common/mapper/TechProjectMapper.xml
  16. 3 0
      src/main/java/com/goafanti/common/model/Notice.java
  17. 37 0
      src/main/java/com/goafanti/contract/bo/ContractDetail.java
  18. 49 0
      src/main/java/com/goafanti/contract/bo/InputContactLog.java
  19. 9 0
      src/main/java/com/goafanti/contract/service/ContractLogService.java
  20. 4 1
      src/main/java/com/goafanti/contract/service/ContractService.java
  21. 87 0
      src/main/java/com/goafanti/contract/service/impl/ContractLogServiceImpl.java
  22. 18 2
      src/main/java/com/goafanti/contract/service/impl/ContractServiceImpl.java
  23. 1 1
      src/main/java/com/goafanti/techproject/service/TechProjectService.java
  24. 15 13
      src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java

+ 67 - 3
src/main/java/com/goafanti/admin/controller/AdminContractApiController.java

@@ -12,19 +12,23 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.goafanti.admin.service.AdminService;
 import com.goafanti.cognizance.bo.LatelyCogRecord;
 import com.goafanti.cognizance.service.OrgCognizanceService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.enums.ContractFields;
+import com.goafanti.common.enums.ContractLogFields;
 import com.goafanti.common.enums.OrgCognizanceStatus;
 import com.goafanti.common.model.Contract;
 import com.goafanti.common.model.User;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.common.utils.TimeUtils;
+import com.goafanti.contract.bo.InputContactLog;
 import com.goafanti.contract.bo.InputContract;
 import com.goafanti.contract.bo.InputSaveContract;
+import com.goafanti.contract.service.ContractLogService;
 import com.goafanti.contract.service.ContractService;
 import com.goafanti.user.service.UserService;
 
@@ -34,9 +38,23 @@ public class AdminContractApiController extends CertifyApiController {
 	@Resource
 	private ContractService			contractService;
 	@Resource
+	private ContractLogService		contractLogService;
+	@Resource
 	private UserService				userService;
 	@Resource
 	private OrgCognizanceService	orgCognizanceService;
+	@Resource
+	private AdminService			adminService;
+	
+	/**
+	 * 合同分发流转人员下拉
+	 */
+	@RequestMapping(value = "/principal", method = RequestMethod.GET)
+	public Result getPrincipal() {
+		Result res = new Result();
+		res.setData(adminService.selectContractManager());
+		return res;
+	}
 
 	/**
 	 * 合同列表
@@ -95,7 +113,7 @@ public class AdminContractApiController extends CertifyApiController {
 	 * 新增--提交合同
 	 */
 	@RequestMapping(value = "/submit", method = RequestMethod.POST)
-	public Result submitContract(@Valid InputContract ic, BindingResult bindingResult, String recordTimeFormattedDate,
+	public Result submitContract(@Valid InputContract ic, BindingResult bindingResult, String signDateFormattedDate,
 			@RequestParam(name = "principals[]", required = false) String[] principals) {
 		Result res = new Result();
 		if (principals.length < 1 || null == principals) {
@@ -103,7 +121,7 @@ public class AdminContractApiController extends CertifyApiController {
 			return res;
 		}
 
-		if (StringUtils.isBlank(recordTimeFormattedDate)) {
+		if (StringUtils.isBlank(signDateFormattedDate)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到合同签订时间", "合同签订时间"));
 			return res;
 		}
@@ -126,7 +144,53 @@ public class AdminContractApiController extends CertifyApiController {
 
 		Contract c = new Contract();
 		BeanUtils.copyProperties(ic, c);
-		contractService.insertManageSubmit(c, principals);
+		contractService.insertManageSubmit(c, principals, signDateFormattedDate);
+		return res;
+	}
+
+	/**
+	 * 合同详情
+	 */
+	@RequestMapping(value = "/detail", method = RequestMethod.GET)
+	public Result detail(String id) {
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到合同ID", "合同ID"));
+			return res;
+		}
+		res.setData(contractService.selectContractDetail(id));
+		return res;
+	}
+
+	/**
+	 * 流转分发
+	 */
+	@RequestMapping(value = "/circulation", method = RequestMethod.POST)
+	public Result circulation(@Valid InputContactLog icl, BindingResult bindingResult,
+			@RequestParam(name = "principals[]", required = false) String[] principals) {
+		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					ContractLogFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+
+		if (principals.length < 1 || null == principals) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到流转分发用户", "流转分发用户"));
+			return res;
+		}
+
+		if (StringUtils.isBlank(icl.getCid())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到合同ID", "合同ID"));
+			return res;
+		}
+
+		if (null == icl.getStatus()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到合同流转分发状态", "合同流转分发状态"));
+			return res;
+		}
+
+		contractLogService.insertCirculation(icl, principals);
 		return res;
 	}
 

+ 9 - 10
src/main/java/com/goafanti/admin/controller/AdminTechProjectApiController.java

@@ -64,13 +64,14 @@ public class AdminTechProjectApiController extends CertifyApiController {
 	private UserService				userService;
 	@Resource
 	private AdminService			adminService;
-	
+
 	/**
 	 * 科技网址申报公司下拉
+	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/websiteUnit", method = RequestMethod.GET)
-	public Result getWebsiteUnit(){
+	public Result getWebsiteUnit() {
 		Result res = new Result();
 		List<OrgUnitNames> list = techProjectService.selectWebsiteUnitNames();
 		Map<String, String> map = new TreeMap<String, String>();
@@ -81,13 +82,11 @@ public class AdminTechProjectApiController extends CertifyApiController {
 		return res;
 	}
 
-
-	
 	/**
 	 * 咨询师下拉列表
 	 * 
 	 * @return
-	*/
+	 */
 	@RequestMapping(value = "/getConsultant", method = RequestMethod.GET)
 	public Result getConsultant() {
 		Result res = new Result();
@@ -111,7 +110,7 @@ public class AdminTechProjectApiController extends CertifyApiController {
 		List<Admin> list = adminService.selectTechprojectPrincipal();
 		Map<String, String> map = new TreeMap<String, String>();
 		for (Admin o : list) {
-			map.put(o.getId(), o.getName()+ " " + (null == o.getPosition() ? "" : o.getPosition()));
+			map.put(o.getId(), o.getName() + " " + (null == o.getPosition() ? "" : o.getPosition()));
 		}
 		res.setData(map);
 		return res;
@@ -126,7 +125,7 @@ public class AdminTechProjectApiController extends CertifyApiController {
 	 */
 	@SuppressWarnings("unchecked")
 	@RequestMapping(value = "/listTechProject", method = RequestMethod.POST)
-	public Result listTechProject(String province, String unitName, String pageNo, String pageSize) {
+	public Result listTechProject(String province, String unitName, String uid, String pageNo, String pageSize) {
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -136,7 +135,7 @@ public class AdminTechProjectApiController extends CertifyApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo,
+		Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, uid, pNo,
 				pSize);
 		if (null != t) {
 			List<TechProjectManageListBo> l = (List<TechProjectManageListBo>) t.getList();
@@ -172,8 +171,8 @@ public class AdminTechProjectApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
 			return res;
 		}
-		
-		if (StringUtils.isBlank(techProject.getSalesman())){
+
+		if (StringUtils.isBlank(techProject.getSalesman())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到营销员", "营销员"));
 			return res;
 		}

+ 2 - 0
src/main/java/com/goafanti/admin/service/AdminService.java

@@ -52,4 +52,6 @@ public interface AdminService {
 
 	Map<String, String> selectSalesman();
 
+	Map<String, String> selectContractManager();
+
 }

+ 6 - 0
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -180,6 +180,10 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 		return disposeAdminList(adminMapper.selectSalesman());
 	}
 	
+	@Override
+	public Map<String, String> selectContractManager() {
+		return disposeAdminList(adminMapper.selectContractManager());
+	}
 	
 	private Map<String, String> disposeAdminList(List<Admin> list){
 		Map<String, String> map = new TreeMap<String, String>();
@@ -189,4 +193,6 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 		return map;
 	}
 
+	
+
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/AdminMapper.java

@@ -47,4 +47,6 @@ public interface AdminMapper {
 	List<Admin> selectTechnician();
 
 	List<Admin> selectSalesman();
+
+	List<Admin> selectContractManager();
 }

+ 4 - 0
src/main/java/com/goafanti/common/dao/ContractLogMapper.java

@@ -1,5 +1,7 @@
 package com.goafanti.common.dao;
 
+import java.util.List;
+
 import com.goafanti.common.model.ContractLog;
 
 public interface ContractLogMapper {
@@ -14,4 +16,6 @@ public interface ContractLogMapper {
     int updateByPrimaryKeySelective(ContractLog record);
 
     int updateByPrimaryKey(ContractLog record);
+
+	void insertBatch(List<ContractLog> logs);
 }

+ 3 - 0
src/main/java/com/goafanti/common/dao/ContractMapper.java

@@ -1,6 +1,7 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.Contract;
+import com.goafanti.contract.bo.ContractDetail;
 
 public interface ContractMapper {
     int deleteByPrimaryKey(String id);
@@ -14,4 +15,6 @@ public interface ContractMapper {
     int updateByPrimaryKeySelective(Contract record);
 
     int updateByPrimaryKey(Contract record);
+
+	ContractDetail selectContractDetail(String id);
 }

+ 2 - 0
src/main/java/com/goafanti/common/dao/NoticeMapper.java

@@ -23,4 +23,6 @@ public interface NoticeMapper {
 	int selectUnreadedCount(String aid);
 
 	int batchUpdateUnreaded(List<String> dl);
+
+	void insertBatch(List<Notice> notice);
 }

+ 52 - 0
src/main/java/com/goafanti/common/enums/ContractLogFields.java

@@ -0,0 +1,52 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum ContractLogFields {
+	
+	CID("cid", "合同ID"),
+	STATUS("status", "合同流转状态"),
+	COMMENT("comment", "备注"),
+	OTHER("", "未知参数");
+
+	private ContractLogFields(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	private static Map<String, ContractLogFields> status = new HashMap<String, ContractLogFields>();
+
+	static {
+		for (ContractLogFields value : ContractLogFields.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static ContractLogFields getField(String code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+
+	public static String getFieldDesc(String code) {
+		return getField(code).getDesc();
+	}
+
+	public static boolean containsType(String code) {
+		return status.containsKey(code);
+	}
+
+	private String	code;
+	private String	desc;
+
+	public String getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 1 - 0
src/main/java/com/goafanti/common/enums/NoticeStatus.java

@@ -12,6 +12,7 @@ public enum NoticeStatus {
 	TECHPROJECT(4, "科技项目申报管理"),
 	PERSONALCERTIFY(5, "个人用户认证审核"),
 	ORGANIZATIONCERTIFY(6, "团体组织用户认证审核"),
+	CONTRACT(7, "合同管理"),
 	OTHER(7, "其他");
 
 	private NoticeStatus(Integer code, String desc) {

+ 10 - 4
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -222,7 +222,7 @@
   <select id="selectPatentPrincipal" resultMap="BaseResultMap"  >
     select a.id, a.name, a.position from admin a 
 		INNER JOIN user_role  ur on a.id = ur.uid
-	where ur.rid not in('1','2','3','4')
+	where ur.rid not in('1','2','3','4','5','6')
 	group by a.id
   </select>
   
@@ -236,7 +236,7 @@
    <select id="selectCopyrightPrincipal" resultMap="BaseResultMap"  >
     select a.id, a.name, a.position from admin a 
 		INNER JOIN user_role  ur on a.id = ur.uid
-	where ur.rid not in('1','2','3','4')
+	where ur.rid not in('1','2','3','4','5','6')
 	group by a.id
   </select>
   
@@ -250,7 +250,7 @@
    <select id="selectTechprojectPrincipal" resultMap="BaseResultMap"  >
     select a.id, a.name, a.position from admin a 
 		INNER JOIN user_role  ur on a.id = ur.uid
-	where ur.rid not in('1','2','3','4')
+	where ur.rid not in('1','2','3','4','5','6')
 	group by a.id
   </select>
   
@@ -268,7 +268,7 @@
    <select id="selectTechnician" resultMap="BaseResultMap">
    select a.id, a.name, a.position from admin a 
 		INNER JOIN user_role  ur on a.id = ur.uid
-	where ur.rid not in('1','2','3','4')
+	where ur.rid not in('1','2','3','4','5','6')
 	group by a.id
    </select>
    
@@ -278,4 +278,10 @@
 	where ur.rid in ('5', '6') 
    </select>
   
+   <select id="selectContractManager" resultMap="BaseResultMap"  >
+    select a.id, a.name, a.position from admin a 
+		INNER JOIN user_role  ur on a.id = ur.uid
+	where ur.rid not in('1','2','3','4')
+	group by a.id
+  </select>
 </mapper>

+ 12 - 0
src/main/java/com/goafanti/common/mapper/ContractLogMapper.xml

@@ -114,4 +114,16 @@
       comment = #{comment,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
+  
+  <insert id="insertBatch" parameterType="com.goafanti.common.model.ContractLog">
+    insert into contractLog (id, cid, record_time, status, principal, operator, comment)
+    values 
+    <foreach item="item" index="index" collection="list" separator=",">
+      (
+      	#{item.id,jdbcType=VARCHAR}, #{item.cid,jdbcType=VARCHAR}, #{item.recordTime,jdbcType=TIMESTAMP},
+      	#{item.status,jdbcType=INTEGER}, #{item.principal,jdbcType=VARCHAR}, #{item.operator,jdbcType=VARCHAR},
+      	#{item.comment,jdbcType=VARCHAR}
+      )
+    </foreach>
+  </insert>
 </mapper>

+ 17 - 1
src/main/java/com/goafanti/common/mapper/ContractMapper.xml

@@ -361,7 +361,7 @@
    <if test="type !=null">
     and c.type = #{type,jdbcType=INTEGER}
   </if>
-   <if test="uid !=null">
+   <if test="uid !=null">ContractDetail
     and c.uid = #{uid,jdbcType=INTEGER}
   </if>
    <if test="status !=null">
@@ -383,4 +383,20 @@
 	group by c.id
   </if>
   </select>
+  
+  <select id="selectContractDetail" parameterType="java.lang.String" resultType="com.goafanti.contract.bo.ContractDetail">
+  	select  
+			c.id, c.uid, c.serial_number as serialNumber,  
+			oi.unit_name as unitName, oi.org_code as orgCode, oi.postal_address as address,
+			c.type, c.sign_date as signDate, a.name as founder, 
+			c.describe, c.status, c.patent_num as patentNum, 
+			c.patent_status as patentStatus, c.copyright_num as copyrightNum, c.copyright_status as copyrightStatus, 
+			c.cognizance_year as cognizanceYear, c.cognizance_status as cognizanceStatus, c.tech_project_num as techProjectNum, 
+			c.tech_project_status as techProjectStatus, c.comment, c.complete_date as completeDate,
+      c.contacts
+	from contract c 
+	LEFT JOIN organization_identity oi on oi.uid = c.uid 
+	LEFT JOIN admin a on a.id = c.founder
+	where c.deleted_sign = 0 and c.id = #{id,jdbcType=VARCHAR}
+  </select>
 </mapper>

+ 14 - 1
src/main/java/com/goafanti/common/mapper/NoticeMapper.xml

@@ -226,5 +226,18 @@
 			separator="," close=")">
 			#{item}
 		</foreach>
-	</update>
+  </update>
+  
+  <insert id="insertBatch" parameterType="com.goafanti.common.model.Notice">
+    insert into contractLog (id, aid, notice_type, content, create_time, readed, uid, pid, rid, year)
+    values 
+    <foreach item="item" index="index" collection="list" separator=",">
+      (
+      	#{item.id,jdbcType=VARCHAR}, #{item.aid,jdbcType=VARCHAR}, #{item.noticeType,jdbcType=INTEGER},
+      	#{item.content,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.readed,jdbcType=INTEGER},
+      	#{item.uid,jdbcType=VARCHAR}, #{item.pid,jdbcType=VARCHAR}, #{item.rid,jdbcType=VARCHAR},
+      	#{item.year,jdbcType=INTEGER}
+      )
+    </foreach>
+  </insert>
 </mapper>

+ 6 - 0
src/main/java/com/goafanti/common/mapper/TechProjectMapper.xml

@@ -369,6 +369,9 @@
     <if test="province != null">
     	and x.province = #{province,jdbcType=VARCHAR}
     </if>
+     <if test="uid != null">
+    	and x.uid = #{uid,jdbcType=VARCHAR}
+    </if>
     <if test="unitName != null" >
     	and x.unitName like CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')  
     </if>
@@ -406,6 +409,9 @@
 	<if test="province != null">
     	and x.province = #{province,jdbcType=VARCHAR}
     </if>
+     <if test="uid != null">
+    	and x.uid = #{uid,jdbcType=VARCHAR}
+    </if>
     <if test="unitName != null" >
     	and x.unitName like CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')  
     </if>

+ 3 - 0
src/main/java/com/goafanti/common/model/Notice.java

@@ -162,6 +162,9 @@ public class Notice {
 			if (NoticeStatus.ORGANIZATIONCERTIFY.getCode() == this.noticeType){
 				return NoticeStatus.ORGANIZATIONCERTIFY.getDesc();
 			}
+			if (NoticeStatus.CONTRACT.getCode() == this.noticeType){
+				return NoticeStatus.CONTRACT.getDesc();
+			}
 			return NoticeStatus.OTHER.getDesc();
 		}
 	}

+ 37 - 0
src/main/java/com/goafanti/contract/bo/ContractDetail.java

@@ -0,0 +1,37 @@
+package com.goafanti.contract.bo;
+
+import com.goafanti.common.model.Contract;
+
+public class ContractDetail extends Contract{
+	private String unitName;
+	
+	private String orgCode;
+	
+	private String address;
+
+	public String getUnitName() {
+		return unitName;
+	}
+
+	public void setUnitName(String unitName) {
+		this.unitName = unitName;
+	}
+
+	public String getOrgCode() {
+		return orgCode;
+	}
+
+	public void setOrgCode(String orgCode) {
+		this.orgCode = orgCode;
+	}
+
+	public String getAddress() {
+		return address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+	
+	
+}

+ 49 - 0
src/main/java/com/goafanti/contract/bo/InputContactLog.java

@@ -0,0 +1,49 @@
+package com.goafanti.contract.bo;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputContactLog {
+	
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+    private String cid;	
+	
+	@Size(min = 0, max = 128, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String comment;
+	
+	@Max(value = 3, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer status;
+
+	public String getCid() {
+		return cid;
+	}
+
+	public void setCid(String cid) {
+		this.cid = cid;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+	
+	
+	
+	
+
+}

+ 9 - 0
src/main/java/com/goafanti/contract/service/ContractLogService.java

@@ -0,0 +1,9 @@
+package com.goafanti.contract.service;
+
+import com.goafanti.contract.bo.InputContactLog;
+
+public interface ContractLogService {
+
+	void insertCirculation(InputContactLog cl, String[] principals);
+
+}

+ 4 - 1
src/main/java/com/goafanti/contract/service/ContractService.java

@@ -1,6 +1,7 @@
 package com.goafanti.contract.service;
 
 import com.goafanti.common.model.Contract;
+import com.goafanti.contract.bo.ContractDetail;
 import com.goafanti.contract.bo.ContractManageListBo;
 import com.goafanti.core.mybatis.page.Pagination;
 
@@ -13,6 +14,8 @@ public interface ContractService {
 
 	int updateContractByManage(Contract contract);
 
-	void insertManageSubmit(Contract c, String[] principals);
+	void insertManageSubmit(Contract c, String[] principals, String signDateFormattedDate);
+
+	ContractDetail selectContractDetail(String id);
 
 }

+ 87 - 0
src/main/java/com/goafanti/contract/service/impl/ContractLogServiceImpl.java

@@ -0,0 +1,87 @@
+package com.goafanti.contract.service.impl;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.UUID;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.goafanti.common.dao.ContractLogMapper;
+import com.goafanti.common.dao.ContractMapper;
+import com.goafanti.common.dao.NoticeMapper;
+import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.enums.ContractStatus;
+import com.goafanti.common.enums.NoticeReadStatus;
+import com.goafanti.common.enums.NoticeStatus;
+import com.goafanti.common.model.Contract;
+import com.goafanti.common.model.ContractLog;
+import com.goafanti.common.model.Notice;
+import com.goafanti.common.model.User;
+import com.goafanti.contract.bo.InputContactLog;
+import com.goafanti.contract.service.ContractLogService;
+import com.goafanti.core.shiro.token.TokenManager;
+
+@Service
+public class ContractLogServiceImpl implements ContractLogService {
+	@Autowired
+	private ContractLogMapper	contractLogMapper;
+	@Autowired
+	private ContractMapper		contractMapper;
+	@Autowired
+	private NoticeMapper		noticeMapper;
+	@Autowired
+	private UserMapper			userMapper;
+
+	@Override
+	public void insertCirculation(InputContactLog icl, String[] principals) {
+		if (ContractStatus.COMPLETE.getCode() == icl.getStatus()) {
+			Contract c = contractMapper.selectByPrimaryKey(icl.getCid());
+			c.setStatus(icl.getStatus());
+			contractMapper.updateByPrimaryKeySelective(c);
+		}
+		List<ContractLog> logs = new ArrayList<>();
+		List<Notice> notice = new ArrayList<>();
+		for (int i = 0; i < principals.length; i++) {
+			ContractLog cl = new ContractLog();
+			BeanUtils.copyProperties(icl, cl);
+			cl.setId(UUID.randomUUID().toString());
+			cl.setOperator(TokenManager.getAdminId());
+			cl.setPrincipal(principals[i]);
+			Calendar now = Calendar.getInstance();
+			now.set(Calendar.MILLISECOND, 0);
+			cl.setRecordTime(now.getTime());
+			logs.add(cl);
+			notice.add(createNotice(cl));
+		}
+		contractLogMapper.insertBatch(logs);
+		noticeMapper.insertBatch(notice);
+	}
+
+	private Notice createNotice(ContractLog l) {
+		Contract info = contractMapper.selectByPrimaryKey(l.getCid());
+
+		Notice n = new Notice();
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		n.setId(UUID.randomUUID().toString());
+		n.setCreateTime(now.getTime());
+		n.setReaded(NoticeReadStatus.UNREAD.getCode());
+
+		User u = userMapper.selectByPrimaryKey(info.getUid());
+		if (null != u) {
+			n.setPid(u.getAid());
+		}
+
+		n.setUid(info.getUid());
+		n.setRid(info.getId());
+
+		n.setAid(l.getPrincipal());
+		n.setContent("编号" + info.getSerialNumber() + "  " + ContractStatus.getStatus(info.getStatus()).getDesc());
+		n.setNoticeType(NoticeStatus.CONTRACT.getCode());
+		n.setYear(info.getCognizanceYear());
+		return n;
+	}
+}

+ 18 - 2
src/main/java/com/goafanti/contract/service/impl/ContractServiceImpl.java

@@ -26,6 +26,7 @@ import com.goafanti.common.model.Notice;
 import com.goafanti.common.model.User;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.StringUtils;
+import com.goafanti.contract.bo.ContractDetail;
 import com.goafanti.contract.bo.ContractManageListBo;
 import com.goafanti.contract.service.ContractService;
 import com.goafanti.core.mybatis.BaseMybatisDao;
@@ -129,12 +130,21 @@ public class ContractServiceImpl extends BaseMybatisDao<ContractMapper> implemen
 	}
 
 	@Override
-	public void insertManageSubmit(Contract c, String[] principals) {
+	public void insertManageSubmit(Contract c, String[] principals, String signDateFormattedDate) {
+		Date signDate = null;
+		if (!StringUtils.isBlank(signDateFormattedDate)) {
+			try {
+				signDate = DateUtils.parseDate(signDateFormattedDate, AFTConstants.YYYYMMDDHHMMSS);
+			} catch (ParseException e) {
+			}
+		}
 		c.setStatus(ContractStatus.CIRCULATION.getCode());
+		c.setSignDate(signDate);
 		c = disposeContract(c);
 		contractMapper.insert(c);
 		ContractLog clog = disposeContractLog(c);
 		clog.setStatus(ContractStatus.SIGN.getCode());
+		clog.setRecordTime(signDate);
 		contractLogMapper.insert(clog);
 
 		for (int i = 0; i < principals.length; i++) {
@@ -194,8 +204,14 @@ public class ContractServiceImpl extends BaseMybatisDao<ContractMapper> implemen
 
 		n.setAid(l.getPrincipal());
 		n.setContent("编号" + info.getSerialNumber() + "  " + ContractStatus.getStatus(c.getStatus()).getDesc());
-		n.setNoticeType(NoticeStatus.TECHPROJECT.getCode());
+		n.setNoticeType(NoticeStatus.CONTRACT.getCode());
+		n.setYear(info.getCognizanceYear());
 		noticeMapper.insert(n);
 	}
 
+	@Override
+	public ContractDetail selectContractDetail(String id) {
+		return contractMapper.selectContractDetail(id);
+	}
+
 }

+ 1 - 1
src/main/java/com/goafanti/techproject/service/TechProjectService.java

@@ -19,7 +19,7 @@ public interface TechProjectService {
 
 	TechProject saveTechProject(TechProject techProject, String salesman);
 
-	Pagination<TechProjectManageListBo> listManageTechProject(String province, String unitName, Integer pNo, Integer pSize);
+	Pagination<TechProjectManageListBo> listManageTechProject(String province, String unitName, String uid, Integer pNo, Integer pSize);
 
 	TechProjectDetailBo selectProjectDetail(String pid);
 

+ 15 - 13
src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java

@@ -94,7 +94,7 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 	public TechProject saveTechProject(TechProject techProject, String salesman) {
 		techProject.setState(TechProjectStatus.DELIVERD.getCode());
 		techProject.setFounder(salesman);
-		
+
 		techProject = disposeTechProjectSave(techProject);
 
 		TechProjectLog log = new TechProjectLog();
@@ -108,7 +108,7 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		techProjectLogMapper.insert(log);
 
 		createNotice(techProject, log);
-		
+
 		TechProjectLog l = new TechProjectLog();
 		l.setId(UUID.randomUUID().toString());
 		l.setPid(techProject.getId());
@@ -119,16 +119,16 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		l.setState(TechProjectStatus.DELIVERD.getCode());
 		l.setOperator(salesman);
 		techProjectLogMapper.insert(l);
-		
+
 		createNotice(techProject, l);
 		return techProject;
 	}
-	
+
 	@Override
 	public TechProject insertTechProject(TechProject tp, String aid) {
 		tp.setState(TechProjectStatus.CREATE.getCode());
 		tp = disposeTechProjectSave(tp);
-		
+
 		TechProjectLog l = new TechProjectLog();
 		l.setId(UUID.randomUUID().toString());
 		l.setPid(tp.getId());
@@ -139,15 +139,15 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		l.setState(TechProjectStatus.CREATE.getCode());
 		l.setComment(tp.getDispatchInfo());
 		techProjectLogMapper.insert(l);
-		
+
 		createNotice(tp, l);
 		return tp;
 	}
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<TechProjectManageListBo> listManageTechProject(String province, String unitName, Integer pageNo,
-			Integer pageSize) {
+	public Pagination<TechProjectManageListBo> listManageTechProject(String province, String unitName, String uid,
+			Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
 
 		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
@@ -160,6 +160,10 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		if (!StringUtils.isBlank(unitName)) {
 			params.put("unitName", unitName);
 		}
+		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
+		}
 		if (pageNo == null || pageNo < 0) {
 			pageNo = 1;
 		}
@@ -194,7 +198,7 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		}
 		return techProjectMapper.selectWebsiteUnitNames(principal);
 	}
-	
+
 	private void createNotice(TechProject t, TechProjectLog l) {
 		TechProject info = techProjectMapper.selectByPrimaryKey(t.getId());
 
@@ -218,8 +222,8 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		n.setNoticeType(NoticeStatus.TECHPROJECT.getCode());
 		noticeMapper.insert(n);
 	}
-	
-	private TechProject disposeTechProjectSave(TechProject techProject){
+
+	private TechProject disposeTechProjectSave(TechProject techProject) {
 		techProject.setId(UUID.randomUUID().toString());
 		Calendar now = Calendar.getInstance();
 		now.set(Calendar.MILLISECOND, 0);
@@ -229,6 +233,4 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		return techProject;
 	}
 
-	
-
 }