Przeglądaj źródła

Merge branch 'refs/heads/test' into master-20240326

wks 2 lat temu
rodzic
commit
114474bffd
71 zmienionych plików z 2076 dodań i 205 usunięć
  1. 8 0
      src/main/java/com/ydtech/config/SwaggerConfig.java
  2. 3 3
      src/main/java/com/ydtech/constants/enums/dict/InsInsuranceKind.java
  3. 31 0
      src/main/java/com/ydtech/modules/admin/controller/AppCustomerManagementController.java
  4. 0 5
      src/main/java/com/ydtech/modules/admin/model/SysDeptAccountWithdraw.java
  5. 35 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserTeamDto.java
  6. 45 0
      src/main/java/com/ydtech/modules/admin/model/vo/AppCustomerManagementQueryVo.java
  7. 3 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java
  8. 21 0
      src/main/java/com/ydtech/modules/admin/service/AppCustomerManagementService.java
  9. 63 0
      src/main/java/com/ydtech/modules/admin/service/impl/AppCustomerManagementImpl.java
  10. 7 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java
  11. 7 1
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java
  12. 28 18
      src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java
  13. 4 0
      src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyVO.java
  14. 33 14
      src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java
  15. 96 65
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java
  16. 9 0
      src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeService.java
  17. 13 0
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java
  18. 70 16
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java
  19. 21 1
      src/main/java/com/ydtech/modules/fnc/controller/InsPlyIncomeController.java
  20. 9 0
      src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryFeesController.java
  21. 2 0
      src/main/java/com/ydtech/modules/fnc/dao/InsPlyIncomeMapper.java
  22. 37 0
      src/main/java/com/ydtech/modules/fnc/entity/InsPlyIncome.java
  23. 16 0
      src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesEntity.java
  24. 6 0
      src/main/java/com/ydtech/modules/fnc/service/InsPlyIncomeService.java
  25. 2 0
      src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryFeesService.java
  26. 4 4
      src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java
  27. 256 31
      src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java
  28. 13 0
      src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryFeesServiceImpl.java
  29. 37 0
      src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java
  30. 4 1
      src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesVo.java
  31. 22 0
      src/main/java/com/ydtech/modules/inv/model/dto/InsBxNoPlyIncomeExcelDto.java
  32. 42 0
      src/main/java/com/ydtech/modules/inv/model/dto/InsBxPlyIncomeExcelDto.java
  33. 27 0
      src/main/java/com/ydtech/modules/message/constants/MessageTypeConstants.java
  34. 44 0
      src/main/java/com/ydtech/modules/message/controller/MessageSecretaryController.java
  35. 14 0
      src/main/java/com/ydtech/modules/message/dao/MessageSecretaryMapper.java
  36. 50 0
      src/main/java/com/ydtech/modules/message/entity/MessageSecretary.java
  37. 37 0
      src/main/java/com/ydtech/modules/message/service/MessageSecretaryService.java
  38. 77 0
      src/main/java/com/ydtech/modules/message/service/impl/MessageSecretaryServiceImpl.java
  39. 29 0
      src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java
  40. 6 0
      src/main/java/com/ydtech/modules/order/controller/OrderTaskImageController.java
  41. 4 0
      src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java
  42. 37 0
      src/main/java/com/ydtech/modules/order/entity/vo/OrderExpirationQueryVo.java
  43. 78 0
      src/main/java/com/ydtech/modules/order/entity/vo/OrderExpirationVo.java
  44. 12 0
      src/main/java/com/ydtech/modules/order/service/InsOrdersService.java
  45. 2 0
      src/main/java/com/ydtech/modules/order/service/InsUploadFilesService.java
  46. 15 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  47. 43 0
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  48. 7 0
      src/main/java/com/ydtech/modules/order/service/impl/InsUploadFilesServiceImpl.java
  49. 3 0
      src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementSaveDto.java
  50. 6 0
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java
  51. 6 0
      src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementHistory.java
  52. 1 1
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java
  53. 29 0
      src/main/java/com/ydtech/modules/protocols/controller/InsFeeOrderNewDistributionController.java
  54. 11 0
      src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewDistributionMapper.java
  55. 73 0
      src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNewDistribution.java
  56. 69 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/InsFeeOrderNewDistributionVo.java
  57. 11 0
      src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewDistributionService.java
  58. 28 0
      src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewDistributionServiceImpl.java
  59. 0 2
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  60. 0 29
      src/main/java/com/ydtech/utils/LocalDateTimeDeserializer.java
  61. 3 1
      src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml
  62. 1 1
      src/main/resources/mapper/modules/admin/SysDeptAccountHistoryMapper.xml
  63. 8 5
      src/main/resources/mapper/modules/admin/SysDeptAccountWithdrawMapper.xml
  64. 90 0
      src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml
  65. 212 5
      src/main/resources/mapper/modules/fnc/InsPlyIncomeMapper.xml
  66. 5 0
      src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesMapper.xml
  67. 16 0
      src/main/resources/mapper/modules/message/MessageSecretaryMapper.xml
  68. 50 2
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml
  69. 25 0
      src/main/resources/mapper/modules/protocols/InsFeeOrderNewDistributionMapper.xml
  70. BIN
      src/main/resources/template/handlingFeeTemplate.xlsx
  71. BIN
      src/main/resources/template/noHandlingFeeTemplate.xlsx

+ 8 - 0
src/main/java/com/ydtech/config/SwaggerConfig.java

@@ -98,6 +98,8 @@ public class SwaggerConfig {
         return buildDocket("demo", "示例演示");
     }
 
+
+
     @Bean(value = "largescreenApi")
     @Order(value = 11)
     public Docket largescreenApi() {
@@ -105,6 +107,12 @@ public class SwaggerConfig {
     }
 
 
+    @Bean(value = "messageApi")
+    @Order(value = 12)
+    public Docket messageApi() {
+        return buildDocket("message", "消息接口");
+    }
+
     private ApiInfo apiInfo() {
         return new ApiInfoBuilder()
                 .title("晋掌柜 API 文档")

+ 3 - 3
src/main/java/com/ydtech/constants/enums/dict/InsInsuranceKind.java

@@ -11,11 +11,11 @@ import lombok.Getter;
 public enum InsInsuranceKind implements IBaseEnum{
 
 
-    A("A", "车损","机动车损失险"),
+    A("A", "单商","机动车损失险"),
 
-    TRAFFIC("0507", "交", "机动车交通事故责任强制保险"),
+    TRAFFIC("0507", "交", "机动车交通事故责任强制保险"),
 
-    BUSINESS("0510", "商业", "机动车商业保险");
+    BUSINESS("0510", "单三", "机动车商业保险");
 
 
     private final String code;

+ 31 - 0
src/main/java/com/ydtech/modules/admin/controller/AppCustomerManagementController.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserTeamDto;
+import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo;
+import com.ydtech.modules.admin.service.AppCustomerManagementService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "app客户管理功能")
+@RestController
+@RequestMapping("/app/customer")
+@RequiredArgsConstructor
+public class AppCustomerManagementController {
+
+    private final AppCustomerManagementService appCustomerManagementService;
+
+    @ApiOperation(value = "认证查询")
+    @PostMapping(value = "/authenticationQuery")
+    public HttpResult<BasePageResult<SysUserTeamDto>> authenticationQuery(@RequestBody AppCustomerManagementQueryVo appCustomerManagementQueryVo) {
+        return appCustomerManagementService.authenticationQuery(appCustomerManagementQueryVo);
+    }
+
+}

+ 0 - 5
src/main/java/com/ydtech/modules/admin/model/SysDeptAccountWithdraw.java

@@ -3,9 +3,6 @@ package com.ydtech.modules.admin.model;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.ydtech.utils.LocalDateTimeDeserializer;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -60,8 +57,6 @@ public class SysDeptAccountWithdraw implements Serializable {
 
     @TableField(value = "create_time")
     @ApiModelProperty("创建时间")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
     private LocalDateTime createTime;
 
     @TableField(value = "voucher_id")

+ 35 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserTeamDto.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.modules.admin.model.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+@ApiModel(value = "团队认证返回实体")
+@Data
+public class SysUserTeamDto implements Serializable {
+
+    private static final long serialVersionUID = 8942812169841900706L;
+
+    @ApiModelProperty(value = "用户ID")
+    private String id;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    private String mobile;
+
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+
+    public SysUserTeamDto(SysUser sysUser) {
+        this.id = sysUser.getId();
+        this.name = sysUser.getName();
+        this.mobile = sysUser.getMobile();
+        this.status = sysUser.getStatus();
+    }
+}

+ 45 - 0
src/main/java/com/ydtech/modules/admin/model/vo/AppCustomerManagementQueryVo.java

@@ -0,0 +1,45 @@
+package com.ydtech.modules.admin.model.vo;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import java.io.Serializable;
+
+
+/**
+ * @description: 客户管理查询实体
+ * @author: wenks
+ * @date: 2024/6/3 18:23
+ **/
+@Data
+@ApiModel("客户管理查询实体")
+public class AppCustomerManagementQueryVo implements Serializable {
+
+    private static final long serialVersionUID = 7309342260901481363L;
+
+    @ApiModelProperty("工号")
+    private String userId;
+
+    @ApiModelProperty("用户名")
+    private String username;
+
+    @ApiModelProperty("手机号")
+    private String phoneNumber;
+
+    @ApiModelProperty("认证状态 1 认证成功 2 认证失败")
+    private String authenticationStatus;
+
+    @ApiModelProperty(value = "每页页数")
+    @Min(value = 20, message = "页数最小为20")
+    @Max(value = 100, message = "页数最大为100")
+    private int pageSize;
+
+    @ApiModelProperty(value = "页数")
+    @Min(value = 1, message = "页数最小为1")
+    private int pageNum;
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysAmountAuditingVo.java

@@ -64,6 +64,9 @@ public class SysAmountAuditingVo {
     @ApiModelProperty(value = "用户名称")
     private String userName;
 
+    @ApiModelProperty(value = "电话")
+    private String mobile;
+
 
     @ApiModelProperty(value = "部门id")
     private String deptId;

+ 21 - 0
src/main/java/com/ydtech/modules/admin/service/AppCustomerManagementService.java

@@ -0,0 +1,21 @@
+package com.ydtech.modules.admin.service;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserTeamDto;
+import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+public interface AppCustomerManagementService {
+
+
+    /**
+     * @description: app客户查询实体
+     * @author: wenks
+     * @date: 2024/6/3 18:40
+     * @param: AppCustomerManagementQueryVo 客户管理查询实体
+     * @return: 用户返回信息
+     **/
+    HttpResult<BasePageResult<SysUserTeamDto>> authenticationQuery(AppCustomerManagementQueryVo appCustomerManagementQueryVo);
+
+
+}

+ 63 - 0
src/main/java/com/ydtech/modules/admin/service/impl/AppCustomerManagementImpl.java

@@ -0,0 +1,63 @@
+package com.ydtech.modules.admin.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.constants.enums.dict.organization.OrganizationSource;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserTeamDto;
+import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo;
+import com.ydtech.modules.admin.service.AppCustomerManagementService;
+import com.ydtech.modules.admin.service.SysDeptService;
+import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.utils.StringUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@RequiredArgsConstructor
+public class AppCustomerManagementImpl implements AppCustomerManagementService {
+
+    private final SysUserService sysUserService;
+
+    private final SysDeptService sysDeptService;
+
+    private final EsmUserReferrerService esmUserReferrerService;
+
+
+    @Override
+    public HttpResult<BasePageResult<SysUserTeamDto>> authenticationQuery(AppCustomerManagementQueryVo managementQueryVo) {
+        String deptId = new BaseController().getDeptId();
+        SysDept dept = sysDeptService.getById(deptId);
+        Page<SysUser> page = new Page<>(managementQueryVo.getPageNum(), managementQueryVo.getPageSize());
+        String userId = new BaseController().getUserId();
+        if (OrganizationSource.OS_1.getCode().equals(dept.getManagementSource())) {
+
+            Page<SysUser> sysUserPage = sysUserService.lambdaQuery()
+                    .eq(SysUser::getOperatorCode, userId)
+                    .eq(StringUtils.isEmpty(managementQueryVo.getPhoneNumber()), SysUser::getMobile, managementQueryVo.getPhoneNumber())
+                    .eq(StringUtils.isEmpty(managementQueryVo.getUserId()), SysUser::getId, managementQueryVo.getUserId())
+                    .eq(StringUtils.isEmpty(managementQueryVo.getUsername()), SysUser::getName, managementQueryVo.getUsername())
+                    .eq(StringUtils.isEmpty(managementQueryVo.getAuthenticationStatus()), SysUser::getName, managementQueryVo.getAuthenticationStatus())
+                    .page(page);
+
+            List<SysUserTeamDto> sysUserTeamDtos = sysUserPage.getRecords().stream().map(SysUserTeamDto::new).collect(Collectors.toList());
+            BasePageResult<SysUserTeamDto> sysUserBasePageResult = new BasePageResult<>(managementQueryVo.getPageNum(), managementQueryVo.getPageSize(), sysUserPage.getTotal(),
+                    sysUserPage.getPages()
+                    , sysUserTeamDtos);
+
+            return HttpResult.ok(sysUserBasePageResult);
+        }
+
+        BasePageResult<SysUserTeamDto> sysUserBasePageResult = esmUserReferrerService.getTeamUser(managementQueryVo, userId);
+        return HttpResult.ok(sysUserBasePageResult);
+    }
+
+}

+ 7 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java

@@ -110,6 +110,13 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
             if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAmountStatus())){
                 params.put("amountStatus",sysAmountAuditingVo.getAmountStatus());
             }
+            if(StringUtils.isNotEmpty(sysAmountAuditingVo.getMobile())){
+                params.put("mobile",sysAmountAuditingVo.getMobile());
+            }
+            if(StringUtils.isNotEmpty(sysAmountAuditingVo.getUserName())){
+                params.put("userName",sysAmountAuditingVo.getUserName());
+            }
+
             List<SysAmountAuditingEntity> list = baseMapper.queryPageOrderNew(params);
             pageHelper=new PageInfo(list);
             BasePageResult<SysAmountAuditingEntity> pageResult=new BasePageResult<SysAmountAuditingEntity>(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);

+ 7 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -17,6 +17,8 @@ import com.ydtech.modules.admin.service.SysUserAccountService;
 import com.ydtech.modules.admin.service.SysUserBankCardService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import com.ydtech.modules.message.constants.MessageTypeConstants;
+import com.ydtech.modules.message.service.MessageSecretaryService;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsOrders;
@@ -66,6 +68,9 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Autowired
     private InsOrdersMapper insOrdersMapper;
 
+    @Autowired
+    private MessageSecretaryService messageSecretaryService;
+
 
     @Override
     @Transactional
@@ -165,7 +170,8 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
             }
         }
-
+        //添加佣金消息
+        messageSecretaryService.addMessage(MessageTypeConstants.M_5,sysUserAccount.getUserId(),"您有一条佣金消息,请及时查看");
 
     }
 

+ 28 - 18
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserTeamDto;
+import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo;
 import com.ydtech.modules.admin.model.vo.SysReferrerVo;
 import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.model.vo.SysUserVO;
@@ -168,29 +170,37 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
     @Select("select id,referrer_id,referrer_name,`level`,affiliation from esm_user_referrer t where t.affiliation=#{affiliation}")
     List<EsmUserReferrer> queryList(@Param("affiliation") String affiliation);
 
-    @Select({"<script>","select a.userid,a.username,sum(a.ordernum) ordernum,sum(a.policynum) policynum,sum(a.sumpremium) sumpremium from  v_user_order2 a " +
-            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
-            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
-            "and userid in " +
-            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
-            " #{item}" +
-            "</foreach > " +
-            "group by a.userid,a.username"
-            , "</script>"})
+//    @Select({"<script>","select a.userid,a.username,sum(a.ordernum) ordernum,sum(a.policynum) policynum,sum(a.sumpremium) sumpremium from  v_user_order2 a " +
+//            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
+//            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
+//            "and userid in " +
+//            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
+//            " #{item}" +
+//            "</foreach > " +
+//            "group by a.userid,a.username"
+//            , "</script>"})
     List<EsmUserPolicyVO> queryOrderCount(List<String> userList, String startDate, String endDate);
 
-    @Select({"<script>","select sum(sumpremium) sumpremium " +
-            "from  v_user_order2 a " +
-            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
-            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
-            "and userid in " +
-            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
-            " #{item}" +
-            "</foreach > "
-            , "</script>"})
+//    @Select({"<script>","select sum(sumpremium) sumpremium " +
+//            "from  v_user_order2 a " +
+//            "where DATE_FORMAT(orderdate, '%Y-%m-%d') " +
+//            "between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')" +
+//            "and userid in " +
+//            "<foreach item='item' index='index' collection='userList'  open='(' separator=',' close=')'> " +
+//            " #{item}" +
+//            "</foreach > "
+//            , "</script>"})
+//    EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
+
     EsmTeamPolicyVO queryOrderCountHz(List<String> userList, String startDate, String endDate);
 
     Page<SysUser> getUserPage(Page page, SysUserDto dto);
 
     Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel);
