Browse Source

下月投保单自动提交前一天通知客户登录系统查看。

zhengqiang 5 years ago
parent
commit
df51977304

+ 23 - 5
picc-admin-server/src/main/java/com/jpsoft/picc/scheduled/FissionWantedTask.java

@@ -3,6 +3,7 @@ package com.jpsoft.picc.scheduled;
 
 import com.jpsoft.picc.modules.base.entity.InsuranceDefinition;
 import com.jpsoft.picc.modules.base.service.InsuranceDefinitionService;
+import com.jpsoft.picc.modules.base.service.TemplateMessageService;
 import com.jpsoft.picc.modules.business.entity.InsuranceApplication;
 import com.jpsoft.picc.modules.business.entity.InsurancePolicy;
 import com.jpsoft.picc.modules.business.entity.InsurancePolicyMember;
@@ -22,6 +23,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import java.security.Policy;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -39,6 +41,9 @@ public class FissionWantedTask {
     @Autowired
     private InsuranceDefinitionService insuranceDefinitionService;
 
+    @Autowired
+    private TemplateMessageService templateMessageService;
+
     //每5分钟执行一次
     @Scheduled(cron="0 0/5 * * * ?")
     public void staticCronTask() {
@@ -66,7 +71,7 @@ public class FissionWantedTask {
 
             int days = Days.daysBetween(DateTime.now(),startTime).getDays();
 
-            if (days>limit){
+            if (days>limit + 1){
                 continue;
             }
 
@@ -83,15 +88,28 @@ public class FissionWantedTask {
                 }
             }
 
+            String srcPolicyStatus = insurancePolicy.getStatus();
+            String destPolicyStatus;
+
             if(isUnChecked){
-                insurancePolicy.setStatus(PolicyStatus.PendingTrial.getValue() + "");
+                //下月投保有未审核人员则转人才超市核准
+                destPolicyStatus = PolicyStatus.PendingTrial.getValue() + "";
             }
             else{
-                insurancePolicy.setStatus(PolicyStatus.PendingMakePolicy.getValue() + "");
+                //下月投保都已审核人员则转待制单
+                destPolicyStatus = PolicyStatus.PendingMakePolicy.getValue() + "";
             }
 
-            insurancePolicyService.update(insurancePolicy);
-            affectCount++;
+            if (days==limit + 1){
+                //提前一天通知投保人
+                templateMessageService.sendTemplateMessage(insurancePolicy.getId(),
+                        PolicyStatus.valueOf(srcPolicyStatus),PolicyStatus.NotifyInAdvance);
+            }
+            else {
+                insurancePolicy.setStatus(destPolicyStatus);
+                insurancePolicyService.update(insurancePolicy);
+                affectCount++;
+            }
         }
 
         log.warn("已自动修改状态:" + affectCount + "条记录");

+ 8 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/base/service/impl/TemplateMessageServiceImpl.java

@@ -140,6 +140,7 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 					Map<String, Object> userMap = new HashMap<>();
 					userMap.put("userId", companyUser.getId());
 					userMap.put("openId", companyUser.getOpenId());
+					userMap.put("target", templateMessage.getTarget());
 
 					targetList.add(userMap);
 				} else if (templateMessage.getTarget().equals("JZRCCS") || templateMessage.getTarget().equals("PICC")) {
@@ -149,6 +150,7 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 						Map<String, Object> userMap = new HashMap<>();
 						userMap.put("userId", user.getId());
 						userMap.put("openId", user.getOpenId());
+						userMap.put("target", templateMessage.getTarget());
 
 						targetList.add(userMap);
 					}
@@ -157,6 +159,12 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 				for (Map map : targetList) {
 					String userId = (String) map.get("userId");
 					String openId = (String) map.get("openId");
+					String target = (String) map.get("target");
+
+					//如果是下月投保,则流程跳转到待制单环节时,不需要通知用户缴费成功
+					if (target.equals("USER") && destPolicyStatus.equals(PolicyStatus.PendingMakePolicy) && insurancePolicy.getNo()>1){
+						continue;
+					}
 
 					sendMessage(company.getName(),userId, openId,templateMessage, insuranceApplication, insurancePolicy, companyUser,srcPolicyStatus, destPolicyStatus);
 				}

+ 1 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/common/constant/PolicyStatus.java

@@ -9,6 +9,7 @@ public enum PolicyStatus {
     PendingTrial("人才超市核准",20),
     PendingRetrial("中国人保审核",30),
     PendingPay("待缴费",40),
+    NotifyInAdvance("提前通知",45),
     PendingMakePolicy("待制单",50),
     PendingOutPolicy("待出单",60),
     SendOutPolicy("已出单",70),