Просмотр исходного кода

1.管理端科技成果新增&修改update;
2.审核员审核科技成果信息;
3.管理端成果下架(撤销)

Antiloveg лет назад: 8
Родитель
Сommit
dd43ff3e84

+ 2 - 1
schema/2017-05-22.sql

@@ -1,3 +1,4 @@
 alter TABLE `demand`
 alter TABLE `demand`
 add column `audit_status` int(1) null comment'审核状态(0--未提交审核草稿,1,--提交审核,2--审核中,3--审核通过,4--审核未通过)',
 add column `audit_status` int(1) null comment'审核状态(0--未提交审核草稿,1,--提交审核,2--审核中,3--审核通过,4--审核未通过)',
-add column `tech_broker_id` varchar(36) null comment'技术经纪人ID';
+add column `tech_broker_id` varchar(36) null comment'技术经纪人ID';
+

+ 4 - 0
schema/2017-05-23.sql

@@ -0,0 +1,4 @@
+
+alter TABLE `achievement`
+add column `audit_status` int(1) null comment'审核状态(0--未提交审核草稿,1,--提交审核,2--审核中,3--审核通过,4--审核未通过)',
+add column `tech_broker_id` varchar(36) null comment'技术经纪人ID';

+ 27 - 0
src/main/java/com/goafanti/achievement/bo/AchievementListBo.java