+
+
+    List<SysUserTeamDto> getByTeam(@Param("managementQueryVo") AppCustomerManagementQueryVo managementQueryVo, @Param("userId") String userId, @Param("level") int level);
+
+
+
 }

+ 4 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmUserPolicyVO.java

@@ -23,6 +23,10 @@ public class EsmUserPolicyVO implements Serializable {
     private int policynum;//核保笔数
     @ApiModelProperty(value = "签单保费")
     private double sumpremium;//签单保费
+    @ApiModelProperty(value = "报价次数")
+    private int bjpolicynum;//报价次数
+    @ApiModelProperty(value = "报价金额")
+    private double bjsumpremium;//报价金额
 
 
 }

+ 33 - 14
src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserTeamDto;
+import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo;
 import com.ydtech.modules.admin.model.vo.SysReferrerVo;
 import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
@@ -15,6 +17,7 @@ import com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO;
 import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
+import com.ydtech.modules.order.entity.BasePageResult;
 
 import java.util.List;
 import java.util.Map;
@@ -23,41 +26,57 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
 
 
     List<EsmUserReferrer> findParents(String userId);
+
     Map buildLevelInfo(SysUser agent);
 
     boolean deldeleteByReferrerId(String userId);
-    void buildLevelList(SysUser user,List<SysUser> oneList,List<SysUser> oneTempList);
+
+    void buildLevelList(SysUser user, List<SysUser> oneList, List<SysUser> oneTempList);
 
 
     /**
-     *  添加推荐人
-     * @param referrerId    推荐人ID
-     * @param nextPK        添加的用户ID
+     * 添加推荐人
      *
+     * @param referrerId 推荐人ID
+     * @param nextPK     添加的用户ID
      * @author: lig
      * @date: 2023年08月08日 0008
      */
-    void addReferrer(String referrerId,String nextPK);
+    void addReferrer(String referrerId, String nextPK);
 
 
     /**
-     *  获取代理人分页
+     * 获取代理人分页
      *
      * @author: lig
      * @date: 2023年08月08日 0008
      */
-    public HttpResult<PageVo<SysReferrerVo>> gainReferrerPage(PageDto<SysReferrerVo> pageDto);
+    HttpResult<PageVo<SysReferrerVo>> gainReferrerPage(PageDto<SysReferrerVo> pageDto);
+
+    List<EsmUserPolicyVO> countUserPolicy(String wCase, Object[] paramValues);
+
+    List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues);
+
+    EsmUserCountVO queryUserCount(TeamUserQryVO record);
 
-    public List<EsmUserPolicyVO> countUserPolicy(String wCase, Object[] paramValues);
-    public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues);
-    public EsmUserCountVO queryUserCount(TeamUserQryVO record);
+    List<EsmUserReferrer> queryList(String affiliation);
 
-    public List<EsmUserReferrer> queryList(String affiliation);
-    public List<String>  getUpUser(String userId,List<String> list);
+    List<String> getUpUser(String userId, List<String> list);
 
-    public Page<SysUser> getUserPage(Page page, SysUserDto dto);
+    Page<SysUser> getUserPage(Page page, SysUserDto dto);
+
+    Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel);
+
+
+    /**
+     * @description: 通过推荐人获取团队信息
+     * @author: wenks
+     * @date: 2024/6/4 9:44
+     * @param:
+     * @return:
+     **/
+    BasePageResult<SysUserTeamDto> getTeamUser(AppCustomerManagementQueryVo managementQueryVo, String userId);
 
-    public Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel);
 
 }
 

+ 96 - 65
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -1,15 +1,17 @@
 package com.ydtech.modules.esm.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserTeamDto;
+import com.ydtech.modules.admin.model.vo.AppCustomerManagementQueryVo;
 import com.ydtech.modules.admin.model.vo.SysReferrerVo;
-import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
@@ -21,6 +23,7 @@ import com.ydtech.modules.esm.model.vo.EsmUserCountVO;
 import com.ydtech.modules.esm.model.vo.EsmUserPolicyVO;
 import com.ydtech.modules.esm.model.vo.TeamUserQryVO;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
+import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
@@ -30,8 +33,10 @@ import org.springframework.stereotype.Service;
 import javax.sql.DataSource;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.util.*;
-import java.util.stream.Collectors;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 @Service
@@ -54,20 +59,22 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
         EsmUserReferrer esmUserReferrer = esmUserReferrerService.getById(userId);
         //找不到用户的推荐关系
-        if(esmUserReferrer == null){
+        if (esmUserReferrer == null) {
             return null;
         }
-        List<EsmUserReferrer> esmUserReferrers = esmUserReferrerService.list(new LambdaQueryWrapper<EsmUserReferrer>().eq(EsmUserReferrer::getAffiliation, esmUserReferrer.getAffiliation()));
+        List<EsmUserReferrer> esmUserReferrers =
+                esmUserReferrerService.list(new LambdaQueryWrapper<EsmUserReferrer>().eq(EsmUserReferrer::getAffiliation,
+                        esmUserReferrer.getAffiliation()));
         findParentsRecursive(esmUserReferrer.getReferrerId(), esmUserReferrers, referrers);
         return referrers;
     }
 
