Antiloveg лет назад: 8
Родитель
Сommit
7591cfeeaf
19 измененных файлов с 243 добавлено и 106 удалено
  1. 6 4
      schema/role_init.sql
  2. 10 0
      src/main/java/com/goafanti/admin/controller/AdminApiController.java
  3. 8 1
      src/main/java/com/goafanti/admin/controller/AdminPatentApiController.java
  4. 7 1
      src/main/java/com/goafanti/admin/controller/AdminTechProjectApiController.java
  5. 3 15
      src/main/java/com/goafanti/admin/controller/AdminUserCertifyApiController.java
  6. 5 2
      src/main/java/com/goafanti/admin/service/AdminService.java
  7. 19 4
      src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java
  8. 2 0
      src/main/java/com/goafanti/common/dao/AdminMapper.java
  9. 10 0
      src/main/java/com/goafanti/common/enums/PatentInfoFields.java
  10. 1 0
      src/main/java/com/goafanti/common/enums/TechProjectFields.java
  11. 6 0
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  12. 13 0
      src/main/java/com/goafanti/patent/bo/InputPatentInfo.java
  13. 1 1
      src/main/java/com/goafanti/patent/controller/PatentApiController.java
  14. 3 1
      src/main/java/com/goafanti/patent/service/PatentInfoService.java
  15. 70 45
      src/main/java/com/goafanti/patent/service/impl/PatentInfoServiceImpl.java
  16. 11 0
      src/main/java/com/goafanti/techproject/bo/InputTechProject.java
  17. 1 1
      src/main/java/com/goafanti/techproject/controller/TechProjectApiController.java
  18. 3 1
      src/main/java/com/goafanti/techproject/service/TechProjectService.java
  19. 64 30
      src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java

+ 6 - 4
schema/role_init.sql

@@ -1,5 +1,7 @@
 INSERT INTO `role` (`id`, `role_name`, `role_type`) 
-VALUES ('1', '超级管理员', '999999'),
-VALUES ('2', '地区管理员', '99999'),
-VALUES ('3', '审核员', '9999'),
-VALUES ('4', '客户经理', '9');
+VALUES ('1', '超级管理员', 999999),
+VALUES ('2', '地区管理员', 99999),
+VALUES ('3', '审核员', 9999),
+VALUES ('4', '客户经理', 1),
+VALUES ('5', '营销经理', 1),
+VALUES ('6', '营销员', 1);

+ 10 - 0
src/main/java/com/goafanti/admin/controller/AdminApiController.java

