Browse Source

Accept Merge Request #75 merge : (master -> test)

Merge Request: merge
Created By: @albertshaw
Accepted By: @albertshaw
URL: https://coding.net/t/aft/p/AFT/git/merge/75
albertshaw 9 years ago
parent
commit
4d7835ac6c
39 changed files with 865 additions and 463 deletions
  1. 2 2
      schema/2017-03-07.sql
  2. 4 4
      schema/2017-03-08.sql
  3. 7 7
      schema/2017-03-09.sql
  4. 1 1
      schema/2017-03-10.sql
  5. 1 1
      schema/2017-03-11.sql
  6. 1 1
      schema/2017-03-12.sql
  7. 5 5
      schema/2017-03-16.sql
  8. 1 1
      schema/2017-03-19.sql
  9. 2 0
      schema/2017-03-22.sql
  10. 8 8
      src/main/java/com/goafanti/admin/controller/AdminApiController.java
  11. 4 3
      src/main/java/com/goafanti/admin/controller/AdminCopyrightApiController.java
  12. 166 27
      src/main/java/com/goafanti/admin/controller/AdminTechProjectController.java
  13. 1 1
      src/main/java/com/goafanti/cognizance/controller/CognizanceApiController.java
  14. 2 2
      src/main/java/com/goafanti/cognizance/service/OrgCognizanceService.java
  15. 12 4
      src/main/java/com/goafanti/cognizance/service/impl/OrgCognizanceServiceImpl.java
  16. 19 6
      src/main/java/com/goafanti/common/mapper/CopyrightInfoMapper.xml
  17. 13 1
      src/main/java/com/goafanti/common/mapper/OrgCognizanceMapper.xml
  18. 1 1
      src/main/java/com/goafanti/common/mapper/TechWebsiteMapper.xml
  19. 6 0
      src/main/java/com/goafanti/common/mapper/UserMapper.xml
  20. 228 215
      src/main/java/com/goafanti/common/model/CopyrightInfo.java
  21. 52 127
      src/main/java/com/goafanti/common/utils/AesUtils.java
  22. 14 0
      src/main/java/com/goafanti/copyright/bo/CopyrightInfoDetail.java
  23. 14 1
      src/main/java/com/goafanti/copyright/bo/CopyrightInfoSummary.java
  24. 3 1
      src/main/java/com/goafanti/copyright/bo/CopyrightLogBO.java
  25. 10 0
      src/main/java/com/goafanti/copyright/bo/InputCopyright.java
  26. 1 0
      src/main/java/com/goafanti/copyright/controller/CopyrightApiController.java
  27. 22 4
      src/main/java/com/goafanti/copyright/service/impl/CopyrightInfoServiceImpl.java
  28. 15 3
      src/main/java/com/goafanti/techproject/bo/InputTechProject.java
  29. 47 0
      src/main/java/com/goafanti/techproject/bo/InputTechProjectLog.java
  30. 76 0
      src/main/java/com/goafanti/techproject/bo/InputTechWebsite.java
  31. 110 31
      src/main/java/com/goafanti/techproject/controller/TechProjectApiController.java
  32. 2 0
      src/main/java/com/goafanti/techproject/service/TechProjectService.java
  33. 5 0
      src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java
  34. 1 1
      src/main/java/com/goafanti/user/service/UserService.java
  35. 5 1
      src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java
  36. 1 1
      src/main/resources/props/config_dev.properties
  37. 1 1
      src/main/resources/props/config_local.properties
  38. 1 1
      src/main/resources/props/config_prod.properties
  39. 1 1
      src/main/resources/props/config_test.properties

+ 2 - 2
schema/2017-03-07.sql

@@ -1,5 +1,5 @@
-ALTER TABLE `org_tech_product` add `account_url` varchar(255)  NULL  COMMENT '台帐URL'
+ALTER TABLE `org_tech_product` add `account_url` varchar(255)  NULL  COMMENT '台帐URL';
 
 ALTER TABLE `org_ratepay` 
 add `gross_profit` INT(6) NULL COMMENT '利润总额(万元)',
-add `research_cost` INT(6) NULL COMMENT '研发费用(万元)'
+add `research_cost` INT(6) NULL COMMENT '研发费用(万元)';

+ 4 - 4
schema/2017-03-08.sql

@@ -2,13 +2,13 @@ ALTER TABLE `organization_identity`
 add `listed` int(1)  NOT NULL  default 0 COMMENT '是否上市',
 add `listed_date` DATETIME   NULL   COMMENT '上市时间',
 add `listed_type` int(1)   NOT NULL   COMMENT '上市类型',
-add `stock_code` VARCHAR(32)   NULL   COMMENT '股票代码'
+add `stock_code` VARCHAR(32)   NULL   COMMENT '股票代码';
 
 ALTER TABLE `org_human_resource` 
 add `new_employment` int(6)   NULL   COMMENT '新增就业人数' AFTER `year`,
-add `graduate_number` int(6)   NULL   COMMENT '高校应届毕业生人数'  AFTER `new_employment`
+add `graduate_number` int(6)   NULL   COMMENT '高校应届毕业生人数'  AFTER `new_employment`;
 