-    private static void findParentsRecursive(String userId, List<EsmUserReferrer> esmUserReferrers,List<EsmUserReferrer> referrers) {
+    private static void findParentsRecursive(String userId, List<EsmUserReferrer> esmUserReferrers, List<EsmUserReferrer> referrers) {
         EsmUserReferrer collect = esmUserReferrers.stream().filter(item -> item.getId().equals(userId)).findFirst().get();
-        if(collect != null){
-            if(collect.getId().equals(collect.getReferrerId())){
+        if (collect != null) {
+            if (collect.getId().equals(collect.getReferrerId())) {
                 referrers.add(collect);
-            }else{
+            } else {
                 referrers.add(collect);
                 findParentsRecursive(collect.getReferrerId(), esmUserReferrers, referrers);
             }
@@ -106,6 +113,7 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
         oneTempList.addAll(oneMap.get("list2"));
 
     }
+
     @Override
     public void addReferrer(String referrerId, String nextPK) {
         //if(referrerId.equals(nextPK)) throw new SystemException("推荐人不能是自己");
@@ -132,7 +140,7 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
             eur.setLevel(referrer.getLevel() + 1);
             eur.setAffiliation(referrer.getAffiliation());
             esmUserReferrerService.saveOrUpdate(eur);
-        }else{
+        } else {
             //已经级联过的代理再作为推荐人的时候,推荐人是传入的推荐人信息
             SysUser user = sysUserService.getById(referrerId);
             eur.setId(nextPK);
@@ -153,15 +161,15 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     }
 
     @Override
-    public List<String>  getUpUser(String userId,List<String> list){
+    public List<String> getUpUser(String userId, List<String> list) {
 
-        EsmUserReferrer esmUserReferrer=this.getById(userId);
-        if(esmUserReferrer==null){
+        EsmUserReferrer esmUserReferrer = this.getById(userId);
+        if (esmUserReferrer == null) {
             return list;
         }
         list.add(esmUserReferrer.getId());
-        if(!esmUserReferrer.getReferrerId().equals(userId)){
-            getUpUser(esmUserReferrer.getReferrerId(),list);
+        if (!esmUserReferrer.getReferrerId().equals(userId)) {
+            getUpUser(esmUserReferrer.getReferrerId(), list);
         }
 
         return list;
@@ -169,26 +177,26 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
     @Override
     public Page<SysUser> getUserPage(Page page, SysUserDto dto) {
-        return baseMapper.getUserPage(page,dto);
+        return baseMapper.getUserPage(page, dto);
     }
 
     @Override
     public Page<QueryChannel> getQueryChannelPage(Page page, QueryChannel queryChannel) {
-        return baseMapper.getQueryChannelPage(page,queryChannel);
+        return baseMapper.getQueryChannelPage(page, queryChannel);
     }
 
     @Override
     public HttpResult<PageVo<SysReferrerVo>> gainReferrerPage(PageDto<SysReferrerVo> pageDto) {
 
-        if(StringUtils.isNotEmpty(pageDto.getDto().getAffiliation())){
-            EsmUserReferrer esmUserReferrer=this.getById(pageDto.getDto().getAffiliation());
-            if(esmUserReferrer==null){
+        if (StringUtils.isNotEmpty(pageDto.getDto().getAffiliation())) {
+            EsmUserReferrer esmUserReferrer = this.getById(pageDto.getDto().getAffiliation());
+            if (esmUserReferrer == null) {
                 return HttpResult.error("工号有误,请重新输入");
             }
-            List<String> up3list=new ArrayList<>();
-            getUpUser(pageDto.getDto().getAffiliation(),up3list);
-            List<String> down3list=this.baseMapper.getIdDown3(pageDto.getDto().getAffiliation());
-            List<String> ids=new ArrayList<>();
+            List<String> up3list = new ArrayList<>();
+            getUpUser(pageDto.getDto().getAffiliation(), up3list);
+            List<String> down3list = this.baseMapper.getIdDown3(pageDto.getDto().getAffiliation());
+            List<String> ids = new ArrayList<>();
             ids.addAll(up3list);
             ids.addAll(down3list);
             ids.add(pageDto.getDto().getAffiliation());
@@ -209,7 +217,7 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
         //计算mysql分页总页数
         int totalPages = total % pageDto.getPageSize() == 0 ? total / pageDto.getPageSize() : total / pageDto.getPageSize() + 1;
 
-       //响应
+        //响应
         pageVo.setTotalSize(total);
         pageVo.setPageNum(pageDto.getPageNum());
         pageVo.setPageSize(pageDto.getPageSize());
@@ -225,11 +233,12 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
     /**
      * 人员业绩统计
+     *
      * @param whereCase
      * @param paramValues
      * @return
      */
-    public List<EsmUserPolicyVO> countUserPolicy(String whereCase, Object[] paramValues){
+    public List<EsmUserPolicyVO> countUserPolicy(String whereCase, Object[] paramValues) {
         List<EsmUserPolicyVO> recordList = new ArrayList<EsmUserPolicyVO>();
 
         String sql = "select b.teamlevel,b.name username,\n" +
@@ -265,11 +274,12 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
     /**
      * 团队业绩统计
+     *
      * @param whereCase
      * @param paramValues
      * @return
      */
-    public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues){
+    public List<EsmTeamPolicyVO> countTeamPolicy(String whereCase, Object[] paramValues) {
         List<EsmTeamPolicyVO> recordList = new ArrayList<>();
 
         String sql = "select teamlevel,sum(teamnum) teamnum, sum(sumpremium) sumpremium,sum(usernum) usernum from \n" +
@@ -308,38 +318,40 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
 
         return recordList;
     }
+
     /**
      * 人员团队业绩统计--所有业务员都可查询
+     *
      * @return
      */
     @Override
     public EsmUserCountVO queryUserCount(TeamUserQryVO record) {
-        EsmUserCountVO esmUserCountVO=new EsmUserCountVO();
-        List<EsmTeamPolicyVO> hzList =new ArrayList<>();
-        List<EsmUserPolicyVO> userPolicyList=new ArrayList<>();
-        List<EsmUserPolicyVO> userPolicyList0=new ArrayList<>();
-        List<EsmUserPolicyVO> userPolicyList1=new ArrayList<>();
-        List<EsmUserPolicyVO> userPolicyList2=new ArrayList<>();
-        List<EsmUserPolicyVO> userPolicyList3=new ArrayList<>();
-        EsmUserReferrer esmUserReferrer=getById(record.getId());
-        if(esmUserReferrer!=null){
-            List<String> userList1 =new ArrayList<>();
-            List<String> userList2 =new ArrayList<>();
-            List<String> userList3 =new ArrayList<>();
+        EsmUserCountVO esmUserCountVO = new EsmUserCountVO();
+        List<EsmTeamPolicyVO> hzList = new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList = new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList0 = new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList1 = new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList2 = new ArrayList<>();
+        List<EsmUserPolicyVO> userPolicyList3 = new ArrayList<>();
+        EsmUserReferrer esmUserReferrer = getById(record.getId());
+        if (esmUserReferrer != null) {
+            List<String> userList1 = new ArrayList<>();
+            List<String> userList2 = new ArrayList<>();
+            List<String> userList3 = new ArrayList<>();
             //本级信息
             //明细数据加工
             List<String> userList0 = new ArrayList<>();
             userList0.add(esmUserReferrer.getId());
-            userPolicyList0= this.baseMapper.queryOrderCount(userList0,record.getStartdate(),record.getEnddate());
+            userPolicyList0 = this.baseMapper.queryOrderCount(userList0, record.getStartdate(), record.getEnddate());
             //汇总数据加工
-            EsmTeamPolicyVO esmTeamPolicyVO0=this.baseMapper.queryOrderCountHz(userList0,record.getStartdate(),record.getEnddate());
-            EsmTeamPolicyVO esmTeamPolicyVO1=new EsmTeamPolicyVO();
-            EsmTeamPolicyVO esmTeamPolicyVO2=new EsmTeamPolicyVO();
-            if(esmTeamPolicyVO0==null){
-                esmTeamPolicyVO0=new EsmTeamPolicyVO();
+            EsmTeamPolicyVO esmTeamPolicyVO0 = this.baseMapper.queryOrderCountHz(userList0, record.getStartdate(), record.getEnddate());
+            EsmTeamPolicyVO esmTeamPolicyVO1 = new EsmTeamPolicyVO();
+            EsmTeamPolicyVO esmTeamPolicyVO2 = new EsmTeamPolicyVO();
+            if (esmTeamPolicyVO0 == null) {
+                esmTeamPolicyVO0 = new EsmTeamPolicyVO();
                 esmTeamPolicyVO0.setSumpremium(0);
                 esmTeamPolicyVO0.setUsernum(0);
-            }else{
+            } else {
                 esmTeamPolicyVO0.setUsernum(1);
             }
             esmTeamPolicyVO0.setTeamlevel("本人");
@@ -348,10 +360,11 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
             // 一级团队信息
             userList1 = this.baseMapper.getIdDown_1(esmUserReferrer.getId());
             esmTeamPolicyVO1.setTeamlevel("一级团队");
-            if(userList1!=null && userList1.size()>0){
-                userPolicyList1=this.baseMapper.queryOrderCount(userList1,record.getStartdate(),record.getEnddate());
-                EsmTeamPolicyVO esmTeamPolicyVO1_t=this.baseMapper.queryOrderCountHz(userList1,record.getStartdate(),record.getEnddate());
-                if(esmTeamPolicyVO1_t!=null){
+            if (userList1 != null && userList1.size() > 0) {
+                userPolicyList1 = this.baseMapper.queryOrderCount(userList1, record.getStartdate(), record.getEnddate());
+                EsmTeamPolicyVO esmTeamPolicyVO1_t = this.baseMapper.queryOrderCountHz(userList1, record.getStartdate(),
+                        record.getEnddate());
+                if (esmTeamPolicyVO1_t != null) {
                     esmTeamPolicyVO1.setSumpremium(esmTeamPolicyVO1_t.getSumpremium());
                     esmTeamPolicyVO1.setUsernum(userPolicyList1.size());//出单人力
                 }
@@ -360,10 +373,11 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
                 userList2 = this.baseMapper.getIdDown_2(esmUserReferrer.getId());
 
                 esmTeamPolicyVO2.setTeamlevel("二级团队");
-                if(userList2!=null && userList2.size()>0){
-                    userPolicyList2=this.baseMapper.queryOrderCount(userList2,record.getStartdate(),record.getEnddate());
-                    EsmTeamPolicyVO esmTeamPolicyVO2_t=this.baseMapper.queryOrderCountHz(userList2,record.getStartdate(),record.getEnddate());
-                    if(esmTeamPolicyVO2_t!=null){
+                if (userList2 != null && userList2.size() > 0) {
+                    userPolicyList2 = this.baseMapper.queryOrderCount(userList2, record.getStartdate(), record.getEnddate());
+                    EsmTeamPolicyVO esmTeamPolicyVO2_t = this.baseMapper.queryOrderCountHz(userList2, record.getStartdate(),
+                            record.getEnddate());
+                    if (esmTeamPolicyVO2_t != null) {
                         esmTeamPolicyVO2.setSumpremium(esmTeamPolicyVO2_t.getSumpremium());
                         esmTeamPolicyVO2.setUsernum(userPolicyList2.size());
                     }
@@ -382,21 +396,21 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
             }
 
             //临时团队
-            List<String> registList= this.baseMapper.getIdDown3_regist(record.getId());
-            EsmTeamPolicyVO esmTeamPolicyVO9=new EsmTeamPolicyVO();
+            List<String> registList = this.baseMapper.getIdDown3_regist(record.getId());
+            EsmTeamPolicyVO esmTeamPolicyVO9 = new EsmTeamPolicyVO();
             esmTeamPolicyVO9.setTeamlevel("临时团队");
-            esmTeamPolicyVO9.setTeamnum(registList==null?0:registList.size());
+            esmTeamPolicyVO9.setTeamnum(registList == null ? 0 : registList.size());
 
             //汇总
-            List<String> userList=new ArrayList<>();
+            List<String> userList = new ArrayList<>();
             userList.addAll(userList0);
             userList.addAll(userList1);
             userList.addAll(userList2);
             userList.addAll(registList);
-            userPolicyList=this.baseMapper.queryOrderCount(userList,record.getStartdate(),record.getEnddate());
-            EsmTeamPolicyVO esmTeamPolicyVO=new EsmTeamPolicyVO();
-            EsmTeamPolicyVO esmTeamPolicyVO_t=this.baseMapper.queryOrderCountHz(userList,record.getStartdate(),record.getEnddate());
-            if(esmTeamPolicyVO_t!=null){
+            userPolicyList = this.baseMapper.queryOrderCount(userList, record.getStartdate(), record.getEnddate());
+            EsmTeamPolicyVO esmTeamPolicyVO = new EsmTeamPolicyVO();
+            EsmTeamPolicyVO esmTeamPolicyVO_t = this.baseMapper.queryOrderCountHz(userList, record.getStartdate(), record.getEnddate());
+            if (esmTeamPolicyVO_t != null) {
                 esmTeamPolicyVO.setSumpremium(esmTeamPolicyVO_t.getSumpremium());
                 esmTeamPolicyVO.setUsernum(userPolicyList.size());
             }
@@ -412,7 +426,7 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
             esmUserCountVO.setUserPolicyList0(userPolicyList0);
             esmUserCountVO.setUserPolicyList1(userPolicyList1);
             esmUserCountVO.setUserPolicyList2(userPolicyList2);
-        }else{
+        } else {
             throw new SystemException("内部错误");
         }
 
@@ -420,9 +434,26 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
     }
 
 
-    public List<EsmUserReferrer> queryList(String affiliation){
+    public List<EsmUserReferrer> queryList(String affiliation) {
         return super.baseMapper.queryList(affiliation);
     }
+
+
+    @Override
+    public BasePageResult<SysUserTeamDto> getTeamUser(AppCustomerManagementQueryVo managementQueryVo, String userId) {
+        List<EsmUserReferrer> esmUserReferrers = lambdaQuery().eq(EsmUserReferrer::getReferrerId, userId).list();
+        if (esmUserReferrers.isEmpty()) {
+            return new BasePageResult<>();
+        }
+        int i = esmUserReferrers.get(0).getLevel() + 3;
+        PageHelper.startPage(managementQueryVo.getPageNum(), managementQueryVo.getPageSize());
+        List<SysUserTeamDto> byTeam = baseMapper.getByTeam(managementQueryVo, userId, i);
+        PageResult<SysUserTeamDto> sysUserPageResult = new PageResult<>(byTeam);
+        return new BasePageResult<>(managementQueryVo.getPageNum(), managementQueryVo.getPageSize(), sysUserPageResult.getTotalPages(),
+                sysUserPageResult.getPageSize(), sysUserPageResult.getContent());
+    }
+
+
 }
 
 

+ 9 - 0
src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeService.java

@@ -78,6 +78,15 @@ public interface FeeRuleSchemeService {
     public FeeOrderNewVo.ExportFee calcExportFee(BigDecimal premium, BigDecimal superviseCostsProportion, BigDecimal entranceTotalProportion,
                                                  BigDecimal deptTotalProportion,BigDecimal retailTotalProportion,BigDecimal taxRate);
 
+    /**
+     * 计算分销费用
+     * @param jqPremiums
+     * @param syPremiums
+     * @param noPremiums
+     * @param proportion
+     */
+    public BigDecimal calcRetail(BigDecimal jqPremiums, BigDecimal syPremiums, BigDecimal noPremiums, BigDecimal proportion);
+
 
     FeeOrderNewVo newConvertOrderFeeVoData(InsFeeOrderNew insFeeOrderNew, PtlAgreementProductCostsNew ptlAgreementProductCostsNew);
 

+ 13 - 0
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -2839,6 +2839,19 @@ BigDecimal.ROUND_DOWN));
         return exportFee;
     }
 
+    @Override
+    public BigDecimal calcRetail(BigDecimal jqPremiums, BigDecimal syPremiums, BigDecimal noPremiums, BigDecimal proportion) {
+        //计算交强险分销
+        BigDecimal jqRetail = jqPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //计算商业险分销
+        BigDecimal syRetail = syPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //计算非车险分销
+        BigDecimal noRetail = noPremiums.multiply(proportion.divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //总分销
+        BigDecimal totalRetail = jqRetail.add(syRetail).add(noRetail).setScale(2,BigDecimal.ROUND_DOWN);
+        return totalRetail;
+    }
+
     public List<DistributionLevelVo> converDistrbutionData(InsFeeOrderNew insFeeOrderNew) {
         ArrayList<DistributionLevelVo> resultList = new ArrayList<>();
         DistributionLevelVo levelOne = new DistributionLevelVo();

+ 70 - 16
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -91,6 +91,9 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
     @Autowired
     private FeeRuleSchemeService feeRuleSchemeService;
 
+    @Resource
+    private InsFeeOrderNewDistributionService insFeeOrderNewDistributionService;
+
 
     @Override
     public QueryOrderFeeVo queryFeeOrderInfo(String companyId) {
@@ -257,24 +260,24 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
                 BigDecimal sumPremium = insFeeOrderNew.getJqPremium().add(insFeeOrderNew.getSyPremium()).add(insFeeOrderNew.getNoPremium());
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 3) {
                     insFeeOrderNew.setThirdDetailProportion(new BigDecimal(esmRetail.getDisrate3()));
-                    retailRadio = retailRadio.add(insFeeOrderNew.getThirdDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    insFeeOrderNew.setThirdDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate3())).divide(new BigDecimal("100")).setScale(2, BigDecimal.ROUND_DOWN));
+                    BigDecimal thirdDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getThirdDetailProportion());
+                    insFeeOrderNew.setThirdDetailPremiums(thirdDetailPremiums);
                     if (parents != null && parents.size() > 2) {
                         insFeeOrderNew.setThreeLevelUserId(parents.get(2).getId());
                     }
                 }
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 2) {
                     insFeeOrderNew.setSecondDetailProportion(new BigDecimal(esmRetail.getDisrate2()));
-                    retailRadio = retailRadio.add(insFeeOrderNew.getSecondDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    insFeeOrderNew.setSecondDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate2())).divide(new BigDecimal("100")).setScale(2,BigDecimal.ROUND_DOWN));
+                    BigDecimal secondDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getSecondDetailProportion());
+                    insFeeOrderNew.setSecondDetailPremiums(secondDetailPremiums);
                     if (parents != null && parents.size() > 1) {
                         insFeeOrderNew.setTwoLevelUserId(parents.get(1).getId());
                     }
                 }
                 if (Integer.parseInt(esmRetail.getRetailtype()) >= 1) {
                     insFeeOrderNew.setFirstDetailProportion(new BigDecimal(esmRetail.getDisrate1()));
-                    retailRadio = retailRadio.add(insFeeOrderNew.getFirstDetailProportion()).setScale(2, BigDecimal.ROUND_DOWN);
-                    insFeeOrderNew.setFirstDetailPremiums(sumPremium.multiply(new BigDecimal(esmRetail.getDisrate1())).divide(new BigDecimal("100")).setScale(2,BigDecimal.ROUND_DOWN));
+                    BigDecimal firstDetailPremiums = feeRuleSchemeService.calcRetail(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), insFeeOrderNew.getNoPremium(), insFeeOrderNew.getFirstDetailProportion());
+                    insFeeOrderNew.setFirstDetailPremiums(firstDetailPremiums);
                     if (parents != null && parents.size() > 0) {
                         insFeeOrderNew.setFirstLevelUserId(parents.get(0).getId());
                     }
@@ -433,6 +436,40 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //endregion
 
         insFeeOrderNewService.saveOrUpdate(insFeeOrderNew);
+        if (insFeeOrderNew.getFirstLevelUserId() != null) {
+            createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, insOrders,
+                    insFeeOrderNew.getFirstLevelUserId(), insFeeOrderNew.getFirstDetailProportion(),
+                    insFeeOrderNew.getFirstDetailPremiums(), insFeeOrderNew.getDistributionStatus());
+        }
+        if (insFeeOrderNew.getTwoLevelUserId() != null) {
+            createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, insOrders,
+                    insFeeOrderNew.getTwoLevelUserId(), insFeeOrderNew.getSecondDetailProportion(),
+                    insFeeOrderNew.getSecondDetailPremiums(), insFeeOrderNew.getDistributionStatus());
+        }
+        if (insFeeOrderNew.getThreeLevelUserId() != null) {
+            createInsFeeOrderNewDistribution(insFeeOrderNew, insAreaCompany, insOrders,
+                    insFeeOrderNew.getThreeLevelUserId(), insFeeOrderNew.getThirdDetailProportion(),
+                    insFeeOrderNew.getThirdDetailPremiums(), insFeeOrderNew.getDistributionStatus());
+        }
+    }
+
+    private void createInsFeeOrderNewDistribution(InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, InsOrders insOrders, String userId, BigDecimal commissionRate, BigDecimal commissionAmount, String commissionLevel) {
+        InsFeeOrderNewDistribution insFeeOrderNewDistribution = new InsFeeOrderNewDistribution();
+        insFeeOrderNewDistribution.setId(IdGenerate.nextId());
+        insFeeOrderNewDistribution.setOrderNo(insFeeOrderNew.getInsOrderNo());
+        insFeeOrderNewDistribution.setJqPolicyNo(insAreaCompany.getJqpolicyno());
+        insFeeOrderNewDistribution.setSyPolicyNo(insAreaCompany.getSypolicyno());
+        insFeeOrderNewDistribution.setLicenseNo(insOrders.getLicenseno());
+        insFeeOrderNewDistribution.setProductId(insAreaCompany.getProductid());
+        insFeeOrderNewDistribution.setProduct(insAreaCompany.getProduct());
+        insFeeOrderNewDistribution.setSignTime(insAreaCompany.getSigningTime());
+        insFeeOrderNewDistribution.setInsCompany(insAreaCompany.getInscompany());
+        insFeeOrderNewDistribution.setUserId(userId);
+        insFeeOrderNewDistribution.setCommissionRate(commissionRate);
+        insFeeOrderNewDistribution.setCommissionAmount(commissionAmount);
+        insFeeOrderNewDistribution.setCommissionLevel(commissionLevel);
+        // 保存insFeeOrderNewDistribution
+        insFeeOrderNewDistributionService.save(insFeeOrderNewDistribution);
     }
 
 
@@ -881,11 +918,20 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //将值进行分割
         String[] split = ptlAgreementProductCostsAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(false);
-        Arrays.stream(split).forEach(x -> {
-            if (value.contains(x)) {
-                returnBool.set(true);
-            }
-        });
+        if(ptlAgreementProductCostsAttrLink.getAttrCode().equals("NatureOfUse")){
+            Arrays.stream(split).forEach(x -> {
+                if (value.equals(x)) {
+                    returnBool.set(true);
+                }
+            });
+        }else{
+            Arrays.stream(split).forEach(x -> {
+                if (value.contains(x)) {
+                    returnBool.set(true);
+                }
+            });
+        }
+
         return returnBool.get();
     }
 
@@ -893,11 +939,19 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //将值进行分割
         String[] split = ptlAgreementUndwrtRulesAttrLink.getMin().split(",");
         AtomicBoolean returnBool = new AtomicBoolean(true);
-        Arrays.stream(split).forEach(x -> {
-            if (!x.equals("") && value.contains(x)) {
-                returnBool.set(false);
-            }
-        });
+        if(ptlAgreementUndwrtRulesAttrLink.getAttrCode().equals("NatureOfUse")) {
+            Arrays.stream(split).forEach(x -> {
+                if (!x.equals("") && value.equals(x)) {
+                    returnBool.set(false);
+                }
+            });
+        }else{
+            Arrays.stream(split).forEach(x -> {
+                if (!x.equals("") && value.contains(x)) {
+                    returnBool.set(false);
+                }
+            });
+        }
         return returnBool.get();
     }
 

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

@@ -119,11 +119,17 @@ public class InsPlyIncomeController extends BaseController {
     }
 
     @PutMapping("/batchInvoic")
-    @ApiModelProperty(value = "批量开票跟单费")
+    @ApiModelProperty(value = "开票跟单费")
     public HttpResult<Object> batchInvoic(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
 
         return   insPlyIncomeService.batchInvoic(insPlyIncomeVo);
     }
+
+    @PutMapping("/singleInvoic")
+    @ApiModelProperty(value = "批量开票跟单费")
+    public HttpResult<Object> singleInvoic(@RequestBody  InsPlyIncomeVo  insPlyIncomeVo) {
+        return   insPlyIncomeService.singleInvoic(insPlyIncomeVo);
+    }
     @PutMapping("/batchBalance")
     @ApiModelProperty(value = "批量结算跟单费")
     public HttpResult<Object> batchBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
@@ -186,6 +192,12 @@ public class InsPlyIncomeController extends BaseController {
         insPlyIncomeService.updateByEntity(insPlyIncomeVo);
         return HttpResult.ok("修改成功");
     }
+    @PutMapping("/batchUpdate")
+    @ApiModelProperty(value = "批量修改")
+    public HttpResult<Object> batchUpdate(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
+        insPlyIncomeService.batchUpdate(insPlyIncomeVo);
+        return HttpResult.ok("批量修改成功");
+    }
     @PostMapping("/insert")
     @ApiModelProperty(value = "新增")
     public HttpResult<InsPlyIncome> insertByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
@@ -283,6 +295,14 @@ public class InsPlyIncomeController extends BaseController {
     public HttpResult<List<HashMap<String,Object>>>   otherSettldetail (@RequestBody  InsPlyIncomeVo insPlyIncomeVo){
         return  insPlyIncomeService.otherSettldetail(insPlyIncomeVo);
     }
+    @PostMapping("/otherTimeDetail")
+    @ApiOperation(value = "非跟单明细查询")
+    public HttpResult<List<HashMap<String,Object>>>   otherTimeDetail (@RequestBody  InsPlyIncomeVo insPlyIncomeVo){
+        return  insPlyIncomeService.otherTimeDetail(insPlyIncomeVo);
+    }
+
+
+
 
 }
 

+ 9 - 0
src/main/java/com/ydtech/modules/fnc/controller/SettlementDocumentaryFeesController.java

@@ -5,9 +5,11 @@ import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
 import com.ydtech.modules.fnc.service.SettlementDocumentaryFeesService;
+import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
 import com.ydtech.modules.fnc.vo.SettlementDocumentaryFeesVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -39,4 +41,11 @@ public class SettlementDocumentaryFeesController extends BaseController {
       return   settlementDocumentaryFeesService.documentarySettle(settlementDocumentaryFeesVo);
     }
 
+    @PutMapping("/voidInvoicing")
+    @ApiModelProperty(value = "作废开票")
+    public HttpResult<Object> voidInvoicing(@RequestBody SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
+        settlementDocumentaryFeesService.voidInvoicing(settlementDocumentaryFeesVo);
+        return HttpResult.ok("作废成功");
+    }
+
 }

+ 2 - 0
src/main/java/com/ydtech/modules/fnc/dao/InsPlyIncomeMapper.java

@@ -120,4 +120,6 @@ public interface InsPlyIncomeMapper extends BaseMapper<InsPlyIncome> {
     InsPlyIncome getEntityById(@Param("id") String id);
 
     void updateByIds(String[] split);
+
+    List<HashMap<String,Object>> otherTimeDetail(HashMap<String, Object> params);
 }

+ 37 - 0
src/main/java/com/ydtech/modules/fnc/entity/InsPlyIncome.java

@@ -7,6 +7,8 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.Date;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
@@ -301,6 +303,34 @@ public class InsPlyIncome implements Serializable {
     @TableField("insured_name")
     private String insuredName;
 
+    @ApiModelProperty("备注")
+    @TableField("remarks")
+    private String remarks;
+
+    @ApiModelProperty("交强险起期")
+    @TableField("jq_start_date")
+    private String jqStartDate;
+
+    @ApiModelProperty("交强险止期")
+    @TableField("jq_end_date")
+    private String jqEndDate;
+
+    @ApiModelProperty("商业险起期")
+    @TableField("sy_start_date")
+    private String syStartDate;
+
+    @ApiModelProperty("商业险止期")
+    @TableField("sy_end_date")
+    private String syEndDate;
+
+    @ApiModelProperty("跟单结算")
+    @TableField("settle_other_status")
+    private String settleOtherStatus;
+
+    @ApiModelProperty("跟单结算")
+    @TableField("settle_other_status")
+    private String settlementImageId;
+
 
     @ApiModelProperty("总单数")
     @TableField(exist = false)
@@ -397,6 +427,13 @@ public class InsPlyIncome implements Serializable {
     @TableField(exist = false)
     private String dockingPerson;
 
+    @ApiModelProperty("进账金额")
+    @TableField(exist = false)
+    private BigDecimal expendAmount;
+
+    @ApiModelProperty("税点")
+    @TableField(exist = false)
+    private BigDecimal taxPoints;
 
     public InsPlyIncome(String orderno, String policyno, String syPolicyno, String noPolicyno, String settleno, String deptId, String deptName, String riskcode, LocalDateTime payDate, LocalDateTime signDate, String companyId, String companyName, String agreementId, String licenseno, BigDecimal taxamount, BigDecimal noTaxPremium, BigDecimal commissionFeerate, BigDecimal otherFeerate, BigDecimal commissionFeevalue, BigDecimal otherFeevalue, BigDecimal allFeeValue, BigDecimal finalFeeValue, BigDecimal doingFeeValue, LocalDate createTime, String voucherNumber, String contractId, String contractFileId, String handlingFeesStatus, String documentaryFeesStatus, String isNotCar, String isNotDocumentary) {
         this.orderno = orderno;

+ 16 - 0
src/main/java/com/ydtech/modules/fnc/entity/SettlementDocumentaryFeesEntity.java

@@ -109,6 +109,10 @@ public class SettlementDocumentaryFeesEntity implements Serializable {
     @TableField("expend_amount")
     private BigDecimal expendAmount;
 
+    @ApiModelProperty("签订日期")
+    @TableField("signing_time")
+    private LocalDate signingTime;
+
     @ApiModelProperty("开票id")
     @TableField("parent_id")
     private String parentId;
@@ -122,5 +126,17 @@ public class SettlementDocumentaryFeesEntity implements Serializable {
     @TableField("agreement_type")
     private String agreementType;
 
+    @ApiModelProperty("结算凭证")
+    @TableField("settlement_image_id")
+    private String settlementImageId;
+
+
+    @ApiModelProperty("图片路径")
+    private String imageUrl;
+
+    @ApiModelProperty("税费")
+    @TableField(exist = false)
+    private String taxesFees;
+
 
 }

+ 6 - 0
src/main/java/com/ydtech/modules/fnc/service/InsPlyIncomeService.java

@@ -121,4 +121,10 @@ public interface InsPlyIncomeService extends IService<InsPlyIncome> {
 
     InsPlyIncome getEntityById(String id);
 
+    HttpResult<List<HashMap<String,Object>>> otherTimeDetail(InsPlyIncomeVo insPlyIncomeVo);
+
+    HttpResult<Object> singleInvoic(InsPlyIncomeVo insPlyIncomeVo);
+
+    void batchUpdate(InsPlyIncomeVo insPlyIncomeVo);
+
 }

+ 2 - 0
src/main/java/com/ydtech/modules/fnc/service/SettlementDocumentaryFeesService.java

@@ -27,4 +27,6 @@ public interface SettlementDocumentaryFeesService extends IService<SettlementDoc
     List<HashMap<String, Object>> getInvoicIds(HashMap<String, Object> params);
 
     SettlementDocumentaryFeesEntity getByParentSettlementAmount(String id);
+
+    void voidInvoicing(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo);
 }

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

@@ -167,10 +167,10 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 totalOtherPremiumAmount = totalOtherPremiumAmount.add(insFeeOrderNew.getJqExportOtherCostsPremiums()).add(insFeeOrderNew.getSyExportOtherCostsPremiums()).add(insFeeOrderNew.getNoExportOtherCostsPremiums());
 
 
-//              用戶
+                //用戶
                 sysUserAccount.setHandlingFee(totalPremiumAmount);
                 sysUserAccount.setDocumentary(totalOtherPremiumAmount);
-//              算佣金
+                //算佣金
                 this.countUserAmount(insFeeOrderNew,orderNo);
                 sysUserAccount.setDocumentaryStatus("2");  // 收入
                 sysUserAccount.setSuborderId(orderNo);  // 订单Id
@@ -203,10 +203,10 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                     BigDecimal distributionFee = BigDecimal.ZERO;
                     if (i == 5) {
                         if (insFeeOrderNew.getTwoLevelUserId() == null) {
-                            distributionFee = insFeeOrderNew.getSecondDetailPremiums();
+                            distributionFee = distributionFee.add(insFeeOrderNew.getSecondDetailPremiums());
                         }
                         if (insFeeOrderNew.getThreeLevelUserId() == null) {
-                            distributionFee = insFeeOrderNew.getThirdDetailPremiums();
+                            distributionFee = distributionFee.add(insFeeOrderNew.getThirdDetailPremiums());
                         }
                     }
 

+ 256 - 31
src/main/java/com/ydtech/modules/fnc/service/impl/InsPlyIncomeServiceImpl.java

@@ -14,6 +14,7 @@ import com.github.pagehelper.PageInfo;
 import com.ydtech.constants.enums.dict.agreement.ProductsType;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmInsCompany;
 import com.ydtech.modules.esm.service.EsmInsCompanyService;
 import com.ydtech.modules.fnc.entity.InsAreaCompany;
@@ -73,6 +74,7 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.YearMonth;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -184,6 +186,10 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         insPlyIncome.setNoPremium(insPlyIncome.getNoPremium());
         insPlyIncome.setIsNotCar("1");
         insPlyIncome.setIsNotDocumentary("1");
+        insPlyIncome.setJqStartDate(insAreaCompany.getJqStartDate());
+        insPlyIncome.setJqEndDate(insAreaCompany.getJqEndDate());
+        insPlyIncome.setSyStartDate(insAreaCompany.getSyStartDate());
+        insPlyIncome.setSyEndDate(insAreaCompany.getSyEndDate());
         insPlyIncome.setAllFeeValue(insFeeOrderNew.getNoOtherCostsPremiums());
         this.saveByCompanyId(insFeeOrderNew ,insAreaCompany.getCompanyId(),insPlyIncome);
         baseMapper.insert(insPlyIncome);
@@ -217,6 +223,10 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         insPlyIncome.setInsuredName(order.getInsuredname());
         insPlyIncome.setNoPremium(insFeeOrderNew.getNoPremium()); //非车保费
         insPlyIncome.setNoNoTaxPremium(insFeeOrderNew.getNoNoTaxPremium());  //非车不含税保费
+        insPlyIncome.setJqStartDate(insAreaCompany.getJqStartDate());
+        insPlyIncome.setJqEndDate(insAreaCompany.getJqEndDate());
+        insPlyIncome.setSyStartDate(insAreaCompany.getSyStartDate());
+        insPlyIncome.setSyEndDate(insAreaCompany.getSyEndDate());
         this.saveByCompanyId(insFeeOrderNew ,insAreaCompany.getCompanyId(),insPlyIncome);
 
         baseMapper.insert(insPlyIncome);
@@ -261,6 +271,10 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         insPlyIncome.setSyOtherCostsProportion(insFeeOrderNew.getSyOtherCostsProportion());   //商业跟单费比例
         insPlyIncome.setSyOtherCostsPremium(insFeeOrderNew.getSyOtherCostsPremiums());
         insPlyIncome.setJqOtherCostsPremium(insFeeOrderNew.getJqOtherCostsPremiums());
+        insPlyIncome.setJqStartDate(insAreaCompany.getJqStartDate());
+        insPlyIncome.setJqEndDate(insAreaCompany.getJqEndDate());
+        insPlyIncome.setSyStartDate(insAreaCompany.getSyStartDate());
+        insPlyIncome.setSyEndDate(insAreaCompany.getSyEndDate());
         insPlyIncome.setUserId(insFeeOrderNew.getUserId());
         insPlyIncome.setInsuredName(order.getInsuredname());
         this.saveByCompanyId(insFeeOrderNew ,insAreaCompany.getCompanyId(),insPlyIncome);
@@ -288,6 +302,10 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         insPlyIncome.setTaxPremium(allTaxPremium);
         insPlyIncome.setUserId(insFeeOrderNew.getUserId());
         insPlyIncome.setInsuredName(order.getInsuredname());
+        insPlyIncome.setJqStartDate(insAreaCompany.getJqStartDate());
+        insPlyIncome.setJqEndDate(insAreaCompany.getJqEndDate());
+        insPlyIncome.setSyStartDate(insAreaCompany.getSyStartDate());
+        insPlyIncome.setSyEndDate(insAreaCompany.getSyEndDate());
         this.saveByCompanyId(insFeeOrderNew ,insAreaCompany.getCompanyId(),insPlyIncome);
         baseMapper.insert(insPlyIncome);
     }
@@ -357,6 +375,10 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         insPlyIncome.setSyNoTaxPremium(insFeeOrderNew.getSyNoTaxPremium());
         insPlyIncome.setNoNoTaxPremium(insFeeOrderNew.getNoNoTaxPremium());
         insPlyIncome.setUserId(insFeeOrderNew.getUserId());
+        insPlyIncome.setJqStartDate(insAreaCompany.getJqStartDate());
+        insPlyIncome.setJqEndDate(insAreaCompany.getJqEndDate());
+        insPlyIncome.setSyStartDate(insAreaCompany.getSyStartDate());
+        insPlyIncome.setSyEndDate(insAreaCompany.getSyEndDate());
         this.saveRiskCode(order.getProductid(),insPlyIncome);
         insPlyIncome.setInsuredName(order.getInsuredname());
         this.saveByCompanyId(insFeeOrderNew ,insAreaCompany.getCompanyId(),insPlyIncome);
@@ -426,7 +448,11 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
             params.put("pageNum",insPlyIncomeVo.getPageNum());
             params.put("pageSize",insPlyIncomeVo.getPageSize());
             params =this.saveParams(insPlyIncomeVo,params);
+            if(StringUtils.isNotEmpty(insPlyIncomeVo.getIds())){
+                params.put("ids",insPlyIncomeVo.getIds().split(","));
+            }
             List<InsPlyIncome> list= this.baseMapper.queryNew(params);
+
             pageHelper=new PageInfo(list);
             BasePageResult<InsPlyIncome> pageResult=new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
             return HttpResult.ok(pageResult);
@@ -556,6 +582,28 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         if(StringUtils.isNotEmpty(insPlyIncomeVo.getDockingPerson())){
             params.put("dockingPerson",insPlyIncomeVo.getDockingPerson());
         }
+        if(StringUtils.isNotEmpty(insPlyIncomeVo.getYeartsStart()) &&  StringUtils.isNotEmpty(insPlyIncomeVo.getYeartsEnd())){
+            params.put("yeartsStart",insPlyIncomeVo.getYeartsStart());
+            params.put("yeartsEnd",insPlyIncomeVo.getYeartsEnd());
+        }
+        if(insPlyIncomeVo.getJqStartDate() !=null){
+            params.put("jqStartDate",insPlyIncomeVo.getJqStartDate());
+        }
+        if(insPlyIncomeVo.getJqStartDate() !=null){
+            params.put("jqEndDate",insPlyIncomeVo.getJqEndDate());
+        }
+        if(insPlyIncomeVo.getJqStartDate() !=null){
+            params.put("syStartDate",insPlyIncomeVo.getSyStartDate());
+        }
+        if(insPlyIncomeVo.getJqStartDate() !=null){
+            params.put("syEndDate",insPlyIncomeVo.getSyEndDate());
+        }
+        if( StringUtils.isNotEmpty(insPlyIncomeVo.getDeptId())){
+            params.put("deptId",insPlyIncomeVo.getDeptId());
+        }
+        if(!CollectionUtils.isEmpty(insPlyIncomeVo.getSelectIds())){
+            params.put("selectIds",insPlyIncomeVo.getSelectIds());
+        }
         return params;
     }
 
@@ -695,26 +743,84 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
             Integer i=0;
             if(!CollectionUtils.isEmpty(dtoList)){
                 for (InsBxPlyIncomeExcelDto excelItem : dtoList) {
+                    String reason  ="";
                     i=i+1;
                     params.clear();
                     if(StringUtils.isNotEmpty(excelItem.getLicenseno())){
                         String licenseno = excelItem.getLicenseno();//车牌号
                         params.put("licenseno",licenseno);
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据车牌号有问题";
+                        }
                     }
                     if(StringUtils.isNotEmpty(excelItem.getPolicyno())){
                         String policyno = excelItem.getPolicyno(); //交强保单号
                         params.put("policyno",policyno);
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据交强保单号有问题";
+                        }
                     }
 
                     if(StringUtils.isNotEmpty(excelItem.getSyPolicyno())){
                         String syPolicyno = excelItem.getSyPolicyno(); //商业保单号
                         params.put("syPolicyno",syPolicyno);
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据商业保单号有问题";
+                        }
                     }
+
+                    if(excelItem.getJqSuperviseCostsPremiums() !=null &&  excelItem.getJqSuperviseCostsPremiums().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("jqSuperviseCostsPremiums",excelItem.getJqSuperviseCostsPremiums());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据交强手续费金额有问题";
+                        }
+                    }
+                    if(excelItem.getJqSuperviseCostsProportion() !=null &&  excelItem.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("jqSuperviseCostsProportion",excelItem.getJqSuperviseCostsProportion());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据交强手续费比例有问题";
+                        }
+                    }
+                    if(excelItem.getSySuperviseCostsProportion() !=null && excelItem.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("sySuperviseCostsProportion",excelItem.getSySuperviseCostsProportion());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据商业手续费比例有问题";
+                        }
+                    }
+
+                    if(excelItem.getSySuperviseCostsPremiums() !=null  && excelItem.getSySuperviseCostsPremiums().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("sySuperviseCostsPremiums",excelItem.getSySuperviseCostsPremiums());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据商业手续费金额有问题";
+                        }
+                    }
+                    if(excelItem.getJqPremium() !=null  && excelItem.getJqPremium().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("jqPremium",excelItem.getJqPremium());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据交强保费有问题";
+                        }
+                    }
+                    if(excelItem.getSyPremium()  !=null && excelItem.getSyPremium().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("syPremium",excelItem.getSyPremium());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据商业保费有问题";
+                        }
+                    }
+
 //                  只查手续费
                     params.put("isOther","0");
                     params.put("isNotCar",isNotCar);
                     InsPlyIncome insPlyIncome = baseMapper.findByBxLicenseno(params);
-                    if(i==dtoList.size()){
+                    if(i==dtoList.size() &&  ObjectUtils.isNotEmpty(insPlyIncome)){
                         resultMap.put("companyId",insPlyIncome.getCompanyId()); // 保险公司id
                         resultMap.put("partnerCompaniesId",insPlyIncome.getPartnerCompaniesId()); //合作公司id
                         resultMap.put("agreementId",insPlyIncome.getAgreementId());  //协议id
@@ -737,6 +843,7 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
                         }
                         resultList.add(noMatching);
                     }
+                    resultMap.put("reason",reason);
                 }
             }
             if(strBuilder.length() >0){
@@ -765,21 +872,53 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
             List<InsBxNoPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxNoPlyIncomeExcelDto.class, 0, 1, 1);
             if(!CollectionUtils.isEmpty(dtoList)){
                 for (InsBxNoPlyIncomeExcelDto excelItem : dtoList) {
+                    String  reason ="";
                     i=i+1;
                     params.clear();
                     if(StringUtils.isNotEmpty(excelItem.getLicenseno())){
                         String licenseno = excelItem.getLicenseno();//车牌号
                         params.put("licenseno",licenseno);
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据车牌号有问题";
+                        }
                     }
                     if(StringUtils.isNotEmpty(excelItem.getNoPolicyno())){
                         String policyno = excelItem.getNoPolicyno(); //非车保单号
                         params.put("NoPolicyno",policyno);
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据非车保单号有问题";
+                        }
+                    }
+
+                    if(excelItem.getNoPremium() !=null && excelItem.getNoPremium().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("noPolicyno",excelItem.getNoPremium());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据非车保费有问题";
+                        }
+                    }
+
+                    if( excelItem.getNoSuperviseCostsPremiums()  !=null  && excelItem.getNoSuperviseCostsPremiums().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("noSuperviseCostsPremiums",excelItem.getNoSuperviseCostsPremiums());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据非车手续费有问题";
+                        }
+                    }
+                    if(excelItem.getNoSuperviseCostsProportion() != null   && excelItem.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO)!=0){
+                        params.put("noSuperviseCostsProportion",excelItem.getNoSuperviseCostsProportion());
+                        InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
+                        if(ObjectUtils.isEmpty(byBxLicenseno)){
+                            reason="该数据非车手续费比例有问题";
+                        }
                     }
 //                只查手续费
                     params.put("isOther","0");
                     params.put("isNotCar",isNotCar);
                     InsPlyIncome insPlyIncome = baseMapper.findByBxLicenseno(params);
