Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/test'

y 2 anni fa
parent
commit
16cb4bf45a

+ 22 - 0
src/main/java/com/ydtech/constants/enums/dict/insurance/NatureOfVehicleUse.java

@@ -37,4 +37,26 @@ public enum NatureOfVehicleUse implements IBaseEnum {
         return null;
     }
 
+    /**
+     * 获取营业非营业属性
+     *
+     * @param code           车辆使用性质 编码
+     * @param vehicleUseCode 车辆用途 编码
+     * @return 车辆用途介绍
+     */
+    public static String getNatureOfVehicleUse(String code, String vehicleUseCode) {
+        String desc = "";
+        try {
+            if (NatureOfVehicleUse.NOVU_01.getCode().equals(code)) {
+                BusinessVehicleUse businessVehicleUse = BusinessVehicleUse.valueOf(vehicleUseCode);
+                desc = businessVehicleUse.getDesc();
+            } else if (NatureOfVehicleUse.NOVU_02.getCode().equals(code)) {
+                OutOfBusinessVehicleUse outOfBusinessVehicleUse = OutOfBusinessVehicleUse.valueOf(vehicleUseCode);
+                desc = outOfBusinessVehicleUse.getDesc();
+            }
+        }catch (Exception ignored){}
+        return desc;
+    }
+
+
 }

+ 6 - 0
src/main/java/com/ydtech/modules/ins/model/InsOrdersExcel.java

