Parcourir la source

1.PC端和手机端目前只能收到退回的通知,人才超市资料核准通过的通知没有。
2.手机端退回通知需要显示是人才超市退回还是中国人保退回。可参考PC端退回通知。
3.投保单号格式调整(yyMMdd)+(XXX=今日第几单)-(XX=第几个月),共10位数。
4.我的消息通知内容增加具体描述,可参考微信端的通知消息。

tomatozq il y a 5 ans
Parent
commit
95b11ee9a9

+ 5 - 3
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.java

@@ -751,13 +751,15 @@ public class InsurancePolicyController {
         PojoUtils.map(srcPolicy,destPolicy);
 
         DateTime startTime = new DateTime(srcPolicy.getEndTime());
-        DateTime createTime = new DateTime(insuranceApplication.getCreateTime());
-
         destPolicy.setId(UUID.randomUUID().toString());
         destPolicy.setNo(srcPolicy.getNo()+1);
 
         DecimalFormat df = new DecimalFormat("00");
-        destPolicy.setPolicyNo(createTime.toString("yyyyMMddHHmmssSSS") + "-" + df.format(destPolicy.getNo()));
+
+        String policyNo = insuranceApplication.getPolicyNo();
+        String[] policyNoArr = policyNo.split("-");
+
+        destPolicy.setPolicyNo(policyNoArr[0] + "-" + df.format(destPolicy.getNo()));
 
         destPolicy.setStartTime(startTime.toDate());
         destPolicy.setEndTime(startTime.plusMonths(1).toDate());

+ 2 - 2
picc-admin-server/src/main/resources/application-dev.yml

@@ -19,8 +19,8 @@ pdf:
 weixin:
   appId: wxc0ddd6a415c535d9
   appSecret: 042fe6c9c970c1d9fe585dccfca89221
-  tokenUrl: "http://localhost:8086/weixin-middleware/token"
-  createQrCodeUrl: "http://localhost:8086/weixin-middleware/qrcode/create"
+  tokenUrl: "http://picc.jzrccs.com/weixin-middleware/token"
+  createQrCodeUrl: "http://picc.jzrccs.com/weixin-middleware/qrcode/create"
   sendTmplMsgUrl: "https://api.weixin.qq.com/cgi-bin/message/template/send"
   sendTmplId1: "oc6Kh7_ZkANmsUnl2keg-X2nUKRBkAwjnGI3z1gTodo"
 

+ 1 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/base/dao/TemplateMessageDAO.java

@@ -15,4 +15,5 @@ public interface TemplateMessageDAO {
 	int delete(String id);
 	List<TemplateMessage> list();
 	List<TemplateMessage> search(Map<String,Object> searchParams,List<Sort> sortList);
+    List<TemplateMessage> findByPolicyStatus(int value);
 }

+ 2 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/base/entity/TemplateMessage.java

@@ -19,6 +19,8 @@ import io.swagger.annotations.ApiModel;
 public class TemplateMessage {
     @ApiModelProperty(value = "主键")
 	private String id;
+	@ApiModelProperty(value = "审批状态")
+	private Integer policyStatus;
     @ApiModelProperty(value = "微信模板代码")
 	private String code;
     @ApiModelProperty(value = "标题")

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

@@ -1,5 +1,6 @@
 package com.jpsoft.picc.modules.base.service.impl;
 
+import java.security.Policy;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import javax.annotation.Resource;
@@ -125,38 +126,40 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 			Company company = companyDAO.get(insurancePolicy.getCompanyId());
 			CompanyUser companyUser = companyUserDAO.findByCompanyId(company.getId());
 
-			TemplateMessage templateMessage = templateMessageDAO.get(destPolicyStatus.getValue() + "");
+			List<TemplateMessage> templateMessageList = templateMessageDAO.findByPolicyStatus(destPolicyStatus.getValue());
 
-			if (templateMessage==null){
-				throw new Exception(destPolicyStatus.getText() + "对应模板消息不存在!");
-			}
-
-			List<Map> targetList = new ArrayList<>();
-
-			if (templateMessage.getTarget().equals("USER")) {
-				//发送给用户
-				Map<String, Object> userMap = new HashMap<>();
-				userMap.put("userId", companyUser.getId());
-				userMap.put("openId", companyUser.getOpenId());
+			for (TemplateMessage templateMessage : templateMessageList) {
+				if (templateMessage==null){
+					throw new Exception(destPolicyStatus.getText() + "对应模板消息不存在!");
+				}
 
-				targetList.add(userMap);
-			} else if (templateMessage.getTarget().equals("JZRCCS") || templateMessage.getTarget().equals("PICC")) {
-				List<User> userList = userDAO.findByRoleName(templateMessage.getTarget());
+				List<Map> targetList = new ArrayList<>();
 
-				for (User user : userList) {
+				if (templateMessage.getTarget().equals("USER")) {
+					//发送给用户
 					Map<String, Object> userMap = new HashMap<>();
-					userMap.put("userId", user.getId());
-					userMap.put("openId", user.getOpenId());
+					userMap.put("userId", companyUser.getId());
+					userMap.put("openId", companyUser.getOpenId());
 
 					targetList.add(userMap);
+				} else if (templateMessage.getTarget().equals("JZRCCS") || templateMessage.getTarget().equals("PICC")) {
+					List<User> userList = userDAO.findByRoleName(templateMessage.getTarget());
+
+					for (User user : userList) {
+						Map<String, Object> userMap = new HashMap<>();
+						userMap.put("userId", user.getId());
+						userMap.put("openId", user.getOpenId());
+
+						targetList.add(userMap);
+					}
 				}
-			}
 
-			for (Map map : targetList) {
-				String userId = (String) map.get("userId");
-				String openId = (String) map.get("openId");
+				for (Map map : targetList) {
+					String userId = (String) map.get("userId");
+					String openId = (String) map.get("openId");
 
-				sendMessage(userId, openId, templateMessage, insuranceApplication, insurancePolicy, companyUser,srcPolicyStatus, destPolicyStatus);
+					sendMessage(userId, openId,templateMessage, insuranceApplication, insurancePolicy, companyUser,srcPolicyStatus, destPolicyStatus);
+				}
 			}
 
 			result = true;
@@ -169,6 +172,17 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 		return result;
 	}
 
+	/**
+	 *
+	 * @param userId 接收消息用户编号
+	 * @param openId 接收消息用户微信openId
+	 * @param templateMessage 模板消息
+	 * @param insuranceApplication 投保申请单
+	 * @param insurancePolicy 投保单
+	 * @param companyUser 企业用户
+	 * @param srcPolicyStatus 审核前状态
+	 * @param destPolicyStatus 审核后状态
+	 */
 	private void sendMessage(String userId,String openId,
 							 TemplateMessage templateMessage,
 							 InsuranceApplication insuranceApplication,
@@ -179,6 +193,17 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 
 		Map<String,Object> contentVars = new HashMap<>();
 		contentVars.put("userName", companyUser.getUserName());
+
+		//todo 如果是退回显示是从哪个步骤退回
+		if (destPolicyStatus == PolicyStatus.Back){
+			if (srcPolicyStatus == PolicyStatus.PendingTrial) {
+				contentVars.put("approver", "人才超市");
+			}
+			else if(srcPolicyStatus == PolicyStatus.PendingRetrial){
+				contentVars.put("approver","中国人保");
+			}
+		}
+
 		content = VelocityHelper.format(content,contentVars);
 
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@@ -211,9 +236,11 @@ public class TemplateMessageServiceImpl implements TemplateMessageService {
 			message.setTitle(templateMessage.getTitle() + "-" + srcPolicyStatus.getText());
 		}
 
-		//20-中国人保审核,30-待缴费,50-待制单,60-待出单
-		if (destPolicyStatus.getValue()>=20 && destPolicyStatus.getValue()<=60) {
-			message.setContent(content + "<br/>" + destPolicyStatus.getText());
+		//todo 20-中国人保审核,50-待制单,60-待出单,调整发消息的内容
+		if (destPolicyStatus.getValue()==20
+		 || destPolicyStatus.getValue()==50
+		 || destPolicyStatus.getValue()==60) {
+			message.setContent("【" + destPolicyStatus.getText() +"】" + content);
 		}
 		else{
 			message.setContent(content);

+ 2 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/business/dao/InsuranceApplicationDAO.java

@@ -31,4 +31,6 @@ public interface InsuranceApplicationDAO {
     List<InsuranceApplication> findByDuration(String companyId, String definitionId, Date startTime, Date endTime,String[] status);
 
     List<InsuranceApplication> findByCombinePolicyId(String combinePolicyId);
+
+    long countByCreateTime(Date createTime);
 }

+ 8 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/business/service/InsuranceApplicationService.java

@@ -30,4 +30,12 @@ public interface InsuranceApplicationService {
     List<InsuranceApplication> findByDuration(String companyId, String definitionId, Date startTime, Date endTime,String[] status);
 
     List<InsuranceApplication> findByCombinePolicyId(String policyId);
+
+    /**
+     * 生成投保单号(yyMMdd)+(XXX=今日第几单)+(XX=第几个月)
+     * @param createTime
+     * @return
+     */
+    String generatePolicyNo(Date createTime,int num);
+    long countByCreateTime(Date createTime);
 }

+ 21 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/business/service/impl/InsuranceApplicationServiceImpl.java

@@ -10,6 +10,8 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -88,4 +90,23 @@ public class InsuranceApplicationServiceImpl implements InsuranceApplicationServ
     public List<InsuranceApplication> findByCombinePolicyId(String combinePolicyId) {
         return insuranceApplicationDAO.findByCombinePolicyId(combinePolicyId);
     }
+
+    @Override
+    public String generatePolicyNo(Date createTime,int num) {
+        //(yyMMdd)+(XXX=今日第几单)-(XX=第几个月)
+        long count = countByCreateTime(createTime)+1;
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
+        DecimalFormat df1 = new DecimalFormat("000");
+        DecimalFormat df2 = new DecimalFormat("00");
+
+        String policyNo = sdf.format(createTime) + df1.format(count) + "-" + df2.format(num);
+
+        return policyNo;
+    }
+
+    @Override
+    public long countByCreateTime(Date createTime) {
+        return insuranceApplicationDAO.countByCreateTime(createTime);
+    }
 }

+ 3 - 0
picc-common/src/main/resources/mapper/base/TemplateMessage.xml

@@ -78,4 +78,7 @@
             ${sort.name} ${sort.order}
         </foreach>
     </select>
+    <select id="findByPolicyStatus" resultMap="TemplateMessageMap">
+        select * from base_template_message where policy_status=#{policyStatus}
+    </select>
 </mapper>

+ 4 - 0
picc-common/src/main/resources/mapper/business/InsuranceApplication.xml

@@ -280,4 +280,8 @@
         ]]>
         order by create_time asc
     </select>
+    <select id="countByCreateTime" resultType="long">
+        select count(*) from business_insurance_application
+        where DateDiff(create_time,#{createTime})=0 and del_flag=0
+    </select>
 </mapper>

+ 6 - 1
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsuranceApplicationController.java

@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hpsf.Decimal;
 import org.jasig.cas.client.authentication.AttributePrincipal;
 import org.joda.time.DateTime;
 import org.joda.time.Interval;
@@ -36,6 +37,7 @@ import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.security.Policy;
+import java.text.DecimalFormat;
 import java.util.*;
 
 @Slf4j
@@ -465,7 +467,10 @@ public class InsuranceApplicationController {
 
                 DateTime createTime = DateTime.now();
                 insuranceApplication.setCreateTime(createTime.toDate());
-                insuranceApplication.setPolicyNo(createTime.toString("yyyyMMddHHmmssSSS") + "-01");
+
+                String policyNo = insuranceApplicationService.generatePolicyNo(createTime.toDate(),1);
+
+                insuranceApplication.setPolicyNo(policyNo);
 
                 if ("null".equals(insuranceApplication.getPolicyNo())){
                     insuranceApplication.setPolicyNo(null);

+ 5 - 0
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/pub/controller/PayController.java

@@ -194,6 +194,11 @@ public class PayController {
         return retMap;
     }
 
+    /**
+     * 合并投保单
+     * @param insuranceApplication
+     * @param firstPolicy
+     */
     private void processCombinePolicy(InsuranceApplication insuranceApplication,InsurancePolicy firstPolicy ) {
         if (firstPolicy != null) {
             //先更新状态为待制单