-                    if(i==dtoList.size()){
+                    if(i==dtoList.size() && ObjectUtils.isNotEmpty(insPlyIncome)){
                         resultMap.put("companyId",insPlyIncome.getCompanyId()); // 保险公司id
                         resultMap.put("partnerCompaniesId",insPlyIncome.getPartnerCompaniesId()); //合作公司id
                         resultMap.put("agreementId",insPlyIncome.getAgreementId());  //协议id
@@ -799,6 +938,7 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
                         }
                         resultList.add(noMatching);
                     }
+                    resultMap.put("reason",reason);
                 }
                 if(strBuilder.length() >0){
                     ids = strBuilder.deleteCharAt(strBuilder.length() - 1).toString();
@@ -919,6 +1059,8 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         return    baseMapper.getEntityById(id);
     }
 
+
+
     @Override
     @Transactional
     public void updateByEntity(InsPlyIncomeVo insPlyIncomeVo) {
@@ -1074,35 +1216,37 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         InsPlyIncome insPlyIncome = new InsPlyIncome();
         insPlyIncomeVo.setOrderno(id.toString());
         BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
+        insPlyIncome.setUserId(BaseController.getUser().getId());
         insPlyIncome.setDocumentaryFeesStatus("0");
         insPlyIncome.setHandlingFeesStatus("0");
-        insPlyIncome.setIsNotCar("0");
-        insPlyIncome.setIsNotDocumentary("1");
-        baseMapper.insert(insPlyIncome);
-        insPlyIncomeVo.setId(insPlyIncome.getId());
-        insPlyIncomeVo.setCrudStatus("1");
-        this.saveLog(insPlyIncomeVo);   //添加日志
-
-        HashMap<String, Object> params = new HashMap<>();
+        insPlyIncome.setIsNotCar(insPlyIncomeVo.getIsNotCar());   // 是否是非车
+        insPlyIncome.setIsNotDocumentary(insPlyIncomeVo.getIsNotDocumentary());  //是否是跟单
 
-        if(StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotCar())){
-            params.put("isNotCar",insPlyIncomeVo.getIsNotCar());
-        }
-        params.put("isOther","1");
-        if(StringUtils.isNotEmpty(insPlyIncomeVo.getYear())){
-            params.put("year",insPlyIncomeVo.getYear());
-        }
-        if(StringUtils.isNotEmpty(insPlyIncomeVo.getCompanyId())){
-            params.put("companyId",insPlyIncomeVo.getCompanyId());
-        }
-
-        List<InsPlyIncome> list= this.baseMapper.NonSettlementQuery(params);
-        if(!CollectionUtils.isEmpty(list)){
-            for (InsPlyIncome item :list){
-                return HttpResult.ok(item.getIds());
-            }
-        }
-        return null;
+        baseMapper.insert(insPlyIncome);
+//        insPlyIncomeVo.setId(insPlyIncome.getId());
+//        insPlyIncomeVo.setCrudStatus("1");
+//        this.saveLog(insPlyIncomeVo);   //添加日志
+//
+//        HashMap<String, Object> params = new HashMap<>();
+//
+//        if(StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotCar())){
+//            params.put("isNotCar",insPlyIncomeVo.getIsNotCar());
+//        }
+//        params.put("isOther","1");
+//        if(StringUtils.isNotEmpty(insPlyIncomeVo.getYear())){
+//            params.put("year",insPlyIncomeVo.getYear());
+//        }
+//        if(StringUtils.isNotEmpty(insPlyIncomeVo.getCompanyId())){
+//            params.put("companyId",insPlyIncomeVo.getCompanyId());
+//        }
+//
+//        List<InsPlyIncome> list= this.baseMapper.NonSettlementQuery(params);
+//        if(!CollectionUtils.isEmpty(list)){
+//            for (InsPlyIncome item :list){
+//                return HttpResult.ok(item.getIds());
+//            }
+//        }
+        return HttpResult.ok();
     }
 
     @Override