@@ -40,6 +40,9 @@ public class InsOrdersExcel {
     @ExcelProperty(value = "座位数")
     private String seatCount;
 
+    @ExcelProperty(value = "核定载质量")
+    private String limitLoad;
+
     @ExcelProperty(value = "是否过户")
     private String transferFlag;
 
@@ -106,6 +109,9 @@ public class InsOrdersExcel {
     @ExcelIgnore
     private JSONArray kindInfo;
 
+    @ExcelProperty(value = "机动车损失险")
+    private String damage;
+
     @ExcelProperty(value = "第三责任险")
     private String third;
 

+ 23 - 25
src/main/java/com/ydtech/modules/order/controller/QrCodeController.java

@@ -1,5 +1,7 @@
 package com.ydtech.modules.order.controller;
 
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrderQrCode;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -14,13 +16,10 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -59,9 +58,9 @@ public class QrCodeController {
             QrCodeVo qrCodeVo = new QrCodeVo();
             String qrCodeUrl = "";
             //是否是太平洋保险 大家财险
-            if("TPIC1000000".equals(insAreaCompany.getCompanyId()) || "DJPC1000000".equals(insAreaCompany.getCompanyId())){
+            if ("TPIC1000000".equals(insAreaCompany.getCompanyId()) || "DJPC1000000".equals(insAreaCompany.getCompanyId())) {
                 qrCodeUrl = insAreaCompany.getPaymentLink();
-            }else{
+            } else {
                 qrCodeUrl = qrCodeGenAddress + "?areaCompanyId=" + areaCompanyId;
             }
 
@@ -94,42 +93,39 @@ public class QrCodeController {
 
     @PostMapping(value = "/destructionQrCode")
     @ApiOperation(value = "销毁二维码")
-    public ModelAndView destructionQrCode(String areaCompanyId) {
+    public HttpResult destructionQrCode(String areaCompanyId) {
         boolean b = insOrderQrCodeService.updateQrCode(areaCompanyId, 0);
-        ModelAndView modelAndView = new ModelAndView(new MappingJackson2JsonView());
         if (b) {
-            modelAndView.addObject("code", 200);
-            modelAndView.addObject("data", "");
-            modelAndView.addObject("msg", "二维码销毁成功");
-        } else {
-            modelAndView.addObject("code", 500);
-            modelAndView.addObject("data", "");
-            modelAndView.addObject("msg", "二维码销毁失败");
+            return HttpResult.ok("二维码销毁成功");
         }
-        return modelAndView;
+        throw new SystemException("二维码销毁失败");
     }
 
     @GetMapping(value = "/index")
     @ApiOperation(value = "扫描二维码地址")
     public String index(String areaCompanyId) throws IOException {
         InsOrderQrCode insOrderQrCode = insOrderQrCodeService.getOne(areaCompanyId);
+        if (insOrderQrCode == null) {
+            //重定向到错误页面中
+            return "redirect:/order/qrCode/error";
+        }
+
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         String qrcodeCreateTimeStr = dateFormat.format(insOrderQrCode.getCreatetime());
         LocalDate qrcodeCreateTime = LocalDate.parse(qrcodeCreateTimeStr);
         LocalDate currentDate = LocalDate.now();
-        if(Math.abs(currentDate.toEpochDay() - qrcodeCreateTime.toEpochDay()) >= 1){
+
+        if (Math.abs(currentDate.toEpochDay() - qrcodeCreateTime.toEpochDay()) >= 1) {
             //重定向到错误页面中
             return "redirect:/order/qrCode/error";
         }
-        if (insOrderQrCode != null) {
-            //更新二维码扫描时间
-            insOrderQrCode.setScanCodeTime(new Date());
-            insOrderQrCodeService.updateById(insOrderQrCode);
-            //直接重定向到jumlurl
-            return "redirect:" + insOrderQrCode.getJumpUrl();
-        }
-        //重定向到错误页面中
-        return "redirect:/order/qrCode/error";
+
+        //更新二维码扫描时间
+        insOrderQrCode.setScanCodeTime(new Date());
+        insOrderQrCodeService.updateById(insOrderQrCode);
+        //直接重定向到jumlurl
+        return "redirect:" + insOrderQrCode.getJumpUrl();
+
     }
 
 
@@ -138,4 +134,6 @@ public class QrCodeController {
     public String error() {
         return "qrcode_error";
     }
+
+
 }

+ 24 - 67
src/main/java/com/ydtech/modules/order/service/impl/InsOrderQrCodeServiceImpl.java

@@ -1,74 +1,34 @@
 package com.ydtech.modules.order.service.impl;
 
 import cn.hutool.extra.qrcode.BufferedImageLuminanceSource;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.pagehelper.PageInfo;
-import com.github.pagehelper.page.PageMethod;
-import com.google.zxing.*;
-import com.google.zxing.client.j2se.MatrixToImageConfig;
-import com.google.zxing.client.j2se.MatrixToImageWriter;
-import com.google.zxing.common.BitMatrix;
+import com.google.zxing.BinaryBitmap;
+import com.google.zxing.MultiFormatReader;
+import com.google.zxing.NotFoundException;
+import com.google.zxing.Result;
 import com.google.zxing.common.HybridBinarizer;
-import com.google.zxing.qrcode.QRCodeWriter;
-import com.ydtech.components.OrderComponents;
-import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
-import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.model.SysDept;
-import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.admin.service.SysDeptService;
-import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
-import com.ydtech.modules.ins.model.vo.CarInfoVo;
-import com.ydtech.modules.ins.model.ya.CarModelDTO;
-import com.ydtech.modules.ins.model.ya.ExtendInfoDto;
-import com.ydtech.modules.ins.model.ya.ResponseDataC2;
-import com.ydtech.modules.order.convert.CarModelDTOConvert;
-import com.ydtech.modules.order.convert.MapToYaExtendInfoDto;
 import com.ydtech.modules.order.dao.InsOrderQrCodeMapper;
-import com.ydtech.modules.order.dao.InsOrdersMapper;
-import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrderQrCode;
-import com.ydtech.modules.order.entity.InsOrders;
-import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
-import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
-import com.ydtech.modules.order.entity.vo.*;
-import com.ydtech.modules.order.entity.vo.ya.YaExtendInfoDto;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrderQrCodeService;
-import com.ydtech.modules.order.service.InsOrdersService;
-import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
-import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.utils.idgen.IdGenerate;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ObjectUtils;
 
 import javax.imageio.ImageIO;
-import javax.validation.constraints.NotBlank;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayInputStream;
-import java.io.IOException;
 import java.net.URL;
-import java.net.URLEncoder;
-import java.nio.file.Paths;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-import static com.ydtech.modules.order.constants.OrderCacheConstant.*;
+import java.util.Base64;
+import java.util.Date;
+import java.util.Hashtable;
+import java.util.Objects;
 
 /**
  * @author wenkaisen
@@ -91,29 +51,27 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
     @Override
     public InsOrderQrCode getOneOrSave(String companyId) {
         //查询 ins_area_company数据
-        InsAreaCompany insAreaCompany =
-                insAreaCompanyService.getOne(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getId,
-                        companyId));
+        InsAreaCompany insAreaCompany = insAreaCompanyService.getOne(new LambdaQueryWrapper<InsAreaCompany>().eq(InsAreaCompany::getId,
+                companyId));
         //是否直接存储二维码
         Boolean isWx = false;
         //太平洋则直接存储base64的信息
-        if("TPIC1000000".equals(insAreaCompany.getCompanyId())){
+        if ("TPIC1000000".equals(insAreaCompany.getCompanyId())) {
             isWx = true;
         }
         //查询 是否有数据存在
-        InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>()
-                .eq(InsOrderQrCode::getAreaCompanyId, companyId)
-                .eq(InsOrderQrCode::getQrcodeStatus, 1));
+        InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>().eq(InsOrderQrCode::getAreaCompanyId
+                , companyId).eq(InsOrderQrCode::getQrcodeStatus, 1));
         if (Objects.isNull(insOrderQrCode)) {
             //如果订单状态等于 待缴费 或 撤销二维码
             if (insAreaCompany.getOrderstatus().equals(InsOrderStatusEnum.WAIT_PAY.getCode())) {
                 if (Objects.isNull(insAreaCompany.getPaymentLink())) {
                     throw new SystemException("该订单没有缴费链接");
                 }
-                boolean save = save(insAreaCompany.getOrderno(), insAreaCompany.getId(),insAreaCompany.getCompanyId(), insAreaCompany.getPaymentLink(),isWx);
-                insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>()
-                        .eq(InsOrderQrCode::getAreaCompanyId, companyId)
-                        .eq(InsOrderQrCode::getQrcodeStatus, 1));
+                save(insAreaCompany.getOrderno(), insAreaCompany.getId(), insAreaCompany.getCompanyId(),
+                        insAreaCompany.getPaymentLink(), isWx);
+                insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>().eq(InsOrderQrCode::getAreaCompanyId,
+                        companyId).eq(InsOrderQrCode::getQrcodeStatus, 1));
             } else {
                 throw new SystemException("该订单不是待缴费状态");
             }
@@ -128,9 +86,8 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
 //        InsAreaCompany insAreaCompany = insAreaCompanyService.getOne(new LambdaQueryWrapper<InsAreaCompany>().eq
 //        (InsAreaCompany::getId, companyId));
         //查询 是否有数据存在
-        InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>()
-                .eq(InsOrderQrCode::getAreaCompanyId, companyId)
-                .eq(InsOrderQrCode::getQrcodeStatus, 1));
+        InsOrderQrCode insOrderQrCode = baseMapper.selectOne(new LambdaQueryWrapper<InsOrderQrCode>().eq(InsOrderQrCode::getAreaCompanyId
+                , companyId).eq(InsOrderQrCode::getQrcodeStatus, 1));
         return insOrderQrCode;
     }
 
@@ -167,7 +124,7 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
 
     private boolean isHttpUrl(String urls) {
         try {
-            URL url = new URL(urls);
+            new URL(urls);
             return true;
         } catch (java.net.MalformedURLException e) {
             return false;
@@ -184,7 +141,7 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
      * @return
      */
     @Override
-    public boolean save(String orderno, String areaCompanyId,String companyId, String jumlUrl,Boolean isWx) {
+    public boolean save(String orderno, String areaCompanyId, String companyId, String jumlUrl, Boolean isWx) {
         try {
             InsOrderQrCode insOrderQrCode = new InsOrderQrCode();
 
@@ -193,11 +150,11 @@ public class InsOrderQrCodeServiceImpl extends ServiceImpl<InsOrderQrCodeMapper,
             insOrderQrCode.setOrderno(orderno);
             insOrderQrCode.setAreaCompanyId(areaCompanyId);
             //判断jumlUrl是base64 还是 url
-            if(isHttpUrl(jumlUrl) || isWx){
-                if(companyId.equals("HNIC1000000")) {
+            if (isHttpUrl(jumlUrl) || isWx) {
+                if (companyId.equals("HNIC1000000")) {
                     //华农保险
                     insOrderQrCode.setJumpUrl(jumlUrl.replace("{", "").replace("}", ""));
-                }else{
+                } else {
                     insOrderQrCode.setJumpUrl(jumlUrl);
                 }
             } else {

+ 8 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -408,8 +408,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
             insOrdersExcel.setRegisterDate(carInfoVo.getRegisterDate());
             insOrdersExcel.setIssueDate(carInfoVo.getIssueDate());
-            insOrdersExcel.setVehicleUse(String.valueOf(carInfoVo.getVehicleUse()));
+
+            String natureOfVehicleUse = NatureOfVehicleUse.getNatureOfVehicleUse(carInfoVo.getCarnature(), carInfoVo.getVehicleUse());
+            insOrdersExcel.setVehicleUse(natureOfVehicleUse);
+
             insOrdersExcel.setCarNature(NatureOfVehicleUse.getDesc(carInfoVo.getCarnature()));
+            insOrdersExcel.setLimitLoad(carInfoVo.getLimitLoad());
 
             // 设置车主信息
             JSONObject ownerInfo = insOrdersExcel.getOwnerInfo();
@@ -453,6 +457,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                     String kindCode = quoteKindRespVo.getKindCode();
                     if (kindCode != null) {
                         switch (kindCode) {
+                            case "A":
+                                insOrdersExcel.setDamage(String.valueOf(quoteKindRespVo.getAmount()));
+                                break;
                             case "B":
                                 insOrdersExcel.setThird(String.valueOf(quoteKindRespVo.getAmount()));
                                 break;