Quellcode durchsuchen

Merge remote-tracking branch 'origin/test' into test

haoyu vor 2 Jahren
Ursprung
Commit
3c3c0a36a2
27 geänderte Dateien mit 501 neuen und 404 gelöschten Zeilen
  1. 13 0
      src/main/java/com/ydtech/modules/admin/controller/SysDeptController.java
  2. 9 1
      src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java
  3. 10 1
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkAreaMapper.java
  4. 7 2
      src/main/java/com/ydtech/modules/admin/service/SysDeptService.java
  5. 13 1
      src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java
  6. 6 3
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkAreaServiceImpl.java
  7. 1 1
      src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java
  8. 1 1
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  9. 3 0
      src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java
  10. 0 8
      src/main/java/com/ydtech/modules/order/aop/aspect/AuditVerificationAspect.java
  11. 4 0
      src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java
  12. 1 1
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  13. 9 0
      src/main/java/com/ydtech/modules/order/entity/InsOrders.java
  14. 0 235
      src/main/java/com/ydtech/modules/order/entity/bo/UnderwritingRulesBo.java
  15. 13 0
      src/main/java/com/ydtech/modules/order/entity/vo/InsOrdersEditingVo.java
  16. 66 12
      src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java
  17. 1 1
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java
  18. 5 3
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  19. 38 15
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  20. 2 4
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
  21. 4 0
      src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java
  22. 8 0
      src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java
  23. 33 0
      src/main/resources/mapper/modules/admin/SysDeptMapper.xml
  24. 23 18
      src/main/resources/mapper/modules/admin/SysUserLinkAreaMapper.xml
  25. 7 7
      src/main/resources/mapper/modules/admin/SysUserLinkPtlAgreementMapper.xml
  26. 126 69
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml
  27. 98 21
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml

+ 13 - 0
src/main/java/com/ydtech/modules/admin/controller/SysDeptController.java

@@ -138,4 +138,17 @@ public class SysDeptController extends BaseController {
         queryWrapper.eq(SysDept::getDelFlag, 0);
         return HttpResult.ok(sysDeptService.findTree("9",null));
     }
+    @ApiOperation(value = "省市区门店列表查询 省级parentId=99 市县传值上级id,level传值省市县门店1,2,3,4")
+    @GetMapping(value = "/queryListByParentId/{level}/{parentId}")
+    public HttpResult<List<SysDept>> queryListByParentId(@PathVariable("level")  String level, @PathVariable("parentId") String parentId) {
+        if(parentId==null || "".equals(parentId)) {
+            return HttpResult.error("parentId父级id不能为空");
+        }
+        if(level==null || "".equals(level)) {
+            return HttpResult.error("level类型不能为空");
+        }
+        List<SysDept> sysDeptList = sysDeptService.queryListByParentId(level,parentId);
+        return HttpResult.ok(sysDeptList);
+    }
+
 }

+ 9 - 1
src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java

@@ -4,11 +4,19 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.admin.model.SysDept;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 public interface SysDeptMapper extends BaseMapper<SysDept> {
 
 
     String getMaxId(@Param(value = "deptId") String deptId);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/28 10:01
+     *  @Description: 通过县级code查询门店列表
+     */
+    List<SysDept> queryListByParentId(@Param(value = "level") String level,@Param(value = "parentId") String parentId);
 }
 
 

+ 10 - 1
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkAreaMapper.java

@@ -48,5 +48,14 @@ public interface SysUserLinkAreaMapper extends BaseMapper<SysUserLinkArea> {
      *  @Date: 2024/4/26 18:28
      *  @Description: 通过用户id查询绑定的代理人集合
      */
-    List<String> findAreaIdsByAgentUserId(@Param("userId") String userId);
+    List<String> findAreaIdsByAgentUserId(@Param("userId") String userId,@Param("areaCodes") List<String> areaCodes);
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/29 9:53
+     *  @Description:查询当前登录人绑定的区域数据
+     */
+    List<String> findAreaCodeByUserId(@Param("userId") String userId);
 }

+ 7 - 2
src/main/java/com/ydtech/modules/admin/service/SysDeptService.java

@@ -1,7 +1,6 @@
 package com.ydtech.modules.admin.service;
 
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
@@ -76,7 +75,13 @@ public interface SysDeptService extends IService<SysDept> {
      * @return
      */
     public List<SysDept> findTeamList(String deptId);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/28 10:22
+     *  @Description:  查询省、市、县、门店列表信息
+     */
+    List<SysDept> queryListByParentId(String level, String parentId);
 }
 
 

+ 13 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysDeptServiceImpl.java