-CREATE TABLE IF NOT EXISTS `aft_dev`.`org_annual_report` (
+CREATE TABLE `org_annual_report` (
   `id` VARCHAR(36) NOT NULL,
   `uid` VARCHAR(36) NULL,
   `create_time` DATETIME NULL COMMENT '创建时间',
@@ -20,4 +20,4 @@ CREATE TABLE IF NOT EXISTS `aft_dev`.`org_annual_report` (
   `state` INT(1) NULL DEFAULT 0 COMMENT '年报状态',
   `deleted_sign` INT(1) NOT NULL DEFAULT 0 COMMENT '删除标记',
   PRIMARY KEY (`id`))
-ENGINE = InnoDB
+ENGINE = InnoDB;

+ 7 - 7
schema/2017-03-09.sql

@@ -1,11 +1,11 @@
 ALTER TABLE org_annual_report 
-add `basic_research_cost` DECIMAL(8,2) NULL COMMENT '基础研究投入费用' AFTER `total_export_volume`
+add `basic_research_cost` DECIMAL(8,2) NULL COMMENT '基础研究投入费用' AFTER `total_export_volume`;
 
 ALTER TABLE org_activity 
 MODIFY COLUMN budget DECIMAL(8,2) COMMENT '预算(万元)',
 MODIFY COLUMN first_year_expenditure DECIMAL(8,2) COMMENT '第一年研发经费支出(万元)',
 MODIFY COLUMN second_year_expenditure DECIMAL(8,2) COMMENT '第二年研发经费支出(万元)',
-MODIFY COLUMN third_year_expenditure DECIMAL(8,2) COMMENT '第三年研发经费支出(万元)'
+MODIFY COLUMN third_year_expenditure DECIMAL(8,2) COMMENT '第三年研发经费支出(万元)';
 
 ALTER TABLE org_activity_cost 
 MODIFY COLUMN internal_labor_cost DECIMAL(8,2) COMMENT '内部人员人工费用(万元)',
@@ -16,10 +16,10 @@ MODIFY COLUMN internal_design_cost DECIMAL(8,2) COMMENT '内部设计费用(万
 MODIFY COLUMN internal_equipment_cost DECIMAL(8,2) COMMENT '内部装备调试费用与实验费用(万元)',
 MODIFY COLUMN internal_other_cost DECIMAL(8,2) COMMENT '内部其他费用(万元)',
 MODIFY COLUMN external_total_cost DECIMAL(8,2) COMMENT '委托外部研究开发总费用(万元)',
-MODIFY COLUMN external_abroad_cost DECIMAL(8,2) COMMENT '委托外部境内的外部研发费用(万元)'
+MODIFY COLUMN external_abroad_cost DECIMAL(8,2) COMMENT '委托外部境内的外部研发费用(万元)';
 
 ALTER TABLE org_cognizance 
-MODIFY COLUMN basic_research_cost DECIMAL(8,2) COMMENT '基础研究投入费用总额(万元)'
+MODIFY COLUMN basic_research_cost DECIMAL(8,2) COMMENT '基础研究投入费用总额(万元)';
 
 ALTER TABLE org_finance
 MODIFY COLUMN main_business_income DECIMAL(8,2) COMMENT '主营业务收入(万元)',
@@ -32,7 +32,7 @@ MODIFY COLUMN total_asset DECIMAL(8,2) COMMENT '资产总额(万元)',
 MODIFY COLUMN net_asset DECIMAL(8,2) COMMENT '所有者权益合计(万元)',
 MODIFY COLUMN gross_profit DECIMAL(8,2) COMMENT '利润总额(万元)',
 MODIFY COLUMN net_profit DECIMAL(8,2) COMMENT '净利润(万元)',
-MODIFY COLUMN sales_revenue DECIMAL(8,2) COMMENT '销售收入(万元)'
+MODIFY COLUMN sales_revenue DECIMAL(8,2) COMMENT '销售收入(万元)';
 
 ALTER TABLE org_ratepay
 MODIFY COLUMN operating_income DECIMAL(8,2) COMMENT '营业收入(万元)',
@@ -43,7 +43,7 @@ MODIFY COLUMN non_taxable_income DECIMAL(8,2) COMMENT '不征税收入(万元)',
 MODIFY COLUMN tax_exempt_income DECIMAL(8,2) COMMENT '免税收入(万元)',
 MODIFY COLUMN subsidy_income DECIMAL(8,2) COMMENT '政府补助收入(万元)',
 MODIFY COLUMN gross_profit DECIMAL(8,2) COMMENT '利润总额(万元)',
-MODIFY COLUMN research_cost DECIMAL(8,2) COMMENT '研发费用(万元)'
+MODIFY COLUMN research_cost DECIMAL(8,2) COMMENT '研发费用(万元)';
 
 ALTER TABLE org_tech_product
-MODIFY COLUMN last_year_revenue DECIMAL(8,2) COMMENT '上年度销售收入(万元)'
+MODIFY COLUMN last_year_revenue DECIMAL(8,2) COMMENT '上年度销售收入(万元)';

+ 1 - 1
schema/2017-03-10.sql

@@ -1,3 +1,3 @@
 ALTER TABLE user
-add aid VARCHAR(36) NULL COMMENT '管理员ID' 
+add aid VARCHAR(36) NULL COMMENT '管理员ID';
 

+ 1 - 1
schema/2017-03-11.sql

@@ -1,4 +1,4 @@
-CREATE TABLE IF NOT EXISTS `aft_dev`.`aft_file` (
+CREATE TABLE `aft_file` (
   `id` VARCHAR(36) NOT NULL,
   `uid` VARCHAR(36) NULL COMMENT '用户id',
   `file_name` VARCHAR(32) NULL COMMENT '文件名称',

+ 1 - 1
schema/2017-03-12.sql

@@ -1,3 +1,3 @@
 alter table org_cognizance_log drop foreign key fk_org_cognizance_log_org_cognizance1;
 
-alter table patent_info add deleted_sign INT(1) NULL COMMENT '删除标记' 
+alter table patent_info add deleted_sign INT(1) NULL COMMENT '删除标记';

+ 5 - 5
schema/2017-03-16.sql

@@ -1,5 +1,5 @@
 
-CREATE TABLE IF NOT EXISTS `aft_dev`.`tech_project` (
+CREATE TABLE  `tech_project` (
   `id` VARCHAR(36) NOT NULL,
   `uid` VARCHAR(36) NOT NULL,
   `serial_number` INT(8) NULL COMMENT '编号' AUTO_INCREMENT,
@@ -24,10 +24,10 @@ CREATE TABLE IF NOT EXISTS `aft_dev`.`tech_project` (
   PRIMARY KEY (`id`),
   INDEX `serialNumber` (`serial_number` ASC))
 ENGINE = InnoDB AUTO_INCREMENT= 600000
-COMMENT = '科技项目申请表'
+COMMENT = '科技项目申请表';
 
 
-CREATE TABLE IF NOT EXISTS `aft_dev`.`tech_project_log` (
+CREATE TABLE `tech_project_log` (
   `id` VARCHAR(36) NOT NULL,
   `pid` VARCHAR(36) NOT NULL,
   `record_time` DATETIME NULL COMMENT '状态变更录入时间',
@@ -39,7 +39,7 @@ CREATE TABLE IF NOT EXISTS `aft_dev`.`tech_project_log` (
 ENGINE = InnoDB
 COMMENT = '科技项目申报log';
 
-CREATE TABLE IF NOT EXISTS `aft_dev`.`tech_website` (
+CREATE TABLE `tech_website` (
   `id` VARCHAR(36) NOT NULL,
   `uid` VARCHAR(36) NULL,
   `department` VARCHAR(45) NULL COMMENT '科技部门名称',
@@ -50,4 +50,4 @@ CREATE TABLE IF NOT EXISTS `aft_dev`.`tech_website` (
   `deleted_sign` INT(1) NULL COMMENT '删除标记',
   PRIMARY KEY (`id`))
 ENGINE = InnoDB
-COMMENT = '科技项目申报网址'
+COMMENT = '科技项目申报网址';

+ 1 - 1
schema/2017-03-19.sql

@@ -2,4 +2,4 @@ alter table organization_identity
 add certificate_number VARCHAR(36) NULL COMMENT '高企认定证书编号' ,
 add issuing_date DATETIME NULL COMMENT '高企认定发证日期',
 add cog_contacts INT(1) NULL COMMENT '高企认定联系人及联系方式',
-add consultant VARCHAR(36) COMMENT '高企认定咨询师'
+add consultant VARCHAR(36) COMMENT '高企认定咨询师';

+ 2 - 0
schema/2017-03-22.sql

@@ -0,0 +1,2 @@
+ALTER TABLE `copyright_info` 
+ADD COLUMN `copyright_number` VARCHAR(18) NULL COMMENT '软著证书编号';

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

@@ -229,7 +229,7 @@ public class AdminApiController extends BaseApiController {
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/orgList", method = RequestMethod.POST)
-	public Result orgList(String mobile, String email,
+	public Result orgList(String uid, String mobile, String email,
 			@RequestParam(name = "createTime[]", required = false) String[] createTime, Integer number,
 			String unitName, Integer auditStatus, String pageNo, String pageSize) throws ParseException {
 		Result res = new Result();
@@ -241,7 +241,7 @@ public class AdminApiController extends BaseApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		res.setData(getOrgList(mobile, email, createTime, number, unitName, auditStatus, pNo, pSize));
+		res.setData(getOrgList(uid, mobile, email, createTime, number, unitName, auditStatus, pNo, pSize));
 		return res;
 	}
 
@@ -942,7 +942,7 @@ public class AdminApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/listCognizance", method = RequestMethod.POST)
-	public Result listCognizance(String unitName, String locationProvince, String pageNo, String pageSize) {
+	public Result listCognizance(String uid, String unitName, String locationProvince, String pageNo, String pageSize) {
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -953,7 +953,7 @@ public class AdminApiController extends BaseApiController {
 			pNo = Integer.parseInt(pageNo);
 		}
 
-		res.setData(orgCognizanceService.listCognizance(unitName, locationProvince, pNo, pSize));
+		res.setData(orgCognizanceService.listCognizance(uid, unitName, locationProvince, pNo, pSize));
 		return res;
 	}
 
@@ -1144,7 +1144,7 @@ public class AdminApiController extends BaseApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/cultivate", method = RequestMethod.POST)
-	public Result cultivationList(String province, String unitName, String pageNo, String pageSize){
+	public Result cultivationList(String uid, String province, String unitName, String pageNo, String pageSize){
 		Result res = new Result();
 		Integer pNo = 1;
 		Integer pSize = 10;
@@ -1154,7 +1154,7 @@ public class AdminApiController extends BaseApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		res.setData(orgCognizanceService.listCultivation(province, unitName, pNo, pSize));
+		res.setData(orgCognizanceService.listCultivation(uid, province, unitName, pNo, pSize));
 		return res;
 	}
 
@@ -1215,9 +1215,9 @@ public class AdminApiController extends BaseApiController {
 	}
 
 	// org团体列表
-	private Pagination<OrgListBo> getOrgList(String mobile, String email, String[] createTime, Integer number,
+	private Pagination<OrgListBo> getOrgList(String uid, String mobile, String email, String[] createTime, Integer number,
 			String unitName, Integer auditStatus, Integer pNo, Integer pSize) throws ParseException {
-		return userService.listOrg(mobile, email, createTime, number, unitName, auditStatus, pNo, pSize);
+		return userService.listOrg(uid, mobile, email, createTime, number, unitName, auditStatus, pNo, pSize);
 	}
 
 	// user个人列表

+ 4 - 3
src/main/java/com/goafanti/admin/controller/AdminCopyrightApiController.java

@@ -92,6 +92,7 @@ public class AdminCopyrightApiController extends CertifyApiController {
 
 		CopyrightInfo ci = new CopyrightInfo();
 		CopyrightLog cl = new CopyrightLog();
+		BeanUtils.copyProperties(oci, ci);
 		BeanUtils.copyProperties(inputInfo, ci);
 		BeanUtils.copyProperties(inputInfo, cl);
 		ci.setId(oci.getId());
@@ -149,7 +150,7 @@ public class AdminCopyrightApiController extends CertifyApiController {
 	}
 
 	@RequestMapping(value = "/list", method = RequestMethod.GET)
-	public Result list(String province, String unitName, String copyrightName, String status, String pageNo,
+	public Result list(String province, String unitName, String uid, String copyrightName, String status, String pageNo,
 			String pageSize, @RequestParam(name = "createTime[]", required = false) String[] createTime,
 			@RequestParam(name = "acceptTime[]", required = false) String[] acceptTime,
 			@RequestParam(name = "authTime[]", required = false) String[] authTime) {
@@ -157,9 +158,9 @@ public class AdminCopyrightApiController extends CertifyApiController {
 		if (!checkAdminLogin(res)) {
 			return res;
 		}
-		res.setData(copyrightInfoService.listCopyrightInfo(province, unitName, copyrightName,
+		res.setData(copyrightInfoService.listMyCopyrightInfo(province, unitName, copyrightName,
 				CopyrightStatus.getStatus(status), createTime, acceptTime, authTime, getPageNo(pageNo),
-				getPageSize(pageSize)));
+				getPageSize(pageSize), uid));
 		return res;
 	}
 

+ 166 - 27
src/main/java/com/goafanti/admin/controller/AdminTechProjectController.java

@@ -1,13 +1,16 @@
 package com.goafanti.admin.controller;
 
+import java.io.IOException;
 import java.text.ParseException;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
 
+import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
@@ -15,8 +18,10 @@ 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.RequestParam;
+import org.springframework.web.multipart.MultipartFile;
 
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.enums.CopyrightFields;
@@ -25,10 +30,14 @@ import com.goafanti.common.model.TechProjectLog;
 import com.goafanti.common.model.TechWebsite;
 import com.goafanti.common.model.User;
 import com.goafanti.common.utils.Base64Utils;
-import com.goafanti.common.utils.DateUtils;
+import com.goafanti.common.utils.FileUtils;
+import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.techproject.bo.InputTechProject;
+import com.goafanti.techproject.bo.InputTechProjectLog;
+import com.goafanti.techproject.bo.InputTechWebsite;
 import com.goafanti.techproject.bo.TechProjectManageListBo;
 import com.goafanti.techproject.bo.TechWebsiteDetailBo;
 import com.goafanti.techproject.bo.TechWebsiteListBo;
@@ -62,6 +71,9 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/listTechProject", method = RequestMethod.POST)
 	public Result listClientTechProject(String province, String unitName, String pageNo, String pageSize) {
 		Result res = new Result();
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
 		Integer pNo = 1;
 		Integer pSize = 10;
 		if (StringUtils.isNumeric(pageSize)) {
@@ -70,7 +82,8 @@ public class AdminTechProjectController extends CertifyApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo, pSize);
+		Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo,
+				pSize);
 		if (null != t) {
 			List<TechProjectManageListBo> l = (List<TechProjectManageListBo>) t.getList();
 			for (TechProjectManageListBo w : l) {
@@ -124,7 +137,14 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/techProjectDetial", method = RequestMethod.POST)
 	public Result techProjectDetial(String pid) {
 		Result res = new Result();
-		res.setData(techProjectService.selectProjectDetail(pid));
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
+		} else {
+			res.setData(techProjectService.selectProjectDetail(pid));
+		}
 		return res;
 	}
 
@@ -137,7 +157,14 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/techProjectLog", method = RequestMethod.POST)
 	public Result techProjectLog(String pid) {
 		Result res = new Result();
-		res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目申报ID"));
+		} else {
+			res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		}
 		return res;
 	}
 
@@ -151,14 +178,42 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
-	public Result updateTechProject(TechProject t, TechProjectLog l, String recordTimeFormattedDate)
-			throws ParseException {
+	public Result updateTechProject(@Valid InputTechProject techProject, @Valid InputTechProjectLog log, BindingResult bindingResult, String recordTimeFormattedDate) {
 		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		
+		if (StringUtils.isBlank(techProject.getId())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
+			return res;
+		}
+		
+		TechProject t = techProjectService.selectByPrimaryKey(techProject.getId());
+		if (null == t){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "找不到申报项目", "科技项目申报"));
+			return res;
+		}
+		
 		Date recordTime = null;
 		if (!StringUtils.isBlank(recordTimeFormattedDate)) {
-			recordTime = DateUtils.parseDate(recordTimeFormattedDate, "yyyy-MM-dd");
+			try {
+				recordTime = DateUtils.parseDate(recordTimeFormattedDate, AFTConstants.YYYYMMDD);
+			} catch (ParseException e) {
+			}
 		}
-		res.setData(techProjectService.updateTechProject(t, l, recordTime));
+		
+		TechProject tp = new TechProject();
+		TechProjectLog tpl = new TechProjectLog();
+		tp.setId(techProject.getId());
+		BeanUtils.copyProperties(techProject, tp);
+		BeanUtils.copyProperties(log, tpl);
+		res.setData(techProjectService.updateTechProject(tp, tpl, recordTime));
 		return res;
 	}
 
@@ -169,33 +224,39 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/deleteTechProject", method = RequestMethod.POST)
-	public Result deleteTechProject(@RequestParam(name = "ids[]", required = true) String[] ids) {
+	public Result deleteTechProject(@RequestParam(name = "ids[]", required = false) String[] ids) {
 		Result res = new Result();
-		List<String> id = new ArrayList<String>();
-		for (String s : ids) {
-			id.add(s);
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (ids == null || ids.length < 1) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
+		} else {
+			res.setData(techProjectService.deleteByPrimaryKey(Arrays.asList(ids)));
 		}
-		res.setData(techProjectService.deleteByPrimaryKey(id));
 		return res;
 	}
 
-	 
 	/**
 	 * 删除科技网址记录
+	 * 
 	 * @param ids
 	 * @return
 	 */
 	@RequestMapping(value = "/deleteTechWebsite", method = RequestMethod.POST)
-	public Result deleteTechWebsite(@RequestParam(name = "ids[]", required = true) String[] ids){
+	public Result deleteTechWebsite(@RequestParam(name = "ids[]", required = false) String[] ids) {
 		Result res = new Result();
-		List<String> id = new ArrayList<String>();
-		for (String s : ids) {
-			id.add(s);
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (ids == null || ids.length < 1) {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
+		} else {
+			res.setData(techWebsiteService.deleteByPrimaryKey(Arrays.asList(ids)));
 		}
-		res.setData(techWebsiteService.deleteByPrimaryKey(id));
 		return res;
 	}
-	
+
 	/**
 	 * 科技单位网址管理list
 	 */
@@ -203,6 +264,9 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/listTechWebsite", method = RequestMethod.POST)
 	public Result listTechWebsite(String province, String unitName, String pageNo, String pageSize) {
 		Result res = new Result();
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
 		Integer pNo = 1;
 		Integer pSize = 10;
 		if (StringUtils.isNumeric(pageSize)) {
@@ -235,11 +299,18 @@ public class AdminTechProjectController extends CertifyApiController {
 	@RequestMapping(value = "/techWebsiteDetail", method = RequestMethod.POST)
 	public Result techWebsiteDetail(String id) {
 		Result res = new Result();
-		TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
-		if (null != w && !StringUtils.isBlank(w.getPassword())) {
-			w.setPassword(Base64Utils.decodeData(w.getPassword()));
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(id)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
+		} else {
+			TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
+			if (null != w && !StringUtils.isBlank(w.getPassword())) {
+				w.setPassword(Base64Utils.decodeData(w.getPassword()));
+			}
+				res.setData(w);
 		}
-		res.setData(w);
 		return res;
 	}
 
@@ -250,12 +321,80 @@ public class AdminTechProjectController extends CertifyApiController {
 	 * @return
 	 */
 	@RequestMapping(value = "/disposeTechWebsite", method = RequestMethod.POST)
-	public Result disposeTechWebsite(TechWebsite w) {
+	public Result disposeTechWebsite(@Valid InputTechWebsite w, BindingResult bindingResult) {
 		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		
+		if (StringUtils.isBlank(w.getUid())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
+			return res;
+		}
+		
+		User curUser = userService.selectByPrimaryKey(w.getUid());
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		
 		if (null != w && null != (w.getPassword())) {
 			w.setPassword(Base64Utils.encodeData(w.getPassword().trim()));
 		}
-		res.setData(techWebsiteService.saveWebsite(w));
+		
+		TechWebsite tw = new TechWebsite();
+		BeanUtils.copyProperties(w, tw);
+		
+		res.setData(techWebsiteService.saveWebsite(tw));
+		return res;
+	}
+	
+	/**
+	 * 科技项目申报材料上传
+	 * @param req
+	 * @param uid
+	 * @return
+	 */
+	@RequestMapping(value = "/upload", method = RequestMethod.POST)
+	public Result cognizanceFile(HttpServletRequest req, String uid) {
+		Result res = new Result();
+		if (!checkAdminLogin(res)) {
+			return res;
+		}
+		User curUser = userService.selectByPrimaryKey(uid);
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		
+		String sign = "tech_project";
+		res.setData(handleFile(res, "/techProject/", true, req, sign, uid));
 		return res;
 	}
+
+	private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign,
+			String uid) {
+		List<MultipartFile> files = getFiles(req);
+		MultipartFile mf = files.get(0);
+
+		String fileName = FileUtils.mosaicFileName(mf, isPrivate, sign, path,
+				StringUtils.isBlank(uid) ? TokenManager.getUserId() : uid);
+		if (!files.isEmpty()) {
+			try {
+				mf.transferTo(toPrivateFile(fileName));
+				LoggerUtils.debug(getClass(), fileName + " 文件上传成功");
+			} catch (IllegalStateException | IOException e) {
+				LoggerUtils.error(getClass(), "文件上传失败", e);
+				res.getError().add(buildError("", "文件上传失败!"));
+				return "";
+			}
+		} else {
+			res.getError().add(buildError("", "文件上传失败!"));
+			return "";
+		}
+		return fileName;
+	} 
 }

+ 1 - 1
src/main/java/com/goafanti/cognizance/controller/CognizanceApiController.java

@@ -903,7 +903,7 @@ public class CognizanceApiController extends BaseApiController {
 			if (StringUtils.isNumeric(pageNo)) {
 				pNo = Integer.parseInt(pageNo);
 			}
-			res.setData(orgCognizanceService.listCognizance(TokenManager.getUserId(), locationProvince, pNo, pSize));
+			res.setData(orgCognizanceService.listCognizance(TokenManager.getUserId(), null, locationProvince, pNo, pSize));
 		}
 		
 		return res;

+ 2 - 2
src/main/java/com/goafanti/cognizance/service/OrgCognizanceService.java

@@ -19,7 +19,7 @@ public interface OrgCognizanceService {
 
 	OrgCognizance insert(OrgCognizance c);
 
-	Pagination<CognizanceBo> listCognizance(String unitName, String locationProvince, Integer pNo, Integer pSize);
+	Pagination<CognizanceBo> listCognizance(String uid, String unitName, String locationProvince, Integer pNo, Integer pSize);
 
 	CognizanceOrgInfoBo selectCognizanceOrgInfoBoByUidAndCid(String uid, String cid);
 
@@ -43,7 +43,7 @@ public interface OrgCognizanceService {
 
 	void insertCognizance(Integer contacts, String comment, Integer year, Integer state, String aid, String uid);
 
-	Pagination<CultivationListBo> listCultivation(String province, String unitName, Integer pNo, Integer pSize);
+	Pagination<CultivationListBo> listCultivation(String uid, String province, String unitName, Integer pNo, Integer pSize);
 
 
 }

+ 12 - 4
src/main/java/com/goafanti/cognizance/service/impl/OrgCognizanceServiceImpl.java

@@ -47,12 +47,16 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<CognizanceBo> listCognizance(String unitName, String locationProvince,  Integer pageNo,
+	public Pagination<CognizanceBo> listCognizance(String uid, String unitName, String locationProvince,  Integer pageNo,
 			Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
 		
 		if (!StringUtils.isBlank(unitName)){
-			params.put("uid", unitName);
+			params.put("unitName", unitName);
+		}
+		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
 		}
 		
 		if (!StringUtils.isBlank(locationProvince)){
@@ -227,13 +231,17 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<CultivationListBo> listCultivation(String province, String unitName, Integer pageNo, Integer pageSize) {
+	public Pagination<CultivationListBo> listCultivation(String uid, String province, String unitName, Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
 		
 		if (!StringUtils.isBlank(unitName)){
 			params.put("unitName", unitName);
 		}
 		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
+		}
+		
 		if (!StringUtils.isBlank(province)){
 			params.put("province", province);
 		}
@@ -243,7 +251,7 @@ public class OrgCognizanceServiceImpl extends BaseMybatisDao<OrgCognizanceMapper
 		}
 
 		if (pageSize == null || pageSize < 0) {
-			pageSize = 15;
+			pageSize = 10;
 		}
 		return(Pagination<CultivationListBo>) findPage("findCultivationListByPage", "findCultivationCount", params,
 				pageNo, pageSize);

+ 19 - 6
src/main/java/com/goafanti/common/mapper/CopyrightInfoMapper.xml

@@ -18,13 +18,14 @@
     <result column="in_urgent" jdbcType="INTEGER" property="inUrgent" />
     <result column="authorized_date" jdbcType="TIMESTAMP" property="authorizedDate" />
     <result column="certificate_url" jdbcType="VARCHAR" property="certificateUrl" />
+    <result column="copyright_number" jdbcType="VARCHAR" property="copyrightNumber" />
     <result column="application_url" jdbcType="VARCHAR" property="applicationUrl" />
     <result column="delete_sign" jdbcType="INTEGER" property="deleteSign" />
   </resultMap>
   <sql id="Base_Column_List">
     id, uid, serial_number, create_time, accept_time, principal, contact, copyright_info, 
     copyright_name, status, work_issue, comment, outsource, in_urgent, authorized_date, 
-    certificate_url, application_url, delete_sign
+    certificate_url, application_url, delete_sign, copyright_number
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
     select 
@@ -42,14 +43,16 @@
       contact, copyright_info, copyright_name, 
       status, work_issue, comment, 
       outsource, in_urgent, authorized_date, 
-      certificate_url, application_url, delete_sign
+      certificate_url, copyright_number, application_url, delete_sign
       )
     values (#{id,jdbcType=VARCHAR}, #{uid,jdbcType=VARCHAR}, #{serialNumber,jdbcType=INTEGER}, 
       #{createTime,jdbcType=TIMESTAMP}, #{acceptTime,jdbcType=TIMESTAMP}, #{principal,jdbcType=VARCHAR}, 
       #{contact,jdbcType=INTEGER}, #{copyrightInfo,jdbcType=VARCHAR}, #{copyrightName,jdbcType=VARCHAR}, 
       #{status,jdbcType=INTEGER}, #{workIssue,jdbcType=VARCHAR}, #{comment,jdbcType=VARCHAR}, 
       #{outsource,jdbcType=VARCHAR}, #{inUrgent,jdbcType=INTEGER}, #{authorizedDate,jdbcType=TIMESTAMP}, 
-      #{certificateUrl,jdbcType=VARCHAR}, #{applicationUrl,jdbcType=VARCHAR}, #{deleteSign,jdbcType=INTEGER}
+      #{certificateUrl,jdbcType=VARCHAR}, 
+      #{copyrightNumber,jdbcType=VARCHAR}, 
+      #{applicationUrl,jdbcType=VARCHAR}, #{deleteSign,jdbcType=INTEGER}
       )
   </insert>
   <insert id="insertSelective" parameterType="com.goafanti.common.model.CopyrightInfo">
@@ -103,6 +106,9 @@
       <if test="certificateUrl != null">
         certificate_url,
       </if>
+      <if test="copyrightNumber != null">
+        copyright_number,
+      </if>
       <if test="applicationUrl != null">
         application_url,
       </if>
@@ -159,6 +165,9 @@
       <if test="certificateUrl != null">
         #{certificateUrl,jdbcType=VARCHAR},
       </if>
+      <if test="copyrightNumber != null">
+        #{copyrightNumber,jdbcType=VARCHAR},
+      </if>
       <if test="applicationUrl != null">
         #{applicationUrl,jdbcType=VARCHAR},
       </if>
@@ -215,6 +224,9 @@
       <if test="certificateUrl != null">
         certificate_url = #{certificateUrl,jdbcType=VARCHAR},
       </if>
+      <if test="copyrightNumber != null">
+        copyright_number = #{copyrightNumber,jdbcType=VARCHAR},
+      </if>
       <if test="applicationUrl != null">
         application_url = #{applicationUrl,jdbcType=VARCHAR},
       </if>
@@ -241,6 +253,7 @@
       in_urgent = #{inUrgent,jdbcType=INTEGER},
       authorized_date = #{authorizedDate,jdbcType=TIMESTAMP},
       certificate_url = #{certificateUrl,jdbcType=VARCHAR},
+      copyright_number = #{copyrightNumber,jdbcType=VARCHAR},
       application_url = #{applicationUrl,jdbcType=VARCHAR},
       delete_sign = #{deleteSign,jdbcType=INTEGER}
     where id = #{id,jdbcType=VARCHAR}
@@ -250,7 +263,7 @@
   	select ci.id,ci.uid,ci.serial_number as serialNumber, ci.create_time as createTime, 
 	ci.accept_time as acceptTime, ci.contact,
 	ci.copyright_name as copyrightName, ci.status, ci.comment, ci.outsource, ci.in_urgent as inUrgent, 
-	ci.authorized_date as authorizedDate, ci.work_issue as workIssue,
+	ci.authorized_date as authorizedDate, ci.work_issue as workIssue, ci.copyright_number as copyrightNumber,
 	oi.location_province as province,oi.unit_name as unitName, 
 	concat(oi.first_contacts,'  ', oi.first_mobile) as firstContact,
 	concat(oi.second_contacts,'  ', oi.second_mobile) as secondContact,
@@ -348,8 +361,8 @@
   </update>
   <select id="findByPrimaryKey" parameterType="java.lang.String" resultType="com.goafanti.copyright.bo.CopyrightInfoDetail">
     select ci.id,ci.uid,ci.serial_number as serialNumber, ci.create_time as createTime, 
-	ci.accept_time as acceptTime, ci.contact, ci.copyright_name as copyrightName, 
-	ci.status, ci.comment, ci.outsource, ci.in_urgent as inUrgent, ci.authorized_date as authorizedDate, 
+	ci.accept_time as acceptTime, ci.contact, ci.copyright_name as copyrightName, ci.copyright_info as copyrightInfo, 
+	ci.status, ci.comment, ci.outsource, ci.in_urgent as inUrgent, ci.authorized_date as authorizedDate, ci.copyright_number as copyrightNumber,  
 	ci.work_issue as workIssue,ci.application_url as applicationUrl,ci.certificate_url as certificateUrl,
 	oi.location_province as province, oi.location_city as city,oi.location_area as area, oi.postcode,
 	oi.unit_name as unitName, oi.org_code as orgCode,

+ 13 - 1
src/main/java/com/goafanti/common/mapper/OrgCognizanceMapper.xml

@@ -288,7 +288,10 @@
 	LEFT JOIN  admin a on a.id = x.consultant
 	where 1 = 1
 	<if test="unitName != null">
-		and x.unit_ame like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
+		and x.unit_name like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
+	</if>
+	<if test="uid != null">
+		and x.uid = #{uid,jdbcType=VARCHAR}
 	</if>
 	<if test="locationProvince != null">
 		and x.location_province = #{locationProvince, jdbcType=VARCHAR}
@@ -307,6 +310,9 @@
 	<if test="uid != null">
 		and c.uid = #{uid,jdbcType=VARCHAR}
 	</if>
+	<if test="unitName != null">
+		and x.unit_name like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
+	</if>
 	<if test="locationProvince != null">
 		and i.location_province = #{locationProvince, jdbcType=VARCHAR}
 	</if>
@@ -417,6 +423,9 @@
 	<if test="unitName != null">
 	    and i.unit_name like  CONCAT('%', #{unitName,jdbcType=VARCHAR}, '%')
 	</if>
+	<if test="uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
 	<if test="province != null">
 	    and i.location_province = #{province,jdbcType=VARCHAR}
 	</if>
@@ -434,6 +443,9 @@
 	<if test="unitName != null">
 	    and i.unit_name = #{unitName,jdbcType=VARCHAR}
 	</if>
+	<if test="uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
 	<if test="province != null">
 	    and i.location_province = #{province,jdbcType=VARCHAR}
 	</if>

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

@@ -173,7 +173,7 @@
   </update>
   
   <select id="selectTechWebsiteDetail" resultType="com.goafanti.techproject.bo.TechWebsiteDetailBo" parameterType="java.lang.String" >
-   SELECT t.id, t.account_number, t.department,t.password, t.uid, t.website, i.unit_name as unitName
+   SELECT t.id, t.account_number as accountNumber, t.department,t.password, t.uid, t.website, i.unit_name as unitName
 		from tech_website t LEFT JOIN organization_identity i on t.uid = i.uid 
     where t.id = #{id,jdbcType=VARCHAR}
   </select>

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

@@ -272,6 +272,9 @@
     <if test = "mobile != null">
 	    and u.mobile = #{mobile,jdbcType=VARCHAR}
 	</if>
+	<if test = "uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
 	<if test = "email != null">
 	    and u.email = #{email,jdbcType=VARCHAR}
 	</if>
@@ -301,6 +304,9 @@
     from user u LEFT JOIN organization_identity o 
     ON u.id = o.uid 
     WHERE u.type = 1
+    <if test = "uid != null">
+	    and u.id = #{uid,jdbcType=VARCHAR}
+	</if>
     <if test = "mobile != null">
 	    and u.mobile = #{mobile,jdbcType=VARCHAR}
 	</if>

+ 228 - 215
src/main/java/com/goafanti/common/model/CopyrightInfo.java

@@ -2,230 +2,243 @@ package com.goafanti.common.model;
 
 import java.util.Date;
 
-public class CopyrightInfo extends BaseModel{
-    /**
+public class CopyrightInfo extends BaseModel {
+	/**
 	 * 
 	 */
-	private static final long serialVersionUID = 1L;
-
-    /**
-    * 用户主键
-    */
-    private String uid;
-
-    /**
-    * 编号
-    */
-    private Integer serialNumber;
-
-    /**
-    * 创建时间
-    */
-    private Date createTime;
-
-    /**
-    * 受理时间
-    */
-    private Date acceptTime;
-
-    /**
-    * 负责人
-    */
-    private String principal;
-
-    /**
-    * 联系人
-    */
-    private Integer contact;
-
-    /**
-    * 软著简介
-    */
-    private String copyrightInfo;
-
-    /**
-    * 软著名字
-    */
-    private String copyrightName;
-
-    /**
-    * 申请状态
-    */
-    private Integer status;
-
-    /**
-    * 派单信息
-    */
-    private String workIssue;
-
-    /**
-    * 备注
-    */
-    private String comment;
-
-    /**
-    * 外包公司
-    */
-    private String outsource;
-
-    /**
-    * 加急天数
-    */
-    private Integer inUrgent;
-
-    /**
-    * 下证日
-    */
-    private Date authorizedDate;
-
-    /**
-    * 证书附件地址
-    */
-    private String certificateUrl;
-
-    /**
-    * 申请书附件地址
-    */
-    private String applicationUrl;
-
-    /**
-    * 删除标记
-    */
-    private Integer deleteSign;
-
-    public String getUid() {
-        return uid;
-    }
-
-    public void setUid(String uid) {
-        this.uid = uid;
-    }
-
-    public Integer getSerialNumber() {
-        return serialNumber;
-    }
-
-    public void setSerialNumber(Integer serialNumber) {
-        this.serialNumber = serialNumber;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public Date getAcceptTime() {
-        return acceptTime;
-    }
-
-    public void setAcceptTime(Date acceptTime) {
-        this.acceptTime = acceptTime;
-    }
-
-    public String getPrincipal() {
-        return principal;
-    }
-
-    public void setPrincipal(String principal) {
-        this.principal = principal;
-    }
-
-    public Integer getContact() {
-        return contact;
-    }
-
-    public void setContact(Integer contact) {
-        this.contact = contact;
-    }
-
-    public String getCopyrightInfo() {
-        return copyrightInfo;
-    }
-
-    public void setCopyrightInfo(String copyrightInfo) {
-        this.copyrightInfo = copyrightInfo;
-    }
-
-    public String getCopyrightName() {
-        return copyrightName;
-    }
-
-    public void setCopyrightName(String copyrightName) {
-        this.copyrightName = copyrightName;
-    }
-
-    public Integer getStatus() {
-        return status;
-    }
-
-    public void setStatus(Integer status) {
-        this.status = status;
-    }
-
-    public String getWorkIssue() {
-        return workIssue;
-    }
-
-    public void setWorkIssue(String workIssue) {
-        this.workIssue = workIssue;
-    }
-
-    public String getComment() {
-        return comment;
-    }
-
-    public void setComment(String comment) {
-        this.comment = comment;
-    }
-
-    public String getOutsource() {
-        return outsource;
-    }
-
-    public void setOutsource(String outsource) {
-        this.outsource = outsource;
-    }
-
-    public Integer getInUrgent() {
-        return inUrgent;
-    }
+	private static final long	serialVersionUID	= 1L;
 
-    public void setInUrgent(Integer inUrgent) {
-        this.inUrgent = inUrgent;
-    }
+	/**
+	 * 用户主键
+	 */
+	private String				uid;
+
+	/**
+	 * 编号
+	 */
+	private Integer				serialNumber;
+
+	/**
+	 * 创建时间
+	 */
+	private Date				createTime;
+
+	/**
+	 * 受理时间
+	 */
+	private Date				acceptTime;
+
+	/**
+	 * 负责人
+	 */
+	private String				principal;
+
+	/**
+	 * 联系人
+	 */
+	private Integer				contact;
+
+	/**
+	 * 软著简介
+	 */
+	private String				copyrightInfo;
+
+	/**
+	 * 软著名字
+	 */
+	private String				copyrightName;
+
+	/**
+	 * 申请状态
+	 */
+	private Integer				status;
+
+	/**
+	 * 派单信息
+	 */
+	private String				workIssue;
+
+	/**
+	 * 备注
+	 */
+	private String				comment;
+
+	/**
+	 * 外包公司
+	 */
+	private String				outsource;
+
+	/**
+	 * 加急天数
+	 */
+	private Integer				inUrgent;
+
+	/**
+	 * 下证日
+	 */
+	private Date				authorizedDate;
+
+	/**
+	 * 证书附件地址
+	 */
+	private String				certificateUrl;
+
+	/**
+	 * 申请书附件地址
+	 */
+	private String				applicationUrl;
+
+	/**
+	 * 删除标记
+	 */
+	private Integer				deleteSign;
+
+	/**
+	 * 申请号/专利号
+	 */
+	private String				copyrightNumber;
+
+	public String getUid() {
+		return uid;
+	}
+
+	public void setUid(String uid) {
+		this.uid = uid;
+	}
+
+	public Integer getSerialNumber() {
+		return serialNumber;
+	}
+
+	public void setSerialNumber(Integer serialNumber) {
+		this.serialNumber = serialNumber;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Date getAcceptTime() {
+		return acceptTime;
+	}
+
+	public void setAcceptTime(Date acceptTime) {
+		this.acceptTime = acceptTime;
+	}
+
+	public String getPrincipal() {
+		return principal;
+	}
+
+	public void setPrincipal(String principal) {
+		this.principal = principal;
+	}
+
+	public Integer getContact() {
+		return contact;
+	}
+
+	public void setContact(Integer contact) {
+		this.contact = contact;
+	}
+
+	public String getCopyrightInfo() {
+		return copyrightInfo;
+	}
+
+	public void setCopyrightInfo(String copyrightInfo) {
+		this.copyrightInfo = copyrightInfo;
+	}
+
+	public String getCopyrightName() {
+		return copyrightName;
+	}
+
+	public void setCopyrightName(String copyrightName) {
+		this.copyrightName = copyrightName;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public String getWorkIssue() {
+		return workIssue;
+	}
+
+	public void setWorkIssue(String workIssue) {
+		this.workIssue = workIssue;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+
+	public String getOutsource() {
+		return outsource;
+	}
+
+	public void setOutsource(String outsource) {
+		this.outsource = outsource;
+	}
+
+	public Integer getInUrgent() {
+		return inUrgent;
+	}
+
+	public void setInUrgent(Integer inUrgent) {
+		this.inUrgent = inUrgent;
+	}
+
+	public Date getAuthorizedDate() {
+		return authorizedDate;
+	}
+
+	public void setAuthorizedDate(Date authorizedDate) {
+		this.authorizedDate = authorizedDate;
+	}
 
-    public Date getAuthorizedDate() {
-        return authorizedDate;
-    }
+	public String getCertificateUrl() {
+		return certificateUrl;
+	}
 
-    public void setAuthorizedDate(Date authorizedDate) {
-        this.authorizedDate = authorizedDate;
-    }
+	public void setCertificateUrl(String certificateUrl) {
+		this.certificateUrl = certificateUrl;
+	}
 
-    public String getCertificateUrl() {
-        return certificateUrl;
-    }
+	public String getApplicationUrl() {
+		return applicationUrl;
+	}
 
-    public void setCertificateUrl(String certificateUrl) {
-        this.certificateUrl = certificateUrl;
-    }
+	public void setApplicationUrl(String applicationUrl) {
+		this.applicationUrl = applicationUrl;
+	}
 
-    public String getApplicationUrl() {
-        return applicationUrl;
-    }
+	public Integer getDeleteSign() {
+		return deleteSign;
+	}
 
-    public void setApplicationUrl(String applicationUrl) {
-        this.applicationUrl = applicationUrl;
-    }
+	public void setDeleteSign(Integer deleteSign) {
+		this.deleteSign = deleteSign;
+	}
 
-    public Integer getDeleteSign() {
-        return deleteSign;
-    }
+	public String getCopyrightNumber() {
+		return copyrightNumber;
+	}
 
-    public void setDeleteSign(Integer deleteSign) {
-        this.deleteSign = deleteSign;
-    }
+	public void setCopyrightNumber(String copyrightNumber) {
+		this.copyrightNumber = copyrightNumber;
+	}
 }

+ 52 - 127
src/main/java/com/goafanti/common/utils/AesUtils.java

@@ -1,148 +1,73 @@
 package com.goafanti.common.utils;
 
-import java.io.UnsupportedEncodingException;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-
-import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.KeyGenerator;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
+import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
 
+import org.apache.commons.codec.binary.Base64;
 
 public class AesUtils {
 
-	/**
-	 * 加密
-	 * 
-	 * @param pwd
-	 * @param aesSecretKey
-	 * @return
-	 */
-	public static String AesEncrypt(String pwd, String aesSecretKey) {
-		return parseByte2HexStr(encrypt(pwd, aesSecretKey));
-	}
+	public static String encrypt(String content, String key) throws Exception {
+		try {
+			String data = content;
+			String iv = key;
 
-	/**
-	 * 解密
-	 * 
-	 * @param pwd
-	 * @param aesSecretKey
-	 * @return
-	 */
-	public static String AesDecrypt(String pwd, String aesSecretKey) {
-		return new String(decrypt(parseHexStr2Byte(pwd), aesSecretKey));
-	}
+			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+			int blockSize = cipher.getBlockSize();
 
-	public static byte[] encrypt(String content, String password) {
-		try {
-			KeyGenerator kgen = KeyGenerator.getInstance("AES");
-			SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
-			random.setSeed(password.getBytes());
-			
-			//kgen.init(128, random);
-			 kgen.init(128, new SecureRandom(password.getBytes()));
-			SecretKey secretKey = kgen.generateKey();
-			byte[] enCodeFormat = secretKey.getEncoded();
-			SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
-			Cipher cipher = Cipher.getInstance("AES");// 创建密码器
-			// byte[] ret = encode(content.getBytes("UTF-8"),password);  
-			  //encrypt = new String(Base64.encode(ret));  
-			 byte[] byteContent = content.getBytes("utf-8");
-			cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
-			byte[] result = cipher.doFinal(byteContent);
-			return result; // 加密
-		} catch (NoSuchAlgorithmException e) {
-			e.printStackTrace();
-		} catch (NoSuchPaddingException e) {
-			e.printStackTrace();
-		} catch (InvalidKeyException e) {
-			e.printStackTrace();
-		} catch (UnsupportedEncodingException e) {
-			e.printStackTrace();
-		} catch (IllegalBlockSizeException e) {
-			e.printStackTrace();
-		} catch (BadPaddingException e) {
+			byte[] dataBytes = data.getBytes();
+			int plaintextLength = dataBytes.length;
+			if (plaintextLength % blockSize != 0) {
+				plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
+			}
+
+			byte[] plaintext = new byte[plaintextLength];
+			System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
+
+			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+			cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
+			byte[] encrypted = cipher.doFinal(plaintext);
+
+			return Base64.encodeBase64String(encrypted);
+
+		} catch (Exception e) {
 			e.printStackTrace();
+			return null;
 		}
-		return null;
 	}
 
-	public static byte[] decrypt(byte[] content, String password) {
+	public static String decrypt(String content, String key) throws Exception {
 		try {
-			KeyGenerator kgen = KeyGenerator.getInstance("AES");
-			SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
-			random.setSeed(password.getBytes());
-			//kgen.init(128, random);
-			 kgen.init(128, new SecureRandom(password.getBytes()));
-			SecretKey secretKey = kgen.generateKey();
-			byte[] enCodeFormat = secretKey.getEncoded();
-			SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
-			Cipher cipher = Cipher.getInstance("AES");// 创建密码器
-			cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
-			byte[] result = cipher.doFinal(content);
-			return result; // 加密
-		} catch (NoSuchAlgorithmException e) {
-			e.printStackTrace();
-		} catch (NoSuchPaddingException e) {
-			e.printStackTrace();
-		} catch (InvalidKeyException e) {
-			e.printStackTrace();
-		} catch (IllegalBlockSizeException e) {
-			e.printStackTrace();
-		} catch (BadPaddingException e) {
-			e.printStackTrace();
-		}
-		return null;
-	}
+			String data = content;
+			String iv = key;
 
-	/**
-	 * 将二进制转换成16进制
-	 * 
-	 * @param buf
-	 * @return
-	 */
-	public static String parseByte2HexStr(byte buf[]) {
-		StringBuffer sb = new StringBuffer();
-		for (int i = 0; i < buf.length; i++) {
-			String hex = Integer.toHexString(buf[i] & 0xFF);
-			if (hex.length() == 1) {
-				hex = '0' + hex;
-			}
-			sb.append(hex.toUpperCase());
-		}
-		return sb.toString();
-	}
+			byte[] decoded = Base64.decodeBase64(data);
+
+			Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+			SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+			IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+			cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
 
-	public static byte[] parseHexStr2Byte(String hexStr) {
-		if (hexStr.length() < 1)
+			byte[] original = cipher.doFinal(decoded);
+			String originalString = new String(original);
+			return originalString;
+		} catch (Exception e) {
+			e.printStackTrace();
 			return null;
-		byte[] result = new byte[hexStr.length() / 2];
-		for (int i = 0; i < hexStr.length() / 2; i++) {
-			int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
-			int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
-			result[i] = (byte) (high * 16 + low);
 		}
-		return result;
-
 	}
 	
-	/*@Test
-	public void test(){
-		String s = "1";
-		String key = "aft666";
-		String ss = AesEncrypt(s,key);
-		System.out.println(ss);
-		
-		String sss = AesDecrypt(ss, key);
-		System.out.println(sss);
-		
-		System.out.println("716B715661513134686D485A34557531564C476E46513D3D".length());
-		
-	}*/
-
-}
+	public static void main(String[] args) throws Exception {
+		String pwd = "Ai/0sYzmwiWiE6vq";
+		String msg = "hahahahahahaha";
+		String encrypted = AesUtils.encrypt(msg, pwd);
+		System.out.println(encrypted);
+		System.out.println(encrypted.length());
+		System.out.println(AesUtils.decrypt(encrypted, pwd));
+	}
+
+}

+ 14 - 0
src/main/java/com/goafanti/copyright/bo/CopyrightInfoDetail.java

@@ -10,6 +10,11 @@ public class CopyrightInfoDetail extends CopyrightInfoSummary {
 	private String	area;
 	private String	postcode;
 	private String	orgCode;
+	
+	/**
+	 * 软著名字
+	 */
+	private String	copyrightInfo;
 
 	/**
 	 * 证书附件地址
@@ -95,4 +100,13 @@ public class CopyrightInfoDetail extends CopyrightInfoSummary {
 		this.orgCode = orgCode;
 	}
 
+	public String getCopyrightInfo() {
+		return copyrightInfo;
+	}
+
+	public void setCopyrightInfo(String copyrightInfo) {
+		this.copyrightInfo = copyrightInfo;
+	}
+
+
 }

+ 14 - 1
src/main/java/com/goafanti/copyright/bo/CopyrightInfoSummary.java

@@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonFormat.Shape;
 public class CopyrightInfoSummary {
 
 	private String	id;
-	
+
 	private String	uid;
 	/**
 	 * 省份
@@ -77,6 +77,11 @@ public class CopyrightInfoSummary {
 	private Integer	inUrgent;
 
 	/**
+	 * 申请号/专利号
+	 */
+	private String	copyrightNumber;
+
+	/**
 	 * 下证日
 	 */
 	private Date	authorizedDate;
@@ -277,4 +282,12 @@ public class CopyrightInfoSummary {
 		this.uid = uid;
 	}
 
+	public String getCopyrightNumber() {
+		return copyrightNumber;
+	}
+
+	public void setCopyrightNumber(String copyrightNumber) {
+		this.copyrightNumber = copyrightNumber;
+	}
+
 }

+ 3 - 1
src/main/java/com/goafanti/copyright/bo/CopyrightLogBO.java

@@ -4,6 +4,8 @@ import java.util.Date;
 
 import org.apache.commons.lang3.time.DateFormatUtils;
 
+import com.goafanti.common.constant.AFTConstants;
+
 public class CopyrightLogBO {
 
 	/**
@@ -75,7 +77,7 @@ public class CopyrightLogBO {
 		if (this.recordTime == null) {
 			return null;
 		} else {
-			return DateFormatUtils.format(this.recordTime, "yyyy-MM-dd");
+			return DateFormatUtils.format(this.recordTime, AFTConstants.YYYYMMDD);
 		}
 	}
 

+ 10 - 0
src/main/java/com/goafanti/copyright/bo/InputCopyright.java

@@ -37,6 +37,8 @@ public class InputCopyright {
 	private String	comment;
 	@Size(min = 0, max = 60, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String	outsource;
+	@Size(min = 0, max = 18, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	copyrightNumber;
 
 	@Max(value = 30, message = "{" + ErrorConstants.PARAM_ERROR + "}")
 	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
@@ -132,4 +134,12 @@ public class InputCopyright {
 	public void setRecordTime(Date recordTime) {
 		this.recordTime = recordTime;
 	}
+
+	public String getCopyrightNumber() {
+		return copyrightNumber;
+	}
+
+	public void setCopyrightNumber(String copyrightNumber) {
+		this.copyrightNumber = copyrightNumber;
+	}
 }

+ 1 - 0
src/main/java/com/goafanti/copyright/controller/CopyrightApiController.java

@@ -87,6 +87,7 @@ public class CopyrightApiController extends CertifyApiController {
 
 		CopyrightInfo ci = new CopyrightInfo();
 		CopyrightLog cl = new CopyrightLog();
+		BeanUtils.copyProperties(oci, ci);
 		BeanUtils.copyProperties(inputInfo, ci);
 		ci.setId(oci.getId());
 		ci.setUid(oci.getUid());

+ 22 - 4
src/main/java/com/goafanti/copyright/service/impl/CopyrightInfoServiceImpl.java

@@ -5,6 +5,7 @@ import java.util.Calendar;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
@@ -14,9 +15,11 @@ import org.springframework.stereotype.Service;
 import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.dao.CopyrightInfoMapper;
 import com.goafanti.common.dao.CopyrightLogMapper;
+import com.goafanti.common.dao.OrgIntellectualPropertyMapper;
 import com.goafanti.common.enums.CopyrightStatus;
 import com.goafanti.common.model.CopyrightInfo;
 import com.goafanti.common.model.CopyrightLog;
+import com.goafanti.common.model.OrgIntellectualProperty;
 import com.goafanti.copyright.bo.CopyrightInfoDetail;
 import com.goafanti.copyright.bo.CopyrightLogBO;
 import com.goafanti.copyright.service.CopyrightInfoService;
@@ -27,9 +30,11 @@ import com.goafanti.core.shiro.token.TokenManager;
 @Service
 public class CopyrightInfoServiceImpl extends BaseMybatisDao<CopyrightInfoMapper> implements CopyrightInfoService {
 	@Autowired
-	private CopyrightInfoMapper	copyrightInfoMapper;
+	private CopyrightInfoMapper				copyrightInfoMapper;
 	@Autowired
-	private CopyrightLogMapper	copyrightLogMapper;
+	private CopyrightLogMapper				copyrightLogMapper;
+	@Autowired
+	private OrgIntellectualPropertyMapper	orgIntellectualPropertyMapper;
 
 	@Override
 	public CopyrightInfo insert(CopyrightInfo copyrightInfo) {
@@ -55,10 +60,23 @@ public class CopyrightInfoServiceImpl extends BaseMybatisDao<CopyrightInfoMapper
 			copyrightLogMapper.insertSelective(copyrightLog);
 			if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.ACCEPT) {
 				copyrightInfo.setAcceptTime(copyrightLog.getRecordTime());
-			} else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.AUTHORIZED) {
-				copyrightInfo.setAuthorizedDate(copyrightLog.getRecordTime());
 			} else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.DELIVERD) {
 				copyrightInfo.setCreateTime(copyrightLog.getRecordTime());
+			} else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.AUTHORIZED) {
+				copyrightInfo.setAuthorizedDate(copyrightLog.getRecordTime());
+				OrgIntellectualProperty o = new OrgIntellectualProperty();
+				o.setId(UUID.randomUUID().toString());
+				o.setUid(copyrightInfo.getUid());
+				o.setPid(copyrightInfo.getId());
+				o.setDeletedSign(0);
+				o.setIntellectualPropertyNumber(copyrightInfo.getCopyrightNumber());
+				o.setIntellectualPropertyName(copyrightInfo.getCopyrightName());
+				o.setCatagory(4);
+				o.setObtainWay(1);
+				o.setAuthorizationNumber(copyrightInfo.getCopyrightNumber());
+				o.setAuthorizationDate(copyrightInfo.getAuthorizedDate());
+				o.setEvaluationCategory(1);
+				orgIntellectualPropertyMapper.insert(o);
 			}
 		}
 		copyrightInfoMapper.updateByPrimaryKeySelective(copyrightInfo);

+ 15 - 3
src/main/java/com/goafanti/techproject/bo/InputTechProject.java

@@ -11,7 +11,7 @@ import com.goafanti.common.constant.ErrorConstants;
 public class InputTechProject {
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		id;
-    
+
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		uid;
 
@@ -24,7 +24,7 @@ public class InputTechProject {
 
 	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		dispatchInfo;
-	
+
 	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		projectName;
 
@@ -51,7 +51,10 @@ public class InputTechProject {
 
 	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
 	private String		consultant;
-
+	
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String approvalUrl;
+     
 	public String getId() {
 		return id;
 	}
@@ -155,6 +158,15 @@ public class InputTechProject {
 	public void setConsultant(String consultant) {
 		this.consultant = consultant;
 	}
+
+	public String getApprovalUrl() {
+		return approvalUrl;
+	}
+
+	public void setApprovalUrl(String approvalUrl) {
+		this.approvalUrl = approvalUrl;
+	}
 	
 	
+
 }

+ 47 - 0
src/main/java/com/goafanti/techproject/bo/InputTechProjectLog.java

@@ -0,0 +1,47 @@
+package com.goafanti.techproject.bo;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputTechProjectLog {
+	
+	@Max(value = 9, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	@Min(value = 0, message = "{" + ErrorConstants.PARAM_ERROR + "}")
+	private Integer		state;
+
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		principal;
+	
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String		comment;
+
+	public Integer getState() {
+		return state;
+	}
+
+	public void setState(Integer state) {
+		this.state = state;
+	}
+
+	public String getPrincipal() {
+		return principal;
+	}
+
+	public void setPrincipal(String principal) {
+		this.principal = principal;
+	}
+
+	public String getComment() {
+		return comment;
+	}
+
+	public void setComment(String comment) {
+		this.comment = comment;
+	}
+	
+	
+
+}

+ 76 - 0
src/main/java/com/goafanti/techproject/bo/InputTechWebsite.java

@@ -0,0 +1,76 @@
+package com.goafanti.techproject.bo;
+
+import javax.validation.constraints.Size;
+
+import com.goafanti.common.constant.ErrorConstants;
+
+public class InputTechWebsite {
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	id;
+    
+	@Size(min = 0, max = 36, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	uid;
+    
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	department;
+    
+	@Size(min = 0, max = 255, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	website;
+    
+	@Size(min = 0, max = 45, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	accountNumber;
+    
+	@Size(min = 0, max = 32, message = "{" + ErrorConstants.PARAM_SIZE_ERROR + "}")
+	private String	password;
+
+	public String getId() {
+		return id;
+	}
+
+	public void setId(String id) {
+		this.id = id;
+	}
+
+	public String getUid() {
+		return uid;
+	}
+
+	public void setUid(String uid) {
+		this.uid = uid;
+	}
+
+	public String getDepartment() {
+		return department;
+	}
+
+	public void setDepartment(String department) {
+		this.department = department;
+	}
+
+	public String getWebsite() {
+		return website;
+	}
+
+	public void setWebsite(String website) {
+		this.website = website;
+	}
+
+	public String getAccountNumber() {
+		return accountNumber;
+	}
+
+	public void setAccountNumber(String accountNumber) {
+		this.accountNumber = accountNumber;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+	
+	
+
+}

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

@@ -1,49 +1,59 @@
 package com.goafanti.techproject.controller;
 
-
-
 import java.io.IOException;
 import java.text.ParseException;
 import java.util.List;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
 
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Controller;
+import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.multipart.MultipartFile;
 
 import com.goafanti.common.bo.Result;
-import com.goafanti.common.controller.BaseApiController;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.CopyrightFields;
 import com.goafanti.common.model.TechProject;
+import com.goafanti.common.model.User;
 import com.goafanti.common.utils.FileUtils;
 import com.goafanti.common.utils.LoggerUtils;
 import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.techproject.bo.InputTechProject;
+import com.goafanti.techproject.bo.TechProjectDetailBo;
 import com.goafanti.techproject.service.TechProjectLogService;
 import com.goafanti.techproject.service.TechProjectService;
 import com.goafanti.techproject.service.TechWebsiteService;
 
 @Controller
 @RequestMapping(value = "/api/techproject")
-public class TechProjectApiController extends BaseApiController{
+public class TechProjectApiController extends CertifyApiController {
 	@Resource
-	private TechProjectService techProjectService;
+	private TechProjectService		techProjectService;
 	@Resource
-	private TechWebsiteService techWebsiteService;
+	private TechWebsiteService		techWebsiteService;
 	@Resource
-	private TechProjectLogService techProjectLogService;
-	
+	private TechProjectLogService	techProjectLogService;
+
 	/**
 	 * 科技项目申报列表
+	 * 
 	 * @param pageNo
 	 * @param pageSize
 	 * @return
 	 */
 	@RequestMapping(value = "/listClientTechProject", method = RequestMethod.POST)
-	public Result listClientTechProject(String pageNo, String pageSize){
+	public Result listClientTechProject(String pageNo, String pageSize) {
 		Result res = new Result();
+		if (!checkUserLogin(res)) {
+			return res;
+		}
 		Integer pNo = 1;
 		Integer pSize = 10;
 		if (StringUtils.isNumeric(pageSize)) {
@@ -55,47 +65,86 @@ public class TechProjectApiController extends BaseApiController{
 		res.setData(techProjectService.listClientTechProject(TokenManager.getUserId(), pNo, pSize));
 		return res;
 	}
-	
-	
-	
+
 	/**
 	 * 科技项目申报
+	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/applyTechProject", method = RequestMethod.POST)
-	public Result applyTechProject(TechProject techProject){
+	public Result applyTechProject(@Valid InputTechProject techProject, BindingResult bindingResult) {
 		Result res = new Result();
-		techProject.setUid(TokenManager.getUserId());
-		techProjectService.saveTechProject(techProject, TokenManager.getToken().getAid());
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		User curUser = TokenManager.getUserToken();
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		TechProject tp = new TechProject();
+		BeanUtils.copyProperties(techProject, tp);
+		tp.setUid(TokenManager.getUserId());
+		techProjectService.saveTechProject(tp, TokenManager.getToken().getAid());
 		return res;
 	}
-	
+
 	/**
 	 * 科技项目申报详情
+	 * 
 	 * @return
 	 */
 	@RequestMapping(value = "/techProjectDetial", method = RequestMethod.POST)
-	public Result techProjectDetial(String pid){
+	public Result techProjectDetial(String pid) {
 		Result res = new Result();
-		res.setData(techProjectService.selectProjectDetail(pid));
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目ID"));
+		} else {
+			TechProjectDetailBo tpd = techProjectService.selectProjectDetail(pid);
+			if (null != tpd.getUid() && tpd.getUid().equals(TokenManager.getUserId())) {
+				res.setData(tpd);
+			} else {
+				res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目ID"));
+			}
+		}
 		return res;
 	}
-	
-	
+
 	/**
 	 * 科技项目状态流转
+	 * 
 	 * @param pid
 	 * @return
 	 */
 	@RequestMapping(value = "/techProjectLog", method = RequestMethod.POST)
-	public Result techProjectLog(String pid){
+	public Result techProjectLog(String pid) {
 		Result res = new Result();
-		res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		if (StringUtils.isBlank(pid)) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目ID"));
+			return res;
+		}
+		TechProject tp = techProjectService.selectByPrimaryKey(pid);
+		if (null != tp.getUid() && tp.getUid().equals(TokenManager.getUserId())){
+			res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技项目id"));
+		}
 		return res;
 	}
-	
+
 	/**
-	 * update科技项目 
+	 * update科技项目
+	 * 
 	 * @param t
 	 * @param l
 	 * @param recordTimeFormattedDate
@@ -103,12 +152,37 @@ public class TechProjectApiController extends BaseApiController{
 	 * @throws ParseException
 	 */
 	@RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
-	public Result updateTechProject(TechProject t) throws ParseException{
+	public Result updateTechProject(@Valid InputTechProject techProject, BindingResult bindingResult) {
 		Result res = new Result();
-		res.setData(techProjectService.updateTechProject(t, null, null));
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		
+		User curUser = TokenManager.getUserToken();
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		if (StringUtils.isBlank(techProject.getId())) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
+			return res;
+		}
+		
+		TechProject t = techProjectService.selectByPrimaryKey(techProject.getId());
+		if (null != t.getUid() && t.getUid().equals(curUser.getId())){
+			TechProject tp = new TechProject();
+			BeanUtils.copyProperties(techProject, tp);
+			res.setData(techProjectService.updateTechProject(tp, null, null));
+		} else {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报"));
+		}
 		return res;
 	}
-	
+
 	/**
 	 * 科技项目申报材料上传
 	 * 
@@ -119,11 +193,19 @@ public class TechProjectApiController extends BaseApiController{
 	@RequestMapping(value = "/upload", method = RequestMethod.POST)
 	public Result cognizanceFile(HttpServletRequest req, String uid) {
 		Result res = new Result();
+		if (!checkUserLogin(res)) {
+			return res;
+		}
+		User curUser = TokenManager.getUserToken();
+		if (!checkCertify(res, curUser)) {
+			return res;
+		}
+		
 		String sign = "tech_project";
 		res.setData(handleFile(res, "/techProject/", true, req, sign, uid));
 		return res;
 	}
-	
+
 	private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign,
 			String uid) {
 		List<MultipartFile> files = getFiles(req);
@@ -146,8 +228,5 @@ public class TechProjectApiController extends BaseApiController{
 		}
 		return fileName;
 	}
-	
-	
-	
 
 }

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

@@ -24,4 +24,6 @@ public interface TechProjectService {
 
 	int deleteByPrimaryKey(List<String> id);
 
+	TechProject selectByPrimaryKey(String id);
+
 }

+ 5 - 0
src/main/java/com/goafanti/techproject/service/impl/TechProjectServiceImpl.java

@@ -126,4 +126,9 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		return techProjectMapper.batchDeleteByPrimaryKey(id);
 	}
 
+	@Override
+	public TechProject selectByPrimaryKey(String id) {
+		return techProjectMapper.selectByPrimaryKey(id);
+	}
+
 }

+ 1 - 1
src/main/java/com/goafanti/user/service/UserService.java

@@ -30,7 +30,7 @@ public interface UserService {
 	Pagination<UserListBo> listUser(String mobile, String email, String[] createTime, Integer number,
 			String aftUsername, Integer auditStatus, Integer pNo, Integer pSize) throws ParseException;
 
-	Pagination<OrgListBo> listOrg(String mobile, String email, String[] createTime, Integer number, String unitName,
+	Pagination<OrgListBo> listOrg(String uid, String mobile, String email, String[] createTime, Integer number, String unitName,
 			Integer auditStatus, Integer pNo, Integer pSize) throws ParseException;
 
 }

+ 5 - 1
src/main/java/com/goafanti/user/service/impl/UserServiceImpl.java

@@ -150,7 +150,7 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 	
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<OrgListBo> listOrg(String mobile, String email, String[] pDate, Integer number,
+	public Pagination<OrgListBo> listOrg(String uid, String mobile, String email, String[] pDate, Integer number,
 			String aftUsername, Integer auditStatus, Integer pageNo, Integer pageSize) throws ParseException {
 		Map<String, Object> params = new HashMap<>();
 		Date pStart = null;
@@ -178,6 +178,10 @@ public class UserServiceImpl extends BaseMybatisDao<UserMapper> implements UserS
 			params.put("mobile", mobile);
 		}
 		
+		if (!StringUtils.isBlank(uid)){
+			params.put("uid", uid);
+		}
+		
 		if (!StringUtils.isBlank(email)){
 			params.put("email", email);
 		}

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

@@ -51,7 +51,7 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//afts.hnzhiming.com/1.0.11
+static.host=//afts.hnzhiming.com/1.0.12
 
 upload.path=/data/wwwroot/aft/upload
 upload.private.path=/data/upload

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

@@ -53,7 +53,7 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//afts.hnzhiming.com/1.0.11
+static.host=//afts.hnzhiming.com/1.0.12
 
 upload.path=/Users/xiaolong/Sites/upload
 upload.private.path=/Users/xiaolong/Sites/doc

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

@@ -51,4 +51,4 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//afts.hnzhiming.com/1.0.11
+static.host=//afts.hnzhiming.com/1.0.12

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

@@ -53,7 +53,7 @@ session.validate.timespan=18000000
 
 app.name=AFT
 
-static.host=//aftts.hnzhiming.com/1.0.11
+static.host=//aftts.hnzhiming.com/1.0.12
 
 upload.path=/data/aft/public/upload
 upload.private.path=/data/aft/private/upload