Pārlūkot izejas kodu

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

Merge Request: merge
Created By: @Antiloveg
Accepted By: @Antiloveg
URL: https://coding.net/t/aft/p/AFT/git/merge/134
Antiloveg 8 gadi atpakaļ
vecāks
revīzija
3be034689f

+ 35 - 14
schema/permission.sql

@@ -342,20 +342,20 @@ values
 
 insert into `permission`(`id`, `url`, `name`) 
 values
-(UUID(), '/api/admin/preview/patent', '文件预览--专利申请相关材料预览授权'), 
-(UUID(), '/api/admin/preview/copyright', '文件预览--软著相关材料(软著申请书、软著证书)预览授权'), 
-(UUID(), '/api/admin/preview/techProject', '文件预览--科技项目材料预览授权'), 
-(UUID(), '/api/admin/preview/techCenterDetail', '文件预览--产学研协议附件预览授权'), 
-(UUID(), '/api/admin/preview/activity', '文件预览--研发活动立项证明材料预览授权'), 
-(UUID(), '/api/admin/preview/activityCost', '文件预览--研发活动费用台帐预览授权'), 
-(UUID(), '/api/admin/preview/techProduct', '文件预览--高新技术产品台帐预览授权'), 
-(UUID(), '/api/admin/preview/intellectualProperty', '文件预览--知识产权证书及稿件预览授权'), 
-(UUID(), '/api/admin/preview/achievement', '文件预览--科技成果附件预览授权'), 
-(UUID(), '/api/admin/preview/ratepay', '文件预览--所得税纳税申报表预览授权'),
-(UUID(), '/api/admin/preview/finance', '文件预览--财务报表预览授权'), 
-(UUID(), '/api/admin/preview/humanResource', '文件预览--人力资源情况预览授权'), 
-(UUID(), '/api/admin/preview/honor', '文件预览--企业荣誉及其他证明材料预览授权'), 
-(UUID(), '/api/admin/preview/standard', '文件预览--标准制定情况附件预览授权');
+(UUID(), 'api/admin/preview/patent', '文件预览--专利申请相关材料预览授权'), 
+(UUID(), 'api/admin/preview/copyright', '文件预览--软著相关材料(软著申请书、软著证书)预览授权'), 
+(UUID(), 'api/admin/preview/techProject', '文件预览--科技项目材料预览授权'), 
+(UUID(), 'api/admin/preview/techCenterDetail', '文件预览--产学研协议附件预览授权'), 
+(UUID(), 'api/admin/preview/activity', '文件预览--研发活动立项证明材料预览授权'), 
+(UUID(), 'api/admin/preview/activityCost', '文件预览--研发活动费用台帐预览授权'), 
+(UUID(), 'api/admin/preview/techProduct', '文件预览--高新技术产品台帐预览授权'), 
+(UUID(), 'api/admin/preview/intellectualProperty', '文件预览--知识产权证书及稿件预览授权'), 
+(UUID(), 'api/admin/preview/achievement', '文件预览--科技成果附件预览授权'), 
+(UUID(), 'api/admin/preview/ratepay', '文件预览--所得税纳税申报表预览授权'),
+(UUID(), 'api/admin/preview/finance', '文件预览--财务报表预览授权'), 
+(UUID(), 'api/admin/preview/humanResource', '文件预览--人力资源情况预览授权'), 
+(UUID(), 'api/admin/preview/honor', '文件预览--企业荣誉及其他证明材料预览授权'), 
+(UUID(), 'api/admin/preview/standard', '文件预览--标准制定情况附件预览授权');
 
 insert into `permission`(`id`, `url`, `name`) 
 values
@@ -370,6 +370,27 @@ insert into `permission`(`id`, `url`, `name`)
 values
 (UUID(), 'api/admin/roles', '系统设置--获取角色下拉');
 