@@ -1351,6 +1495,7 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getInvoicCommissionFeevalue());
         settlementDocumentaryFeesVo.setHandlingFeesStatus("0");
         settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
+        settlementDocumentaryFeesVo.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
         settlementDocumentaryFeesVo.setCreateTime(LocalDate.now());
         settlementDocumentaryFeesVo.setAgreementType("2");  //1平台 2  保险
         settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
@@ -1444,8 +1589,8 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
     @Override
     @Transactional
     public HttpResult<Object> batchInvoic(InsPlyIncomeVo insPlyIncomeVo) {
-        //  通过ids 查出跟单非结算单
-        String ids = insPlyIncomeVo.getIds();
+                //  通过ids 查出跟单非结算单
+            String ids = insPlyIncomeVo.getIds();
 //        if(StringUtils.isNotEmpty(ids)){
 //            String[] split = ids.split(",");
 //            for (int i =0; i <split.length ; i++) {
@@ -1462,6 +1607,15 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         if(StringUtils.isNotEmpty(insPlyIncomeVo.getYear())){
             settlementDocumentaryFeesVo.setTimeFrame(insPlyIncomeVo.getYear());//年度
         }
+        if(!CollectionUtils.isEmpty(insPlyIncomeVo.getMultipleSelection())){
+            InsPlyIncomeVo insPlyIncomeVo1 = insPlyIncomeVo.getMultipleSelection().get(0);
+            insPlyIncomeVo.setSettlementAmount(insPlyIncomeVo1.getSettlementAmount());
+            insPlyIncomeVo.setOtherFeevalue(insPlyIncomeVo1.getAllTotalOtherFeevalue());
+            YearMonth yearMonth = YearMonth.parse(insPlyIncomeVo1.getMonthYear());
+            LocalDate signingTime = yearMonth.atDay(1);
+            settlementDocumentaryFeesVo.setSigningTime(signingTime);
+
+        }
         if(StringUtils.isNotEmpty(insPlyIncomeVo.getYear())){
             settlementDocumentaryFeesVo.setYear(insPlyIncomeVo.getYear());
         }
@@ -1488,7 +1642,7 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         settlementDocumentaryFeesVo.setTaxPoints(insPlyIncomeVo.getTaxPoints()); //税点
         settlementDocumentaryFeesVo.setIds(insPlyIncomeVo.getIds());
         //  税点支出
-        if(BigDecimalUtils.nullToZero(insPlyIncomeVo.getTaxPoints()) !=null   && BigDecimalUtils.nullToZero(insPlyIncomeVo.getSettlementAmount()) !=null){
+        if(BigDecimalUtils.nullToZero(insPlyIncomeVo.getTaxPoints()) !=null && insPlyIncomeVo.getTaxPoints().compareTo(BigDecimal.ZERO) != 0   && BigDecimalUtils.nullToZero(insPlyIncomeVo.getSettlementAmount()) !=null){
             BigDecimal settlementAmount = insPlyIncomeVo.getSettlementAmount();
             settlementDocumentaryFeesVo.setExpendAmount(settlementAmount.multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
         }
@@ -1592,7 +1746,78 @@ public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, Ins
         InsPlyIncome totalledAmount =baseMapper.bxTotalAmount(params);  //总金额
         return totalledAmount;
     }
+    @Override
+    public HttpResult<List<HashMap<String,Object>>> otherTimeDetail(InsPlyIncomeVo insPlyIncomeVo) {
+        HashMap<String, Object> params = new HashMap<>();
+        this.saveParams(insPlyIncomeVo,params);
+        List<HashMap<String,Object>>  resultMap=baseMapper.otherTimeDetail(params);
+        return HttpResult.ok(resultMap);
+    }
+
+    @Override
+    public HttpResult<Object> singleInvoic(InsPlyIncomeVo insPlyIncomeVo) {
+
+        //  通过ids 查出跟单非结算单
+        SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo();  // 生成跟单费结算表
+        if (!CollectionUtils.isEmpty(insPlyIncomeVo.getMultipleSelection())) {
+            for (InsPlyIncomeVo insPlyIncomeVo1 : insPlyIncomeVo.getMultipleSelection()) {
+                insPlyIncomeVo.setSettlementAmount(insPlyIncomeVo1.getSettlementAmount());
+                insPlyIncomeVo.setOtherFeevalue(insPlyIncomeVo1.getAllTotalOtherFeevalue());
+                YearMonth yearMonth = YearMonth.parse(insPlyIncomeVo1.getMonthYear());
+                LocalDate signingTime = yearMonth.atDay(1);
+                settlementDocumentaryFeesVo.setSigningTime(signingTime);
+
+            }
+        }
+        if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
+            settlementDocumentaryFeesVo.setTimeFrame(insPlyIncomeVo.getYear());//年度
+        }
+        if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
+            settlementDocumentaryFeesVo.setYear(insPlyIncomeVo.getYear());
+        }
+        if (StringUtils.isNotEmpty(insPlyIncomeVo.getMonth())) {
+            settlementDocumentaryFeesVo.setMonth(insPlyIncomeVo.getMonth());
+        }
+        if (StringUtils.isNotEmpty(insPlyIncomeVo.getDay())) {
+            settlementDocumentaryFeesVo.setDay(insPlyIncomeVo.getDay());
+        }
+        settlementDocumentaryFeesVo.setCompanyId(insPlyIncomeVo.getCompanyId());// 保险公司id
+        settlementDocumentaryFeesVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());  //合作公司id
+        settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getOtherFeevalue());  //其他费用金额
+        settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getNoInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount())); //未结算
+        settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount());//已经开票
+        settlementDocumentaryFeesVo.setCreateTime(LocalDate.now());
+        settlementDocumentaryFeesVo.setIds(insPlyIncomeVo.getIncomeIds());
+        settlementDocumentaryFeesVo.setSettlementStatus("1");
+        settlementDocumentaryFeesVo.setIsNotCar(insPlyIncomeVo.getIsNotCar());
+        if (StringUtils.isNotEmpty(insPlyIncomeVo.getContractId())) {
+            settlementDocumentaryFeesVo.setInvoiceId(insPlyIncomeVo.getContractId());  //开票号
+        }
+        settlementDocumentaryFeesVo.setHandlingFeesStatus(insPlyIncomeVo.getHandlingFeesStatus());
+        settlementDocumentaryFeesVo.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod()); //开票方式
+        settlementDocumentaryFeesVo.setTaxPoints(insPlyIncomeVo.getTaxPoints()); //税点
+        settlementDocumentaryFeesVo.setIds(insPlyIncomeVo.getIds());
+        settlementDocumentaryFeesVo.setSigningTime(insPlyIncomeVo.getSettlementTime());   //签单日期
+        //  税点支出
+        if (BigDecimalUtils.nullToZero(insPlyIncomeVo.getTaxPoints()) != null && BigDecimalUtils.nullToZero(insPlyIncomeVo.getSettlementAmount()) != null) {
+            BigDecimal settlementAmount = insPlyIncomeVo.getSettlementAmount();
+            settlementDocumentaryFeesVo.setExpendAmount(settlementAmount.multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
+        }
+        settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
 
+        return HttpResult.ok();
+    }
 
+    @Override
+    public void batchUpdate(InsPlyIncomeVo insPlyIncomeVo) {
+        HashMap<String, Object> params = new HashMap<>();
+        params=  this.saveParams(insPlyIncomeVo,params);
+        List<InsPlyIncome> list= this.baseMapper.queryNew(params);
+        for ( InsPlyIncome  item    : list){
+            item.setContractFileId( insPlyIncomeVo.getContractFileId());
+            item.setSettleOtherStatus("1");
+            baseMapper.updateById(item);
+        }
+    }
 
 }

+ 13 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/SettlementDocumentaryFeesServiceImpl.java

@@ -169,6 +169,19 @@ public class SettlementDocumentaryFeesServiceImpl extends ServiceImpl<Settlement
         return baseMapper.getByParentSettlementAmount(id);
     }
 