@@ -62,6 +62,16 @@ public class AchievementListBo {
 	 * 发布时间
 	 * 发布时间
 	 */
 	 */
 	private Date	releaseDate;
 	private Date	releaseDate;
+	
+	/**
+	 * 审核状态
+	 */
+	private Integer auditStatus;
+	
+	/**
+	 * 技术经纪人
+	 */
+	private String techBrokerId;
 
 
 	public String getId() {
 	public String getId() {
 		return id;
 		return id;
@@ -154,6 +164,23 @@ public class AchievementListBo {
 	public void setReleaseDate(Date releaseDate) {
 	public void setReleaseDate(Date releaseDate) {
 		this.releaseDate = releaseDate;
 		this.releaseDate = releaseDate;
 	}
 	}
+	
+	@JsonFormat(shape = Shape.STRING)
+	public Integer getAuditStatus() {
+		return auditStatus;
+	}
+
+	public void setAuditStatus(Integer auditStatus) {
+		this.auditStatus = auditStatus;
+	}
+
+	public String getTechBrokerId() {
+		return techBrokerId;
+	}
+
+	public void setTechBrokerId(String techBrokerId) {
+		this.techBrokerId = techBrokerId;
+	}
 
 
 	public String getReleaseDateFormattedDate() {
 	public String getReleaseDateFormattedDate() {
 		if (this.releaseDate == null) {
 		if (this.releaseDate == null) {

+ 23 - 0
src/main/java/com/goafanti/achievement/bo/InputAchievement.java

@@ -150,6 +150,13 @@ public class InputAchievement {
 	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	private Integer		releaseStatus;
 	private Integer		releaseStatus;
+	
+	@Max(value = 4, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer auditStatus;
+	
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String techBrokerId;
 
 
 	public String getId() {
 	public String getId() {
 		return id;
 		return id;
@@ -486,6 +493,22 @@ public class InputAchievement {
 	public void setReleaseStatus(Integer releaseStatus) {
 	public void setReleaseStatus(Integer releaseStatus) {
 		this.releaseStatus = releaseStatus;
 		this.releaseStatus = releaseStatus;
 	}
 	}
+
+	public Integer getAuditStatus() {
+		return auditStatus;
+	}
+
+	public void setAuditStatus(Integer auditStatus) {
+		this.auditStatus = auditStatus;
+	}
+
+	public String getTechBrokerId() {
+		return techBrokerId;
+	}
+
+	public void setTechBrokerId(String techBrokerId) {
+		this.techBrokerId = techBrokerId;
+	}
 	
 	
 	
 	
 
 

+ 2 - 2
src/main/java/com/goafanti/achievement/controller/AchievementApiController.java

@@ -35,7 +35,7 @@ public class AchievementApiController extends CertifyApiController{
 	 * 成果列表
 	 * 成果列表
 	 */
 	 */
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
-	private Result list(Integer serialNumber, String name, String keyword, Integer category, Integer ownerType,
+	private Result list(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category, Integer ownerType,
 			Integer status, String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus,
 			Integer status, String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus,
 			String pageNo, String pageSize) {
 			String pageNo, String pageSize) {
 		Result res = new Result();
 		Result res = new Result();
@@ -48,7 +48,7 @@ public class AchievementApiController extends CertifyApiController{
 		if (StringUtils.isNumeric(pageNo)) {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 			pNo = Integer.parseInt(pageNo);
 		}
 		}
-		res.setData(achievementService.listUserAchievement(serialNumber, name, keyword, category, ownerType, status,
+		res.setData(achievementService.listUserAchievement(auditStatus, serialNumber, name, keyword, category, ownerType, status,
 				releaseDateStartDate, releaseDateEndDate, releaseStatus, pNo, pSize));
 				releaseDateStartDate, releaseDateEndDate, releaseStatus, pNo, pSize));
 		return res;
 		return res;
 	}
 	}

+ 6 - 2
src/main/java/com/goafanti/achievement/service/AchievementService.java

@@ -8,7 +8,7 @@ import com.goafanti.core.mybatis.page.Pagination;
 
 
 public interface AchievementService {
 public interface AchievementService {
 
 
-	Pagination<AchievementListBo> listAchievement(Integer serialNumber, String name, String keyword, Integer category,
+	Pagination<AchievementListBo> listAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category,
 			Integer ownerType, Integer status, String releaseDateStartDate,
 			Integer ownerType, Integer status, String releaseDateStartDate,
 			String releaseDateEndDate, Integer releaseStatus, Integer pNo, Integer pSize);
 			String releaseDateEndDate, Integer releaseStatus, Integer pNo, Integer pSize);
 
 
@@ -20,8 +20,12 @@ public interface AchievementService {
 
 
 	int deleteByPrimaryKey(List<String> asList);
 	int deleteByPrimaryKey(List<String> asList);
 
 
-	Pagination<AchievementListBo> listUserAchievement(Integer serialNumber, String name, String keyword, Integer category, Integer ownerType,
+	Pagination<AchievementListBo> listUserAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category, Integer ownerType,
 			Integer status, String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus, Integer pNo,
 			Integer status, String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus, Integer pNo,
 			Integer pSize);
 			Integer pSize);
 
 
+	int updateAuditAchievement(Achievement a, String techBroderId, Integer auditStatus);
+
+	int updateReleaseStatus(Achievement a);
+
 }
 }

+ 85 - 26
src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java

@@ -16,11 +16,18 @@ import com.goafanti.achievement.bo.AchievementListBo;
 import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.AchievementMapper;
 import com.goafanti.common.dao.AchievementMapper;
+import com.goafanti.common.dao.NoticeMapper;
+import com.goafanti.common.dao.UserRoleMapper;
+import com.goafanti.common.enums.AchievementAuditStatus;
 import com.goafanti.common.enums.AchievementReleaseStatus;
 import com.goafanti.common.enums.AchievementReleaseStatus;
-import com.goafanti.common.enums.AchievementStatus;
 import com.goafanti.common.enums.DeleteStatus;
 import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.enums.DemandAuditStatus;
 import com.goafanti.common.enums.DemandReleaseStatus;
 import com.goafanti.common.enums.DemandReleaseStatus;
+import com.goafanti.common.enums.NoticeReadStatus;
+import com.goafanti.common.enums.NoticeStatus;
+import com.goafanti.common.enums.UserType;
 import com.goafanti.common.model.Achievement;
 import com.goafanti.common.model.Achievement;
+import com.goafanti.common.model.Notice;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.mybatis.page.Pagination;
@@ -30,11 +37,15 @@ import com.goafanti.core.shiro.token.TokenManager;
 public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
 public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
 
 
 	@Autowired
 	@Autowired
-	private AchievementMapper achievementMapper;
+	private AchievementMapper	achievementMapper;
+	@Autowired
+	private UserRoleMapper		userRoleMapper;
+	@Autowired
+	private NoticeMapper		noticeMapper;
 
 
 	@SuppressWarnings("unchecked")
 	@SuppressWarnings("unchecked")
 	@Override
 	@Override
-	public Pagination<AchievementListBo> listAchievement(Integer serialNumber, String name, String keyword,
+	public Pagination<AchievementListBo> listAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword,
 			Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
 			Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
 			Integer releaseStatus, Integer pNo, Integer pSize) {
 			Integer releaseStatus, Integer pNo, Integer pSize) {
 		if (pNo == null || pNo < 0) {
 		if (pNo == null || pNo < 0) {
@@ -45,7 +56,7 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 			pSize = 10;
 			pSize = 10;
 		}
 		}
 		return (Pagination<AchievementListBo>) findPage(
 		return (Pagination<AchievementListBo>) findPage(
-				"findManageAchievementListByPage", "findManageAchievementCount", disposeParams(serialNumber, name,
+				"findManageAchievementListByPage", "findManageAchievementCount", disposeParams(auditStatus, serialNumber, name,
 						keyword, category, ownerType, status, releaseDateStartDate, releaseDateEndDate, releaseStatus),
 						keyword, category, ownerType, status, releaseDateStartDate, releaseDateEndDate, releaseStatus),
 				pNo, pSize);
 				pNo, pSize);
 	}
 	}
@@ -57,30 +68,24 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		Calendar now = Calendar.getInstance();
 		Calendar now = Calendar.getInstance();
 		now.set(Calendar.MILLISECOND, 0);
 		now.set(Calendar.MILLISECOND, 0);
 
 
-		a.setStatus(AchievementStatus.CREATE.getCode());
-		if (AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())) {
-			a.setReleaseDate(now.getTime());
-			a.setStatus(AchievementStatus.ONGOING.getCode());
+		a.setAuditStatus(AchievementAuditStatus.CREATE.getCode());
+		a.setSalesmanId(TokenManager.getAdminId());
+		a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
+
+		if (AchievementAuditStatus.SUBMIT.getCode().equals(a.getAuditStatus())) {
+			a.setAuditStatus(DemandAuditStatus.INAUDIT.getCode());
+			createAuditorNotice(a);
 		}
 		}
+
 		a.setCreateTime(now.getTime());
 		a.setCreateTime(now.getTime());
 		achievementMapper.insert(a);
 		achievementMapper.insert(a);
 	}
 	}
 
 
 	@Override
 	@Override
 	public int updateAchievement(Achievement a) {
 	public int updateAchievement(Achievement a) {
-		Achievement aa = achievementMapper.selectByPrimaryKey(a.getId());
-		if (AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())
-				&& DemandReleaseStatus.UNRELEASE.getCode().equals(aa.getReleaseStatus())) {
-			Calendar now = Calendar.getInstance();
-			now.set(Calendar.MILLISECOND, 0);
-			a.setReleaseDate(now.getTime());
-			a.setStatus(AchievementStatus.ONGOING.getCode());
-		}
-
-		if (AchievementReleaseStatus.UNRELEASE.getCode().equals(a.getReleaseStatus())
-				&& AchievementReleaseStatus.RELEASED.getCode().equals(aa.getReleaseStatus())) {
-			a.setStatus(AchievementStatus.CREATE.getCode());
-			achievementMapper.updateReleaseDate(aa.getId());
+		if (AchievementAuditStatus.SUBMIT.getCode().equals(a.getAuditStatus())) {
+			a.setAuditStatus(DemandAuditStatus.INAUDIT.getCode());
+			createAuditorNotice(a);
 		}
 		}
 		return achievementMapper.updateByPrimaryKeySelective(a);
 		return achievementMapper.updateByPrimaryKeySelective(a);
 	}
 	}
@@ -97,10 +102,10 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 
 
 	@SuppressWarnings("unchecked")
 	@SuppressWarnings("unchecked")
 	@Override
 	@Override
-	public Pagination<AchievementListBo> listUserAchievement(Integer serialNumber, String name, String keyword,
+	public Pagination<AchievementListBo> listUserAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword,
 			Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
 			Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
 			Integer releaseStatus, Integer pNo, Integer pSize) {
 			Integer releaseStatus, Integer pNo, Integer pSize) {
-		Map<String, Object> params = disposeParams(serialNumber, name, keyword, category, ownerType, status,
+		Map<String, Object> params = disposeParams(auditStatus, serialNumber, name, keyword, category, ownerType, status,
 				releaseDateStartDate, releaseDateEndDate, releaseStatus);
 				releaseDateStartDate, releaseDateEndDate, releaseStatus);
 		params.put("ownerId", TokenManager.getUserId());
 		params.put("ownerId", TokenManager.getUserId());
 		if (pNo == null || pNo < 0) {
 		if (pNo == null || pNo < 0) {
@@ -110,12 +115,11 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		if (pSize == null || pSize < 0) {
 		if (pSize == null || pSize < 0) {
 			pSize = 10;
 			pSize = 10;
 		}
 		}
-		return (Pagination<AchievementListBo>) findPage(
-				"findAchievementListByPage", "findAchievementCount", params,
+		return (Pagination<AchievementListBo>) findPage("findAchievementListByPage", "findAchievementCount", params,
 				pNo, pSize);
 				pNo, pSize);
 	}
 	}
 
 
-	private Map<String, Object> disposeParams(Integer serialNumber, String name, String keyword, Integer category,
+	private Map<String, Object> disposeParams(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category,
 			Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
 			Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
 			Integer releaseStatus) {
 			Integer releaseStatus) {
 		Map<String, Object> params = new HashMap<>();
 		Map<String, Object> params = new HashMap<>();
@@ -144,6 +148,10 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 		if (null != rEnd) {
 		if (null != rEnd) {
 			params.put("rEnd", rEnd);
 			params.put("rEnd", rEnd);
 		}
 		}
+		
+		if (null != auditStatus){
+			params.put("auditStatus", auditStatus);
+		}
 
 
 		if (null != serialNumber) {
 		if (null != serialNumber) {
 			params.put("serialNumber", serialNumber);
 			params.put("serialNumber", serialNumber);
@@ -175,5 +183,56 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 
 
 		return params;
 		return params;
 	}
 	}
+	
+	@Override
+	public int updateAuditAchievement(Achievement a, String techBroderId, Integer auditStatus) {
+		a.setAuditStatus(auditStatus);
+		if (AchievementAuditStatus.AUDITED.getCode().equals(auditStatus)) {
+			Calendar now = Calendar.getInstance();
+			now.set(Calendar.MILLISECOND, 0);
+			a.setReleaseDate(now.getTime());
+			a.setReleaseStatus(DemandReleaseStatus.RELEASED.getCode());
+		} else {
+			a.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode());
+		}
+		return achievementMapper.updateByPrimaryKeySelective(a);
+	}
+	
+	@Override
+	public int updateReleaseStatus(Achievement a) {
+		a.setAuditStatus(AchievementAuditStatus.CREATE.getCode());
+		a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
+		achievementMapper.updateReleaseDate(a.getId());
+		return achievementMapper.updateByPrimaryKeySelective(a);
+	}
+
+	// 给所有审核员发送审核通知
+	private void createAuditorNotice(Achievement a) {
+		List<String> ids = userRoleMapper.listAuditor();
+		if (null != ids && ids.size() > 0) {
+			for (String s : ids) {
+				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());
+				n.setRid(a.getId());
+				n.setAid(s);
+				if (UserType.PERSONAL.getCode().equals(a.getOwnerType())) {
+					n.setContent(NoticeStatus.PERSONALACHIEVEMENTT.getDesc() + " " + AchievementAuditStatus.SUBMIT.getDesc());
+					n.setNoticeType(NoticeStatus.PERSONALACHIEVEMENTT.getCode());
+				} else if (UserType.ORGANIZATION.getCode().equals(a.getOwnerType())) {
+					n.setContent(NoticeStatus.ORGANIZATIONACHIEVEMENT.getDesc() + " " + AchievementAuditStatus.SUBMIT.getDesc());
+					n.setNoticeType(NoticeStatus.ORGANIZATIONACHIEVEMENT.getCode());
+				}
+				noticeMapper.insert(n);
+			}
+		}
+	}
+
+	
+
+	
 
 
 }
 }

+ 33 - 2
src/main/java/com/goafanti/admin/controller/AdminAchievementApiController.java

@@ -19,6 +19,7 @@ import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.AchievementAuditStatus;
 import com.goafanti.common.enums.AchievementFields;
 import com.goafanti.common.enums.AchievementFields;
 import com.goafanti.common.enums.AttachmentType;
 import com.goafanti.common.enums.AttachmentType;
 import com.goafanti.common.model.Achievement;
 import com.goafanti.common.model.Achievement;
@@ -29,6 +30,28 @@ import com.goafanti.common.utils.StringUtils;
 public class AdminAchievementApiController extends CertifyApiController {
 public class AdminAchievementApiController extends CertifyApiController {
 	@Resource
 	@Resource
 	private AchievementService achievementService;
 	private AchievementService achievementService;
+	
+	/**
+	 * 成果撤消发布(下架)
+	 */
+	@RequestMapping(value = "/offShelf", method = RequestMethod.POST)
+	public Result offShelf(String id) {
+		Result res = new Result();
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
+			return res;
+		}
+
+		Achievement a = achievementService.selectByPrimaryKey(id);
+
+		if (null == a) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "需求ID"));
+			return res;
+		}
+
+		res.setData(achievementService.updateReleaseStatus(a));
+		return res;
+	}
 
 
 	/**
 	/**
 	 * 下载文本文件
 	 * 下载文本文件
@@ -131,7 +154,7 @@ public class AdminAchievementApiController extends CertifyApiController {
 	 * 成果列表
 	 * 成果列表
 	 */
 	 */
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
-	private Result list(Integer serialNumber, String name, String keyword, Integer category, Integer ownerType,
+	private Result list(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category, Integer ownerType,
 			Integer status, String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus,
 			Integer status, String releaseDateStartDate, String releaseDateEndDate, Integer releaseStatus,
 			String pageNo, String pageSize) {
 			String pageNo, String pageSize) {
 		Result res = new Result();
 		Result res = new Result();
@@ -144,7 +167,7 @@ public class AdminAchievementApiController extends CertifyApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 			pNo = Integer.parseInt(pageNo);
 		}
 		}
-		res.setData(achievementService.listAchievement(serialNumber, name, keyword, category, ownerType, status,
+		res.setData(achievementService.listAchievement(auditStatus, serialNumber, name, keyword, category, ownerType, status,
 				releaseDateStartDate, releaseDateEndDate, releaseStatus, pNo, pSize));
 				releaseDateStartDate, releaseDateEndDate, releaseStatus, pNo, pSize));
 		return res;
 		return res;
 	}
 	}
@@ -189,6 +212,14 @@ public class AdminAchievementApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
 			return res;
 			return res;
 		}
 		}
+		
+		if (!AchievementAuditStatus.CREATE.getCode().equals(ia.getAuditStatus())
+				&& !AchievementAuditStatus.SUBMIT.getCode().equals(ia.getAuditStatus())
+				&& !AchievementAuditStatus.UNAUDITED.getCode().equals(ia.getAuditStatus())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "当前状态无法提交审核!"));
+			return res;
+		}
+		
 		res = disposeInputAchievement(res, ia);
 		res = disposeInputAchievement(res, ia);
 		if (!res.getError().isEmpty()) {
 		if (!res.getError().isEmpty()) {
 			return res;
 			return res;

+ 66 - 21
src/main/java/com/goafanti/admin/controller/AdminAuditApiController.java

@@ -6,11 +6,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.admin.service.AdminService;
 import com.goafanti.admin.service.AdminService;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.AchievementAuditStatus;
 import com.goafanti.common.enums.DemandAuditStatus;
 import com.goafanti.common.enums.DemandAuditStatus;
+import com.goafanti.common.model.Achievement;
 import com.goafanti.common.model.Demand;
 import com.goafanti.common.model.Demand;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.demand.service.DemandService;
 import com.goafanti.demand.service.DemandService;
@@ -22,9 +25,11 @@ public class AdminAuditApiController extends CertifyApiController {
 	private AdminService	adminService;
 	private AdminService	adminService;
 	@Resource
 	@Resource
 	private DemandService	demandService;
 	private DemandService	demandService;
+	@Resource
+	private AchievementService	achievementService;
 
 
 	/**
 	/**
-	 * 审核员--获取技术经纪人下拉
+	 * 获取技术经纪人下拉
 	 */
 	 */
 	@RequestMapping(value = "/techBroders", method = RequestMethod.GET)
 	@RequestMapping(value = "/techBroders", method = RequestMethod.GET)
 	public Result getTechBroders() {
 	public Result getTechBroders() {
@@ -33,42 +38,82 @@ public class AdminAuditApiController extends CertifyApiController {
 		return res;
 		return res;
 	}
 	}
 
 
-
 	/**
 	/**
-	 * 审核员--审核科技需求
+	 * 审核科技需求
 	 */
 	 */
 	@RequestMapping(value = "/demand", method = RequestMethod.POST)
 	@RequestMapping(value = "/demand", method = RequestMethod.POST)
 	public Result demand(String id, String techBroderId, Integer auditStatus) {
 	public Result demand(String id, String techBroderId, Integer auditStatus) {
 		Result res = new Result();
 		Result res = new Result();
+		res = disposeDmandAchievement(res, "demand", id, techBroderId, auditStatus);
+		if (!res.getError().isEmpty()) {
+			return res;
+		}
+		Demand d = demandService.selectByPrimaryKey(id);
+		if (null == d) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "需求ID"));
+			return res;
+		}
+		res.setData(demandService.updateAuditDemand(d, techBroderId, auditStatus));
+		return res;
+	}
+
+	/**
+	 * 审核科技成果
+	 */
+	@RequestMapping(value = "/achievement", method = RequestMethod.POST)
+	public Result achievement(String id, String techBroderId, Integer auditStatus) {
+		Result res = new Result();
+		res = disposeDmandAchievement(res, "achievement", id, techBroderId, auditStatus);
+		if (!res.getError().isEmpty()) {
+			return res;
+		}
+		Achievement a = achievementService.selectByPrimaryKey(id);
+		if (null == a){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "成果ID"));
+			return res;
+		}
+		res.setData(achievementService.updateAuditAchievement(a, techBroderId, auditStatus));
+		return res;
+	}
+
+	private Result disposeDmandAchievement(Result res, String sign, String id, String techBroderId,
+			Integer auditStatus) {
 		if (StringUtils.isBlank(id)) {
 		if (StringUtils.isBlank(id)) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
 			return res;
 			return res;
 		}
 		}