+insert into `permission`(`id`, `url`, `name`) 
+values
+(UUID(), 'api/admin/api/admin/auditStatus', '用户认证--获取认证下拉'),
+(UUID(), 'api/admin/userCertify/upload', '用户认证--上传认证资料(营业执照图片、组织机构代码证图片、上年度纳税申报表)'),
+(UUID(), 'api/admin/userCertify/userDetail', '用户认证--个人用户详情(审核员)'),
+(UUID(), 'api/admin/userCertify/updateUserDetail', '用户认证--审核个人用户信息(审核员)'),
+(UUID(), 'api/admin/userCertify/orgDetail', '用户认证--团体用户详情(审核员)'),
+(UUID(), 'api/admin/userCertify/updateOrgDetail', '用户认证--审核团体用户信息(审核员)');
+
+insert into `permission`(`id`, `url`, `name`) 
+values
+(UUID(), 'api/admin/summary/intellectualProperty', '高企信息汇总导出--获得知识产权数量'),
+(UUID(), 'api/admin/summary/intellectualPropertyList', '高企信息汇总导出--知识产权列表'),
+(UUID(), 'api/admin/summary/activity', '高企信息汇总导出--企业研发活动列表');
+
+insert into `permission`(`id`, `url`, `name`) 
+values
+(UUID(), 'api/admin/techproject/websiteUnit', '科技单位网址管理--已发起科技项目申报公司下拉');
+
+
+
 
 
 

+ 4 - 0
schema/role_init.sql

@@ -0,0 +1,4 @@
+INSERT INTO `role` (`id`, `role_name`, `role_type`) 
+VALUES ('1', '超级管理员', '999999'),
+VALUES ('2', '地区管理员', '99999'),
+VALUES ('3', '审核员', '9999');

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

@@ -46,6 +46,7 @@ import com.goafanti.techproject.bo.TechWebsiteListBo;
 import com.goafanti.techproject.service.TechProjectLogService;
 import com.goafanti.techproject.service.TechProjectService;
 import com.goafanti.techproject.service.TechWebsiteService;
+import com.goafanti.user.bo.OrgUnitNames;
 import com.goafanti.user.service.UserService;
 
 @Controller
