|
@@ -1,19 +1,27 @@
|
|
|
package com.jpsoft.picc.modules.business.controller;
|
|
|
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
+import cn.hutool.json.JSON;
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import com.github.pagehelper.Page;
|
|
|
+import com.jpsoft.picc.modules.base.entity.Company;
|
|
|
+import com.jpsoft.picc.modules.base.entity.CompanyUser;
|
|
|
import com.jpsoft.picc.modules.base.entity.InsuranceAgent;
|
|
|
import com.jpsoft.picc.modules.base.entity.InsuranceDefinitionLimit;
|
|
|
+import com.jpsoft.picc.modules.base.service.CompanyService;
|
|
|
+import com.jpsoft.picc.modules.base.service.CompanyUserService;
|
|
|
import com.jpsoft.picc.modules.base.service.InsuranceAgentService;
|
|
|
import com.jpsoft.picc.modules.base.service.InsuranceDefinitionLimitService;
|
|
|
import com.jpsoft.picc.modules.business.entity.*;
|
|
|
import com.jpsoft.picc.modules.business.service.*;
|
|
|
import com.jpsoft.picc.modules.common.config.PdfConfig;
|
|
|
+import com.jpsoft.picc.modules.common.config.WeixinConfig;
|
|
|
import com.jpsoft.picc.modules.common.constant.PolicyStatus;
|
|
|
import com.jpsoft.picc.modules.common.dto.MessageResult;
|
|
|
import com.jpsoft.picc.modules.common.dto.Sort;
|
|
|
import com.jpsoft.picc.modules.common.utils.ItextPDFUtil;
|
|
|
import com.jpsoft.picc.modules.common.utils.PojoUtils;
|
|
|
+import com.jpsoft.picc.modules.common.utils.WeixinUtil;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiImplicitParams;
|
|
@@ -31,7 +39,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import java.io.File;
|
|
|
+import java.security.Policy;
|
|
|
import java.util.*;
|
|
|
+import java.util.concurrent.Executor;
|
|
|
|
|
|
@RestController
|
|
|
@RequestMapping("/insurancePolicy")
|
|
@@ -60,6 +70,15 @@ public class InsurancePolicyController {
|
|
|
@Autowired
|
|
|
private InsuranceDefinitionLimitService insuranceDefinitionLimitService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CompanyService companyService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CompanyUserService companyUserService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private WeixinConfig weixinConfig;
|
|
|
+
|
|
|
@ApiOperation(value="创建空记录")
|
|
|
@GetMapping("create")
|
|
|
public MessageResult<InsurancePolicy> create(){
|
|
@@ -336,36 +355,67 @@ public class InsurancePolicyController {
|
|
|
@ApiImplicitParam(name="opinion",value = "意见",required = true,paramType = "query")
|
|
|
})
|
|
|
public MessageResult<Integer> firstApproval(String applicationId,String policyId,String processStatus,String opinion, @RequestAttribute String subject){
|
|
|
-
|
|
|
//当前用户ID
|
|
|
System.out.println(subject);
|
|
|
|
|
|
MessageResult<Integer> msgResult = new MessageResult<>();
|
|
|
|
|
|
- String status ="";
|
|
|
+ try {
|
|
|
+ PolicyStatus policyStatus;
|
|
|
|
|
|
- if(processStatus.equals("正常")){
|
|
|
- //30
|
|
|
- status = String.valueOf(PolicyStatus.PendingRetrial.getValue());
|
|
|
- }
|
|
|
- else{
|
|
|
- //15
|
|
|
- status = String.valueOf(PolicyStatus.Back.getValue());
|
|
|
- }
|
|
|
+ if (processStatus.equals("正常")) {
|
|
|
+ //30
|
|
|
+ policyStatus = PolicyStatus.PendingRetrial;
|
|
|
+ } else {
|
|
|
+ //15
|
|
|
+ policyStatus = PolicyStatus.Back;
|
|
|
+ }
|
|
|
|
|
|
- int affectCount = approval(applicationId,policyId,processStatus,opinion,status ,subject);
|
|
|
+ int affectCount = approval(applicationId, policyId, processStatus, opinion, policyStatus.getValue() + "", subject);
|
|
|
|
|
|
- if(affectCount > 0){
|
|
|
- //修改花名册人员状态为初审
|
|
|
- check(policyId,"1",subject);
|
|
|
- }
|
|
|
+ if (affectCount > 0) {
|
|
|
+ //修改花名册人员状态为初审
|
|
|
+ check(policyId, "1", subject);
|
|
|
+ }
|
|
|
|
|
|
- msgResult.setResult(true);
|
|
|
- msgResult.setData(affectCount);
|
|
|
+ //发送微信通知
|
|
|
+ sendWeixinMessage(applicationId, policyStatus);
|
|
|
+
|
|
|
+ msgResult.setResult(true);
|
|
|
+ msgResult.setData(affectCount);
|
|
|
+ }
|
|
|
+ catch (Exception ex){
|
|
|
+ logger.error(ex.getMessage(),ex);
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
|
|
|
return msgResult;
|
|
|
}
|
|
|
|
|
|
+ private void sendWeixinMessage(String applicationId, PolicyStatus policyStatus) {
|
|
|
+ InsuranceApplication insuranceApplication = insuranceApplicationService.get(applicationId);
|
|
|
+ Company company = companyService.get(insuranceApplication.getCompanyId());
|
|
|
+ CompanyUser companyUser = companyUserService.findByCompanyId(company.getId());
|
|
|
+
|
|
|
+ if (companyUser!=null && StringUtils.isNotEmpty(companyUser.getOpenId())){
|
|
|
+ JSONObject jsonObject = new JSONObject();
|
|
|
+
|
|
|
+ JSONObject userNameObj = new JSONObject();
|
|
|
+ userNameObj.put("value",companyUser.getUserName());
|
|
|
+
|
|
|
+ jsonObject.put("userName",userNameObj);
|
|
|
+
|
|
|
+ JSONObject statusObj = new JSONObject();
|
|
|
+ statusObj.put("value",policyStatus.getText());
|
|
|
+
|
|
|
+ jsonObject.put("status",statusObj);
|
|
|
+
|
|
|
+ new Thread(()->WeixinUtil.sendTemplateMessage(weixinConfig,
|
|
|
+ companyUser.getOpenId(),
|
|
|
+ weixinConfig.getSendTmplId1(), jsonObject)
|
|
|
+ ).start();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
@ApiOperation(value="PICC复审")
|
|
|
@RequestMapping(value = "secondApproval",method = RequestMethod.POST)
|
|
@@ -382,38 +432,48 @@ public class InsurancePolicyController {
|
|
|
|
|
|
MessageResult<Integer> msgResult = new MessageResult<>();
|
|
|
|
|
|
- String status ="";
|
|
|
-
|
|
|
- if(processStatus.equals("正常")){
|
|
|
- //40
|
|
|
- InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
- if(insurancePolicy != null){
|
|
|
- int no = insurancePolicy.getNo();
|
|
|
- if(no > 1){
|
|
|
- //待制单
|
|
|
- status = String.valueOf(PolicyStatus.PendingMakePolicy.getValue());
|
|
|
- }else{
|
|
|
- //待缴费
|
|
|
- status = String.valueOf(PolicyStatus.PendingPay.getValue());
|
|
|
+ try {
|
|
|
+ PolicyStatus policyStatus;
|
|
|
+
|
|
|
+ if (processStatus.equals("正常")) {
|
|
|
+ //40
|
|
|
+ InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
+
|
|
|
+ if (insurancePolicy != null) {
|
|
|
+ int no = insurancePolicy.getNo();
|
|
|
+ if (no > 1) {
|
|
|
+ //待制单
|
|
|
+ policyStatus = PolicyStatus.PendingMakePolicy;
|
|
|
+ } else {
|
|
|
+ //待缴费
|
|
|
+ policyStatus = PolicyStatus.PendingPay;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ throw new Exception("下月投保单不存在");
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //20
|
|
|
+ policyStatus = PolicyStatus.PendingTrial;
|
|
|
}
|
|
|
|
|
|
- //status = String.valueOf(PolicyStatus.PendingPay.getValue());
|
|
|
- }
|
|
|
- else{
|
|
|
- //20
|
|
|
- status = String.valueOf(PolicyStatus.PendingTrial.getValue());
|
|
|
- }
|
|
|
+ int affectCount = approval(applicationId, policyId, processStatus, opinion, policyStatus.getValue() + "", subject);
|
|
|
|
|
|
- int affectCount = approval(applicationId,policyId,processStatus,opinion,status ,subject);
|
|
|
+ if (affectCount > 0) {
|
|
|
+ //修改花名册人员状态为初审
|
|
|
+ check(policyId, "2", subject);
|
|
|
+ }
|
|
|
|
|
|
- if(affectCount > 0){
|
|
|
- //修改花名册人员状态为初审
|
|
|
- check(policyId,"2",subject);
|
|
|
- }
|
|
|
+ //发送微信通知
|
|
|
+ sendWeixinMessage(applicationId, policyStatus);
|
|
|
|
|
|
- msgResult.setResult(true);
|
|
|
- msgResult.setData(affectCount);
|
|
|
+ msgResult.setResult(true);
|
|
|
+ msgResult.setData(affectCount);
|
|
|
+ }
|
|
|
+ catch (Exception ex){
|
|
|
+ logger.error(ex.getMessage(),ex);
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
+ msgResult.setResult(false);
|
|
|
+ }
|
|
|
|
|
|
return msgResult;
|
|
|
}
|
|
@@ -432,54 +492,55 @@ public class InsurancePolicyController {
|
|
|
|
|
|
//当前用户ID
|
|
|
System.out.println(subject);
|
|
|
-
|
|
|
MessageResult<Integer> msgResult = new MessageResult<>();
|
|
|
|
|
|
- String status ="";
|
|
|
-
|
|
|
- if(processStatus.equals("正常")){
|
|
|
- //70
|
|
|
- status = String.valueOf(PolicyStatus.SendOutPolicy.getValue());
|
|
|
- }
|
|
|
- else{
|
|
|
- //50
|
|
|
- status = String.valueOf(PolicyStatus.PendingMakePolicy.getValue());
|
|
|
- }
|
|
|
+ try {
|
|
|
+// String status ="";
|
|
|
+ PolicyStatus policyStatus;
|
|
|
|
|
|
- if(StringUtils.isNotEmpty(insurancePolicyFile)){
|
|
|
+ if (processStatus.equals("正常")) {
|
|
|
+ //70
|
|
|
+ policyStatus = PolicyStatus.SendOutPolicy;
|
|
|
+ } else {
|
|
|
+ //50
|
|
|
+ policyStatus = PolicyStatus.PendingMakePolicy;
|
|
|
+ }
|
|
|
|
|
|
- InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
+ if (StringUtils.isNotEmpty(insurancePolicyFile)) {
|
|
|
+ InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
|
|
|
|
|
|
- insurancePolicy.setInsurancePolicyFile(insurancePolicyFile);
|
|
|
+ insurancePolicy.setInsurancePolicyFile(insurancePolicyFile);
|
|
|
|
|
|
- insurancePolicyService.update(insurancePolicy);
|
|
|
- }
|
|
|
+ insurancePolicyService.update(insurancePolicy);
|
|
|
+ }
|
|
|
|
|
|
- int affectCount = approval(applicationId,policyId,processStatus,opinion,status ,subject);
|
|
|
+ int affectCount = approval(applicationId, policyId, processStatus, opinion, policyStatus.getValue() + "", subject);
|
|
|
|
|
|
- boolean flag = false;
|
|
|
- String msg = "";
|
|
|
+ boolean flag = false;
|
|
|
+ String msg = "";
|
|
|
|
|
|
- if(affectCount > 0 ){
|
|
|
- if(processStatus.equals("正常")) {
|
|
|
- //生成下月投保单
|
|
|
- try {
|
|
|
+ if (affectCount > 0) {
|
|
|
+ if (processStatus.equals("正常")) {
|
|
|
+ //生成下月投保单
|
|
|
generatePolicyInTrans(applicationId, policyId, subject);
|
|
|
+
|
|
|
+ //发送微信通知
|
|
|
+ sendWeixinMessage(applicationId, policyStatus);
|
|
|
+ } else {
|
|
|
flag = true;
|
|
|
- } catch (Exception ex) {
|
|
|
- flag = false;
|
|
|
- msg = ex.getMessage();
|
|
|
}
|
|
|
}
|
|
|
- else{
|
|
|
- flag = true;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
+ msgResult.setResult(flag);
|
|
|
+ msgResult.setData(affectCount);
|
|
|
+ msgResult.setMessage(msg);
|
|
|
+ }
|
|
|
+ catch (Exception ex) {
|
|
|
+ logger.error(ex.getMessage(),ex);
|
|
|
|
|
|
- msgResult.setResult(flag);
|
|
|
- msgResult.setData(affectCount);
|
|
|
- msgResult.setMessage(msg);
|
|
|
+ msgResult.setResult(false);
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
|
|
|
return msgResult;
|
|
|
}
|
|
@@ -543,35 +604,44 @@ public class InsurancePolicyController {
|
|
|
|
|
|
MessageResult<Integer> msgResult = new MessageResult<>();
|
|
|
|
|
|
- String status ="";
|
|
|
+ try {
|
|
|
+// String status ="";
|
|
|
+ PolicyStatus policyStatus;
|
|
|
|
|
|
- if(processStatus.equals("正常")){
|
|
|
- //60
|
|
|
- status = String.valueOf(PolicyStatus.PendingOutPolicy.getValue());
|
|
|
- }
|
|
|
- else{
|
|
|
- //40
|
|
|
- status = String.valueOf(PolicyStatus.PendingPay.getValue());
|
|
|
- }
|
|
|
+ if (processStatus.equals("正常")) {
|
|
|
+ //60
|
|
|
+ policyStatus = PolicyStatus.PendingOutPolicy;
|
|
|
+ } else {
|
|
|
+ //40
|
|
|
+ policyStatus = PolicyStatus.PendingPay;
|
|
|
+ }
|
|
|
|
|
|
- InsurancePolicy item = insurancePolicyService.get(policyId);
|
|
|
+ InsurancePolicy item = insurancePolicyService.get(policyId);
|
|
|
|
|
|
- item.setAccountBank(accountBank);
|
|
|
- item.setIssuingBank(issuingBank);
|
|
|
- item.setSinglNumber(singlNumber);
|
|
|
- item.setTransferTime(new Date());
|
|
|
- item.setAgentId(agentId);
|
|
|
+ item.setAccountBank(accountBank);
|
|
|
+ item.setIssuingBank(issuingBank);
|
|
|
+ item.setSinglNumber(singlNumber);
|
|
|
+ item.setTransferTime(new Date());
|
|
|
+ item.setAgentId(agentId);
|
|
|
|
|
|
- int affectCount = insurancePolicyService.update(item);
|
|
|
+ int affectCount = insurancePolicyService.update(item);
|
|
|
|
|
|
- int affectCount1 = 0;
|
|
|
+ int affectCount1 = 0;
|
|
|
|
|
|
- if(affectCount>0){
|
|
|
- affectCount1 = approval(applicationId,policyId,processStatus,opinion,status ,subject);
|
|
|
- }
|
|
|
+ if (affectCount > 0) {
|
|
|
+ affectCount1 = approval(applicationId, policyId, processStatus, opinion, policyStatus.getValue() + "", subject);
|
|
|
+ }
|
|
|
|
|
|
- msgResult.setResult(true);
|
|
|
- msgResult.setData(affectCount1);
|
|
|
+ //发送微信通知
|
|
|
+ sendWeixinMessage(applicationId, policyStatus);
|
|
|
+
|
|
|
+ msgResult.setResult(true);
|
|
|
+ msgResult.setData(affectCount1);
|
|
|
+ }
|
|
|
+ catch (Exception ex){
|
|
|
+ msgResult.setResult(false);
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
|
|
|
return msgResult;
|
|
|
}
|