@@ -189,6 +189,16 @@ public class AdminApiController extends CertifyApiController {
 	private CopyrightInfoService			copyrightInfoService;
 	@Resource
 	private OrgCognizanceProportionService	orgCognizanceProportionService;
+	
+	/**
+	 * 获取营销员及营销经理下拉
+	 */
+	@RequestMapping(value = "/salesman", method = RequestMethod.GET)
+	public Result getSalesMan(){
+		Result res = new Result();
+		res.setData(adminService.selectSalesman());
+		return res;
+	}
 
 	/**
 	 * 统计专利、软著及科技项目申报业务情况

+ 8 - 1
src/main/java/com/goafanti/admin/controller/AdminPatentApiController.java

@@ -191,6 +191,13 @@ public class AdminPatentApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
 			return res;
 		}
+		
+		if (StringUtils.isBlank(patentInfo.getSalesman())){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到营销员", "营销员"));
+			return res;
+		}
+		
+		String salesman = patentInfo.getSalesman();
 
 		User curUser = userService.selectByPrimaryKey(patentInfo.getUid());
 		if (!checkCertify(res, curUser)) {
@@ -198,7 +205,7 @@ public class AdminPatentApiController extends CertifyApiController {
 		}
 		PatentInfo pi = new PatentInfo();
 		BeanUtils.copyProperties(patentInfo, pi);
-		res.setData(patentInfoService.savePatentInfo(pi, curUser.getAid()));
+		res.setData(patentInfoService.savePatentInfo(pi, salesman));
 		return res;
 	}
 

+ 7 - 1
src/main/java/com/goafanti/admin/controller/AdminTechProjectApiController.java

@@ -172,13 +172,19 @@ public class AdminTechProjectApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
 			return res;
 		}
+		
+		if (StringUtils.isBlank(techProject.getSalesman())){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到营销员", "营销员"));
+			return res;
+		}
+		String salesman = techProject.getSalesman();
 		User curUser = userService.selectByPrimaryKey(techProject.getUid());
 		if (!checkCertify(res, curUser)) {
 			return res;
 		}
 		TechProject tp = new TechProject();
 		BeanUtils.copyProperties(techProject, tp);
-		techProjectService.saveTechProject(tp, curUser.getAid());
+		techProjectService.saveTechProject(tp, salesman);
 		return res;
 
 	}

+ 3 - 15
src/main/java/com/goafanti/admin/controller/AdminUserCertifyApiController.java

@@ -2,9 +2,6 @@ package com.goafanti.admin.controller;
 
 import java.text.ParseException;
 import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
 import java.util.UUID;
 
 import javax.annotation.Resource;
@@ -28,7 +25,6 @@ import com.goafanti.common.enums.IdentityAuditStatus;
 import com.goafanti.common.enums.IdentityProcess;
 import com.goafanti.common.enums.OrganizationIdentityFields;
 import com.goafanti.common.enums.UserIdentityFields;
-import com.goafanti.common.model.Admin;
 import com.goafanti.common.model.OrganizationIdentity;
 import com.goafanti.common.model.UserIdentity;
 import com.goafanti.common.utils.DateUtils;
@@ -53,8 +49,7 @@ public class AdminUserCertifyApiController extends CertifyApiController {
 	@RequestMapping(value = "/accountManager", method = RequestMethod.GET)
 	public Result getAccountManager(){
 		Result res = new Result();
-		List<Admin> list = adminService.selectAccoutManager();
-		res.setData(disposeAdminList(list));
+		res.setData(adminService.selectAccoutManager());
 		return res;
 	}
 	
@@ -65,8 +60,7 @@ public class AdminUserCertifyApiController extends CertifyApiController {
 	@RequestMapping(value = "/technician", method = RequestMethod.GET)
 	public Result getTechnician(){
 		Result res = new Result();
-		List<Admin> list = adminService.selectTechnician();
-		res.setData(disposeAdminList(list));
+		res.setData(adminService.selectTechnician());
 		return res;
 	}
 
@@ -266,11 +260,5 @@ public class AdminUserCertifyApiController extends CertifyApiController {
 		return res;
 	}
 	
-	private Map<String, String> disposeAdminList(List<Admin> list){
-		Map<String, String> map = new TreeMap<String, String>();
-		for (Admin o : list) {
-			map.put(o.getId(), o.getName()+ " " + (null == o.getPosition() ? "" : o.getPosition()));
-		}
-		return map;
-	}
+	
 }

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

@@ -1,6 +1,7 @@
 package com.goafanti.admin.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.goafanti.admin.bo.AdminDetail;
 import com.goafanti.common.model.Admin;
@@ -45,8 +46,10 @@ public interface AdminService {
 
 	List<String> listAuditor();
 
-	List<Admin> selectAccoutManager();
+	Map<String, String> selectAccoutManager();
 
-	List<Admin> selectTechnician();
+	Map<String, String> selectTechnician();
+
+	Map<String, String> selectSalesman();
 
 }

+ 19 - 4
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -3,6 +3,7 @@ package com.goafanti.admin.service.impl;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.TreeMap;
 
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -165,13 +166,27 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 	}
 
 	@Override
-	public List<Admin> selectAccoutManager() {
-		return adminMapper.selectAccoutManager();
+	public Map<String, String> selectAccoutManager() {
+		return disposeAdminList(adminMapper.selectAccoutManager());
 	}
 
 	@Override
-	public List<Admin> selectTechnician() {
-		return adminMapper.selectTechnician();
+	public Map<String, String> selectTechnician() {
+		return disposeAdminList(adminMapper.selectTechnician());
+	}
+
+	@Override
+	public Map<String, String> selectSalesman() {
+		return disposeAdminList(adminMapper.selectSalesman());
+	}
+	
+	
+	private Map<String, String> disposeAdminList(List<Admin> list){
+		Map<String, String> map = new TreeMap<String, String>();
+		for (Admin o : list) {
+			map.put(o.getId(), o.getName()+ " " + (null == o.getPosition() ? "" : o.getPosition()));
+		}
+		return map;
 	}
 
 }

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

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

+ 10 - 0
src/main/java/com/goafanti/common/enums/PatentInfoFields.java

@@ -22,6 +22,16 @@ public enum PatentInfoFields {
 	THIRDINVENTORNAME("thirdInventorName", "第三发明人姓名"),
 	THIRDINVENTORNATIONALITY("thirdInventorNationality", "第三发明人国籍"),
 	THIRDINVENTORISPUBLISH("thirdInventorIsPublish", "第三发明人是否公布"),
+	PATENTPRORYSTATEMENTURL("patentProryStatementUrl", "专利代理委托书URL"),
+	PATENTWRITINGURL("patentWritingUrl", "专利稿件URL"),
+	AUTHORIZATIONNOTICEURL("authorizationNoticeUrl", "授权通知书URL"),
+	PATENTCERTIFICATEURL("patentCertificateUrl", "专利证书URL"),
+	STATE("state", "专利状态"),
+	PRINCIPAL("principal", "负责人"),
+	COMMENT("comment", "备注"),
+	OFFICE("office", "事务所"),
+	AUTHOR("author", "资料撰写人"),
+	SALESMAN("salesman", "营销员"),
 	OTHER("", "未知参数");
 	
 	

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

@@ -21,6 +21,7 @@ public enum TechProjectFields {
 	STATE("state", "科技项目状态"),
 	PRINCIPAL("principal", "负责人"),
 	COMMENT("comment", "备注"),
+	SALESMAN("salesman", "营销员"),
 	OTHER("", "未知参数");
 	
 	private String	code;

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

@@ -271,5 +271,11 @@
 	where ur.rid not in('1','2','3','4')
 	group by a.id
    </select>
+   
+   <select id="selectSalesman" 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 in ('5', '6') 
+   </select>
   
 </mapper>

+ 13 - 0
src/main/java/com/goafanti/patent/bo/InputPatentInfo.java

@@ -7,6 +7,8 @@ import javax.validation.constraints.Size;
 import com.goafanti.common.constant.ErrorConstants;
 
 public class InputPatentInfo {
+	
+	
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String	id;
 
@@ -95,6 +97,17 @@ public class InputPatentInfo {
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String author;
 	
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String salesman;
+	
+	public String getSalesman() {
+		return salesman;
+	}
+
+	public void setSalesman(String salesman) {
+		this.salesman = salesman;
+	}
+
 	public String getAuthor() {
 		return author;
 	}

+ 1 - 1
src/main/java/com/goafanti/patent/controller/PatentApiController.java

@@ -197,7 +197,7 @@ public class PatentApiController extends CertifyApiController {
 		PatentInfo pi = new PatentInfo();
 		BeanUtils.copyProperties(patentInfo, pi);
 		pi.setUid(TokenManager.getUserId());
-		res.setData(patentInfoService.savePatentInfo(pi, aid));
+		res.setData(patentInfoService.insertPatentInfo(pi, aid));
 		return res;
 	}
 

+ 3 - 1
src/main/java/com/goafanti/patent/service/PatentInfoService.java

@@ -35,7 +35,7 @@ public interface PatentInfoService {
 
 	int batchDeleteByPrimaryKey(List<String> id);
 
-	PatentInfo savePatentInfo(PatentInfo patentInfo, String aid);
+	PatentInfo savePatentInfo(PatentInfo patentInfo, String salesman);
 
 	void updatePatentInfo(PatentInfo patentInfo, PatentLog patentLog, Date recordTime);
 
@@ -47,4 +47,6 @@ public interface PatentInfoService {
 
 	List<PatentExpireBO> selectExpireRecord();
 
+	PatentInfo insertPatentInfo(PatentInfo pi, String aid);
+
 }

+ 70 - 45
src/main/java/com/goafanti/patent/service/impl/PatentInfoServiceImpl.java

@@ -23,6 +23,7 @@ import com.goafanti.common.dao.PatentInfoMapper;
 import com.goafanti.common.dao.PatentLogMapper;
 import com.goafanti.common.dao.PatentRegistrationMapper;
 import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.enums.DeleteStatus;
 import com.goafanti.common.enums.IntellectualPropertyType;
 import com.goafanti.common.enums.NoticeReadStatus;
 import com.goafanti.common.enums.NoticeStatus;
@@ -315,49 +316,19 @@ public class PatentInfoServiceImpl extends BaseMybatisDao<PatentInfoMapper> impl
 	}
 
 	@Override
-	public PatentInfo savePatentInfo(PatentInfo patentInfo, String aid) {
-		patentInfo.setId(UUID.randomUUID().toString());
-		patentInfo.setDeletedSign(0);
-		patentInfo.setConfirmState(0);
-		patentInfo.setPatentState(PatentInfoStatus.CREATE.getCode());
-		if (TokenManager.getToken() instanceof Admin) {
-			patentInfo.setFounder(TokenManager.getAdminId());
-		}
-		Calendar now = Calendar.getInstance();
-		now.set(Calendar.MILLISECOND, 0);
-		patentInfo.setRecordTime(now.getTime());
-		if (TokenManager.getToken() instanceof Admin) {
-			patentInfo.setPrincipal(TokenManager.getAdminId());
-		} else {
-			patentInfo.setPrincipal(aid);
-		}
-		patentInfoMapper.insert(patentInfo);
-
-		PatentRegistration patentRegistration = new PatentRegistration();
-		patentRegistration.setId(UUID.randomUUID().toString());
-		patentRegistration.setPid(patentInfo.getId());
-		patentRegistrationMapper.insert(patentRegistration);
-
-		PatentCost patentCost = new PatentCost();
-		patentCost.setId(UUID.randomUUID().toString());
-		patentCost.setPid(patentInfo.getId());
-		patentCost.setAnnualFeeState(0);
-		patentCost.setPaymentState(0);
-		patentCostMapper.insert(patentCost);
+	public PatentInfo savePatentInfo(PatentInfo patentInfo, String salesman) {
+		patentInfo.setFounder(salesman);
+		patentInfo.setPatentState(PatentInfoStatus.DELIVERD.getCode());
+		patentInfo.setPrincipal(TokenManager.getAdminId());
+		patentInfo = disposePatentInfoSave(patentInfo);
 
 		PatentLog log = new PatentLog();
 		log.setId(UUID.randomUUID().toString());
 		log.setPid(patentInfo.getId());
 		log.setRecordTime(patentInfo.getRecordTime());
 		log.setState(PatentInfoStatus.CREATE.getCode());
-		if (TokenManager.getToken() instanceof Admin) {
-			log.setPrincipal(TokenManager.getAdminId());
-		} else {
-			log.setPrincipal(aid);
-		}
-		if (TokenManager.getToken() instanceof Admin) {
-			log.setOperator(TokenManager.getAdminId());
-		}
+		log.setPrincipal(salesman);
+		log.setOperator(salesman);
 		log.setComment(patentInfo.getPatentDes());
 		patentLogMapper.insert(log);
 
@@ -367,6 +338,18 @@ public class PatentInfoServiceImpl extends BaseMybatisDao<PatentInfoMapper> impl
 			organizationIdentityMapper.updateByPrimaryKeySelective(oi);
 		}
 		createNotice(patentInfo, log);
+
+		PatentLog l = new PatentLog();
+		l.setId(UUID.randomUUID().toString());
+		l.setPid(patentInfo.getId());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		l.setRecordTime(now.getTime());
+		l.setState(PatentInfoStatus.DELIVERD.getCode());
+		l.setPrincipal(TokenManager.getAdminId());
+		l.setOperator(salesman);
+		patentLogMapper.insert(l);
+		createNotice(patentInfo, l);
 		return patentInfo;
 	}
 
@@ -501,6 +484,56 @@ public class PatentInfoServiceImpl extends BaseMybatisDao<PatentInfoMapper> impl
 		return 0;
 	}
 
+	// 专利年费到期
+	@Override
+	public List<PatentExpireBO> selectExpireRecord() {
+		return patentInfoMapper.selectExpireRecord();
+	}
+
+	@Override
+	public PatentInfo insertPatentInfo(PatentInfo patentInfo, String aid) {
+		patentInfo.setPatentState(PatentInfoStatus.CREATE.getCode());
+		patentInfo.setPrincipal(aid);
+		PatentInfo p = disposePatentInfoSave(patentInfo);
+
+		PatentLog log = new PatentLog();
+		log.setId(UUID.randomUUID().toString());
+		log.setPid(patentInfo.getId());
+		log.setRecordTime(patentInfo.getRecordTime());
+		log.setState(PatentInfoStatus.CREATE.getCode());
+		log.setPrincipal(aid);
+		log.setComment(patentInfo.getPatentDes());
+		patentLogMapper.insert(log);
+		
+		createNotice(patentInfo, log);
+		return p;
+	}
+
+	private PatentInfo disposePatentInfoSave(PatentInfo patentInfo) {
+		patentInfo.setId(UUID.randomUUID().toString());
+		patentInfo.setDeletedSign(DeleteStatus.UNDELETE.getCode());
+		patentInfo.setConfirmState(0);
+
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		patentInfo.setRecordTime(now.getTime());
+
+		patentInfoMapper.insert(patentInfo);
+
+		PatentRegistration patentRegistration = new PatentRegistration();
+		patentRegistration.setId(UUID.randomUUID().toString());
+		patentRegistration.setPid(patentInfo.getId());
+		patentRegistrationMapper.insert(patentRegistration);
+
+		PatentCost patentCost = new PatentCost();
+		patentCost.setId(UUID.randomUUID().toString());
+		patentCost.setPid(patentInfo.getId());
+		patentCost.setAnnualFeeState(0);
+		patentCost.setPaymentState(0);
+		patentCostMapper.insert(patentCost);
+		return patentInfo;
+	}
+
 	private void createNotice(PatentInfo p, PatentLog l) {
 		PatentInfo info = patentInfoMapper.selectByPrimaryKey(p.getId());
 
@@ -525,12 +558,4 @@ public class PatentInfoServiceImpl extends BaseMybatisDao<PatentInfoMapper> impl
 		noticeMapper.insert(n);
 	}
 
-	
-	
-	//专利年费到期
-	@Override
-	public List<PatentExpireBO> selectExpireRecord() {
-		return patentInfoMapper.selectExpireRecord();
-	}
-
 }

+ 11 - 0
src/main/java/com/goafanti/techproject/bo/InputTechProject.java

@@ -64,6 +64,17 @@ public class InputTechProject {
 	
 	@Size(min = 0, max = 128, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		comment;
+	
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String salesman;
+	
+	public String getSalesman() {
+		return salesman;
+	}
+
+	public void setSalesman(String salesman) {
+		this.salesman = salesman;
+	}
 
 	public Integer getState() {
 		return state;

+ 1 - 1
src/main/java/com/goafanti/techproject/controller/TechProjectApiController.java

@@ -101,7 +101,7 @@ public class TechProjectApiController extends CertifyApiController {
 		TechProject tp = new TechProject();
 		BeanUtils.copyProperties(techProject, tp);
 		tp.setUid(TokenManager.getUserId());
-		techProjectService.saveTechProject(tp, curUser.getAid());
+		techProjectService.insertTechProject(tp, curUser.getAid());
 		return res;
 	}
 

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

@@ -17,7 +17,7 @@ public interface TechProjectService {
 
 	int updateTechProject(TechProject t, TechProjectLog l, Date recordTime);
 
-	void saveTechProject(TechProject techProject, String aid);
+	TechProject saveTechProject(TechProject techProject, String salesman);
 
 	Pagination<TechProjectManageListBo> listManageTechProject(String province, String unitName, Integer pNo, Integer pSize);
 
@@ -29,4 +29,6 @@ public interface TechProjectService {
 
 	List<OrgUnitNames> selectWebsiteUnitNames();
 
+	TechProject insertTechProject(TechProject tp, String aid);
+
 }

+ 64 - 30
src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java

@@ -15,6 +15,8 @@ import com.goafanti.common.dao.NoticeMapper;
 import com.goafanti.common.dao.TechProjectLogMapper;
 import com.goafanti.common.dao.TechProjectMapper;
 import com.goafanti.common.dao.UserMapper;
+import com.goafanti.common.enums.DeleteStatus;
+import com.goafanti.common.enums.NoticeReadStatus;
 import com.goafanti.common.enums.NoticeStatus;
 import com.goafanti.common.enums.TechProjectStatus;
 import com.goafanti.common.model.Admin;
@@ -89,37 +91,57 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 	}
 
 	@Override
-	public void saveTechProject(TechProject techProject, String aid) {
-		techProject.setId(UUID.randomUUID().toString());
-		Calendar now = Calendar.getInstance();
-		now.set(Calendar.MILLISECOND, 0);
-		techProject.setRecordTime(now.getTime());
-		techProject.setState(TechProjectStatus.CREATE.getCode());
-		techProject.setDeletedSign(0);
-
-		if (TokenManager.getToken() instanceof Admin) {
-			techProject.setFounder(TokenManager.getAdminId());
-		}
-
-		techProjectMapper.insert(techProject);
+	public TechProject saveTechProject(TechProject techProject, String salesman) {
+		techProject.setState(TechProjectStatus.DELIVERD.getCode());
+		techProject.setFounder(salesman);
+		
+		techProject = disposeTechProjectSave(techProject);
 
 		TechProjectLog log = new TechProjectLog();
 		log.setId(UUID.randomUUID().toString());
 		log.setPid(techProject.getId());
 		log.setRecordTime(techProject.getRecordTime());
-		if (TokenManager.getToken() instanceof Admin) {
-			log.setPrincipal(TokenManager.getAdminId());
-		} else {
-			log.setPrincipal(aid);
-		}
+		log.setPrincipal(salesman);
 		log.setState(TechProjectStatus.CREATE.getCode());
-		if (TokenManager.getToken() instanceof Admin) {
-			log.setOperator(TokenManager.getAdminId());
-		}
+		log.setOperator(salesman);
 		log.setComment(techProject.getDispatchInfo());
 		techProjectLogMapper.insert(log);
 
 		createNotice(techProject, log);
+		
+		TechProjectLog l = new TechProjectLog();
+		l.setId(UUID.randomUUID().toString());
+		l.setPid(techProject.getId());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		l.setRecordTime(now.getTime());
+		l.setPrincipal(TokenManager.getAdminId());
+		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());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		l.setRecordTime(now.getTime());
+		l.setPrincipal(aid);
+		l.setState(TechProjectStatus.CREATE.getCode());
+		l.setComment(tp.getDispatchInfo());
+		techProjectLogMapper.insert(l);
+		
+		createNotice(tp, l);
+		return tp;
 	}
 
 	@SuppressWarnings("unchecked")
@@ -164,6 +186,15 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		return techProjectMapper.selectByPrimaryKey(id);
 	}
 
+	@Override
+	public List<OrgUnitNames> selectWebsiteUnitNames() {
+		String principal = null;
+		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
+			principal = TokenManager.getAdminId();
+		}
+		return techProjectMapper.selectWebsiteUnitNames(principal);
+	}
+	
 	private void createNotice(TechProject t, TechProjectLog l) {
 		TechProject info = techProjectMapper.selectByPrimaryKey(t.getId());
 
@@ -172,7 +203,7 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		now.set(Calendar.MILLISECOND, 0);
 		n.setId(UUID.randomUUID().toString());
 		n.setCreateTime(now.getTime());
-		n.setReaded(0);
+		n.setReaded(NoticeReadStatus.UNREAD.getCode());
 
 		User u = userMapper.selectByPrimaryKey(t.getUid());
 		if (null != u) {
@@ -187,14 +218,17 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		n.setNoticeType(NoticeStatus.TECHPROJECT.getCode());
 		noticeMapper.insert(n);
 	}
-
-	@Override
-	public List<OrgUnitNames> selectWebsiteUnitNames() {
-		String principal = null;
-		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
-			principal = TokenManager.getAdminId();
-		}
-		return techProjectMapper.selectWebsiteUnitNames(principal);
+	
+	private TechProject disposeTechProjectSave(TechProject techProject){
+		techProject.setId(UUID.randomUUID().toString());
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+		techProject.setRecordTime(now.getTime());
+		techProject.setDeletedSign(DeleteStatus.UNDELETE.getCode());
+		techProjectMapper.insert(techProject);
+		return techProject;
 	}
 
+	
+
 }