@@ -63,13 +64,30 @@ public class AdminTechProjectApiController extends CertifyApiController {
 	private UserService				userService;
 	@Resource
 	private AdminService			adminService;
+	
+	/**
+	 * 科技网址申报公司下拉
+	 * @return
+	 */
+	@RequestMapping(value = "/websiteUnit", method = RequestMethod.GET)
+	public Result getWebsiteUnit(){
+		Result res = new Result();
+		List<OrgUnitNames> list = techProjectService.selectWebsiteUnitNames();
+		Map<String, String> map = new TreeMap<String, String>();
+		for (OrgUnitNames o : list) {
+			map.put(o.getUid(), o.getUnitName());
+		}
+		res.setData(map);
+		return res;
+	}
 
 
+	
 	/**
 	 * 咨询师下拉列表
 	 * 
 	 * @return
-	 */
+	*/
 	@RequestMapping(value = "/getConsultant", method = RequestMethod.GET)
 	public Result getConsultant() {
 		Result res = new Result();

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

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.goafanti.common.model.PatentInfo;
+import com.goafanti.patent.bo.PatentExpireBO;
 import com.goafanti.patent.bo.PatentInfoDetailBo;
 import com.goafanti.patent.bo.PatentRecieveSendBo;
 
@@ -37,5 +38,7 @@ public interface PatentInfoMapper {
 	Integer countPatentDone(String uid);
 
 	Integer countPatentUndone(String uid);
+
+	List<PatentExpireBO> selectExpireRecord();
 	
 }

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

@@ -4,6 +4,7 @@ import java.util.List;
 
 import com.goafanti.common.model.TechProject;
 import com.goafanti.techproject.bo.TechProjectDetailBo;
+import com.goafanti.user.bo.OrgUnitNames;
 
 public interface TechProjectMapper {
     int deleteByPrimaryKey(String id);
@@ -25,4 +26,6 @@ public interface TechProjectMapper {
 	Integer countTechProjectDone(String uid);
 
 	Integer countTechProjectUndone(String uid);
+
+	List<OrgUnitNames> selectWebsiteUnitNames(String principal);
 }

+ 10 - 0
src/main/java/com/goafanti/common/mapper/PatentInfoMapper.xml

@@ -968,5 +968,15 @@
 	   where uid = #{uid,jdbcType=VARCHAR}
 	   and deleted_sign = 0 and patent_state <![CDATA[ < ]]> 12 
   </select>
+  
+  <select id="selectExpireRecord"  resultType="com.goafanti.patent.bo.PatentExpireBO">	
+  	select p.id, p.uid, p.patent_name as patentName, 
+  	       p.patent_application_date as patentApplicationDate, oi.first_mobile as firstMobile
+  	from patent_info p 
+		LEFT JOIN patent_cost pc on p.id = pc.pid
+		LEFT JOIN organization_identity oi on oi.uid = p.uid
+	where p.deleted_sign = 0 and p.patent_state in (12, 13)
+	and pc.annual_fee_state = 0
+  </select>
 
 </mapper>

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

@@ -445,4 +445,20 @@
 	   where uid = #{uid,jdbcType=VARCHAR}
 	   and deleted_sign = 0 and state in (1,2,3,4,5,7)
   </select>
+  
+  <select id="selectWebsiteUnitNames" parameterType="java.lang.String" resultType="com.goafanti.user.bo.OrgUnitNames">
+  	select distinct(oi.uid), oi.unit_name as unitName 
+		from tech_project tp 
+		LEFT JOIN organization_identity oi on oi.uid = tp.uid
+	 <if test="_parameter != null">
+		LEFT JOIN tech_project_log tpl on tp.id = tpl.pid
+	</if>
+		where tp.deleted_sign = 0 
+	<if test="_parameter != null">
+		and tpl.principal = #{principal,jdbcType=VARCHAR}
+	</if>
+	 <if test="_parameter != null">
+		group by tp.id
+	</if> 
+  </select>
 </mapper>

+ 67 - 1
src/main/java/com/goafanti/common/task/PatentTask.java

@@ -1,20 +1,86 @@
 package com.goafanti.common.task;
 
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
 
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.patent.bo.PatentExpireBO;
+import com.goafanti.patent.service.PatentInfoService;
 
 @Component
 public class PatentTask {
+	@Resource
+	private PatentInfoService patentInfoService;
+	
+	private static final String LEAP_DAY = "02-29";
+	
+	private static final String LEAP_DAY_ADD = "03-01";
+
 	/**
 	 * "0 0 10 * * ?" 每天上午10点触发一次
 	 */
+
 	@Scheduled(cron = "0 0 10 * * ?")
 	public void run() {
 		LoggerUtils.debug(getClass(), "开始检查专利到期");
+		List<PatentExpireBO> peb = patentInfoService.selectExpireRecord();
+		if (null != peb && peb.size() > 0) {
+			for (PatentExpireBO p : peb) {
+				if (!StringUtils.isBlank(p.getFirstMobile()) && StringUtils.isNumeric(p.getFirstMobile())
+						&& null != p.getPatentApplicationDate()) {
+					 try {
+						if (disposeExprire(p)){
+							//TODO 发送短信
+						}
+					} catch (ParseException e) {
+					}
+				}
+			}
+		}
 	}
-
 	
+	private Boolean disposeExprire(PatentExpireBO peb) throws ParseException{
+		Date addYear = disposeAddYear(peb.getPatentApplicationDate());//申请日5年后
+		Calendar now = Calendar.getInstance();
+		if (addYear.getTime() - now.getTime().getTime() >= 0){
+			return disposeExprireDate(peb.getPatentApplicationDate(), now.getTime());
+		}
+		return Boolean.FALSE;
+	}
+	
+	private Boolean disposeExprireDate(Date apd, Date now){
+		String sApd = DateFormatUtils.format(apd, AFTConstants.YYYYMMDD).substring(5,9);
+		String sNow = DateFormatUtils.format(now, AFTConstants.YYYYMMDD).substring(5,9);
+		if (LEAP_DAY.equals(sApd)){
+			if (LEAP_DAY_ADD.equals(sNow)){
+				return Boolean.TRUE;
+			}
+		} else {
+			if (sApd.equals(sNow)){
+				return Boolean.TRUE;
+			}
+		}
+		return Boolean.FALSE;
+	}
+	
+	private Date disposeAddYear(Date s) throws ParseException{
+		String d = DateFormatUtils.format(s, AFTConstants.YYYYMMDD);
+		String suffix = d.substring(4, 9);
+		int year = Integer.parseInt(d.substring(0, 3));
+		int expireYear = year + 5;
+		String expireDate = expireYear + suffix;
+		return DateUtils.parseDate(expireDate, AFTConstants.YYYYMMDD);
+	}
+
 }

+ 2 - 0
src/main/java/com/goafanti/copyright/service/impl/CopyrightInfoServiceImpl.java

@@ -112,6 +112,8 @@ public class CopyrightInfoServiceImpl extends BaseMybatisDao<CopyrightInfoMapper
 			} else if (CopyrightStatus.getStatus(copyrightLog.getStatus()) == CopyrightStatus.CIRCULATION) {
 				copyrightInfo.setStatus(CopyrightStatus.DELIVERD.getCode());
 			}
+		} else {
+			copyrightInfo.setStatus(null);
 		}
 		copyrightInfoMapper.updateByPrimaryKeySelective(copyrightInfo);
 	}

