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

+ 1 - 1
schema/2017-05-17.sql

@@ -16,7 +16,7 @@ CREATE TABLE `achievement` (
   `maturity_text_file_url` VARCHAR(255) NULL COMMENT '成熟度资料--文本文件URL',
   `maturity_video_url` VARCHAR(255) NULL COMMENT '成熟度资料--视屏URL',
   `innovation` INT(1) NULL COMMENT '创新度(0--行业先进,1--行业领先,2--国内先进,3--国内领先,4--国际先进,5--国际领先)',
-  `owner_name` VARCHAR(16) NOT NULL COMMENT '成果所有人名称',
+  `owner_name` VARCHAR(32) NOT NULL COMMENT '成果所有人名称',
   `owner_type` INT(1) NOT NULL COMMENT '所有人类型(0-个人,1-组织)',
   `owner_id_number` VARCHAR(36) NOT NULL COMMENT '所有人证件号',
   `owner_mobile` VARCHAR(12) NOT NULL COMMENT '所有人联系电话',

+ 2 - 1
src/main/java/com/goafanti/achievement/bo/AchievementListBo.java

@@ -137,7 +137,8 @@ public class AchievementListBo {
 	public void setOwnerMobile(String ownerMobile) {
 		this.ownerMobile = ownerMobile;
 	}
-
+	
+	@JsonFormat(shape = Shape.STRING)
 	public Integer getStatus() {
 		return status;
 	}

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

@@ -0,0 +1,492 @@
+package com.goafanti.achievement.bo;
+
+import java.math.BigDecimal;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputAchievement {
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		id;
+
+
+
+	@Max(value = 2, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		dataCategory;
+
+	@Size(min = 0, max = 32, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		name;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		keyword;
+
+	@Max(value = 7, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		category;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		summary;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		introduction;
+
+	@Size(min = 0, max = 500, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		technicalPictureUrl;
+
+	@Max(value = 99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		fieldA;
+
+	@Max(value = 99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		fieldB;
+
+	@Max(value = 99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		fieldC;
+
+	@Max(value = 4, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		maturity;
+
+	@Size(min = 0, max = 500, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		maturityPictureUrl;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		maturityTextFileUrl;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		maturityVideoUrl;
+
+	@Max(value = 5, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		innovation;
+
+	@Size(min = 0, max = 32, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		ownerName;
+
+	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		ownerType;
+
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		ownerIdNumber;
+
+	@Size(min = 0, max = 12, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		ownerMobile;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		ownerEmail;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		ownerPostalAddress;
+
+	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		cooperationMode;
+
+	@Max(value = 2, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		transferMode;
+
+	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		bargainingMode;
+
+	@Max(value = (long)999999.99, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private BigDecimal	transferPrice;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		technicalScene;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		breakthrough;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		patentCase;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		awards;
+
+	@Size(min = 0, max = 300, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		teamDes;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		parameter;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		techPlanUrl;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		businessPlanUrl;
+
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		orgId;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		orgName;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		orgAddress;
+
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		orgEmail;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		orgContacts;
+
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		orgContactsMobile;
+
+	@Max(value = 9, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		status;
+	
+	@Max(value = 1, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		releaseStatus;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public Integer getDataCategory() {
+		return dataCategory;
+	}
+
+	public void setDataCategory(Integer dataCategory) {
+		this.dataCategory = dataCategory;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getKeyword() {
+		return keyword;
+	}
+
+	public void setKeyword(String keyword) {
+		this.keyword = keyword;
+	}
+
+	public Integer getCategory() {
+		return category;
+	}
+
+	public void setCategory(Integer category) {
+		this.category = category;
+	}
+
+	public String getSummary() {
+		return summary;
+	}
+
+	public void setSummary(String summary) {
+		this.summary = summary;
+	}
+
+	public String getIntroduction() {
+		return introduction;
+	}
+
+	public void setIntroduction(String introduction) {
+		this.introduction = introduction;
+	}
+
+	public String getTechnicalPictureUrl() {
+		return technicalPictureUrl;
+	}
+
+	public void setTechnicalPictureUrl(String technicalPictureUrl) {
+		this.technicalPictureUrl = technicalPictureUrl;
+	}
+
+	public Integer getFieldA() {
+		return fieldA;
+	}
+
+	public void setFieldA(Integer fieldA) {
+		this.fieldA = fieldA;
+	}
+
+	public Integer getFieldB() {
+		return fieldB;
+	}
+
+	public void setFieldB(Integer fieldB) {
+		this.fieldB = fieldB;
+	}
+
+	public Integer getFieldC() {
+		return fieldC;
+	}
+
+	public void setFieldC(Integer fieldC) {
+		this.fieldC = fieldC;
+	}
+
+	public Integer getMaturity() {
+		return maturity;
+	}
+
+	public void setMaturity(Integer maturity) {
+		this.maturity = maturity;
+	}
+
+	public String getMaturityPictureUrl() {
+		return maturityPictureUrl;
+	}
+
+	public void setMaturityPictureUrl(String maturityPictureUrl) {
+		this.maturityPictureUrl = maturityPictureUrl;
+	}
+
+	public String getMaturityTextFileUrl() {
+		return maturityTextFileUrl;
+	}
+
+	public void setMaturityTextFileUrl(String maturityTextFileUrl) {
+		this.maturityTextFileUrl = maturityTextFileUrl;
+	}
+
+	public String getMaturityVideoUrl() {
+		return maturityVideoUrl;
+	}
+
+	public void setMaturityVideoUrl(String maturityVideoUrl) {
+		this.maturityVideoUrl = maturityVideoUrl;
+	}
+
+	public Integer getInnovation() {
+		return innovation;
+	}
+
+	public void setInnovation(Integer innovation) {
+		this.innovation = innovation;
+	}
+
+	public String getOwnerName() {
+		return ownerName;
+	}
+
+	public void setOwnerName(String ownerName) {
+		this.ownerName = ownerName;
+	}
+
+	public Integer getOwnerType() {
+		return ownerType;
+	}
+
+	public void setOwnerType(Integer ownerType) {
+		this.ownerType = ownerType;
+	}
+
+	public String getOwnerIdNumber() {
+		return ownerIdNumber;
+	}
+
+	public void setOwnerIdNumber(String ownerIdNumber) {
+		this.ownerIdNumber = ownerIdNumber;
+	}
+
+	public String getOwnerMobile() {
+		return ownerMobile;
+	}
+
+	public void setOwnerMobile(String ownerMobile) {
+		this.ownerMobile = ownerMobile;
+	}
+
+	public String getOwnerEmail() {
+		return ownerEmail;
+	}
+
+	public void setOwnerEmail(String ownerEmail) {
+		this.ownerEmail = ownerEmail;
+	}
+
+	public String getOwnerPostalAddress() {
+		return ownerPostalAddress;
+	}
+
+	public void setOwnerPostalAddress(String ownerPostalAddress) {
+		this.ownerPostalAddress = ownerPostalAddress;
+	}
+
+	public Integer getCooperationMode() {
+		return cooperationMode;
+	}
+
+	public void setCooperationMode(Integer cooperationMode) {
+		this.cooperationMode = cooperationMode;
+	}
+
+	public Integer getTransferMode() {
+		return transferMode;
+	}
+
+	public void setTransferMode(Integer transferMode) {
+		this.transferMode = transferMode;
+	}
+
+	public Integer getBargainingMode() {
+		return bargainingMode;
+	}
+
+	public void setBargainingMode(Integer bargainingMode) {
+		this.bargainingMode = bargainingMode;
+	}
+
+	public BigDecimal getTransferPrice() {
+		return transferPrice;
+	}
+
+	public void setTransferPrice(BigDecimal transferPrice) {
+		this.transferPrice = transferPrice;
+	}
+
+	public String getTechnicalScene() {
+		return technicalScene;
+	}
+
+	public void setTechnicalScene(String technicalScene) {
+		this.technicalScene = technicalScene;
+	}
+
+	public String getBreakthrough() {
+		return breakthrough;
+	}
+
+	public void setBreakthrough(String breakthrough) {
+		this.breakthrough = breakthrough;
+	}
+
+	public String getPatentCase() {
+		return patentCase;
+	}
+
+	public void setPatentCase(String patentCase) {
+		this.patentCase = patentCase;
+	}
+
+	public String getAwards() {
+		return awards;
+	}
+
+	public void setAwards(String awards) {
+		this.awards = awards;
+	}
+
+	public String getTeamDes() {
+		return teamDes;
+	}
+
+	public void setTeamDes(String teamDes) {
+		this.teamDes = teamDes;
+	}
+
+	public String getParameter() {
+		return parameter;
+	}
+
+	public void setParameter(String parameter) {
+		this.parameter = parameter;
+	}
+
+	public String getTechPlanUrl() {
+		return techPlanUrl;
+	}
+
+	public void setTechPlanUrl(String techPlanUrl) {
+		this.techPlanUrl = techPlanUrl;
+	}
+
+	public String getBusinessPlanUrl() {
+		return businessPlanUrl;
+	}
+
+	public void setBusinessPlanUrl(String businessPlanUrl) {
+		this.businessPlanUrl = businessPlanUrl;
+	}
+
+	public String getOrgId() {
+		return orgId;
+	}
+
+	public void setOrgId(String orgId) {
+		this.orgId = orgId;
+	}
+
+	public String getOrgName() {
+		return orgName;
+	}
+
+	public void setOrgName(String orgName) {
+		this.orgName = orgName;
+	}
+
+	public String getOrgAddress() {
+		return orgAddress;
+	}
+
+	public void setOrgAddress(String orgAddress) {
+		this.orgAddress = orgAddress;
+	}
+
+	public String getOrgEmail() {
+		return orgEmail;
+	}
+
+	public void setOrgEmail(String orgEmail) {
+		this.orgEmail = orgEmail;
+	}
+
+	public String getOrgContacts() {
+		return orgContacts;
+	}
+
+	public void setOrgContacts(String orgContacts) {
+		this.orgContacts = orgContacts;
+	}
+
+	public String getOrgContactsMobile() {
+		return orgContactsMobile;
+	}
+
+	public void setOrgContactsMobile(String orgContactsMobile) {
+		this.orgContactsMobile = orgContactsMobile;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Integer getReleaseStatus() {
+		return releaseStatus;
+	}
+
+	public void setReleaseStatus(Integer releaseStatus) {
+		this.releaseStatus = releaseStatus;
+	}
+	
+	
+
+}

+ 3 - 0
src/main/java/com/goafanti/achievement/service/AchievementService.java

@@ -1,6 +1,7 @@
 package com.goafanti.achievement.service;
 
 import com.goafanti.achievement.bo.AchievementListBo;
+import com.goafanti.common.model.Achievement;
 import com.goafanti.core.mybatis.page.Pagination;
 
 public interface AchievementService {
@@ -9,4 +10,6 @@ public interface AchievementService {
 			Integer ownerType, Integer status, String releaseDateStartDate,
 			String releaseDateEndDate, Integer releaseStatus, Integer pNo, Integer pSize);
 
+	void saveAchievementByManager(Achievement a);
+
 }

+ 29 - 3
src/main/java/com/goafanti/achievement/service/impl/AchievementServiceImpl.java

@@ -1,24 +1,34 @@
 package com.goafanti.achievement.service.impl;
 
 import java.text.ParseException;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.goafanti.achievement.bo.AchievementListBo;
 import com.goafanti.achievement.service.AchievementService;
-import com.goafanti.core.mybatis.BaseMybatisDao;
-import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.AchievementMapper;
+import com.goafanti.common.enums.AchievementReleaseStatus;
+import com.goafanti.common.enums.AchievementStatus;
+import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.model.Achievement;
 import com.goafanti.common.utils.DateUtils;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.page.Pagination;
 
 @Service
 public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
-
+	
+	@Autowired
+	private AchievementMapper achievementMapper;
+	
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<AchievementListBo> listAchievement(Integer serialNumber, String name, String keyword,
@@ -91,4 +101,20 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
 				params, pNo, pSize);
 	}
 
+	@Override
+	public void saveAchievementByManager(Achievement a) {
+		a.setId(UUID.randomUUID().toString());
+		a.setDeletedSign(DeleteStatus.UNDELETE.getCode());
+		Calendar now = Calendar.getInstance();
+		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.setCreateTime(now.getTime());
+		achievementMapper.insert(a);
+	}
+
 }

+ 78 - 1
src/main/java/com/goafanti/admin/controller/AdminAchievementApiController.java

@@ -1,18 +1,26 @@
 package com.goafanti.admin.controller;
 
 import javax.annotation.Resource;
+import javax.validation.Valid;
 
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.goafanti.achievement.bo.InputAchievement;
 import com.goafanti.achievement.service.AchievementService;
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.AchievementFields;
+import com.goafanti.common.model.Achievement;
 import com.goafanti.common.utils.StringUtils;
 
 @RestController
 @RequestMapping(value = "/api/admin/achievement")
-public class AdminAchievementApiController {
+public class AdminAchievementApiController extends CertifyApiController {
 	@Resource
 	private AchievementService achievementService;
 
@@ -38,4 +46,73 @@ public class AdminAchievementApiController {
 		return res;
 	}
 
+	/**
+	 * 新增成果
+	 */
+	@RequestMapping(value = "/apply", method = RequestMethod.POST)
+	private Result apply(@Valid InputAchievement ia, BindingResult bindingResult) {
+		Result res = new Result();
+
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					AchievementFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+
+		if (StringUtils.isBlank(ia.getName())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果名称", "成果名称"));
+			return res;
+		}
+
+		if (null == ia.getCategory()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到数据类别", "数据类别"));
+			return res;
+		}
+
+		if (StringUtils.isBlank(ia.getKeyword())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到关键词", "关键词"));
+			return res;
+		}
+
+		if (StringUtils.isBlank(ia.getOwnerName())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果所有人名称", "成果所有人名称"));
+			return res;
+		}
+
+		if (null == ia.getOwnerType()) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到所有人类型", "所有人类型"));
+			return res;
+		}
+		
+		if (StringUtils.isBlank(ia.getOwnerIdNumber())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到所有人证件号", "所有人证件号"));
+			return res;
+		}
+		
+		if (StringUtils.isBlank(ia.getOwnerMobile())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到所有人联系电话", "所有人联系电话"));
+			return res;
+		}
+		
+		if (StringUtils.isBlank(ia.getOwnerEmail())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到所有人电子邮箱", "所有人电子邮箱"));
+			return res;
+		}
+		
+		if (StringUtils.isBlank(ia.getOwnerPostalAddress())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到所有人通讯地址", "所有人通讯地址"));
+			return res;
+		}
+		
+		if (null == ia.getCooperationMode()){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到合作方式", "合作方式"));
+			return res;
+		}
+		
+		Achievement a = new Achievement();
+		BeanUtils.copyProperties(ia, a);
+		achievementService.saveAchievementByManager(a);
+		return res;
+	}
+
 }

+ 50 - 0
src/main/java/com/goafanti/common/enums/AchievementFields.java

@@ -0,0 +1,50 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum AchievementFields {
+	
+	OTHER("", "未知参数");
+
+	private AchievementFields(String code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	private static Map<String, AchievementFields> status = new HashMap<String, AchievementFields>();
+
+	static {
+		for (AchievementFields value : AchievementFields.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static AchievementFields 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;
+	}
+
+
+}

+ 56 - 0
src/main/java/com/goafanti/common/enums/AchievementReleaseStatus.java

@@ -0,0 +1,56 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+public enum AchievementReleaseStatus {
+	
+	UNRELEASE(1, "成果未发布"),
+	RELEASED(2, "成果已发布"),
+	OTHER(3, "其他");
+
+	private AchievementReleaseStatus(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	private static Map<Integer, AchievementReleaseStatus> status = new HashMap<Integer, AchievementReleaseStatus>();
+
+	static {
+		for (AchievementReleaseStatus value : AchievementReleaseStatus.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static AchievementReleaseStatus getStatus(Integer code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+
+	public static AchievementReleaseStatus 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;
+	}
+
+}

+ 56 - 0
src/main/java/com/goafanti/common/enums/AchievementStatus.java

@@ -0,0 +1,56 @@
+package com.goafanti.common.enums;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+
+public enum AchievementStatus {
+	
+	CREATE(0, "草稿"),
+	ONGOING(1, "进行中"),
+	OTHER(2, "其他");
+
+	private AchievementStatus(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	private static Map<Integer, AchievementStatus> status = new HashMap<Integer, AchievementStatus>();
+
+	static {
+		for (AchievementStatus value : AchievementStatus.values()) {
+			status.put(value.getCode(), value);
+		}
+	}
+
+	public static AchievementStatus getStatus(Integer code) {
+		if (containsType(code)) {
+			return status.get(code);
+		}
+		return OTHER;
+	}
+
+	public static AchievementStatus 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;
+	}
+
+}

+ 3 - 3
src/main/java/com/goafanti/common/enums/DemandReleaseStatus.java

@@ -7,9 +7,9 @@ import org.apache.commons.lang3.StringUtils;
 
 public enum DemandReleaseStatus {
 	
-	UNRELEASE(1, "需求未发布"),
-	RELEASED(2, "需求已发布"),
-	OTHER(3, "其他");
+	UNRELEASE(0, "需求未发布"),
+	RELEASED(1, "需求已发布"),
+	OTHER(2, "其他");
 
 	private DemandReleaseStatus(Integer code, String desc) {
 		this.code = code;