-		
-		if (null == auditStatus){
+
+		if (null == auditStatus) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到审核状态", "审核状态"));
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到审核状态", "审核状态"));
 			return res;
 			return res;
 		}
 		}
 
 
-		if (!DemandAuditStatus.AUDITED.getCode().equals(auditStatus)
-				&& !DemandAuditStatus.UNAUDITED.getCode().equals(auditStatus)){
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "审核状态"));
-			return res;
-		}
-		
-		if (DemandAuditStatus.AUDITED.getCode().equals(auditStatus)){
-			if (StringUtils.isBlank(techBroderId)){
-				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到技术经纪人", "技术经纪人"));
+		if (sign.equals("demand")) {
+			if (!DemandAuditStatus.AUDITED.getCode().equals(auditStatus)
+					&& !DemandAuditStatus.UNAUDITED.getCode().equals(auditStatus)) {
+				res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "审核状态"));
 				return res;
 				return res;
 			}
 			}
+			if (DemandAuditStatus.AUDITED.getCode().equals(auditStatus)) {
+				if (StringUtils.isBlank(techBroderId)) {
+					res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到技术经纪人", "技术经纪人"));
+					return res;
+				}
+			}
+		} else {
+			if (!AchievementAuditStatus.AUDITED.getCode().equals(auditStatus)
+					&& !AchievementAuditStatus.UNAUDITED.getCode().equals(auditStatus)) {
+				res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "审核状态"));
+				return res;
+			}
+			if (AchievementAuditStatus.AUDITED.getCode().equals(auditStatus)) {
+				if (StringUtils.isBlank(techBroderId)) {
+					res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到技术经纪人", "技术经纪人"));
+					return res;
+				}
+			}
 		}
 		}