+ 86 - 0
src/main/java/com/goafanti/patent/bo/PatentExpireBO.java

@@ -0,0 +1,86 @@
+package com.goafanti.patent.bo;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import com.goafanti.common.constant.AFTConstants;
+
+/**
+ * 专利年费缴费通知BO
+ */
+public class PatentExpireBO {
+	
+	private String id;
+	
+	private String uid;
+	
+	/**
+	 * 专利名称
+	 */
+	private String patentName;
+	
+	/**
+	 * 专利申请日
+	 */
+	private Date patentApplicationDate;
+	
+	/**
+	 * 第一联系人
+	 */
+	private String firstMobile;
+
+	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 getPatentName() {
+		return patentName;
+	}
+
+	public void setPatentName(String patentName) {
+		this.patentName = patentName;
+	}
+
+	public Date getPatentApplicationDate() {
+		return patentApplicationDate;
+	}
+
+	public void setPatentApplicationDate(Date patentApplicationDate) {
+		this.patentApplicationDate = patentApplicationDate;
+	}
+
+	public String getFirstMobile() {
+		return firstMobile;
+	}
+
+	public void setFirstMobile(String firstMobile) {
+		this.firstMobile = firstMobile;
+	}
+	
+	public String getPatentApplicationFormattedDate() {
+		if (this.patentApplicationDate == null) {
+			return null;
+		} else {
+			return DateFormatUtils.format(this.getPatentApplicationDate(), AFTConstants.YYYYMMDD);
+		}
+	}
+
+	public void setPatentApplicationFormattedDate(String patentApplicationFormattedDate) {
+
+	}
+	
+	
+}

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

@@ -6,6 +6,7 @@ import java.util.List;
 import com.goafanti.common.model.PatentInfo;
 import com.goafanti.common.model.PatentLog;
 import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.patent.bo.PatentExpireBO;
 import com.goafanti.patent.bo.PatentInfoDetailBo;
 import com.goafanti.patent.bo.PatentManageListBo;
 import com.goafanti.patent.bo.PatentNoticeOfCorrectionBo;
@@ -44,4 +45,6 @@ public interface PatentInfoService {
 
 	int batchCirculation(String[] ids, String recordTimeFormattedDate, PatentLog pl);
 
+	List<PatentExpireBO> selectExpireRecord();
+
 }

+ 9 - 0
src/main/java/com/goafanti/patent/service/impl/PatentInfoServiceImpl.java

@@ -41,6 +41,7 @@ import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.patent.bo.PatentExpireBO;
 import com.goafanti.patent.bo.PatentInfoDetailBo;
 import com.goafanti.patent.bo.PatentManageListBo;
 import com.goafanti.patent.bo.PatentNoticeOfCorrectionBo;
@@ -524,4 +525,12 @@ public class PatentInfoServiceImpl extends BaseMybatisDao<PatentInfoMapper> impl
 		noticeMapper.insert(n);
 	}
 
+	
+	
+	//专利年费到期
+	@Override
+	public List<PatentExpireBO> selectExpireRecord() {
+		return patentInfoMapper.selectExpireRecord();
+	}
+
 }

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

@@ -9,6 +9,7 @@ import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.techproject.bo.TechProjectClientListBo;
 import com.goafanti.techproject.bo.TechProjectDetailBo;
 import com.goafanti.techproject.bo.TechProjectManageListBo;
+import com.goafanti.user.bo.OrgUnitNames;
 
 public interface TechProjectService {
 
@@ -26,4 +27,6 @@ public interface TechProjectService {
 
 	TechProject selectByPrimaryKey(String id);
 
+	List<OrgUnitNames> selectWebsiteUnitNames();
+
 }

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

@@ -30,6 +30,7 @@ import com.goafanti.techproject.bo.TechProjectClientListBo;
 import com.goafanti.techproject.bo.TechProjectDetailBo;
 import com.goafanti.techproject.bo.TechProjectManageListBo;
 import com.goafanti.techproject.service.TechProjectService;
+import com.goafanti.user.bo.OrgUnitNames;
 
 @Service
 public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> implements TechProjectService {
@@ -187,4 +188,13 @@ public class TechProjectServiceImpl extends BaseMybatisDao<TechProjectMapper> im
 		noticeMapper.insert(n);
 	}
 
+	@Override
+	public List<OrgUnitNames> selectWebsiteUnitNames() {
+		String principal = null;
+		if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
+			principal = TokenManager.getAdminId();
+		}
+		return techProjectMapper.selectWebsiteUnitNames(principal);
+	}
+
 }