@@ -17,6 +17,7 @@ import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import com.ydtech.utils.StringUtils;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
@@ -32,7 +33,8 @@ import java.util.stream.Collectors;
 public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         implements SysDeptService {
 
-
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
     @Override
     public List<SysDept> findTree(String deptId,String managementSource) {
         if(null == deptId || "".equals(deptId) || "undefined".equals(deptId)){
@@ -366,6 +368,16 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept>
         List<SysDept> sysDeptList = list(lqw);
         return sysDeptList;
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/28 10:24
+     *  @Description: 查询省、市、县 、门店的列表
+     */
+    @Override
+    public List<SysDept> queryListByParentId(String level, String parentId) {
+        return sysDeptMapper.queryListByParentId(level,parentId);
+    }
 
 }
 

+ 6 - 3
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkAreaServiceImpl.java

@@ -161,11 +161,14 @@ public class SysUserLinkAreaServiceImpl extends ServiceImpl<SysUserLinkAreaMappe
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/27 9:45
-     *  @Description:  获取当前用户绑定区域的代理人ids 或者  代理人机构信息
-     *  1 为用户ids   2 为机构ids
+     *  @Description:  获取当前用户绑定区域的代理人ids
      */
     @Override
     public List<String> findUserIdsByLoginUserId(String  userId) {
-       return  sysUserLinkAreaMapper.findAreaIdsByAgentUserId(userId);
+        List<String> areaCodes = sysUserLinkAreaMapper.findAreaCodeByUserId(userId);
+        if(areaCodes!=null && areaCodes.size()>0){
+            return  sysUserLinkAreaMapper.findAreaIdsByAgentUserId(userId,areaCodes);
+        }
+        return  null;
     }
 }

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -47,7 +47,7 @@ public class CarSettleController extends BaseController {
      */
     @PostMapping("/queryPageOrder")
     @ApiOperation(value = "[1]分页查询订单接口")
-    public HttpResult<BasePageResult<InsOrders>> queryPageOrder(@RequestBody @Valid OrderQueryVo orderQueryVo) {
+    public HttpResult<BasePageResult<InsOrders>> queryPageOrder(@RequestBody OrderQueryVo orderQueryVo) {
         orderQueryVo.setOrderStatus("3");//3已承保
         BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrder(orderQueryVo);
         return HttpResult.ok("success", quoteResult);

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -136,7 +136,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         //bigdecimal为null时设置为0
 //        handleBigdecimal(insFeeOrder);
         //生成保司费用(应收费用)
-        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
+//        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
         //生成机构费用
         gene_deptfee( order, insFeeOrderNew,insAreaCompany);
         //生成分销费用

+ 3 - 0
src/main/java/com/ydtech/modules/ins/model/vo/QuoteRespVo.java

@@ -150,6 +150,9 @@ public class QuoteRespVo {
     @ApiModelProperty("非车出口费用")
     private BigDecimal noExportFee;
 
+    @ApiModelProperty("总计出口费用")
+    private BigDecimal sumExportFee;
+
 
     public List<AccidentResponseVo> getAccidentInfo() {
         return accident == null ? Collections.emptyList() : accident;

+ 0 - 8
src/main/java/com/ydtech/modules/order/aop/aspect/AuditVerificationAspect.java

@@ -27,14 +27,6 @@ import org.springframework.stereotype.Component;
 @RequiredArgsConstructor
 public class AuditVerificationAspect {
 
-    private final PtlAgreementDeptService ptlAgreementDeptService;
-
-    private final SysUserRoleService sysUserRoleService;
-
-    private final InsOrdersComponents insOrdersComponents;
-
-    private final TaxSourceServiceImpl taxSourceService;
-
     private final FeeRuleSchemeNewService feeRuleSchemeNewService;
 
     private final InsAreaCompanyService insAreaCompanyService;

+ 4 - 0
src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java

@@ -92,6 +92,10 @@ public class QuoteVerificationAspect {
             result.getData().setJqExportFee(subOrderExportFeeVo.getJqExportCosts());
             result.getData().setSyExportFee(subOrderExportFeeVo.getSyExportCosts());
             result.getData().setNoExportFee(subOrderExportFeeVo.getNoExportCosts());
+            result.getData().setSumExportFee(subOrderExportFeeVo.getJqExportCosts()
+                    .add(subOrderExportFeeVo.getSyExportCosts())
+                    .add(subOrderExportFeeVo.getNoExportCosts()));
+
         } catch (Exception ignored) {
             System.out.printf("费用因子匹配失败:" + ignored.getMessage());
         }

+ 1 - 1
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -50,7 +50,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
     /**
      * 获取待审核的订单
      */
-    Page<InsOrders> getPendingAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
+    Page<InsOrders> getAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 
     Page<InsOrders> getAlreadyAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 

+ 9 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -229,7 +229,16 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private String auditStatus;  //订单费用审核状态
 
+    @TableField(exist = false)
+    private String auditUser;   //订单费用审核人
+
+    @TableField(exist = false)
+    private String auditTime;   //订单费用审核时间
 
+    @TableField(exist = false)
+    private String agreementCode;   //协议code
+    @TableField(exist = false)
+    private String agreementName;   //协议名称
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单
         this.setQuoteno(String.valueOf(quoteInfoVo.getQuoteno()));

+ 0 - 235
src/main/java/com/ydtech/modules/order/entity/bo/UnderwritingRulesBo.java

@@ -1,235 +0,0 @@
-package com.ydtech.modules.order.entity.bo;
-
-
-import cn.hutool.core.util.IdcardUtil;
-import com.alibaba.fastjson.annotation.JSONField;
-import com.ydtech.constants.enums.InsurKind;
-import com.ydtech.modules.ins.model.vo.CarInfoVo;
-import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
-import com.ydtech.modules.ins.model.vo.KindInfoVo;
-import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-import java.util.List;
-
-@NoArgsConstructor
-@Data
-public class UnderwritingRulesBo implements Serializable {
-
-    private static final long serialVersionUID = -9105463448498221619L;
-    /**
-     * 车牌号
-     */
-    @JSONField(name = "LicenseNo")
-    private String licenseNo;
-    /**
-     * 新车购置价
-     */
-    @JSONField(name = "CarPrice")
-    private Integer carPrice;
-    /**
-     * 车龄
-     */
-    @JSONField(name = "CarAge")
-    private Integer carAge;
-    /**
-     * 投保人女年龄
-     */
-    @JSONField(name = "ApplicantWage")
-    private Integer applicantWage;
-    /**
-     * 投保人男年龄
-     */
-    @JSONField(name = "ApplicantMage")
-    private Integer applicantMage;
-    /**
-     * 投保人类型
-     */
-    @JSONField(name = "ApplicantType")
-    private String applicantType;
-    /**
-     * 投保人证件号前六位
-     */
-    @JSONField(name = "ApplicantId")
-    private String applicantId;
-    /**
-     * 投保人性别
-     */
-    @JSONField(name = "ApplicantSex")
-    private String applicantSex;
-    /**
-     * 被保人性别
-     */
-    @JSONField(name = "InsureSex")
-    private String insureSex;
-    /**
-     * 被保人证件号前六位
-     */
-    @JSONField(name = "InsureId")
-    private String insureId;
-    /**
-     * 被保人男年龄
-     */
-    @JSONField(name = "InsureMage")
-    private Integer insureMage;
-    /**
-     * 保人女年龄
-     */
-    @JSONField(name = "InsureWage")
-    private Integer insureWage;
-    /**
-     * 被保人类型
-     */
-    @JSONField(name = "InsureType")
-    private String insureType;
-    /**
-     * 车主性别
-     */
-    @JSONField(name = "OwnerSex")
-    private String ownerSex;
-    /**
-     * 车主类型
-     */
-    @JSONField(name = "OwnerType")
-    private String ownerType;
-    /**
-     * 车主证件号前六位
-     */
-    @JSONField(name = "OwnerId")
-    private String ownerId;
-    /**
-     * 车主女年龄
-     */
-    @JSONField(name = "OwnerWage")
-    private Integer ownerWage;
-    /**
-     * 车主男年龄
-     */
-    @JSONField(name = "OwnerMage")
-    private Integer ownerMage;
-    /**
-     * 医保外乘客
-     */
-    @JSONField(name = "MedicalPassenger")
-    private Integer medicalPassenger;
-    /**
-     * 医保外司机
-     */
-    @JSONField(name = "MedicalDriver")
-    private Integer medicalDriver;
-    /**
-     * 司机
-     */
-    @JSONField(name = "Driver")
-    private Integer driver;
-    /**
-     * 三者险
-     */
-    @JSONField(name = "ThInsurance")
-    private Integer thInsurance;
-    /**
-     * 乘客
-     */
-    @JSONField(name = "Passenger")
-    private Integer passenger;
-    /**
-     * 医保外三者
-     */
-    @JSONField(name = "MedicalTh")
-    private Integer medicalTh;
-
-    public UnderwritingRulesBo(BaseQuoteInfoVo baseQuoteInfoVo) {
-        // 车辆因子
-        CarInfoVo carInfo = baseQuoteInfoVo.getCarInfo();
-        this.setTheVehicleFactor(carInfo);
-        // 投保人
-        CustomerInfoVo policyHolderInfo = baseQuoteInfoVo.getPolicyHolderInfo();
-        this.setPolicyHolderInfo(policyHolderInfo);
-        // 被保人
-        CustomerInfoVo insuredPersonInfo = baseQuoteInfoVo.getInsuredPersonInfo();
-        this.setInsuredPersonInfo(insuredPersonInfo);
-        // 车主
-        CustomerInfoVo ownerInfo = baseQuoteInfoVo.getOwnerInfo();
-        this.setOwnerInfo(ownerInfo);
-        // 车险
-        List<KindInfoVo> kindList = baseQuoteInfoVo.getKindList();
-        this.setInsurance(kindList);
-    }
-
-    private void setTheVehicleFactor(CarInfoVo carInfo) {
-        if(carInfo.isNoLicenseFlag()){
-            this.licenseNo = carInfo.getLicenseNo().substring(0, 2);
-        }
-        this.carPrice = Integer.valueOf(carInfo.getPurchasePrice());
-//        this.carAge = carAge;
-    }
-
-    private void setPolicyHolderInfo(CustomerInfoVo policyHolderInfo) {
-        String identifyNumber = policyHolderInfo.getIdentifyNumber();
-        int ageByIdCard = IdcardUtil.getAgeByIdCard(identifyNumber);
-        int genderByIdCard = IdcardUtil.getGenderByIdCard(identifyNumber);
-        this.applicantId = identifyNumber.substring(0, 6);
-        if (genderByIdCard == 0) {
-            this.applicantSex = "女";
-            this.applicantWage = ageByIdCard;
-        } else {
-            this.applicantSex = "男";
-            this.applicantMage = ageByIdCard;
-        }
-//        this.applicantType = applicantType;
-    }
-
-    private void setInsuredPersonInfo(CustomerInfoVo insuredPersonInfo) {
-        String identifyNumber = insuredPersonInfo.getIdentifyNumber();
-        int ageByIdCard = IdcardUtil.getAgeByIdCard(identifyNumber);
-        int genderByIdCard = IdcardUtil.getGenderByIdCard(identifyNumber);
-        this.insureId = identifyNumber.substring(0, 6);
-        if (genderByIdCard == 0) {
-            this.insureSex = "女";
-            this.insureWage = ageByIdCard;
-        } else {
-            this.insureSex = "男";
-            this.insureMage = ageByIdCard;
-        }
-//        this.insureType = insureType;
-    }
-
-    private void setOwnerInfo(CustomerInfoVo ownerInfo) {
-        String identifyNumber = ownerInfo.getIdentifyNumber();
-        int ageByIdCard = IdcardUtil.getAgeByIdCard(identifyNumber);
-        int genderByIdCard = IdcardUtil.getGenderByIdCard(identifyNumber);
-        this.ownerId = identifyNumber.substring(0, 6);
-
-        if (genderByIdCard == 0) {
-            this.ownerSex = "女";
-            this.ownerWage = ageByIdCard;
-        } else {
-            this.ownerSex = "男";
-            this.ownerMage = ageByIdCard;
-        }
-//        this.ownerType = ownerType;
-    }
-
-    private void setInsurance(List<KindInfoVo> kindList) {
-
-        for (KindInfoVo kindInfoVo : kindList) {
-            if (kindInfoVo.getKindCode().equals(InsurKind.SY_FJ_YBW2.getCode())) {
-                this.medicalPassenger = (int) kindInfoVo.getAmount();
-            } else if (kindInfoVo.getKindCode().equals(InsurKind.SY_FJ_YBW3.getCode())) {
-                this.medicalDriver = (int) kindInfoVo.getAmount();
-            } else if (kindInfoVo.getKindCode().equals(InsurKind.D3.getCode())) {
-                this.driver = (int) kindInfoVo.getAmount();
-            } else if (kindInfoVo.getKindCode().equals(InsurKind.B.getCode())) {
-                this.thInsurance = (int) kindInfoVo.getAmount();
-            } else if (kindInfoVo.getKindCode().equals(InsurKind.D4.getCode())) {
-                this.passenger = (int) kindInfoVo.getAmount();
-            } else if (kindInfoVo.getKindCode().equals(InsurKind.SY_FJ_YBW1.getCode())) {
-                this.medicalTh = (int) kindInfoVo.getAmount();
-            }
-        }
-
-    }
-
-}

+ 13 - 0
src/main/java/com/ydtech/modules/order/entity/vo/InsOrdersEditingVo.java

@@ -14,6 +14,7 @@ import lombok.EqualsAndHashCode;
 import org.apache.commons.lang3.ObjectUtils;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -140,6 +141,18 @@ public class InsOrdersEditingVo extends InsOrders implements Serializable {
         @TableField(value = "紫金能源车(鼎然-车辆风险评分)")
         private String ubiPredictedInfoScore;
 
+        @ApiModelProperty("交强出口费用")
+        private BigDecimal jqExportFee;
+
+        @ApiModelProperty("商业出口费用")
+        private BigDecimal syExportFee;
+
+        @ApiModelProperty("非车出口费用")
+        private BigDecimal noExportFee;
+
+        @ApiModelProperty("总共出口费用")
+        private BigDecimal sumExportFee;
+
         public InsAreaCompanyEditingDto(InsAreaCompanyQueryDto insAreaCompany) {
             this.orderno = insAreaCompany.getOrderno();
             this.orderstatus = insAreaCompany.getOrderstatus();

+ 66 - 12
src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java

@@ -20,17 +20,11 @@ public class OrderQueryVo {
     @NotEmpty(message = "用户ID不能为空")
     private String userId;
 
+
     @ApiModelProperty(value = "订单号")
     private String orderNo;
 
-    @ApiModelProperty(value = "车牌号")
-    private String licenseNo;
 
-    @ApiModelProperty(value = "车架号(Vin码)")
-    private String frameNo;
-
-    @ApiModelProperty(value = "投保人姓名")
-    private String insuredName;
 
     @ApiModelProperty(value = "订单状态")
     private String orderStatus;
@@ -39,12 +33,10 @@ public class OrderQueryVo {
     @NotEmpty(message = "部门不能为空")
     private String deptId;
 
-    @ApiModelProperty("保险公司编号")
-    private String companyId;
-
     @ApiModelProperty("费用审核状态0未审核 1审核通过")
     private String auditStatus;
 
+
     @ApiModelProperty(value = "开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startDate;
@@ -66,12 +58,74 @@ public class OrderQueryVo {
     private String endDateStr;
 
 
-    @ApiModelProperty(value = "业务员工号")
+    @ApiModelProperty(value = "省机构id")
+    private String provinceId;
+
+    @ApiModelProperty(value = "市机构id")
+    private String cityId;
+
+    @ApiModelProperty(value = "县机构id")
+    private String countyId;
+
+    @ApiModelProperty(value = "门店机构id")
+    private String houseId;
+
+    @ApiModelProperty(value = "任务池号")
+    private String taskNo;
+
+    @ApiModelProperty("保险公司编号")
+    private String companyId;
+
+    @ApiModelProperty("协议Id")
+    private String agreeId;
+
+
+//    @ApiModelProperty(value = "协议Id")
+//    private String agreementId;
+
+
+
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+    @ApiModelProperty(value = "车架号(Vin码)")
+    private String frameNo;
+
+    @ApiModelProperty(value = "发动机号")
+    private String engineNo;
+
+    @ApiModelProperty(value = "险种代码")
+    private String riskCode;
+
+    @ApiModelProperty(value = "代理人工号")
     private String operatorId;
 
-    @ApiModelProperty(value = "业务员姓名")
+    @ApiModelProperty(value = "代理人姓名")
     private String operatorName;
 
+    @ApiModelProperty(value = "受理人工号")
+    private String auditId;
+
+    @ApiModelProperty(value = "投保险种")
+    private String productId;
+
+
+
+    @ApiModelProperty(value = "投保人姓名")
+    private String insuredName;
+
+    @ApiModelProperty(value = "报价开始时间")
+    private String quoteStartDateStr;
+
+    @ApiModelProperty(value = "报价结束时间")
+    private String quoteEndDateStr;
+
+    @ApiModelProperty(value = "起保开始时间")
+    private String attachStartDateStr;
+    @ApiModelProperty(value = "起保结束时间")
+    private String attachEndDateStr;
+
+
     public LocalDate getEndDatePlusOneDay() {
         if(ObjectUtils.isEmpty(endDate)){
             return endDate;

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -87,7 +87,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * 查询待审核的订单
      * @return
      */
-    Page<InsOrders> getPendingAuditOrders(Page page, OrderQueryVo orderQueryVo);
+    Page<InsOrders> getAuditOrders(Page page, OrderQueryVo orderQueryVo);
 
     /**
      * 查询已审核得订单

+ 5 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -140,14 +140,16 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     }
 
     @Override
-    public Page<InsOrders> getPendingAuditOrders(Page page, OrderQueryVo orderQueryVo) {
+    public Page<InsOrders> getAuditOrders(Page page, OrderQueryVo orderQueryVo) {
         if(orderQueryVo.getStartDate() != null && orderQueryVo.getEndDate() != null){
             orderQueryVo.setStartDateStr(orderQueryVo.getStartDate().toString());
             orderQueryVo.setEndDateStr(orderQueryVo.getEndDate().toString());
         }
-        Page<InsOrders> pendingAuditOrders = baseMapper.getPendingAuditOrders(page, orderQueryVo);
+        Page<InsOrders> pendingAuditOrders = baseMapper.getAuditOrders(page, orderQueryVo);
         pendingAuditOrders.getRecords().forEach(item->{
-            item.setAuditStatus("0");
+            if(item.getAuditStatus() == null){
+                item.setAuditStatus("0");
+            }
         });
         return pendingAuditOrders;
     }

+ 38 - 15
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -31,6 +31,7 @@ import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import com.ydtech.modules.fee.service.CostsCalcService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
@@ -50,7 +51,6 @@ import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.InsOrdersTrack;
-import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
 import com.ydtech.modules.order.entity.crawler.response.CrawlerVerifyPaymentResponse;
 import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
@@ -136,6 +136,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private SysUserLinkAreaMapper sysUserLinkAreaMapper;
 
+    @Autowired
+    private CostsCalcService costsCalcService;
+
 
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService,
@@ -308,12 +311,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         String s = JSON.toJSONString(quoteInfoVo);
         redisTemplate.opsForValue().set(QUOTE_INFO_KEY + insOrders.getOrderno(), s, QUOTE_INFO_KEY_TIME, TimeUnit.DAYS);
 
-        // 5 生成承包规则参数
-        UnderwritingRulesBo underwritingRulesBo = new UnderwritingRulesBo(quoteInfoVo);
-        String rules = JSON.toJSONString(underwritingRulesBo);
-        redisTemplate.opsForValue().set(QUOTE_RULES_KEY + insOrders.getOrderno(), rules, QUOTE_RULES_KEY_TIME,
-                TimeUnit.HOURS);
-
         return insOrders;
     }
 
@@ -378,17 +375,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         //查询未审核
         if(orderQueryVo.getAuditStatus() == null)
             orderQueryVo.setAuditStatus("0"); //默认查询未审核
-        if (orderQueryVo.getAuditStatus().equals("0")) {
-            resultOrders = insAreaCompanyService.getPendingAuditOrders(page, orderQueryVo);
-        } else{
-            //已审核
-            resultOrders = insAreaCompanyService.getAlreadyAuditOrders(page, orderQueryVo);
-        }
+        resultOrders = insAreaCompanyService.getAuditOrders(page, orderQueryVo);
+
         //查找机构来源字典 遍历
         Map<String, DictionaryManagement> m = DictEnumConfig.getDmMap();
         DictionaryManagement organizationSource = m.get("organizationSource");
         resultOrders.getRecords().forEach(item->{
-            DictionaryData dictionaryData = organizationSource.getDdList().stream().filter(x -> x.getDictValue().equals(item.getManagementSource())).findFirst().get();
+            DictionaryData dictionaryData = organizationSource.getDdList().stream().filter(x -> x.getDictValue().equals(item.getManagementSource())).findFirst().orElse(null);
             if(dictionaryData != null){
                 item.setManagementSource(dictionaryData.getDictTag());
             }
@@ -621,6 +614,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     public HttpResult<OrderVo> getByCompanyId(@NotBlank(message = "子订单不能为空") String companyId, String userId) {
         OrderVo orderAndAreaCompany = baseMapper.getOrderAndAreaCompany(companyId);
 
+        //计算今年应缴税
+        JSONArray vehicleAndVesselTaxs = orderAndAreaCompany.getTaxArrears();
+        if(vehicleAndVesselTaxs != null && !vehicleAndVesselTaxs.isEmpty()) {
+            JSONObject vehicleAndVesselTax = vehicleAndVesselTaxs.getJSONObject(0);
+            vehicleAndVesselTax.put("dayYearTax", orderAndAreaCompany.getTaxamount().subtract(vehicleAndVesselTax.getBigDecimal("taxDefault")
+                    .subtract(vehicleAndVesselTax.getBigDecimal("lateFee"))));
+        }
+
         YaExtendInfoDto yaExtendInfoDto = new YaExtendInfoDto();
         // 永安财险
         if (InsuranceEnum.YAIC.getCode().equals(orderAndAreaCompany.getCompanyId().substring(0, 4))) {
@@ -718,6 +719,25 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         List<InsOrdersEditingVo.InsAreaCompanyEditingDto> insAreaCompanyEditingDtos =
                 insAreaCompanyQueryDtos.stream().map(InsOrdersEditingVo.InsAreaCompanyEditingDto::new).collect(Collectors.toList());
 
+        List<String> companyIds = insAreaCompanyEditingDtos.stream().map(x -> x.getCompanyId()).collect(Collectors.toList());
+
+        List<InsFeeOrderNew> insFeeOrderNews = insFeeOrderNewService.getInsFeeOrderNewListByCompanyId(companyIds);
+
+        //计算费用
+        insFeeOrderNews.forEach(insFeeOrderNew -> {
+            SubOrderExportFeeVo subOrderExportFeeVo = costsCalcService.getExportFee(insFeeOrderNew);
+            insAreaCompanyEditingDtos.stream().filter(x -> x.getCompanyId().equals(insFeeOrderNew.getInsOrderNo())).findFirst().ifPresent(result -> {
+                result.setJqExportFee(subOrderExportFeeVo.getJqExportCosts());
+                result.setSyExportFee(subOrderExportFeeVo.getSyExportCosts());
+                result.setNoExportFee(subOrderExportFeeVo.getNoExportCosts());
+                result.setSumExportFee(subOrderExportFeeVo.getJqExportCosts()
+                        .add(subOrderExportFeeVo.getSyExportCosts())
+                        .add(subOrderExportFeeVo.getNoExportCosts()));
+            });
+
+        });
+
+
         insOrdersEditingVo.setInsAreaCompanyEditingDtos(insAreaCompanyEditingDtos);
         return insOrdersEditingVo;
     }
@@ -832,7 +852,10 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             //查询所有的代理人
             //agentUserIds = sysUserMapper.getAgentUserIds();
             //查询绑定的区域的代理人信息
-            agentUserIds =sysUserLinkAreaMapper.findAreaIdsByAgentUserId(orderQueryVo.getUserId());
+            List<String> areaCodes = sysUserLinkAreaMapper.findAreaCodeByUserId(orderQueryVo.getUserId());
+            if(areaCodes!=null && areaCodes.size()>0){
+                agentUserIds =sysUserLinkAreaMapper.findAreaIdsByAgentUserId(orderQueryVo.getUserId(),areaCodes);
+            }
         } else if (type == 3) {
             //查询用户关联的协议
             List<SysUserLinkPtlAgreementDto> ptlAgreementListByUserIds =

+ 2 - 4
src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java

@@ -350,10 +350,8 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         LambdaQueryWrapper<PtlAgreement> wrapper = new LambdaQueryWrapper<>();
         // 获取供应商本级id 及其 下级id
         List<String> lowerId = esmInsCompanyService.getByLowerId(ptlAgreementPageVo.getPartnerCompaniesId());
-        // 审核状态
-        wrapper.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAuditStatus()), PtlAgreement::getAuditStatus, ptlAgreementPageVo.getAuditStatus())
-                //是否有效
-                .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getValidStatus()), PtlAgreement::getValidStatus, ptlAgreementPageVo.getValidStatus())
+        //是否有效
+        wrapper.eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getValidStatus()), PtlAgreement::getValidStatus, ptlAgreementPageVo.getValidStatus())
                 // 供应商类型
                 .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getCompaniesType()), PtlAgreement::getCompaniesType, ptlAgreementPageVo.getCompaniesType())
                 // 协议类型

+ 4 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsAttrLink;
 
+import java.util.List;
+
 /**
 *@author: tz
 *@description: 费用计算表 service
@@ -13,5 +15,7 @@ public interface InsFeeOrderNewService extends IService<InsFeeOrderNew> {
 
     InsFeeOrderNew getInsFeeOrderNewByCompanyId(String companyId);
 
+    List<InsFeeOrderNew> getInsFeeOrderNewListByCompanyId(List<String> companyIds);
+
     InsFeeOrderNew getInsFeeOrderEntity(String id);
 }

+ 8 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewServiceImpl.java

@@ -11,6 +11,8 @@ import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import com.ydtech.modules.protocols.service.PtlAgreementProductCostsAttrLinkService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * @description 费用结算表 service实现类
  * @createDate 2024-2-22 15:44:29
@@ -26,6 +28,12 @@ public class InsFeeOrderNewServiceImpl extends ServiceImpl<InsFeeOrderNewMapper,
                 .eq(InsFeeOrderNew::getInsOrderNo, companyId));
     }
 
+    @Override
+    public List<InsFeeOrderNew> getInsFeeOrderNewListByCompanyId(List<String> companyIds) {
+        return baseMapper.selectList(new LambdaQueryWrapper<InsFeeOrderNew>()
+                .in(InsFeeOrderNew::getInsOrderNo, companyIds));
+    }
+
     @Override
     public InsFeeOrderNew getInsFeeOrderEntity(String id) {
         return baseMapper.getInsFeeOrderEntity(id);

+ 33 - 0
src/main/resources/mapper/modules/admin/SysDeptMapper.xml

@@ -47,4 +47,37 @@
         WHERE parent_id = #{deptId}
     </select>
 
+
+    <select id="queryListByParentId" resultType="com.ydtech.modules.admin.model.SysDept">
+        SELECT
+            dept.*
+        FROM
+            sys_dept dept
+        WHERE
+            dept.del_flag = 0
+        <if test='level == "1"'>
+            AND dept.province IN ( SELECT area_code FROM sys_area WHERE LEVEL = 1 )
+            AND LENGTH(
+            IFNULL( dept.province, '' )) + LENGTH( IFNULL( dept.city, '' ) ) + LENGTH(
+            IFNULL( dept.area, '' ))=6
+            AND dept.parent_id = #{parentId}
+        </if>
+        <if test='level == "2"'>
+            AND dept.city IN ( SELECT area_code FROM sys_area WHERE LEVEL = 2 )
+            AND LENGTH(
+            IFNULL( dept.province, '' )) + LENGTH( IFNULL( dept.city, '' ) ) + LENGTH(
+            IFNULL( dept.area, '' ))= 12
+            AND dept.parent_id = #{parentId}
+        </if>
+        <if test='level == "3"'>
+            AND dept.area IN ( SELECT area_code FROM sys_area WHERE LEVEL = 3)
+            AND LENGTH(
+            IFNULL( dept.province, '' )) + LENGTH( IFNULL( dept.city, '' ) ) + LENGTH(
+            IFNULL( dept.area, '' ))= 18
+            AND dept.parent_id = #{parentId}
+        </if>
+        <if test='level == "4"'>
+            AND dept.parent_id = #{parentId}
+        </if>
+    </select>
 </mapper>

+ 23 - 18
src/main/resources/mapper/modules/admin/SysUserLinkAreaMapper.xml

@@ -5,8 +5,8 @@
 <mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkAreaMapper">
     <sql id="Base_Column_List">
             link.id as id,
-            user.id as "sysUser.id",
-            user.name as "sysUser.name",
+            u.id as "sysUser.id",
+            u.name as "sysUser.name",
             t2.id AS "sysUser.deptId",
             t2.`name` AS "sysUser.deptName",
             area.id as  "area.id",
@@ -20,8 +20,8 @@
           <include refid="Base_Column_List"/>
         FROM
         sys_user_link_area link
-        LEFT JOIN sys_user USER ON link.user_id = USER.id
-        LEFT JOIN sys_dept t2 ON USER.dept_id = t2.id
+        LEFT JOIN sys_user u ON link.user_id = u.id
+        LEFT JOIN sys_dept t2 ON u.dept_id = t2.id
         LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
         LEFT JOIN sys_area area ON link.area_code = area.area_code
         LEFT JOIN sys_area pArea ON pArea.area_code = area.upper_code
@@ -31,7 +31,7 @@
                 and  link.user_id =  #{vo.userId}
             </if>
             <if test="vo.userName != null and vo.userName != ''">
-                and  USER.name  like CONCAT('%', #{vo.userName}, '%')
+                and  u.name  like CONCAT('%', #{vo.userName}, '%')
             </if>
             <if test="vo.areaCode != null and vo.areaCode != ''">
                 and   EXISTS (
@@ -80,19 +80,24 @@
                 AND sd.del_flag = '0'
         WHERE
             t3.role_id = 20
-          AND sd.management_source = 2
-          AND
-            (CONCAT( SUBSTRING(RPAD(su.dept_id, 8, '0'), 3, 2), SUBSTRING(RPAD(su.dept_id, 8, '0'), 5, 2), SUBSTRING(RPAD(su.dept_id, 8, '0'), 7, 2) ) ) IN
+           AND sd.management_source = 2
+            <if test="areaCodes != null and areaCodes.size>0" >
+                AND (
+                <foreach collection="areaCodes" item="item" open=" instr( " separator="||" close=") ">
+                   su.dept_id, TRIM( TRAILING '0' FROM #{item} )
+                </foreach>
+                ) > 0
+            </if>
+    </select>
 
-            (
-                SELECT
-                    DISTINCT link.area_code
-                FROM
-                    sys_user_link_area link
-                WHERE
-                    link.user_id = #{userId}
-                ORDER BY
-                    link.area_code
-            )
+    <select id="findAreaCodeByUserId"  resultType="String">
+        SELECT
+            DISTINCT link.area_code
+        FROM
+            sys_user_link_area link
+        WHERE
+            link.user_id = #{userId}
+        ORDER BY
+            link.area_code
     </select>
 </mapper>

+ 7 - 7
src/main/resources/mapper/modules/admin/SysUserLinkPtlAgreementMapper.xml

@@ -5,8 +5,8 @@
 <mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkPtlAgreementMapper">
     <sql id="Base_Column_List">
         link.id as id,
-            user.id as "sysUser.id",
-            user.name as "sysUser.name",
+            u.id as "sysUser.id",
+            u.name as "sysUser.name",
             t2.id AS "sysUser.deptId",
             t2.`name` AS "sysUser.deptName",
             agree.id as  "ptlAgreement.id",
@@ -41,8 +41,8 @@
           <include refid="Base_Column_List"/>
         FROM
         sys_user_link_pl_agreement link
-        LEFT JOIN sys_user USER ON link.user_id = USER.id
-        LEFT JOIN sys_dept t2 ON USER.dept_id = t2.id
+        LEFT JOIN sys_user u ON link.user_id = u.id
+        LEFT JOIN sys_dept t2 ON u.dept_id = t2.id
         LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
         LEFT JOIN ptl_agreement agree ON link.ptl_agreement_id = agree.id
         left join esm_ins_company com on com.id = agree.partner_companies_id
@@ -51,7 +51,7 @@
                 and  link.user_id =  #{vo.userId}
             </if>
             <if test="vo.userName != null and vo.userName != ''">
-                and  USER.name  like CONCAT('%', #{vo.userName}, '%')
+                and  u.name  like CONCAT('%', #{vo.userName}, '%')
             </if>
             <if test="ids != null and ids.size>0">
                 and  agree.partner_companies_id in
@@ -73,8 +73,8 @@
              <include refid="Base_Column_List"/>
         FROM
         sys_user_link_pl_agreement link
-        LEFT JOIN sys_user USER ON link.user_id = USER.id
-        LEFT JOIN sys_dept t2 ON USER.dept_id = t2.id
+        LEFT JOIN sys_user u ON link.user_id = u.id
+        LEFT JOIN sys_dept t2 ON u.dept_id = t2.id
         LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
         LEFT JOIN ptl_agreement agree ON link.ptl_agreement_id = agree.id
         left join esm_ins_company com on link.id = agree.partner_companies_id

+ 126 - 69
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -103,12 +103,12 @@
         SELECT iac.*, pa.agreement_name
         FROM ins_area_company as iac
                  left join ptl_agreement as pa on pa.id = iac.agreement_id
-        WHERE iac.orderstatus = 3 and orderno = #{orderNo};
+        WHERE iac.orderstatus = 3
+          and orderno = #{orderNo};
     </select>
 
 
-
-    <select id="queryLatestStatus"  resultType="java.lang.String">
+    <select id="queryLatestStatus" resultType="java.lang.String">
         SELECT iac.orderstatus
         FROM ins_area_company as iac
                  INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
@@ -120,54 +120,97 @@
         ORDER BY orderstatus DESC
         LIMIT 1
     </select>
-    <select id="getorDerIds"    resultType="com.ydtech.modules.order.entity.InsAreaCompany">
-        SELECT
-            a.id  as  "id" ,
-            a.orderno as  "orderno"
-        FROM
-            ins_area_company a
-                LEFT JOIN ins_fee_order_new b ON  a.id =b.ins_order_no
-        WHERE
-            a.orderstatus = '3' or a.orderstatus = '2'
-            and  b.id is not  null
+    <select id="getorDerIds" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
+        SELECT a.id      as "id",
+               a.orderno as "orderno"
+        FROM ins_area_company a
+                 LEFT JOIN ins_fee_order_new b ON a.id = b.ins_order_no
+        WHERE a.orderstatus = '3'
+           or a.orderstatus = '2'
+            and b.id is not null
     </select>
 
-    <select id="getPendingAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
+    <select id="getAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
         io.*,
-        sd.management_source
-        FROM
-        ins_orders io left join sys_user su on su.id = io.userid left join sys_dept sd on sd.id = su.dept_id
-        WHERE
-        orderno IN (
-        SELECT
-        orderno
+        sd.management_source,
+        su2.name AS auditUser,
+        ifa.audittime as auditTime,
+        ifa.auditstatus as auditStatus
         FROM
-        ins_area_company
+        ins_orders io
+        LEFT JOIN ins_fee_audit ifa ON ifa.orderno = io.orderno
+        LEFT JOIN sys_user su ON su.id = io.userid
+        LEFT JOIN sys_dept sd ON sd.id = su.dept_id
+        LEFT JOIN sys_user su2 ON ifa.audituser = su2.id
+        LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno and iac.orderstatus = 3
         WHERE
-        id IN ( SELECT ins_order_no FROM ins_fee_order_new WHERE ins_order_no NOT IN ( SELECT ins_order_no FROM ins_fee_audit ) )
-        AND orderstatus = 3
-        )
-        AND
-        orderstatus= 3
-<!--        <if test="params.orderNo != null and params.orderNo != ''">-->
-<!--            AND orderno = #{params.orderNo}-->
-<!--        </if>-->
+        io.orderno IN ( SELECT orderno FROM ins_area_company WHERE id IN (
+        SELECT ins_order_no FROM ins_fee_order_new
+        WHERE ins_order_no
+        <if test="params.auditStatus != null and params.auditStatus == 0">
+            NOT
+        </if>
+        IN ( SELECT ins_order_no FROM ins_fee_audit) ) AND orderstatus = 3 )
+        AND io.orderstatus = 3
+        <if test="params.taskNo != null and params.taskNo != ''">
+            AND io.orderno = #{params.taskNo}
+        </if>
+        <if test="params.orderNo != null and params.orderNo != ''">
+            AND iac.id = #{params.orderNo}
+        </if>
         <if test="params.licenseNo != null and params.licenseNo != ''">
-            AND licenseno = #{params.licenseNo}
+            AND io.licenseno = #{params.licenseNo}
         </if>
         <if test="params.frameNo != null and params.frameNo != ''">
-            AND frameno = #{params.frameNo}
+            AND io.frameno = #{params.frameNo}
         </if>
         <if test="params.insuredName != null and params.insuredName != ''">
-            AND insuredname = #{params.insuredName}
+            AND io.insuredname = #{params.insuredName}
         </if>
         <if test="params.companyId != null and params.companyId != ''">
-            AND company_id = #{params.companyId}
+            AND io.company_id = #{params.companyId}
+        </if>
+        <if test="params.engineNo != null and params.engineNo != ''">
+            and JSON_EXTRACT( io.carinfo, '$.engineNo' )  = #{params.engineNo}
+        </if>
+        <if test="params.riskCode != null and params.riskCode != ''">
+            and io.product = #{params.riskCode}
+        </if>
+        <if test="params.quoteStartDateStr != null and params.quoteStartDateStr != ''">
+            AND iac.createtime BETWEEN #{params.quoteStartDateStr} and #{params.quoteEndDateStr}
+        </if>
+        <if test="params.attachStartDateStr != null and params.attachStartDateStr != ''">
+            AND iac.signing_time BETWEEN #{params.attachStartDateStr} and #{params.attachEndDateStr}
         </if>
         <if test="params.startDateStr != null and params.startDateStr != ''">
             AND createtime BETWEEN #{params.startDateStr} and #{params.endDateStr}
         </if>
+        <if test="params.provinceId != null and params.provinceId != ''">
+            and io.deptid like "${params.provinceId}%"
+        </if>
+        <if test="params.cityId != null and params.cityId != ''">
+            and io.deptid like "${params.cityId}%"
+        </if>
+        <if test="params.countyId != null and params.countyId != ''">
+            and io.deptid like "${params.countyId}%"
+        </if>
+        <if test="params.houseId != null and params.houseId != ''">
+            and io.deptid like "${params.houseId}%"
+        </if>
+        <if test="params.operatorId != null and params.operatorId != ''">
+            and iac.operator_id = #{params.operatorId}
+        </if>
+        <if test="params.operatorName != null and params.operatorName != ''">
+            and iac.operator_name = #{params.operatorName}
+        </if>
+        <if test="params.auditId != null and params.auditId != ''">
+            and iac.new_operator_id = #{params.auditId}
+        </if>
+        <if test="params.agreeId != null and params.agreeId != ''">
+            and iac.agreement_id = #{params.agreeId}
+        </if>
+
     </select>
 
     <select id="getByUserId" resultType="com.ydtech.modules.order.entity.InsOrders">
@@ -187,7 +230,7 @@
         AND orderstatus = 3
         )
         AND
-        orderstatus= 3
+        io.orderstatus= 3
         <if test="orderNo != null and orderNo != ''">
             AND orderno = #{orderNo}
         </if>
@@ -213,10 +256,10 @@
 
     <select id="selectFirstPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.first_detail_premiums) as  "willFirstPremiums"
+        sum(a.first_detail_premiums) as "willFirstPremiums"
         FROM
-        ins_fee_order_new  a
-        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
         WHERE
         a.id NOT IN (
         SELECT
@@ -224,28 +267,28 @@
         FROM
         ins_fee_audit
         )
-        AND   iac.orderstatus =3
+        AND iac.orderstatus =3
         <if test="firstUserId != null and firstUserId != ''">
-             AND  a.first_level_user_id = #{firstUserId}
+            AND a.first_level_user_id = #{firstUserId}
         </if>
         <if test="secondUserId != null and secondUserId != ''">
-             AND  a.two_level_user_id = #{secondUserId}
+            AND a.two_level_user_id = #{secondUserId}
         </if>
 
         <if test="thirdUserId != null and thirdUserId != ''">
-             AND  a.three_level_user_id = #{thirdUserId}
+            AND a.three_level_user_id = #{thirdUserId}
         </if>
 
-         <if test="id != null and id != ''">
-             AND  a.id = #{id}
+        <if test="id != null and id != ''">
+            AND a.id = #{id}
         </if>
     </select>
     <select id="selectSecondPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.second_detail_premiums) as  "willSecondPremiums"
+        sum(a.second_detail_premiums) as "willSecondPremiums"
         FROM
-        ins_fee_order_new  a
-        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
         WHERE
         a.id NOT IN (
         SELECT
@@ -253,29 +296,29 @@
         FROM
         ins_fee_audit
         )
-        AND   iac.orderstatus =3
+        AND iac.orderstatus =3
         <if test="firstUserId != null and firstUserId != ''">
-             AND  a.first_level_user_id = #{firstUserId}
+            AND a.first_level_user_id = #{firstUserId}
         </if>
         <if test="secondUserId != null and secondUserId != ''">
-             AND  a.two_level_user_id = #{secondUserId}
+            AND a.two_level_user_id = #{secondUserId}
         </if>
 
         <if test="thirdUserId != null and thirdUserId != ''">
-             AND  a.three_level_user_id = #{thirdUserId}
+            AND a.three_level_user_id = #{thirdUserId}
         </if>
         <if test="id != null and id != ''">
-            AND  a.id = #{id}
+            AND a.id = #{id}
         </if>
 
     </select>
     <select id="selectThirdPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.third_detail_premiums) as  "willThreePremiums"
+        sum(a.third_detail_premiums) as "willThreePremiums"
 
         FROM
-        ins_fee_order_new  a
-        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
         WHERE
         a.id NOT IN (
         SELECT
@@ -283,19 +326,19 @@
         FROM
         ins_fee_audit
         )
-        AND   iac.orderstatus =3
+        AND iac.orderstatus =3
         <if test="firstUserId != null and firstUserId != ''">
-             AND  a.first_level_user_id = #{firstUserId}
+            AND a.first_level_user_id = #{firstUserId}
         </if>
         <if test="secondUserId != null and secondUserId != ''">
-             AND  a.two_level_user_id = #{secondUserId}
+            AND a.two_level_user_id = #{secondUserId}
         </if>
 
         <if test="thirdUserId != null and thirdUserId != ''">
-             AND  a.three_level_user_id = #{thirdUserId}
+            AND a.three_level_user_id = #{thirdUserId}
         </if>
         <if test="id != null and id != ''">
-            AND  a.id = #{id}
+            AND a.id = #{id}
         </if>
 
     </select>
@@ -304,22 +347,36 @@
     <select id="getAlreadyAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
         io.*,
-        sd.management_source
+        sd.management_source,
+        su2.name AS auditUser,
+        ifa.audittime as auditTime
         FROM
-        ins_orders io left join sys_user su on su.id = io.userid left join sys_dept sd on sd.id = su.dept_id
+        ins_orders io
+        LEFT JOIN ins_fee_audit ifa ON ifa.orderno = io.orderno
+        LEFT JOIN sys_user su ON su.id = io.userid
+        LEFT JOIN sys_dept sd ON sd.id = su.dept_id
+        LEFT JOIN sys_user su2 on ifa.audituser = su2.id
         WHERE
-        orderno IN (
+        io.orderno IN (
         SELECT
         orderno
         FROM
         ins_area_company
         WHERE
-        id IN ( SELECT ifon.ins_order_no FROM ins_fee_order_new ifon RIGHT JOIN ins_fee_audit ifa ON ifon.ins_order_no = ifa.ins_order_no where ifa.auditstatus = #{params.auditStatus} ))
-          AND
-            orderstatus = 3
-<!--        <if test="params.orderNo != null and params.orderNo != ''">-->
-<!--            AND orderno = #{params.orderNo}-->
-<!--        </if>-->
+        id IN (
+        SELECT
+        ifon.ins_order_no
+        FROM
+        ins_fee_order_new ifon
+        RIGHT JOIN ins_fee_audit ifa ON ifon.ins_order_no = ifa.ins_order_no
+        WHERE
+        ifa.auditstatus = #{params.auditStatus}
+        )
+        )
+        AND orderstatus = 3
+        <!--        <if test="params.orderNo != null and params.orderNo != ''">-->
+        <!--            AND orderno = #{params.orderNo}-->
+        <!--        </if>-->
         <if test="params.licenseNo != null and params.licenseNo != ''">
             AND licenseno = #{params.licenseNo}
         </if>

+ 98 - 21
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -42,6 +42,9 @@
                 javaType="com.alibaba.fastjson.JSONObject"
                 typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
         <result property="subOrderId" column="subOrderId" jdbcType="VARCHAR"/>
+        <result property="agreementCode" column="agreementCode" jdbcType="VARCHAR"/>
+        <result property="agreementName" column="agreementName" jdbcType="VARCHAR"/>
+
     </resultMap>
     <resultMap id="OrderResultMap" type="com.ydtech.modules.order.entity.vo.OrderVo">
         <id property="orderno" column="orderno" jdbcType="VARCHAR"/>
@@ -293,12 +296,12 @@
                 <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
                     and iac.company_id = #{orderQueryVo.companyId}
                 </if>
-                <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">
-                    and io.operatorid = #{orderQueryVo.userId}
-                </if>
-                <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and !isTeamLeader">
-                    and io.userid = #{orderQueryVo.userId}
-                </if>
+<!--                <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">-->
+<!--                    and io.operatorid = #{orderQueryVo.userId}-->
+<!--                </if>-->
+<!--                <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and !isTeamLeader">-->
+<!--                    and io.userid = #{orderQueryVo.userId}-->
+<!--                </if>-->
             </where>
             group by io.orderno
         ) as s
@@ -318,9 +321,9 @@
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
                 and io.orderno = #{orderQueryVo.orderNo}
             </if>
-            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">
-                and io.deptid like "${orderQueryVo.deptId}%"
-            </if>
+<!--            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != '' and isTeamLeader">-->
+<!--                and io.deptid like "${orderQueryVo.deptId}%"-->
+<!--            </if>-->
             <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
                 and io.orderstatus = #{orderQueryVo.orderStatus}
             </if>
@@ -339,9 +342,9 @@
             <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
                 and iac.company_id = #{orderQueryVo.companyId}
             </if>
-            <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">
-                and io.operatorid = #{orderQueryVo.userId}
-            </if>
+<!--            <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">-->
+<!--                and io.operatorid = #{orderQueryVo.userId}-->
+<!--            </if>-->
             <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and !isTeamLeader">
                 and io.userid = #{orderQueryVo.userId}
             </if>
@@ -805,12 +808,16 @@
         io.king as king,
         io.vehicle_and_vessel_tax as vehicleAndVesselTax,
         iac.id as subOrderId,
-        iac.id as company_id,
-        iac.inscompany as ins_company
+        iac.company_id as company_id,
+        iac.inscompany as ins_company,
+        agree.agreement_code as agreementCode,
+        agree.agreement_name as agreementName
         from
             ins_area_company iac
         left JOIN
              ins_orders io  on iac.orderno = io.orderno
+        left join
+            ptl_agreement   agree  on  iac.agreement_id= agree.id
         <where>
             <if test="agentUserIds != null and agentUserIds.size>0" >
                 AND (
@@ -845,13 +852,13 @@
                 )
             </if>
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
-                and io.orderno = #{orderQueryVo.orderNo}
+                and iac.id = #{orderQueryVo.orderNo}
             </if>
             <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
                 and io.deptid like "${orderQueryVo.deptId}%"
             </if>
             <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
-                and iac.orderstatus = #{orderQueryVo.orderStatus}
+                and iac.orderstatus= #{orderQueryVo.orderStatus}
             </if>
             <if test="orderQueryVo.frameNo != null and orderQueryVo.frameNo != ''">
                 and io.frameno = #{orderQueryVo.frameNo}
@@ -862,8 +869,8 @@
             <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
                 and io.insuredname = #{orderQueryVo.insuredName}
             </if>
-            <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
-                and io.createtime between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+            <if test="orderQueryVo.quoteStartDateStr != null and orderQueryVo.quoteEndDateStr != null">
+                and  DATE_FORMAT(io.createtime, '%Y-%m-%d') between #{orderQueryVo.quoteStartDateStr} AND #{orderQueryVo.quoteEndDateStr}
             </if>
             <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
                 and iac.company_id = #{orderQueryVo.companyId}
@@ -874,6 +881,41 @@
             <if test="orderQueryVo.operatorName != null and orderQueryVo.operatorName != ''">
                 and io.username = #{orderQueryVo.operatorName}
             </if>
+            <if test="orderQueryVo.engineNo != null and orderQueryVo.engineNo != ''">
+                and JSON_EXTRACT( io.carinfo, '$.engineNo' )  = #{orderQueryVo.engineNo}
+            </if>
+            <if test="orderQueryVo.provinceId != null and orderQueryVo.provinceId != ''">
+                and io.deptid like "${orderQueryVo.provinceId}%"
+            </if>
+            <if test="orderQueryVo.cityId != null and orderQueryVo.cityId != ''">
+                and io.deptid like "${orderQueryVo.cityId}%"
+            </if>
+            <if test="orderQueryVo.countyId != null and orderQueryVo.countyId != ''">
+                and io.deptid like "${orderQueryVo.countyId}%"
+            </if>
+            <if test="orderQueryVo.houseId != null and orderQueryVo.houseId != ''">
+                and io.deptid like "${orderQueryVo.houseId}%"
+            </if>
+            <if test="orderQueryVo.agreeId != null and orderQueryVo.agreeId != ''">
+                and iac.agreement_id = #{orderQueryVo.agreeId}
+            </if>
+            <if test="orderQueryVo.taskNo != null and orderQueryVo.taskNo != ''">
+                and io.orderno = #{orderQueryVo.taskNo}
+            </if>
+            <if test="orderQueryVo.riskCode != null and orderQueryVo.riskCode != ''">
+                and io.product = #{orderQueryVo.riskCode}
+            </if>
+            <if test="orderQueryVo.auditId != null and orderQueryVo.auditId != ''">
+                and IFNULL( iac.new_operator_id, '' ) = #{orderQueryVo.auditId}
+            </if>
+            <if test="orderQueryVo.attachStartDateStr != null and orderQueryVo.attachEndDateStr != ''">
+                and  ((
+                DATE_FORMAT(io.jqstartdate, '%Y-%m-%d') BETWEEN #{orderQueryVo.attachStartDateStr}
+                AND #{orderQueryVo.attachEndDateStr}
+                )
+                OR ( DATE_FORMAT(io.systartdate, '%Y-%m-%d')  BETWEEN #{orderQueryVo.attachStartDateStr} AND #{orderQueryVo.attachEndDateStr} )
+                )
+            </if>
         </where>
         order by io.createtime desc
     </select>
@@ -922,7 +964,7 @@
                 )
             </if>
             <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
-                and io.orderno = #{orderQueryVo.orderNo}
+                and iac.id = #{orderQueryVo.orderNo}
             </if>
             <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
                 and io.deptid like "${orderQueryVo.deptId}%"
@@ -939,8 +981,8 @@
             <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
                 and io.insuredname = #{orderQueryVo.insuredName}
             </if>
-            <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
-                and io.createtime between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+            <if test="orderQueryVo.quoteStartDateStr != null and orderQueryVo.quoteEndDateStr != null">
+                and DATE_FORMAT(io.createtime, '%Y-%m-%d') between #{orderQueryVo.quoteStartDateStr} AND #{orderQueryVo.quoteEndDateStr}
             </if>
             <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
                 and iac.company_id = #{orderQueryVo.companyId}
@@ -951,6 +993,41 @@
             <if test="orderQueryVo.operatorName != null and orderQueryVo.operatorName != ''">
                 and io.username = #{orderQueryVo.operatorName}
             </if>
+            <if test="orderQueryVo.engineNo != null and orderQueryVo.engineNo != ''">
+                and JSON_EXTRACT( io.carinfo, '$.engineNo' )  = #{orderQueryVo.engineNo}
+            </if>
+            <if test="orderQueryVo.provinceId != null and orderQueryVo.provinceId != ''">
+                and io.deptid like "${orderQueryVo.provinceId}%"
+            </if>
+            <if test="orderQueryVo.cityId != null and orderQueryVo.cityId != ''">
+                and io.deptid like "${orderQueryVo.cityId}%"
+            </if>
+            <if test="orderQueryVo.countyId != null and orderQueryVo.countyId != ''">
+                and io.deptid like "${orderQueryVo.countyId}%"
+            </if>
+            <if test="orderQueryVo.houseId != null and orderQueryVo.houseId != ''">
+                and io.deptid like "${orderQueryVo.houseId}%"
+            </if>
+            <if test="orderQueryVo.agreeId != null and orderQueryVo.agreeId != ''">
+                and iac.agreement_id = #{orderQueryVo.agreeId}
+            </if>
+            <if test="orderQueryVo.taskNo != null and orderQueryVo.taskNo != ''">
+                and io.orderno = #{orderQueryVo.taskNo}
+            </if>
+            <if test="orderQueryVo.riskCode != null and orderQueryVo.riskCode != ''">
+                and io.product = #{orderQueryVo.riskCode}
+            </if>
+            <if test="orderQueryVo.auditId != null and orderQueryVo.auditId != ''">
+                and IFNULL( iac.new_operator_id, '' ) = #{orderQueryVo.auditId}
+            </if>
+            <if test="orderQueryVo.attachStartDateStr != null and orderQueryVo.attachEndDateStr != ''">
+                and  ((
+                DATE_FORMAT(io.jqstartdate, '%Y-%m-%d') BETWEEN #{orderQueryVo.attachStartDateStr}
+                AND #{orderQueryVo.attachEndDateStr}
+                )
+                OR ( DATE_FORMAT(io.systartdate, '%Y-%m-%d')  BETWEEN #{orderQueryVo.attachStartDateStr} AND #{orderQueryVo.attachEndDateStr} )
+                )
+            </if>
         </where>
         ) as s
     </select>