+    /**
+     *  作废开票  settlementStatus  为3表示为作废开票
+     * @param settlementDocumentaryFeesVo
+     */
+    @Override
+    public void voidInvoicing(SettlementDocumentaryFeesVo settlementDocumentaryFeesVo) {
+        SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = new SettlementDocumentaryFeesEntity();
+        BeanUtils.copyProperties(settlementDocumentaryFeesVo,settlementDocumentaryFeesEntity);
+        settlementDocumentaryFeesEntity.setSettlementStatus("3");  // 3  为作废
+        baseMapper.updateById(settlementDocumentaryFeesEntity);
+
+    }
+
     private int compareAmount(BigDecimal settlementAmount, BigDecimal settlementAmount1) {
 
         return settlementAmount.compareTo(settlementAmount1);

+ 37 - 0
src/main/java/com/ydtech/modules/fnc/vo/InsPlyIncomeVo.java

@@ -281,5 +281,42 @@ public class InsPlyIncomeVo implements Serializable {
 
     @ApiModelProperty("结算状态")
     private String settlementStatus;
+    @ApiModelProperty("签单日期年度开始")
+    private String yeartsStart;
+    @ApiModelProperty("签单日期年度结束")
+    private String yeartsEnd;
 
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    @ApiModelProperty("交强险起期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private String jqStartDate;
+
+    @ApiModelProperty("交强险止期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private String jqEndDate;
+
+    @ApiModelProperty("商业险起期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private String syStartDate;
+
+    @ApiModelProperty("商业险止期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private String syEndDate;
+
+    @ApiModelProperty("月结开票")
+    private List<InsPlyIncomeVo> multipleSelection;
+
+    @ApiModelProperty("开票总额")
+    private BigDecimal allTotalOtherFeevalue;
+
+    @ApiModelProperty("签订日期")
+    private  String monthYear;
+
+    @ApiModelProperty("结算凭证")
+    private String settlementImageId;
+
+    @ApiModelProperty("跟单结算")
+    private String settleOtherStatus;
 }

+ 4 - 1
src/main/java/com/ydtech/modules/fnc/vo/SettlementDocumentaryFeesVo.java

@@ -64,7 +64,7 @@ public class SettlementDocumentaryFeesVo implements Serializable {
     @ApiModelProperty("签单日期")
     @JsonFormat(pattern = "yyyy-MM-dd")
     private LocalDate signingTime;
-    @ApiModelProperty("是否是开票 结算")
+    @ApiModelProperty("状态  1 开票 2结算 3作废")
     private String settlementStatus;
 
     @ApiModelProperty("结算ids")
@@ -108,4 +108,7 @@ public class SettlementDocumentaryFeesVo implements Serializable {
 
     @ApiModelProperty("协议类型")
     private String agreementType;
+
+    @ApiModelProperty("结算凭证")
+    private String settlementImageId;
 }

+ 22 - 0
src/main/java/com/ydtech/modules/inv/model/dto/InsBxNoPlyIncomeExcelDto.java

@@ -3,6 +3,8 @@ package com.ydtech.modules.inv.model.dto;
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class InsBxNoPlyIncomeExcelDto {
     /**
@@ -15,4 +17,24 @@ public class InsBxNoPlyIncomeExcelDto {
      */
     @Excel(name = "非车保单号")
     private String noPolicyno;
+
+    /**
+     * 非车保费
+     */
+    @Excel(name = "非车保费")
+    private BigDecimal noPremium;
+
+    /**
+     * 非车手续费金额
+     */
+    @Excel(name = "非车手续费金额")
+    private BigDecimal noSuperviseCostsPremiums;
+
+    /**
+     * 非车手续费比例
+     */
+    @Excel(name = "非车手续费比例")
+    private BigDecimal noSuperviseCostsProportion;
+
+
 }

+ 42 - 0
src/main/java/com/ydtech/modules/inv/model/dto/InsBxPlyIncomeExcelDto.java

@@ -3,6 +3,8 @@ package com.ydtech.modules.inv.model.dto;
 import cn.afterturn.easypoi.excel.annotation.Excel;
 import lombok.Data;
 
+import java.math.BigDecimal;
+
 @Data
 public class InsBxPlyIncomeExcelDto {
     /**
@@ -22,4 +24,44 @@ public class InsBxPlyIncomeExcelDto {
     @Excel(name = "商业保单号")
     private String syPolicyno;
 
+
+    /**
+     * 交强手续费金额
+     */
+    @Excel(name = "交强手续费金额")
+    private BigDecimal jqSuperviseCostsPremiums;
+
+    /**
+     * 交强手续费比例
+     */
+    @Excel(name = "交强手续费比例")
+    private BigDecimal jqSuperviseCostsProportion;
+
+
+    /**
+     * 商业手续费金额
+     */
+    @Excel(name = "商业手续费金额")
+    private BigDecimal sySuperviseCostsPremiums;
+
+    /**
+     * 商业手续费比例
+     */
+    @Excel(name = "商业手续费比例")
+    private BigDecimal sySuperviseCostsProportion;
+
+    /**
+     * 交强保费
+     */
+    @Excel(name = "交强保费")
+    private BigDecimal jqPremium;
+
+
+    /**
+     * 商业保费
+     */
+    @Excel(name = "商业保费")
+    private BigDecimal syPremium;
+
+
 }

+ 27 - 0
src/main/java/com/ydtech/modules/message/constants/MessageTypeConstants.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.message.constants;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @version
+ * @description: 金钱属性
+ * @author: tz
+ * @date: 2024-4-11 17:36:15
+ **/
+@Getter
+@AllArgsConstructor
+public enum MessageTypeConstants {
+
+    M_1(1,"系统消息"),
+    M_2(2,"服务消息"),
+    M_3(3,"订单消息"),
+    M_4(4,"保单消息"),
+    M_5(5,"佣金消息"),
+    M_6(6,"增员消息");
+
+    private final Integer code;
+
+    private final String desc;
+}

+ 44 - 0
src/main/java/com/ydtech/modules/message/controller/MessageSecretaryController.java

@@ -0,0 +1,44 @@
+package com.ydtech.modules.message.controller;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.message.entity.MessageSecretary;
+import com.ydtech.modules.message.service.MessageSecretaryService;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Api(tags = "消息秘书")
+@RestController
+@RequestMapping("/api/message")
+@RequiredArgsConstructor
+public class MessageSecretaryController extends BaseController {
+
+    @Autowired
+    private MessageSecretaryService messageSecretaryService;
+
+    /**
+     * 获取用户消息列表
+     * @return
+     */
+    @GetMapping("/getUserMessage")
+    public HttpResult<List<MessageSecretary>> getUserMessage() {
+        return HttpResult.ok(messageSecretaryService.getUserMessageList(getUserId()));
+    }
+
+    /**
+     * 获取用户消息列表
+     */
+    @GetMapping("/getUserMessageList")
+    public HttpResult<List<MessageSecretary>> getUserMessageList(String msgType){
+        return HttpResult.ok(messageSecretaryService.getUserMessageList(getUserId(),msgType));
+    }
+
+
+}

+ 14 - 0
src/main/java/com/ydtech/modules/message/dao/MessageSecretaryMapper.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.message.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.message.entity.MessageSecretary;
+
+import java.util.List;
+
+/**
+ * 消息Mapper
+ */
+public interface MessageSecretaryMapper extends BaseMapper<MessageSecretary> {
+
+    List<MessageSecretary> getUserMessageList(String userId);
+}

+ 50 - 0
src/main/java/com/ydtech/modules/message/entity/MessageSecretary.java

@@ -0,0 +1,50 @@
+package com.ydtech.modules.message.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.joda.time.DateTime;
+
+import java.util.Date;
+
+/**
+ * 消息实体类
+ */
+@Data
+public class MessageSecretary {
+
+    @TableId(value = "id")
+    private String id;
+
+    @ApiModelProperty(value = "消息类型")
+    @TableField(value = "msg_type")
+    private String msgType;
+
+    @ApiModelProperty(value = "发送者")
+    @TableField(value = "from_user")
+    private String fromUser;
+
+    @ApiModelProperty(value = "接收者")
+    @TableField(value = "to_user")
+    private String toUser;
+
+    @ApiModelProperty(value = "内容")
+    @TableField(value = "content")
+    private String content;
+
+    @ApiModelProperty(value = "消息状态")
+    @TableField(value = "status")
+    private Integer status;
+
+    @ApiModelProperty(value = "消息创建时间")
+    @TableField(value = "create_time")
+    private Date createTime;
+
+    @ApiModelProperty(value = "消息读取时间")
+    @TableField(value = "read_time")
+    private Date readTime;
+
+
+}

+ 37 - 0
src/main/java/com/ydtech/modules/message/service/MessageSecretaryService.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.message.service;
+
+
+import com.ydtech.modules.message.constants.MessageTypeConstants;
+import com.ydtech.modules.message.entity.MessageSecretary;
+
+import java.util.List;
+
+public interface MessageSecretaryService {
+
+    /**
+     * 获取消息列表  根据消息类型分组 返回每个类型的最新一条消息
+     * @param userId
+     * @return
+     */
+    List<MessageSecretary> getUserMessageList(String userId);
+
+    /**
+     * 获取用户消息列表  根据消息类型返回消息列表
+     * @param userId
+     * @param msgType
+     * @return
+     */
+    List<MessageSecretary> getUserMessageList(String userId,String msgType);
+
+    /**
+     * 添加一条信息消息
+     * @param messageTypeConstants
+     * @param fromUser
+     * @param toUser
+     * @param content
+     * @return
+     */
+    boolean addMessage(MessageTypeConstants messageTypeConstants, String fromUser, String toUser, String content);
+
+    boolean addMessage(MessageTypeConstants messageTypeConstants, String toUser, String content);
+}

+ 77 - 0
src/main/java/com/ydtech/modules/message/service/impl/MessageSecretaryServiceImpl.java

@@ -0,0 +1,77 @@
+package com.ydtech.modules.message.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.message.constants.MessageTypeConstants;
+import com.ydtech.modules.message.dao.MessageSecretaryMapper;
+import com.ydtech.modules.message.entity.MessageSecretary;
+import com.ydtech.modules.message.service.MessageSecretaryService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.joda.time.DateTime;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class MessageSecretaryServiceImpl extends ServiceImpl<MessageSecretaryMapper,MessageSecretary> implements MessageSecretaryService {
+
+    /**
+     * 获取消息列表  根据消息类型分组 返回每个类型的最新一条消息
+     * @param userId
+     * @return
+     */
+    @Override
+    public List<MessageSecretary> getUserMessageList(String userId) {
+        return baseMapper.getUserMessageList(userId);
+    }
+
+    /**
+     * 获取用户消息列表  根据消息类型返回消息列表
+     * @param userId
+     * @param msgType
+     * @return
+     */
+    @Override
+    public List<MessageSecretary> getUserMessageList(String userId, String msgType) {
+        return baseMapper.selectList(new LambdaQueryWrapper<MessageSecretary>()
+                .eq(MessageSecretary::getFromUser,userId)
+                .eq(MessageSecretary::getMsgType,msgType)
+                .orderByDesc(MessageSecretary::getCreateTime));
+    }
+
+    /**
+     * 添加消息
+     * @param messageTypeConstants
+     * @param fromUser
+     * @param toUser
+     * @param content
+     * @return
+     */
+    @Override
+    public boolean addMessage(MessageTypeConstants messageTypeConstants,String fromUser,String toUser,String content) {
+        MessageSecretary messageSecretary = new MessageSecretary();
+        messageSecretary.setMsgType(messageTypeConstants.getDesc());
+        messageSecretary.setFromUser(fromUser);
+        messageSecretary.setToUser(toUser);
+        messageSecretary.setContent(content);
+        messageSecretary.setStatus(0);
+        messageSecretary.setId(IdGenerate.nextId());
+        messageSecretary.setCreateTime(new Date());
+        return save(messageSecretary);
+    }
+
+
+    @Override
+    public boolean addMessage(MessageTypeConstants messageTypeConstants,String toUser,String content) {
+        MessageSecretary messageSecretary = new MessageSecretary();
+        messageSecretary.setMsgType(messageTypeConstants.getDesc());
+        messageSecretary.setFromUser("admin");
+        messageSecretary.setToUser(toUser);
+        messageSecretary.setContent(content);
+        messageSecretary.setStatus(0);
+        messageSecretary.setId(IdGenerate.nextId());
+        messageSecretary.setCreateTime(new Date());
+        return save(messageSecretary);
+    }
+}

+ 29 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -3,12 +3,14 @@ package com.ydtech.modules.order.controller;
 import cn.keking.anti_reptile.annotation.AntiReptile;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.po.SysUserIsDial;
 import com.ydtech.modules.admin.service.SysUserIsDialService;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.ins.model.InsOrdersExcelVo;
 import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.constants.OrderLinkTypeConstants;
@@ -25,12 +27,15 @@ import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.BeanUtils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -305,4 +310,28 @@ public class InsOrdersController extends BaseController {
         }
         return HttpResult.ok(result);
     }
+
+    /**
+     * 获取快到期的保单
+     * @return
+     */
+    @GetMapping("/getExpirationInsure")
+    @ApiOperation(value = "获取快到期的保单")
+    public HttpResult getExpirationInsure(@RequestBody OrderExpirationQueryVo orderExpirationQueryVo){
+        Page page = buildPageRequest(orderExpirationQueryVo.getPageDto());
+        orderExpirationQueryVo.setUserid(getUserId());
+        return HttpResult.ok(insOrdersService.getExpirationInsure(page,orderExpirationQueryVo));
+    }
+
+
+    /**
+     * 获取快到期的保单的数量
+     * @return
+     */
+    @GetMapping("/getExpirationInsureCount")
+    @ApiOperation(value = "获取快到期的保单数量")
+    public HttpResult getExpirationInsureCount(@RequestBody OrderExpirationQueryVo orderExpirationQueryVo){
+        orderExpirationQueryVo.setUserid(getUserId());
+        return HttpResult.ok(insOrdersService.getExpirationInsureCount(orderExpirationQueryVo));
+    }
 }

+ 6 - 0
src/main/java/com/ydtech/modules/order/controller/OrderTaskImageController.java

@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotBlank;
 import java.io.IOException;
 import java.util.Base64;
@@ -129,4 +130,9 @@ public class OrderTaskImageController extends BaseController {
         return HttpResult.ok(insUploadFiles);
     }
 
+
+
+
+
+
 }

+ 4 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -86,4 +86,8 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
      *  @Description: 通过年查询数据
      */
     OrderVo selectEntityByinsOrderNo(@Param("insOrderNo") String insOrderNo,@Param("timeFiltering")  String timeFiltering);
+
+    int getExpirationInsureCount(@Param("userId") String userId,@Param("startDate") String startTime,@Param("endDate") String endTime,@Param("isJq")Integer isJq);
+
+    Page<OrderExpirationVo> getExpirationInsure(@Param("page") Page page,@Param("userId") String userId,@Param("startDate") String startTime,@Param("endDate") String endTime,@Param("isJq")Integer isJq);
 }

+ 37 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderExpirationQueryVo.java

@@ -0,0 +1,37 @@
+package com.ydtech.modules.order.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@TableName(autoResultMap = true)
+public class OrderExpirationQueryVo extends PageRequest {
+
+    private static final long serialVersionUID = 4995314938326862050L;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userid;
+
+    /**
+     * 交强终保时间
+     */
+    @ApiModelProperty(value = "交强终保时间")
+    private String jqEndDate;
+
+    /**
+     * 商业终保时间
+     */
+    @ApiModelProperty(value = "商业终保时间")
+    private String syEndDate;
+
+
+}

+ 78 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderExpirationVo.java

@@ -0,0 +1,78 @@
+package com.ydtech.modules.order.entity.vo;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.modules.protocols.entity.vo.AgreementProductCostsSave;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@TableName(autoResultMap = true)
+public class OrderExpirationVo implements Serializable {
+
+    private static final long serialVersionUID = 4995314938326862050L;
+    /**
+     * 订单号
+     */
+    @TableId(value = "orderno")
+    private String orderno;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "userid")
+    private String userid;
+
+    /**
+     * 用户名称
+     */
+    @TableField(value = "username")
+    private String username;
+
+    /**
+     * 协议id
+     */
+    @TableField(value = "agreeid")
+    private String agreeid;
+
+    /**
+     * 产品名称
+     */
+    @TableField(value = "product")
+    private String product;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    private String licenseno;
+
+    @TableField(value = "company_id")
+    private String companyId;
+
+    /**
+     * 交强险结束时间
+     */
+    @TableField(value = "jqenddate")
+    private String jqenddate;
+
+    /**
+     * 商业险结束时间
+     */
+    @TableField(value = "syenddate")
+    private String syenddate;
+
+    @TableField(value = "difference")
+    private String difference;
+
+}

+ 12 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.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.modules.ins.model.InsOrdersExcelVo;
@@ -182,4 +183,15 @@ public interface InsOrdersService extends IService<InsOrders> {
      */
     String getMobileByOrderNo(String orderNo,String type);
 
+    /**
+     * 获取快到期的保单数量
+     * @return
+     */
+    int getExpirationInsureCount(OrderExpirationQueryVo orderExpirationQueryVo);
+
+    /**
+     * 获取快到期的保单
+     * @return
+     */
+    Page<OrderExpirationVo> getExpirationInsure(Page page,OrderExpirationQueryVo orderExpirationQueryVo);
 }

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/InsUploadFilesService.java

@@ -2,11 +2,13 @@ package com.ydtech.modules.order.service;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.order.entity.po.InsUploadFiles;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
 /**

+ 15 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -9,6 +9,8 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.ins.model.vo.KindInfoVo;
 import com.ydtech.modules.ins.model.vo.RiskInfoVo;
+import com.ydtech.modules.message.constants.MessageTypeConstants;
+import com.ydtech.modules.message.service.MessageSecretaryService;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
 import com.ydtech.modules.order.entity.InsAreaCompany;
@@ -63,6 +65,9 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     @Autowired
     private InsFeeAuditService insFeeAuditService;
 
+    @Autowired
+    private MessageSecretaryService messageSecretaryService;
+
     public InsAreaCompanyServiceImpl(@Lazy InsOrdersService insOrdersService, InsOrdersTrackService insOrdersTrackService) {
         this.insOrdersService = insOrdersService;
         this.insOrdersTrackService = insOrdersTrackService;
@@ -94,6 +99,16 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
             //如果为自动审核 则自动进行审核
             insFeeAuditService.feeAudit( insAreaCompany.getOrderno(),insAreaCompany.getId(), true);
         }
+        //添加订单消息
+        if(insAreaCompany.getOrderstatus().equals("1")){
+            messageSecretaryService.addMessage(MessageTypeConstants.M_3,insAreaCompany.getUserId(),"订单号"+insAreaCompany.getOrderno()+"待核保");
+        }else if(insAreaCompany.getOrderstatus().equals("2")){
+            messageSecretaryService.addMessage(MessageTypeConstants.M_3,insAreaCompany.getUserId(),"订单号"+insAreaCompany.getOrderno()+"已核保待缴费");
+        }else if(insAreaCompany.getOrderstatus().equals("3")){
+            messageSecretaryService.addMessage(MessageTypeConstants.M_3,insAreaCompany.getUserId(),"订单号"+insAreaCompany.getOrderno()+"已经承保成功");
+        }else if(insAreaCompany.getOrderstatus().equals("4")) {
+            messageSecretaryService.addMessage(MessageTypeConstants.M_3, insAreaCompany.getUserId(), "订单号" + insAreaCompany.getOrderno() + "核保退回");
+        }
         insOrdersTrackService.addingTrajectories(insAreaCompany);
         insOrdersService.updateByOrderStatus(insAreaCompany);
     }

+ 43 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -81,6 +81,9 @@ import org.springframework.util.ObjectUtils;
 import javax.validation.constraints.NotBlank;
 import java.io.File;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -1165,4 +1168,44 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         return "";
     }
+
+    @Override
+    public int getExpirationInsureCount(OrderExpirationQueryVo orderExpirationQueryVo) {
+        LocalDateTime currentTime,oneMonthAgo;
+        Integer isJq = 1;
+        if(orderExpirationQueryVo.getJqEndDate() != null){
+            currentTime = LocalDateTime.parse(orderExpirationQueryVo.getJqEndDate(),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+            oneMonthAgo = currentTime.minus(1, ChronoUnit.MONTHS);
+        }else if(orderExpirationQueryVo.getSyEndDate() != null){
+            currentTime = LocalDateTime.parse(orderExpirationQueryVo.getSyEndDate(),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+            oneMonthAgo = currentTime.minus(1, ChronoUnit.MONTHS);
+            isJq = 2;
+        }else {
+            currentTime = LocalDateTime.now();
+            oneMonthAgo = currentTime.minus(1, ChronoUnit.MONTHS);
+        }
+        return baseMapper.getExpirationInsureCount(orderExpirationQueryVo.getUserid(),
+                currentTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),
+                oneMonthAgo.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),isJq);
+    }
+
+    @Override
+    public Page<OrderExpirationVo> getExpirationInsure(Page page,OrderExpirationQueryVo orderExpirationQueryVo) {
+        LocalDateTime currentTime,oneMonthAgo;
+        Integer isJq = 1;
+        if(orderExpirationQueryVo.getJqEndDate() != null){
+            currentTime = LocalDateTime.parse(orderExpirationQueryVo.getJqEndDate());
+            oneMonthAgo = currentTime.minus(1, ChronoUnit.MONTHS);
+        }else if(orderExpirationQueryVo.getSyEndDate() != null){
+            currentTime = LocalDateTime.parse(orderExpirationQueryVo.getSyEndDate());
+            oneMonthAgo = currentTime.minus(1, ChronoUnit.MONTHS);
+            isJq = 2;
+        }else {
+            currentTime = LocalDateTime.now();
+            oneMonthAgo = currentTime.minus(1, ChronoUnit.MONTHS);
+        }
+        return baseMapper.getExpirationInsure(page,orderExpirationQueryVo.getUserid(),
+                currentTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),
+                oneMonthAgo.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")),isJq);
+    }
 }

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsUploadFilesServiceImpl.java

@@ -1,9 +1,12 @@
 package com.ydtech.modules.order.service.impl;
 
 import cn.hutool.core.date.DateTime;
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.enums.FileType;
+import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.order.dao.InsUploadFilesMapper;
 import com.ydtech.modules.order.entity.po.InsUploadFiles;
@@ -19,11 +22,15 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.net.URI;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.SimpleDateFormat;

+ 3 - 0
src/main/java/com/ydtech/modules/protocol/entity/dto/PtlAgreementSaveDto.java

@@ -73,4 +73,7 @@ public class PtlAgreementSaveDto implements Serializable {
 
     @ApiModelProperty("审核方式")
     private Integer auditType;
+
+    @ApiModelProperty("内部机构id")
+    private String deptId;
 }

+ 6 - 0
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreement.java

@@ -76,6 +76,12 @@ public class PtlAgreement implements Serializable {
     @TableField(value = "partner_companies_id")
     private String partnerCompaniesId;
 
+    /**
+     * 内部机构 id
+     */
+    @TableField(value = "dept_id")
+    private String deptId;
+
     /**
      * 保险公司id
      */

+ 6 - 0
src/main/java/com/ydtech/modules/protocol/entity/po/PtlAgreementHistory.java

@@ -95,6 +95,12 @@ public class PtlAgreementHistory implements Serializable {
     @TableField(value = "association_companies_id")
     private String associationCompaniesId;
 
+    /**
+     * 内部机构id
+     */
+    @TableField(value = "dept_id")
+    private String deptId;
+
     /**
      * 关联-保险公司
      */

+ 1 - 1
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java

@@ -53,7 +53,7 @@ public class PtlAgreementPageVo extends PageRequest {
     @ApiModelProperty("合作公司id")
     private String partnerCompaniesId;
 
-    @ApiModelProperty("是否有效 0 无效 1 有效 2 待审核")
+    @ApiModelProperty("是否启用 0 禁用 1 启用 ")
     private String validStatus;
 
     @ApiModelProperty("审核状态 0 申请审核 1 审核通过 2 审核不通过")

+ 29 - 0
src/main/java/com/ydtech/modules/protocols/controller/InsFeeOrderNewDistributionController.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.protocols.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysDeptAccountHistoryDto;
+import com.ydtech.modules.admin.service.SysDeptAccountHistoryService;
+import com.ydtech.modules.protocols.entity.vo.InsFeeOrderNewDistributionVo;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewDistributionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "推广费用")
+@RequestMapping("/ins/feeOrderNewDistribution")
+@RestController
+public class InsFeeOrderNewDistributionController {
+    @Autowired
+    private InsFeeOrderNewDistributionService insFeeOrderNewDistributionService;
+
+    @PostMapping("/queryPage")
+    @ApiOperation(value = "机构账户表日志记录分页")
+    public HttpResult getSysDeptAccountHistory(@RequestBody InsFeeOrderNewDistributionVo insFeeOrderNewDistributionVo){
+        return HttpResult.ok("", insFeeOrderNewDistributionService.selectList(insFeeOrderNewDistributionVo));
+    }
+}

+ 11 - 0
src/main/java/com/ydtech/modules/protocols/dao/InsFeeOrderNewDistributionMapper.java

@@ -0,0 +1,11 @@
+package com.ydtech.modules.protocols.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
+import com.ydtech.modules.protocols.entity.vo.InsFeeOrderNewDistributionVo;
+import org.apache.ibatis.annotations.Param;
+
+public interface InsFeeOrderNewDistributionMapper extends BaseMapper<InsFeeOrderNewDistribution> {
+    Page<InsFeeOrderNewDistribution> getList(Page page, @Param("insFeeOrderNewDistributionVo") InsFeeOrderNewDistributionVo insFeeOrderNewDistributionVo);
+}

+ 73 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/InsFeeOrderNewDistribution.java

@@ -0,0 +1,73 @@
+package com.ydtech.modules.protocols.entity.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@TableName(value = "ins_fee_order_new_distribution", autoResultMap = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class InsFeeOrderNewDistribution {
+
+    @TableId(value = "id")
+    private String id;
+
+
+    @ApiModelProperty(value = "订单号")
+    @TableField(value = "order_no")
+    private String orderNo;
+
+
+    @ApiModelProperty(value = "交强保单号")
+    @TableField(value = "jq_policy_no")
+    private String jqPolicyNo;
+
+    @ApiModelProperty(value = "商业保单号")
+    @TableField(value = "sy_policy_no")
+    private String syPolicyNo;
+
+    @ApiModelProperty(value = "车牌号")
+    @TableField(value = "license_no")
+    private String licenseNo;
+
+    @ApiModelProperty(value = "险种id")
+    @TableField(value = "product_id")
+    private String productId;
+
+    @ApiModelProperty(value = "险种")
+    @TableField(value = "product")
+    private String product;
+
+    @ApiModelProperty(value = "签单时间")
+    @TableField(value = "sign_time")
+    private LocalDateTime signTime;
+
+    @ApiModelProperty("保险公司")
+    @TableField(value = "ins_company")
+    private String insCompany;
+
+    @ApiModelProperty(value = "工号")
+    @TableField(value = "user_id")
+    private String userId;
+
+    @ApiModelProperty(value = "佣金比例")
+    @TableField(value = "commission_rate")
+    private BigDecimal commissionRate;
+
+    @ApiModelProperty(value = "佣金金额")
+    @TableField(value = "commission_amount")
+    private BigDecimal commissionAmount;
+
+    @ApiModelProperty(value = "佣金级别")
+    @TableField(value = "commission_level")
+    private String commissionLevel;
+
+}

+ 69 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/InsFeeOrderNewDistributionVo.java

@@ -0,0 +1,69 @@
+package com.ydtech.modules.protocols.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class InsFeeOrderNewDistributionVo {
+    @TableId(value = "id")
+    private String id;
+
+
+    @ApiModelProperty(value = "订单号")
+    @TableField(value = "order_no")
+    private String orderNo;
+
+
+    @ApiModelProperty(value = "交强保单号")
+    @TableField(value = "jq_policy_no")
+    private String jqPolicyNo;
+
+    @ApiModelProperty(value = "商业保单号")
+    @TableField(value = "sy_policy_no")
+    private String syPolicyNo;
+
+    @ApiModelProperty(value = "车牌号")
+    @TableField(value = "license_no")
+    private String licenseNo;
+
+    @ApiModelProperty(value = "险种id")
+    @TableField(value = "product_id")
+    private String productId;
+
+    @ApiModelProperty(value = "险种")
+    @TableField(value = "product")
+    private String product;
+
+    @ApiModelProperty(value = "签单时间")
+    @TableField(value = "sign_time")
+    private LocalDateTime signTime;
+
+    @ApiModelProperty("保险公司")
+    @TableField(value = "ins_company")
+    private String insCompany;
+
+    @ApiModelProperty(value = "工号")
+    @TableField(value = "user_id")
+    private String userId;
+
+    @ApiModelProperty(value = "佣金比例")
+    @TableField(value = "commission_rate")
+    private BigDecimal commissionRate;
+
+    @ApiModelProperty(value = "佣金金额")
+    @TableField(value = "commission_amount")
+    private BigDecimal commissionAmount;
+
+    @ApiModelProperty(value = "佣金级别")
+    @TableField(value = "commission_level")
+    private String commissionLevel;
+
+    private int pageNum;
+
+    private int pageSize;
+}

+ 11 - 0
src/main/java/com/ydtech/modules/protocols/service/InsFeeOrderNewDistributionService.java

@@ -0,0 +1,11 @@
+package com.ydtech.modules.protocols.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
+import com.ydtech.modules.protocols.entity.vo.InsFeeOrderNewDistributionVo;
+
+public interface InsFeeOrderNewDistributionService extends IService<InsFeeOrderNewDistribution> {
+
+    IPage<InsFeeOrderNewDistribution> selectList(InsFeeOrderNewDistributionVo insFeeOrderNewDistributionVo);
+}

+ 28 - 0
src/main/java/com/ydtech/modules/protocols/service/impl/InsFeeOrderNewDistributionServiceImpl.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.protocols.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.protocols.dao.InsFeeOrderNewDistributionMapper;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNewDistribution;
+import com.ydtech.modules.protocols.entity.vo.InsFeeOrderNewDistributionVo;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewDistributionService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class InsFeeOrderNewDistributionServiceImpl extends ServiceImpl<InsFeeOrderNewDistributionMapper, InsFeeOrderNewDistribution>
+        implements InsFeeOrderNewDistributionService {
+    @Resource
+    private InsFeeOrderNewDistributionMapper insFeeOrderNewDistributionMapper;
+
+    public IPage<InsFeeOrderNewDistribution> selectList(InsFeeOrderNewDistributionVo insFeeOrderNewDistributionVo) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(insFeeOrderNewDistributionVo.getPageNum());
+        pageRequest.setPageSize(insFeeOrderNewDistributionVo.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        return insFeeOrderNewDistributionMapper.getList(page,insFeeOrderNewDistributionVo);
+    }
+}

+ 0 - 2
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -113,8 +113,6 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
                                 .or()
                                 .lt(PtlAgreementProductCostsNew::getCostsEndDate, LocalDateTime.now())
                 );
-//                ptlAgreementProductCostsNewLambdaQueryWrapper.gt(PtlAgreementProductCostsNew::getCostsStartDate, LocalDateTime.now())
-//                        .lt(PtlAgreementProductCostsNew::getCostsEndDate, LocalDateTime.now());
             } else if (agreementProductQueryVo.getIsEffective().equals("2")) {
                 ptlAgreementProductCostsNewLambdaQueryWrapper.lt(PtlAgreementProductCostsNew::getCostsStartDate, LocalDateTime.now())
                         .gt(PtlAgreementProductCostsNew::getCostsEndDate, LocalDateTime.now());

+ 0 - 29
src/main/java/com/ydtech/utils/LocalDateTimeDeserializer.java

@@ -1,29 +0,0 @@
-package com.ydtech.utils;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import lombok.Data;
-
-import java.io.IOException;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
-
-
-/**
- *
- *   LocalDateTime反序列化器
- *
- */
-@Data
-public class LocalDateTimeDeserializer extends JsonDeserializer<LocalDateTime> {
-    @Override
-    public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
-        String dateStr = p.getValueAsString();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-        LocalDate date = LocalDate.parse(dateStr, formatter);
-        return date.atStartOfDay(ZoneId.systemDefault()).toLocalDateTime();
-    }
-}

+ 3 - 1
src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml

@@ -110,10 +110,12 @@
         b.amount as "historyAmount",
         b.surplus_amount as "surplusAmount",
         su.name as "userName",
+        su.mobile as "mobile",
         su2.name as "auditingUserName",
         su.dept_id as "deptId",
         sd.name as "deptName",
-        bc.bank_account as "bankAccount"
+        bc.bank_account as "bankAccount",
+        bc.bank_address as "bankAddress"
         from sys_amount_auditing a
         left join sys_user_account_history b on a.id = b.auditiing_id
         left join sys_user su on su.id =a.user_id

+ 1 - 1
src/main/resources/mapper/modules/admin/SysDeptAccountHistoryMapper.xml

@@ -35,7 +35,7 @@
         where
         b.del_flag = 0
         <if test="sysDeptAccountHistoryDto.deptId != null and sysDeptAccountHistoryDto.deptId != ''">
-            AND a.dept_id = #{sysDeptAccountHistoryDto.deptId}
+            AND a.dept_id like concat(#{sysDeptAccountHistoryDto.deptId},'%')
         </if>
         <if test="sysDeptAccountHistoryDto.deptName != null and sysDeptAccountHistoryDto.deptName != ''">
             AND b.name = #{sysDeptAccountHistoryDto.deptName}

+ 8 - 5
src/main/resources/mapper/modules/admin/SysDeptAccountWithdrawMapper.xml

@@ -10,7 +10,7 @@
         <result property="remark" column="remark" jdbcType="VARCHAR"/>
         <result property="voucherId" column="voucher_id" jdbcType="VARCHAR"/>
         <result property="picId" column="pic_id" jdbcType="VARCHAR"/>
-        <result property="createTime" column="create_date" jdbcType="TIMESTAMP"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
         <result property="createTimeStart" column="createTimeStart" jdbcType="VARCHAR"/>
         <result property="createTimeEnd" column="createTimeEnd" jdbcType="VARCHAR"/>
         <result property="auditName" column="audit_name" jdbcType="VARCHAR"/>
@@ -34,23 +34,26 @@
         withdraw_name,
         audit_userid,
         audit_name,
-        DATE(create_time) as create_date
+        create_time
         from sys_dept_account_withdraw
         where
         <if test="sysDeptAccountWithdrawVo.status != null and sysDeptAccountWithdrawVo.status != ''">
              status = #{sysDeptAccountWithdrawVo.status}
         </if>
+        <if test="sysDeptAccountWithdrawVo.id != null and sysDeptAccountWithdrawVo.id != ''">
+            and id = #{sysDeptAccountWithdrawVo.id}
+        </if>
         <if test="sysDeptAccountWithdrawVo.deptId != null and sysDeptAccountWithdrawVo.deptId != ''">
-            and dept_id = #{sysDeptAccountWithdrawVo.deptId}
+            and dept_id like concat(#{sysDeptAccountWithdrawVo.deptId},'%')
         </if>
         <if test="sysDeptAccountWithdrawVo.voucherId != null and sysDeptAccountWithdrawVo.voucherId != ''">
             and voucher_id = #{sysDeptAccountWithdrawVo.voucherId}
         </if>
         <if test="sysDeptAccountWithdrawVo.createTimeStart != null and sysDeptAccountWithdrawVo.createTimeStart != ''">
-            and DATE(create_time) &gt;= #{sysDeptAccountWithdrawVo.createTimeStart}
+            and create_time &gt;= #{sysDeptAccountWithdrawVo.createTimeStart}
         </if>
         <if test="sysDeptAccountWithdrawVo.createTimeEnd != null and sysDeptAccountWithdrawVo.createTimeEnd != ''">
-            and DATE(create_time) &lt;= #{sysDeptAccountWithdrawVo.createTimeEnd}
+            and create_time &lt;= #{sysDeptAccountWithdrawVo.createTimeEnd}
         </if>
     </select>
 

+ 90 - 0
src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml

@@ -9,6 +9,69 @@
 
     <resultMap id="QueryChannelMap" type="com.ydtech.modules.esm.model.QueryChannel">
     </resultMap>
+
+    <select id="queryOrderCount" resultType="com.ydtech.modules.esm.model.vo.EsmUserPolicyVO">
+        select a.*,b.policynum as bjpolicynum,b.sumpremium as bjsumpremium from (
+
+        SELECT
+        su.id,
+        su.NAME as username,
+        count( iac.id ) AS policynum,
+        sum( iac.sumpremium ) AS sumpremium
+        FROM
+        ins_orders io
+        LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+        LEFT JOIN sys_user su ON io.userid = su.id
+        WHERE
+        iac.orderstatus = 3
+        AND io.orderstatus = 3
+        AND io.createtime BETWEEN #{startDate} AND #{endDate}
+        AND io.userid in
+        <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        GROUP BY
+        io.userid
+        ) a,
+        (SELECT
+        su.id,
+        su.NAME as username,
+        count( iac.id ) AS policynum,
+        sum( iac.sumpremium ) AS sumpremium
+        FROM
+        ins_orders io
+        LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+        LEFT JOIN sys_user su ON io.userid = su.id
+        WHERE
+
+        io.createtime BETWEEN #{startDate} AND #{endDate}
+        AND io.userid in
+        <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        GROUP BY
+        io.userid
+        )b
+        where a.id = b.id
+    </select>
+
+    <select id="queryOrderCountHz" resultType="com.ydtech.modules.esm.model.vo.EsmTeamPolicyVO">
+        SELECT
+            sum(sumpremium) sumpremium
+        FROM
+            ins_orders io
+                LEFT JOIN ins_area_company iac ON io.orderno = iac.orderno
+                LEFT JOIN sys_user su ON io.userid = su.id
+        WHERE
+            iac.orderstatus = 3
+          AND io.orderstatus = 3
+          AND io.createtime BETWEEN #{startDate} AND #{endDate}
+          AND io.userid in
+              <foreach item="item" index="index" collection="userList" open="(" separator="," close=")">
+                  #{item}
+              </foreach>
+    </select>
+
     <select id="getUserPage" resultMap="SysUserMap">
         SELECT
             su.*
@@ -51,4 +114,31 @@
             sd.id
     </select>
 
+    <select id="getByTeam" resultType="com.ydtech.modules.admin.model.dto.SysUserTeamDto">
+        with recursive t1 as (select *
+                              from esm_user_referrer
+                              WHERE referrer_id = #{userId}
+                              union all
+                              select r1.*
+                              from esm_user_referrer r1
+                                       INNER JOIN t1 on t1.id = r1.referrer_id
+                              WHERE r1.level &lt; #{level})
+        select u.id, u.name, u.mobile, u.status
+        from t1
+                 LEFT JOIN sys_user u on t1.id = u.id
+        <if test="managementQueryVo.userId != null and managementQueryVo.userId != ''">
+            AND sd.id = #{managementQueryVo.userId}
+        </if>
+        <if test="managementQueryVo.username != null and managementQueryVo.username != ''">
+            AND sd.id = #{managementQueryVo.username}
+        </if>
+        <if test="managementQueryVo.phoneNumber != null and managementQueryVo.phoneNumber != ''">
+            AND sd.id = #{managementQueryVo.phoneNumber}
+        </if>
+        <if test="managementQueryVo.authenticationStatus != null and managementQueryVo.authenticationStatus != ''">
+            AND sd.id = #{managementQueryVo.authenticationStatus}
+        </if>
+    </select>
+
+
 </mapper>

+ 212 - 5
src/main/resources/mapper/modules/fnc/InsPlyIncomeMapper.xml

@@ -69,6 +69,12 @@
         <result column="receivable_amount" property="receivableAmount"/>
         <result column="insured_name" property="insuredName"/>
         <result column="invoicing_method" property="invoicingMethod"/>
+        <result column="remarks" property="remarks"/>
+        <result column="jq_start_date" property="jqStartDate"/>
+        <result column="jq_end_date" property="jqEndDate"/>
+        <result column="sy_start_date" property="syStartDate"/>
+        <result column="sy_end_date" property="syEndDate"/>
+        <result column="settle_other_status" property="settleOtherStatus"/>
     </resultMap>
     <sql id="income_com">
                 a.id      as  "id",
@@ -133,6 +139,12 @@
                 a.receivable_amount  as  "receivableAmount",
                 a.invoic_time  as  "invoicTime",
                 a.insured_name  as  "insuredName",
+                a.remarks  as  "remarks",
+                a.jq_start_date  as  "jqStartDate",
+                a.jq_end_date  as  "jqEndDate",
+                a.sy_start_date  as  "syStartDate",
+                a.sy_end_date  as  "syEndDate",
+                a.settle_other_status  as  "settleOtherStatus",
                 a.user_id  as  "userId",
                 a.invoicing_method  as  "invoicingMethod",
                 a.create_time  as  "createTime"
@@ -186,6 +198,25 @@
                     and a.is_not_car =#{isNotCar}
                 </if>
 
+                <if test="deptId !=null  and  deptId  !=''">
+                    and pa.dept_id =#{deptId}
+                </if>
+
+
+                <if test="ids != null and ids != '' and ids.length > 0">
+                    and a.id in
+                    <foreach collection="ids" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+
+                <if test="selectIds != null and selectIds != '' and selectIds.size() > 0">
+                    and a.id in
+                    <foreach collection="selectIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+
                 <if test="isOther !=null  and  isOther  !=''">
                     and a.is_not_documentary   =#{isOther}
                 </if>
@@ -238,6 +269,10 @@
                 <if test="insuredName !=null  and  insuredName !=''">
                   AND  a.insured_name =#{insuredName}
                 </if>
+                <if test="jqStartDate  !=null  and  jqStartDate  != ''  and  jqEndDate   != null  and  jqEndDate   !=''">
+                   AND (a.jq_start_date  )
+                </if>
+
             </where>
             ORDER  BY  a.create_time  desc
 
@@ -387,24 +422,52 @@
         <where>
             1=1
             <if test="licenseno !=null  and  licenseno !=''">
-                AND  a.licenseno=#{licenseno}
+                AND a.licenseno=#{licenseno}
             </if>
             <if test="policyno !=null  and  policyno !=''">
-              AND  a.policyno=#{policyno}
+                AND a.policyno=#{policyno}
             </if>
             <if test="syPolicyno !=null  and  syPolicyno !=''">
                 AND a.sy_policyno=#{syPolicyno}
             </if>
             <if test="noPolicyno !=null  and  noPolicyno !=''">
-               AND a.no_policyno=#{noPolicyno}
+                AND a.no_policyno=#{noPolicyno}
             </if>
             <if test="isOther !=null  and  isOther  !=''">
-                and a.is_not_documentary   =#{isOther}
+                and a.is_not_documentary =#{isOther}
             </if>
             <if test="isNotCar !=null  and  isNotCar  !=''">
                 and a.is_not_car =#{isNotCar}
             </if>
+            <if test="jqSuperviseCostsPremiums !=null  and  jqSuperviseCostsPremiums  !=''">
+                and a.jq_supervise_costs_premiums =#{jqSuperviseCostsPremiums}
+            </if>
+            <if test="jqSuperviseCostsProportion !=null  and  jqSuperviseCostsProportion  !=''">
+                and a.jq_supervise_costs_proportion =#{jqSuperviseCostsProportion}
+            </if>
+            <if test="sySuperviseCostsPremiums !=null  and  sySuperviseCostsPremiums  !=''">
+                and a.sy_supervise_costs_premiums =#{sySuperviseCostsPremiums}
+            </if>
+            <if test="sySuperviseCostsProportion !=null  and  sySuperviseCostsProportion  !=''">
+                and a.sy_supervise_costs_proportion =#{sySuperviseCostsProportion}
+            </if>
+            <if test="noSuperviseCostsPremiums !=null  and  noSuperviseCostsPremiums  !=''">
+                and a.no_supervise_costs_premiums =#{noSuperviseCostsPremiums}
+            </if>
+            <if test="noSuperviseCostsProportion !=null  and  noSuperviseCostsProportion  !=''">
+                and a.no_supervise_costs_proportion =#{noSuperviseCostsProportion}
+            </if>
+            <if test="jqPremium !=null  and  jqPremium  !=''">
+                and a.jq_premium =#{jqPremium}
+            </if>
+            <if test="syPremium !=null  and  syPremium  !=''">
+                and a.sy_premium =#{jqPremium}
+            </if>
+            <if test="noPremium !=null  and  noPremium  !=''">
+                and a.no_premium =#{noPremium}
+            </if>
         </where>
+        limit 1
     </select>
 
     <select id="totalAmount" resultType="java.util.HashMap">
@@ -848,6 +911,8 @@
         IFNULL ( max(d.settleMentAmount),0.00)-IFNULL(max(f.settleMentAmount) , 0.00)  as "invoicCommissionFeevalue",
         sum(COALESCE( a.other_feevalue,0.00) )-IFNULL ( max(d.settleMentAmount),0.00)  as "noInvoicCommissionFeevalue",
         sum(COALESCE( a.other_feevalue,0.00) )-COALESCE(max(c.settleMentAmount),0.00)+IFNULL ( max(d.settleMentAmount),0.00)  AS "unSettledAmount",
+        MAX( f.expendAmount ) AS "expendAmount",
+        MAX( f.taxPoints ) AS "taxPoints",
         sum( a.other_feevalue ) AS "otherFeevalue"
         FROM
         ins_ply_income a
@@ -871,7 +936,7 @@
         GROUP BY partner_companies_id
         ) d ON d.partnerCompaniesId = a.partner_companies_id
         LEFT JOIN ( SELECT a.partner_companies_id AS "partnerCompaniesId",sum(
-        settlement_amount ) AS "settleMentAmount" FROM settlement_documentary_fees a
+        settlement_amount ) AS "settleMentAmount",  sum(a.expend_amount) as  "expendAmount"  , sum(a.tax_points) as "taxPoints"  FROM settlement_documentary_fees a
         WHERE a.settlement_status = '2'
           and  a.handling_fees_status ='1'
         <if test="isNotCar !=null  and  isNotCar  !=''">
@@ -1084,5 +1149,147 @@
             </if>
         </where>
     </update>
+    <select id="otherTimeDetail"  resultType="java.util.HashMap">
+        WITH RECURSIVE months AS (
+        SELECT 1 AS month_num
+        UNION ALL
+        SELECT month_num + 1 FROM months WHERE month_num &lt; 12
+        )
+        SELECT
+        m.month_num AS monthNumber,
+        DATE_FORMAT(STR_TO_DATE(CONCAT(YEAR(CURDATE()), '-', LPAD(m.month_num, 2, '0'), '-01'), '%Y-%m-%d'), '%Y-%m') AS monthYear,
+        COALESCE(other_fees.total_other_feevalue, 0) AS "allTotalOtherFeevalue",
+        COALESCE(settlement_fees.total_settlement_amount, 0) AS "invoicCommissionFeevalue",
+        COALESCE(other_fees.total_other_feevalue, 0) -  COALESCE(settlement_fees.total_settlement_amount, 0) AS "noInvoicCommissionFeevalue"
+        FROM
+        months m
+        LEFT JOIN (
+        SELECT
+        MONTH(a.signdate) AS month_num,
+        SUM(a.other_feevalue) AS total_other_feevalue
+        FROM
+        `ins_ply_income` a
+        INNER JOIN ptl_agreement pa ON a.agreement_id = pa.id
+        <where>
+            1=1
+            <if test="startDate !=null  and  startDate!='' and  endDate !=null and endDate !=''">
+                and DATE_FORMAT( a.signdate, '%Y-%m-%d')  between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')
+            </if>
+            <if test="agreementType !=null  and  agreementType  !=''">
+                and pa.agreement_type =#{agreementType}
+            </if>
+
+            <if test="signDateEnd !=null  and  signDateEnd!='' and  signDateStart !=null and signDateStart !=''">
+                and a.signdate   between #{signDateStart} and #{signDateEnd}
+            </if>
+
+            <if test="handlingFeesStatus !=null  and  handlingFeesStatus  !=''">
+                and a.handling_fees_status =#{handlingFeesStatus}
+            </if>
+
+            <if test="dockingPerson !=null  and  dockingPerson  !=''">
+                and  pa.docking_person  =#{dockingPerson}
+            </if>
+
+            <if test="orderno !=null  and  orderno  !=''">
+                and a.orderno =#{orderno}
+            </if>
+            <if test="companyName !=null  and  companyName  !=''">
+                and a.company_id =#{companyName}
+            </if>
+
+            <if test="policyno !=null  and  policyno  !=''">
+                and a.policyno =#{policyno}
+            </if>
+            <if test="documentaryFeesStatus !=null  and  documentaryFeesStatus  !=''">
+                and a.documentary_fees_status =#{documentaryFeesStatus}
+            </if>
+
+            <if test="isNotCar !=null  and  isNotCar  !=''">
+                and a.is_not_car =#{isNotCar}
+            </if>
+
+            <if test="isOther !=null  and  isOther  !=''">
+                and a.is_not_documentary   =#{isOther}
+            </if>
+            <if test="licenseno != null and licenseno != ''">
+                and a.licenseno  =#{licenseno}
+            </if>
+            <if test="syPolicyno != null and syPolicyno != ''">
+                and a.sy_policyno  =#{syPolicyno}
+            </if>
+
+            <if test="noPolicyno != null and noPolicyno != ''">
+                and a.no_policyno =#{noPolicyno}
+            </if>
+            <if test="signdate !=null  and  signdate  !=''">
+                AND  a.signdate =#{signdate}
+            </if>
+            <if test="partnerCompaniesId !=null  and  partnerCompaniesId  !=''">
+                AND a.partner_companies_id =#{partnerCompaniesId}
+            </if>
+
+            <if test="partnerCompaniesName !=null  and  partnerCompaniesName  !=''">
+                AND   a.partner_companies_name =#{partnerCompaniesName}
+            </if>
+
+            <if test="createTime !=null  and  createTime  !=''">
+                AND  a.create_time =#{createTime}
+            </if>
+            <if test="settlementTime !=null  and  settlementTime  !=''">
+                AND a.settlement_time =#{settlementTime}
+            </if>
+
+            <if test="userId !=null  and  userId  !=''">
+                and a.userId   =#{userId}
+            </if>
+            <if test="companyId !=null  and  companyId  !=''">
+                and a.company_id   =#{companyId}
+            </if>
+            <if test="riskcode !=null  and  riskcode  !=''">
+                and a.riskcode   =#{riskcode}
+            </if>
+            <if test="year !=null  and  year  !=''">
+                AND YEAR(a.signdate) =#{year}
+            </if>
+            <if test="yeartsStart !=null and  yeartsStart  !=''   and yeartsEnd  !=null  and  yeartsEnd!=''">
+                and DATE_FORMAT( a.signdate, '%Y')  between #{yeartsStart}   and  #{yeartsEnd}
+            </if>
+            <if test="month !=null  and  month !=''">
+                AND month(a.signdate) =#{month}
+            </if>
+            <if test="day !=null  and  day !=''">
+                AND day(a.signdate) =#{day}
+            </if>
+            <if test="insuredName !=null  and  insuredName !=''">
+                AND  a.insured_name =#{insuredName}
+            </if>
+
+            AND YEAR(a.signdate) = YEAR(CURDATE())
+        </where>
+        GROUP BY
+        MONTH(a.signdate)
+        ) other_fees ON m.month_num = other_fees.month_num
+        LEFT JOIN (
+        SELECT
+        MONTH(signing_time) AS month_num,
+        SUM(settlement_amount) AS total_settlement_amount
+        FROM
+        settlement_documentary_fees
+        WHERE
+        settlement_status = '1'
+        AND handling_fees_status = '1'
+        <if test="isNotCar !=null  and  isNotCar  !=''">
+            and is_not_car =#{isNotCar}
+        </if>
+        <if test="yeartsStart !=null and  yeartsStart  !=''   and yeartsEnd  !=null  and  yeartsEnd!=''">
+            and DATE_FORMAT( signing_time, '%Y')  between #{yeartsStart}   and  #{yeartsEnd}
+        </if>
+        GROUP BY
+        MONTH(signing_time)
+        ) settlement_fees ON m.month_num = settlement_fees.month_num
+        ORDER BY
+        m.month_num;
+    </select>
 
 </mapper>

+ 5 - 0
src/main/resources/mapper/modules/fnc/SettlementDocumentaryFeesMapper.xml

@@ -27,6 +27,8 @@
         <result column="parent_id" property="parentId"/>
         <result column="handling_fees_status" property="handlingFeesStatus"/>
         <result column="agreement_type" property="agreementType"/>
+        <result column="settlement_status" property="settlementStatus"/>
+        <result column="settlement_image_id" property="settlementImageId"/>
     </resultMap>
 
 
@@ -50,8 +52,11 @@
             a.handling_fees_status as "handlingFeesStatus",
             a.agreement_type as "agreementType",
             a.settlement_time as "settlementTime",
+            a.settlement_image_id as "settlementImageId",
+            upf.url as "imageUrl",
             a.unsettled_amount as "unsettledAmount"
             from  settlement_documentary_fees  a
+            LEFT  JOIN   ins_upload_files  upf   on  a.settlement_image_id=upf.id
         <where>
             1=1
             <if test="partnerCompaniesId !=null  and  partnerCompaniesId  !=''">

+ 16 - 0
src/main/resources/mapper/modules/message/MessageSecretaryMapper.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.message.dao.MessageSecretaryMapper">
+
+    <select id="getUserMessageList" resultType="com.ydtech.modules.message.entity.MessageSecretary">
+        SELECT id, msg_type, from_user, to_user, content, status, create_time, read_time
+        FROM (
+                 SELECT id, msg_type, from_user, to_user, content, status, create_time, read_time,
+                        ROW_NUMBER() OVER (PARTITION BY msg_type ORDER BY create_time DESC) as rn
+                 FROM message_secretary
+                 WHERE to_user = #{userId}
+             ) AS temp
+        WHERE rn = 1;
+    </select>
+
+</mapper>

+ 50 - 2
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -413,10 +413,10 @@
             and b.orderstatus = #{orderstatus}
         </if>
         <if test="startDate != null ">
-            and a.createtime &gt;= #{startDate}
+            and a.signing_time &gt;= #{startDate}
         </if>
         <if test="endDate != null ">
-            and a.createtime &lt;= #{endDate}
+            and a.signing_time &lt;= #{endDate}
         </if>
     </select>
 
@@ -1234,4 +1234,52 @@
                 and  DATE_FORMAT(iac.signing_time, '%Y-%m') = #{timeFiltering}
             </if>
     </select>
+
+    <select id="getExpirationInsureCount" resultType="Integer">
+        SELECT
+            count( orderno ) AS count
+        FROM
+            ins_orders
+        WHERE
+            <if test="isJq == 1">
+                jqenddate BETWEEN #{startDate} AND #{endDate}
+            </if>
+            <if test="isJq == 2">
+                syenddate BETWEEN #{startDate} AND #{endDate}
+            </if>
+          AND orderstatus = 3
+          AND userid LIKE '${userId}%'
+    </select>
+
+    <select id="getExpirationInsure" resultType="com.ydtech.modules.order.entity.vo.OrderExpirationVo">
+        SELECT
+            ins_company,
+            orderno,
+            jqenddate,
+            syenddate,
+            productid,
+            product,
+            licenseno,
+            <if test="isJq == 1">
+                DATEDIFF( NOW(), jqenddate ) AS difference
+            </if>
+            <if test="isJq == 2">
+                DATEDIFF( NOW(), syenddate ) AS difference
+            </if>
+
+        FROM
+            ins_orders
+        WHERE
+            <if test="isJq == 1">
+                jqenddate BETWEEN #{startDate} AND #{endDate}
+            </if>
+            <if test="isJq == 2">
+                syenddate BETWEEN #{startDate} AND #{endDate}
+            </if>
+
+          AND orderstatus = 3
+          AND userid LIKE '${userId}%'
+        ORDER BY
+            jqenddate DESC
+    </select>
 </mapper>

+ 25 - 0
src/main/resources/mapper/modules/protocols/InsFeeOrderNewDistributionMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.protocols.dao.InsFeeOrderNewDistributionMapper">
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.protocols.entity.vo.InsFeeOrderNewDistributionVo">
+        <id column="id" jdbcType="VARCHAR" property="id"/>
+        <result column="order_no" jdbcType="VARCHAR" property="orderNo"/>
+        <result column="jq_policy_no" jdbcType="VARCHAR" property="jqPolicyNo"/>
+        <result column="sy_policy_no" jdbcType="VARCHAR" property="syPolicyNo"/>
+        <result column="license_no" jdbcType="VARCHAR" property="licenseNo"/>
+        <result column="product_id" jdbcType="VARCHAR" property="productId"/>
+        <result column="product" jdbcType="VARCHAR" property="product"/>
+        <result column="sign_time" jdbcType="TIMESTAMP" property="signTime"/>
+        <result column="ins_company" jdbcType="VARCHAR" property="insCompany"/>
+        <result column="user_id" jdbcType="VARCHAR" property="userId"/>
+        <result column="commission_rate" jdbcType="DECIMAL" property="commissionRate"/>
+        <result column="commission_amount" jdbcType="DECIMAL" property="commissionAmount"/>
+        <result column="commission_level" jdbcType="DECIMAL" property="commissionLevel"/>
+    </resultMap>
+
+    <select id="getList" resultMap="BaseResultMap">
+        select * FROM ins_fee_order_new_distribution
+            where 1=1
+
+    </select>
+</mapper>

BIN
src/main/resources/template/handlingFeeTemplate.xlsx


BIN
src/main/resources/template/noHandlingFeeTemplate.xlsx