Explorar o código

定时任务修改

anderx %!s(int64=4) %!d(string=hai) anos
pai
achega
7ca52a7021

+ 6 - 0
src/main/java/com/goafanti/common/dao/PatentPaymentDetailsMapper.java

@@ -2,6 +2,8 @@ package com.goafanti.common.dao;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.goafanti.common.model.PatentPaymentDetails;
 
 public interface PatentPaymentDetailsMapper {
@@ -56,4 +58,8 @@ public interface PatentPaymentDetailsMapper {
 	void insertBatch(List<PatentPaymentDetails> list);
 
 	List<PatentPaymentDetails> selectByPid(Integer id);
+
+	void deleteByPid(Integer pid);
+
+	PatentPaymentDetails selectByPidAndYear(@Param("pid") Integer pid, @Param("year")Integer year);
 }

+ 14 - 18
src/main/java/com/goafanti/common/mapper/PatentNewMapper.xml

@@ -418,27 +418,23 @@
 		where id = #{id,jdbcType=INTEGER}
 	</update>
 
-	<select id="selectPatentNewList"
-		resultType="com.goafanti.patent.bo.PatentNewBo">
-		  select a.id,a.patent_no as patentNo,a.name,a.type,a.status,a.holders
-		,a.inventor ,a.annual_fee_status annualFeeStatus,
-		date_format(a.apply_date,'%Y-%m-%d') as
-		applyDates,a.uid,a.salesman_remind salesmanRemind,
-		date_format(a.authorization_date ,'%Y-%m-%d ')as
-		authorizationDates,a.province,a.years ,
-		a.applicant,a.contact_mobile as contactMobile,a.email,a.certificate_url as certificateUrl,
-		date_format(a.create_time,'%Y-%m-%d %H:%I:%S') as
-		createTimeS,a.apply_date as applyDate,
-		date_format(a.update_time,'%Y-%m-%d %H:%I:%S') as updateTimeS,b.name
-		as aname,tm.buyer_name userName,
+	<select id="selectPatentNewList" resultType="com.goafanti.patent.bo.PatentNewBo">
+		select a.id,a.patent_no as patentNo,a.name,a.type,a.status,a.holders,a.inventor,
+		a.annual_fee_status annualFeeStatus,date_format(a.apply_date,'%Y-%m-%d') applyDates,
+		a.uid,a.salesman_remind salesmanRemind,a.email,a.province,a.years ,a.certificate_url as certificateUrl,
+		date_format(a.authorization_date ,'%Y-%m-%d ')authorizationDates,
+		a.applicant,a.contact_mobile as contactMobile,date_format(a.end_date,'%Y-%m-%d') as endDates,
+		date_format(a.create_time,'%Y-%m-%d %H:%I:%S') as createTimeS,a.apply_date as applyDate,
+		date_format(a.update_time,'%Y-%m-%d %H:%I:%S') as updateTimeS,b.name as aname,tm.buyer_name userName,
 		a.patent_amount as patentAmount,a.delaying_amount delayingAmount ,a.recovery_amount
-		recoveryAmount, c.commodity_name commodityName ,
-		c.id tid,tm.salesman_name salesmanName ,c.receiver_name
-		techName,tm.dep_name depName,ia.name inputName
+		recoveryAmount, c.commodity_name projectName , c.id tid,tm.salesman_name salesmanName ,
+		c.receiver_name techName, tm.dep_name depName,ia.name inputName
 		from patent_new a left join admin b on a.aid=b.id
-		left join t_order_task c on a.tid =c.id left join t_order_mid tm on
+		left join t_order_task c
+		on a.tid =c.id left join t_order_mid tm on
 		c.order_no =tm.order_no
-		left join admin ia on a.input_id =ia.id
+		left
+		join admin ia on a.input_id =ia.id
 		<if test="shiro ==1">
 			left join admin e on e.department_id=c.id
 		</if>

+ 11 - 0
src/main/java/com/goafanti/common/mapper/PatentPaymentDetailsMapper.xml

@@ -173,4 +173,15 @@
     from patent_payment_details
     where pid = #{pid,jdbcType=INTEGER}
   </select>
+  <delete id="deleteByPid" >
+  delete from patent_payment_details
+    where pid = #{pid,jdbcType=INTEGER}
+  </delete>
+  
+  <select id="selectByPidAndYear" resultMap="BaseResultMap">
+     select 
+    <include refid="Base_Column_List" />
+    from patent_payment_details
+    where pid = #{pid,jdbcType=INTEGER} and years= #{year,jdbcType=INTEGER}
+  </select>
 </mapper>

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

@@ -78,6 +78,7 @@ public class PatentTask {
 			List<String> s3=new ArrayList<String>();
 			List<String> s4=new ArrayList<String>();
 			List<String> s5=new ArrayList<String>();
+			List<String> s6=new ArrayList<String>();
 			for (PatentNewBo p : l) {
 				// 申请时间
 				Calendar end = Calendar.getInstance();
@@ -114,6 +115,8 @@ public class PatentTask {
 					flag=true;
 					status = 5;
 					s4.add(p.getId().toString());
+				}else if(count<0&&p.getStatus()==5) {
+					s6.add(p.getId().toString());
 				}
 				if (flag) {
 					Notice n = new Notice();
@@ -150,7 +153,6 @@ public class PatentTask {
 						PatentNewLog pl = new PatentNewLog();
 						String str = StrToString(str2,end.getTime(),status);
 						pl.setContent(str);
-						System.out.println(str);
 						pl.setCreateTime(new Date());
 						pl.setPid(p.getId());
 						logList.add(pl);
@@ -169,6 +171,7 @@ public class PatentTask {
 			updatePatentNew(s3,3);
 			updatePatentNew(s4,4);
 			updatePatentNew(s5,5);
+			pushPatentNewStatus(s6);
 			
 		} catch (Exception e) {
 			LoggerUtils.debug(getClass(), "=====================专利提醒失败======================");
@@ -182,6 +185,22 @@ public class PatentTask {
 	}
 
 
+	private void pushPatentNewStatus(List<String> s6) throws InterruptedException {
+		List<PatentNewLog> logs = new ArrayList<>();
+		for (String string : s6) {
+			PatentNewLog log=new PatentNewLog();
+			log.setContent("超过时间重置状态并计算下一年");
+			log.setCreateTime(new Date());
+			log.setPid(Integer.valueOf(string));
+			logs.add(log);
+		}
+		pushPatentLog(logs);
+		patentNewService.pushResetPatentNew(s6);
+	}
+
+
+
+
 	private void pushNotice(List<Notice> nlist) throws InterruptedException {
 		if (!nlist.isEmpty()) {
 			List<Notice> newList = new ArrayList<>();

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

@@ -42,4 +42,7 @@ public interface PatentNewService {
 
 	void updateBatchStatusByid(List<String> l2, Integer status);
 
+	void pushResetPatentNew(List<String> list);
+
+
 }

+ 28 - 2
src/main/java/com/goafanti/patent/service/impl/PatentNewServiceImpl.java

@@ -84,8 +84,8 @@ public class PatentNewServiceImpl  extends BaseMybatisDao<PatentNewMapper> imple
 		pl.setContent(a.getName() + "修改了专利内容。");
 		if (p.getApplyDates()!=null) {
 			PatentNew pn=patentNewMapper.selectByPrimaryKey(p.getId());
-			String date=DateUtils.formatDate(pn.getApplyDate(), AFTConstants.YYYYMMDD);
-			if (date.equals(p.getApplyDates())) {
+			
+			if (p.getApplyDate().getTime()!=pn.getApplyDate().getTime()) {
 				p.setYears(getyear(p));
 				p.setType(pn.getType());
 				p.setTid(pn.getTid());
@@ -313,6 +313,7 @@ public class PatentNewServiceImpl  extends BaseMybatisDao<PatentNewMapper> imple
 			Calendar apply =Calendar.getInstance();
 			apply.setTime(trb.getApplyDate());
 			List<PatentPaymentDetails> list =new ArrayList<PatentPaymentDetails>();
+			
 			for (int i = 1; i < 21; i++) {
 				PatentPaymentDetails pd=new PatentPaymentDetails();
 				if ((trb.getType()==0||trb.getType()==2)&&i<11) {
@@ -324,6 +325,7 @@ public class PatentNewServiceImpl  extends BaseMybatisDao<PatentNewMapper> imple
 					list.add(pd);
 				}
 			}
+			patentPaymentDetailsMapper.deleteByPid(trb.getId());
 			patentPaymentDetailsMapper.insertBatch(list);
 			return list;
 		}
@@ -445,4 +447,28 @@ public class PatentNewServiceImpl  extends BaseMybatisDao<PatentNewMapper> imple
 		patentNewMapper.updateBatchByid(l2,status,null);
 		
 	}
+	
+	/**
+	 * 超过时间重置到第二年
+	 */
+	@Override
+	public void pushResetPatentNew(List<String> list) {
+		for (String ids : list) {
+			PatentNew pn=patentNewMapper.selectByPrimaryKey(Integer.valueOf(ids));
+			int year=pn.getYears()+1;
+			PatentPaymentDetails ppd=patentPaymentDetailsMapper.selectByPidAndYear(pn.getId(),year);
+			if (ppd==null) {
+				sumYears(pn);
+				ppd=patentPaymentDetailsMapper.selectByPidAndYear(pn.getId(),year);
+			}
+			PatentNew n=new PatentNew();
+			n.setId(pn.getId());
+			n.setStatus(0);
+			n.setSalesmanRemind(0);
+			n.setYears(ppd.getYears());
+			n.setEndDate(ppd.getEndDate());
+			n.setPatentAmount(sumAmout(pn.getType(),pn.getTid(),pn.getYears()));
+			patentNewMapper.updateByPrimaryKeySelective(n);
+		}
+	}
 }