-		
-		Demand d = demandService.selectByPrimaryKey(id);
-		if (null == d){
-			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "需求ID"));
-			return res;
-		}
-		res.setData(demandService.updateAuditDemand(d, techBroderId, auditStatus));
+
 		return res;
 		return res;
 	}
 	}
 }
 }

+ 59 - 0
src/main/java/com/goafanti/common/enums/AchievementAuditStatus.java

@@ -0,0 +1,59 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+public enum AchievementAuditStatus {
+	
+	CREATE(0, "未提交审核草稿"),
+	SUBMIT(1, "提交审核"),
+	INAUDIT(2, "审核中"),
+	AUDITED(3,"审核通过"),
+	UNAUDITED(4,"审核未通过"),
+	OTHER(5, "其他");
+
+	private AchievementAuditStatus(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	private static Map<Integer, AchievementAuditStatus> status = new HashMap<Integer, AchievementAuditStatus>();
+
+	static {
+		for (AchievementAuditStatus value : AchievementAuditStatus.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static AchievementAuditStatus getStatus(Integer code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+
+	public static AchievementAuditStatus getStatus(String code) {
+		if (StringUtils.isNumeric(code)) {
+			return getStatus(Integer.parseInt(code));
+		}
+		return OTHER;
+	}
+
+	public static boolean containsType(Integer code) {
+		return status.containsKey(code);
+	}
+
+	private Integer	code;
+	private String	desc;
+
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 46 - 11
src/main/java/com/goafanti/common/mapper/AchievementMapper.xml

@@ -51,7 +51,9 @@
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
     <result column="release_status" jdbcType="INTEGER" property="releaseStatus" />
     <result column="release_status" jdbcType="INTEGER" property="releaseStatus" />
     <result column="release_date" jdbcType="TIMESTAMP" property="releaseDate" />
     <result column="release_date" jdbcType="TIMESTAMP" property="releaseDate" />
-    <result column="deleted_sign" jdbcType="INTEGER" property="deletedSign" />
+    <result column="deleted_sign" jdbcType="INTEGER" property="deletedSign" />
+    <result column="audit_status" jdbcType="INTEGER" property="auditStatus" />
+    <result column="tech_broker_id" jdbcType="VARCHAR" property="techBrokerId" />
   </resultMap>
   </resultMap>
   <sql id="Base_Column_List">
   <sql id="Base_Column_List">
     id, serial_number, data_category, name, keyword, category, summary, introduction, 
     id, serial_number, data_category, name, keyword, category, summary, introduction, 
@@ -61,7 +63,7 @@
     bargaining_mode, transfer_price, technical_scene, breakthrough, patent_case, awards, 
     bargaining_mode, transfer_price, technical_scene, breakthrough, patent_case, awards, 
     team_des, parameter, tech_plan_url, business_plan_url, org_id, org_name, org_address, 
     team_des, parameter, tech_plan_url, business_plan_url, org_id, org_name, org_address, 
     org_email, org_contacts, org_contacts_mobile, contacts, manager_id, salesman_id, 
     org_email, org_contacts, org_contacts_mobile, contacts, manager_id, salesman_id, 
-    status, create_time, release_status, release_date, deleted_sign
+    status, create_time, release_status, release_date, deleted_sign, audit_status, tech_broker_id
   </sql>
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     select 
     select 
@@ -90,7 +92,7 @@
       org_contacts, org_contacts_mobile, contacts, 
       org_contacts, org_contacts_mobile, contacts, 
       manager_id, salesman_id, status, 
       manager_id, salesman_id, status, 
       create_time, release_status, release_date, 
       create_time, release_status, release_date, 
-      deleted_sign)
+      deleted_sign, audit_status, tech_broker_id)
     values (#{id,jdbcType=VARCHAR}, #{serialNumber,jdbcType=INTEGER}, #{dataCategory,jdbcType=INTEGER}, 
     values (#{id,jdbcType=VARCHAR}, #{serialNumber,jdbcType=INTEGER}, #{dataCategory,jdbcType=INTEGER}, 
       #{name,jdbcType=VARCHAR}, #{keyword,jdbcType=VARCHAR}, #{category,jdbcType=INTEGER}, 
       #{name,jdbcType=VARCHAR}, #{keyword,jdbcType=VARCHAR}, #{category,jdbcType=INTEGER}, 
       #{summary,jdbcType=VARCHAR}, #{introduction,jdbcType=VARCHAR}, #{technicalPictureUrl,jdbcType=VARCHAR}, 
       #{summary,jdbcType=VARCHAR}, #{introduction,jdbcType=VARCHAR}, #{technicalPictureUrl,jdbcType=VARCHAR}, 
@@ -107,7 +109,7 @@
       #{orgContacts,jdbcType=VARCHAR}, #{orgContactsMobile,jdbcType=VARCHAR}, #{contacts,jdbcType=VARCHAR}, 
       #{orgContacts,jdbcType=VARCHAR}, #{orgContactsMobile,jdbcType=VARCHAR}, #{contacts,jdbcType=VARCHAR}, 
       #{managerId,jdbcType=VARCHAR}, #{salesmanId,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, 
       #{managerId,jdbcType=VARCHAR}, #{salesmanId,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, 
       #{createTime,jdbcType=TIMESTAMP}, #{releaseStatus,jdbcType=INTEGER}, #{releaseDate,jdbcType=TIMESTAMP}, 
       #{createTime,jdbcType=TIMESTAMP}, #{releaseStatus,jdbcType=INTEGER}, #{releaseDate,jdbcType=TIMESTAMP}, 
-      #{deletedSign,jdbcType=INTEGER})
+      #{deletedSign,jdbcType=INTEGER}, #{auditStatus,jdbcType=INTEGER}, #{techBrokerId,jdbcType=VARCHAR})
   </insert>
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Achievement">
   <insert id="insertSelective" parameterType="com.goafanti.common.model.Achievement">
     insert into achievement
     insert into achievement
@@ -261,6 +263,12 @@
       </if>
       </if>
       <if test="deletedSign != null">
       <if test="deletedSign != null">
         deleted_sign,
         deleted_sign,
+      </if>
+       <if test="auditStatus != null">
+        audit_status,
+      </if>
+      <if test="techBrokerId != null">
+        tech_broker_id,
       </if>
       </if>
     </trim>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
     <trim prefix="values (" suffix=")" suffixOverrides=",">
@@ -413,6 +421,12 @@
       </if>
       </if>
       <if test="deletedSign != null">
       <if test="deletedSign != null">
         #{deletedSign,jdbcType=INTEGER},
         #{deletedSign,jdbcType=INTEGER},
+      </if>
+       <if test="auditStatus != null">
+        #{auditStatus,jdbcType=INTEGER},
+      </if>
+      <if test="techBrokerId != null">
+        #{techBrokerId,jdbcType=VARCHAR},
       </if>
       </if>
     </trim>
     </trim>
   </insert>
   </insert>
@@ -565,6 +579,12 @@
       </if>
       </if>
       <if test="deletedSign != null">
       <if test="deletedSign != null">
         deleted_sign = #{deletedSign,jdbcType=INTEGER},
         deleted_sign = #{deletedSign,jdbcType=INTEGER},
+      </if>
+      <if test="auditStatus != null">
+        audit_status = #{auditStatus,jdbcType=INTEGER},
+      </if>
+      <if test="techBrokerId != null">
+        tech_broker_id = #{techBrokerId,jdbcType=VARCHAR},
       </if>
       </if>
     </set>
     </set>
     where id = #{id,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
@@ -619,21 +639,27 @@
       create_time = #{createTime,jdbcType=TIMESTAMP},
       create_time = #{createTime,jdbcType=TIMESTAMP},
       release_status = #{releaseStatus,jdbcType=INTEGER},
       release_status = #{releaseStatus,jdbcType=INTEGER},
       release_date = #{releaseDate,jdbcType=TIMESTAMP},
       release_date = #{releaseDate,jdbcType=TIMESTAMP},
-      deleted_sign = #{deletedSign,jdbcType=INTEGER}
+      deleted_sign = #{deletedSign,jdbcType=INTEGER},
+      audit_status = #{auditStatus,jdbcType=INTEGER},
+      tech_broker_id = #{techBrokerId,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
     where id = #{id,jdbcType=VARCHAR}
   </update>
   </update>
   
   
   <select id="findManageAchievementListByPage" parameterType="String" resultType="com.goafanti.achievement.bo.AchievementListBo">
   <select id="findManageAchievementListByPage" parameterType="String" resultType="com.goafanti.achievement.bo.AchievementListBo">
   	select 
   	select 
-  		id, serial_number as serialNumber, data_category as dataCategory, 
-  		name, keyword, category, 
-  		owner_name as ownerName, owner_type as ownerType, owner_mobile as ownerMobile,
-  		status, release_date as releaseDate
-  	from achievement
+  		a.id, a.serial_number as serialNumber, a.data_category as dataCategory, 
+  		a.name, a.keyword, a.category, 
+  		a.owner_name as ownerName, a.owner_type as ownerType, a.owner_mobile as ownerMobile,
+  		a.status, a.release_date as releaseDate, a.audit_status as auditStatus, ad.name as techBrokerId
+  	from achievement a
+  	LEFT JOIN admin ad on a.id = a.tech_broker_id
   	where deleted_sign = 0
   	where deleted_sign = 0
   	<if test="serialNumber != null">
   	<if test="serialNumber != null">
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 	</if>
 	</if>
+	<if test="auditStatus != null">
+		and  audit_status = #{auditStatus,jdbcType=INTEGER}
+	</if>
 	<if test="name != null">
 	<if test="name != null">
 		and  name = #{name,jdbcType=VARCHAR}
 		and  name = #{name,jdbcType=VARCHAR}
 	</if>
 	</if>
@@ -672,6 +698,9 @@
   	<if test="serialNumber != null">
   	<if test="serialNumber != null">
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 	</if>
 	</if>
+	<if test="auditStatus != null">
+		and  audit_status = #{auditStatus,jdbcType=INTEGER}
+	</if>
 	<if test="name != null">
 	<if test="name != null">
 		and  name = #{name,jdbcType=VARCHAR}
 		and  name = #{name,jdbcType=VARCHAR}
 	</if>
 	</if>
@@ -716,12 +745,15 @@
   		id, serial_number as serialNumber, data_category as dataCategory, 
   		id, serial_number as serialNumber, data_category as dataCategory, 
   		name, keyword, category, 
   		name, keyword, category, 
   		owner_name as ownerName, owner_type as ownerType, owner_mobile as ownerMobile,
   		owner_name as ownerName, owner_type as ownerType, owner_mobile as ownerMobile,
-  		status, release_date as releaseDate
+  		status, release_date as releaseDate, audit_status as auditStatus
   	from achievement
   	from achievement
   	where deleted_sign = 0 and owner_id = #{ownerId,jdbcType=VARCHAR}
   	where deleted_sign = 0 and owner_id = #{ownerId,jdbcType=VARCHAR}
   	<if test="serialNumber != null">
   	<if test="serialNumber != null">
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 	</if>
 	</if>
+	<if test="auditStatus != null">
+		and  audit_status = #{auditStatus,jdbcType=INTEGER}
+	</if>
 	<if test="name != null">
 	<if test="name != null">
 		and  name = #{name,jdbcType=VARCHAR}
 		and  name = #{name,jdbcType=VARCHAR}
 	</if>
 	</if>
@@ -760,6 +792,9 @@
   	<if test="serialNumber != null">
   	<if test="serialNumber != null">
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 		and  serial_number = #{serialNumber,jdbcType=INTEGER}
 	</if>
 	</if>
+	<if test="auditStatus != null">
+		and  audit_status = #{auditStatus,jdbcType=INTEGER}
+	</if>
 	<if test="name != null">
 	<if test="name != null">
 		and  name = #{name,jdbcType=VARCHAR}
 		and  name = #{name,jdbcType=VARCHAR}
 	</if>
 	</if>

+ 28 - 0
src/main/java/com/goafanti/common/model/Achievement.java

@@ -259,6 +259,16 @@ public class Achievement {
 	 * 删除标记
 	 * 删除标记
 	 */
 	 */
 	private Integer		deletedSign;
 	private Integer		deletedSign;
+	
+	  /**
+     * 审核状态
+     */
+    private Integer auditStatus;
+    
+    /**
+     * 技术经纪人ID
+     */
+    private String techBrokerId;
 
 
 	public String getId() {
 	public String getId() {
 		return id;
 		return id;
@@ -671,6 +681,24 @@ public class Achievement {
 	public void setDeletedSign(Integer deletedSign) {
 	public void setDeletedSign(Integer deletedSign) {
 		this.deletedSign = deletedSign;
 		this.deletedSign = deletedSign;
 	}
 	}
+	
+	
+	@JsonFormat(shape = Shape.STRING)
+	public Integer getAuditStatus() {
+		return auditStatus;
+	}
+
+	public void setAuditStatus(Integer auditStatus) {
+		this.auditStatus = auditStatus;
+	}
+
+	public String getTechBrokerId() {
+		return techBrokerId;
+	}
+
+	public void setTechBrokerId(String techBrokerId) {
+		this.techBrokerId = techBrokerId;
+	}
 
 
 	public String getReleaseDateFormattedDate() {
 	public String getReleaseDateFormattedDate() {
 		if (this.releaseDate == null) {
 		if (this.releaseDate == null) {

+ 1 - 1
src/main/resources/props/config_local.properties

@@ -1,7 +1,7 @@
 #Driver
 #Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
 #\u6570\u636e\u5e93\u94fe\u63a5\uff0c
 #\u6570\u636e\u5e93\u94fe\u63a5\uff0c
-jdbc.url=jdbc:mysql://192.168.1.109:3306/aft_dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
+jdbc.url=jdbc:mysql://192.168.1.111:3306/aft_dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
 #\u5e10\u53f7
 #\u5e10\u53f7
 jdbc.username=root
 jdbc.username=root
 #\u5bc6\u7801
 #\u5bc6\u7801