Kaynağa Gözat

Merge branch 'test' into 2.0

785834757 2 yıl önce
ebeveyn
işleme
ea10a0b8fc
47 değiştirilmiş dosya ile 924 ekleme ve 48 silme
  1. 2 2
      src/main/java/com/ydtech/components/TokenInterceptor.java
  2. 8 0
      src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java
  3. 13 0
      src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceQueryNewDto.java
  4. 3 0
      src/main/java/com/ydtech/modules/admin/model/dto/PcAddressInfoDto.java
  5. 3 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysGeographyPositionDto.java
  6. 3 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysPcAddressDto.java
  7. 12 5
      src/main/java/com/ydtech/modules/admin/service/impl/SysGeographyPositionServiceImpl.java
  8. 13 5
      src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java
  9. 3 2
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java
  10. 38 5
      src/main/java/com/ydtech/modules/esm/controller/EsmRetailController.java
  11. 7 0
      src/main/java/com/ydtech/modules/esm/dao/EsmRetailDao.java
  12. 52 3
      src/main/java/com/ydtech/modules/esm/dao/impl/EsmRetailDaoImpl.java
  13. 22 0
      src/main/java/com/ydtech/modules/esm/model/EsmRetail.java
  14. 34 0
      src/main/java/com/ydtech/modules/esm/model/vo/EsmRetailVo.java
  15. 8 0
      src/main/java/com/ydtech/modules/esm/service/EsmRetailService.java
  16. 46 0
      src/main/java/com/ydtech/modules/esm/service/impl/EsmRetailServiceImpl.java
  17. 3 2
      src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java
  18. 12 10
      src/main/java/com/ydtech/modules/inv/service/impl/InvAccountExcelServiceImpl.java
  19. 1 1
      src/main/java/com/ydtech/modules/inv/service/impl/InvAccountOperateServiceImpl.java
  20. 40 0
      src/main/java/com/ydtech/modules/inv/utils/TransferUtils.java
  21. 9 1
      src/main/java/com/ydtech/modules/order/controller/CarModelController.java
  22. 33 0
      src/main/java/com/ydtech/modules/order/controller/ExternalOrderController.java
  23. 9 0
      src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java
  24. 3 0
      src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java
  25. 3 0
      src/main/java/com/ydtech/modules/order/entity/InsOrders.java
  26. 1 1
      src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java
  27. 2 0
      src/main/java/com/ydtech/modules/order/service/CarModelService.java
  28. 14 0
      src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java
  29. 37 0
      src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java
  30. 23 0
      src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java
  31. 7 0
      src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java
  32. 3 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/PltAgreementBatchVo.java
  33. 3 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementPageVo.java
  34. 269 0
      src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementVo.java
  35. 4 0
      src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java
  36. 60 2
      src/main/java/com/ydtech/modules/protocol/service/impl/PtlAgreementServiceImpl.java
  37. 13 1
      src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementProductCostsTrajectoryMapper.java
  38. 11 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNew.java
  39. 3 0
      src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsTrajectory.java
  40. 27 0
      src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductCosts.java
  41. 10 0
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java
  42. 5 1
      src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsTrajectoryServiceImpl.java
  43. 9 0
      src/main/resources/mapper/modules/admin/SysDeptMapper.xml
  44. 4 1
      src/main/resources/mapper/modules/admin/SysUserAccountHistoryMapper.xml
  45. 1 1
      src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml
  46. 34 1
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml
  47. 4 4
      src/main/resources/mapper/modules/order/InsOrdersMapper.xml

+ 2 - 2
src/main/java/com/ydtech/components/TokenInterceptor.java

@@ -90,8 +90,8 @@ public class TokenInterceptor {
         notMatchList.add("/order/pingAnApi/payReturn");
 
         notMatchList.add("/sysSys/sysList");//登录2  去除验证
-        notMatchList.add("/pcWebsocket/*");//登录2  去除验证
-        notMatchList.add("/websocket/*");//登录2  去除验证
+        notMatchList.add("/pcWebsocket/*");//pcwebsocket
+        notMatchList.add("/websocket/*");//APPwebsocket
 
         return new SaInterceptor(handler -> {
             // 指定一条 match 规则

+ 8 - 0
src/main/java/com/ydtech/modules/admin/dao/SysDeptMapper.java

@@ -46,6 +46,14 @@ public interface SysDeptMapper extends BaseMapper<SysDept> {
      */
     String getByOrderNoQueryManagementSource(@Param(value = "orderNo") String orderNo);
 
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:58
+     *  @Description: 通过ids查询机构数据
+     */
+    List<SysDept> getListByIds(@Param(value = "ids") List<String> ids);
+
 
 }
 

+ 13 - 0
src/main/java/com/ydtech/modules/admin/model/dto/MyCollectInAdvanceQueryNewDto.java

@@ -63,4 +63,17 @@ public class MyCollectInAdvanceQueryNewDto {
      */
     @ApiModelProperty(value = "收支类型")
     private String incomeAndExpensesType;
+
+    /***
+     * 开始时间
+     */
+    @ApiModelProperty(value = "签单开始时间")
+    private String signBeginDate;
+
+    /***
+     * 结束时间
+     */
+    @ApiModelProperty(value = "签单结束时间")
+    private String signEndDate;
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/dto/PcAddressInfoDto.java

@@ -23,6 +23,9 @@ public class PcAddressInfoDto {
     @ApiModelProperty(value = "机构来源 全部:null 渠道:1 代理:2")
     private String source;
 
+    @ApiModelProperty(value = "在线状态(0:离线; 1:在线)")
+    private Integer status;
+
 
     @ApiModelProperty(value = "页数")
     private int pageNum;

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysGeographyPositionDto.java

@@ -22,4 +22,7 @@ public class SysGeographyPositionDto {
     @ApiModelProperty(value = "机构来源 全部:null 渠道:1 代理:2")
     private String source;
 
+    @ApiModelProperty(value = "在线状态(0:离线; 1:在线)")
+    private Integer status;
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysPcAddressDto.java

@@ -21,4 +21,7 @@ public class SysPcAddressDto {
 
     @ApiModelProperty(value = "机构来源 全部:null 渠道:1 代理:2")
     private String source;
+
+    @ApiModelProperty(value = "在线状态(0:离线; 1:在线)")
+    private Integer status;
 }

+ 12 - 5
src/main/java/com/ydtech/modules/admin/service/impl/SysGeographyPositionServiceImpl.java

@@ -59,6 +59,7 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
                 .in(SysGeographyPosition::getSource, Arrays.asList("1", "2"))
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getSource()), SysGeographyPosition::getSource, sysGeographyPositionDto.getSource())
+                .eq(sysGeographyPositionDto.getStatus() != null, SysGeographyPosition::getStatus, sysGeographyPositionDto.getStatus())
                 .orderByDesc(SysGeographyPosition::getCreateTime));
         if (list.size() == 0) return new SysGeographyPositionVo();
 
@@ -105,22 +106,27 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
-                .in(SysGeographyPosition::getSource, Arrays.asList("1", "2")));
+                .in(SysGeographyPosition::getSource, Arrays.asList("1", "2"))
+                .eq(sysGeographyPositionDto.getStatus() != null, SysGeographyPosition::getStatus, sysGeographyPositionDto.getStatus()));
         Long channelNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>()
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
-                .eq(SysGeographyPosition::getSource, 1));
+                .eq(SysGeographyPosition::getSource, 1)
+                .eq(sysGeographyPositionDto.getStatus() != null, SysGeographyPosition::getStatus, sysGeographyPositionDto.getStatus()));
         Long proxyNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>()
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
-                .eq(SysGeographyPosition::getSource, 2));
+                .eq(SysGeographyPosition::getSource, 2)
+                .eq(sysGeographyPositionDto.getStatus() != null, SysGeographyPosition::getStatus, sysGeographyPositionDto.getStatus()));
         Long onlineNum = sysGeographyPositionMapper.selectCount(new LambdaQueryWrapper<SysGeographyPosition>()
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getProvince()), SysGeographyPosition::getProvince, sysGeographyPositionDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
-                .in(SysGeographyPosition::getSource, Arrays.asList("1", "2")).eq(SysGeographyPosition::getStatus, 1));
+                .in(SysGeographyPosition::getSource, Arrays.asList("1", "2"))
+                .eq(sysGeographyPositionDto.getStatus() == null, SysGeographyPosition::getStatus, 1)
+                .eq(sysGeographyPositionDto.getStatus() != null, SysGeographyPosition::getStatus, sysGeographyPositionDto.getStatus()));
         sysPcAddressNumVo.setAllNum(all);
         sysPcAddressNumVo.setProxyNum(proxyNum);
         sysPcAddressNumVo.setChannelNum(channelNum);
@@ -139,7 +145,8 @@ public class SysGeographyPositionServiceImpl extends ServiceImpl<SysGeographyPos
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getCity()), SysGeographyPosition::getCity, sysGeographyPositionDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getDistrict()), SysGeographyPosition::getDistrict, sysGeographyPositionDto.getDistrict())
                 .in(SysGeographyPosition::getSource, Arrays.asList("1", "2"))
-                .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getSource()), SysGeographyPosition::getSource, sysGeographyPositionDto.getSource()));
+                .eq(StringUtils.isNotEmpty(sysGeographyPositionDto.getSource()), SysGeographyPosition::getSource, sysGeographyPositionDto.getSource())
+                .eq(sysGeographyPositionDto.getStatus() != null, SysGeographyPosition::getStatus, sysGeographyPositionDto.getStatus()));
 
         if (CollectionUtil.isEmpty(sysGeographyPositionList)) return regionInfoVos;
 

+ 13 - 5
src/main/java/com/ydtech/modules/admin/service/impl/SysPcAddressServiceImpl.java

@@ -95,6 +95,7 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
                 .in(SysPcAddress::getSource, Arrays.asList("1", "2"))
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getSource()), SysPcAddress::getSource, sysPcAddressDto.getSource())
+                .eq(sysPcAddressDto.getStatus()!=null, SysPcAddress::getStatus, sysPcAddressDto.getStatus())
                 .orderByDesc(SysPcAddress::getOperationTime));
 
         return sysPcAddresses;
@@ -119,23 +120,28 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
-                .in(SysPcAddress::getSource, Arrays.asList("1", "2")));
+                .in(SysPcAddress::getSource, Arrays.asList("1", "2"))
+                .eq(sysPcAddressDto.getStatus()!=null, SysPcAddress::getStatus, sysPcAddressDto.getStatus()));
         Long channelNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>()
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
-                .eq(SysPcAddress::getSource, 1));
+                .eq(SysPcAddress::getSource, 1)
+                .eq(sysPcAddressDto.getStatus()!=null, SysPcAddress::getStatus, sysPcAddressDto.getStatus()));
         Long proxyNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>()
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
-                .eq(SysPcAddress::getSource, 2));
+                .eq(SysPcAddress::getSource, 2)
+                .eq(sysPcAddressDto.getStatus()!=null, SysPcAddress::getStatus, sysPcAddressDto.getStatus()));
 
         Long onlineNum = sysPcAddressMapper.selectCount(new LambdaQueryWrapper<SysPcAddress>()
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getProvince()), SysPcAddress::getProvince, sysPcAddressDto.getProvince())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
-                .in(SysPcAddress::getSource, Arrays.asList("1", "2")).eq(SysPcAddress::getStatus, 1));
+                .in(SysPcAddress::getSource, Arrays.asList("1", "2"))
+                .eq(sysPcAddressDto.getStatus()==null,SysPcAddress::getStatus, 1)
+                .eq(sysPcAddressDto.getStatus()!=null, SysPcAddress::getStatus, sysPcAddressDto.getStatus()));
 
 
         sysPcAddressNumVo.setAllNum(all);
@@ -155,7 +161,8 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getCity()), SysPcAddress::getCity, sysPcAddressDto.getCity())
                 .eq(StringUtils.isNotEmpty(sysPcAddressDto.getDistrict()), SysPcAddress::getDistrict, sysPcAddressDto.getDistrict())
                 .in(SysPcAddress::getSource, Arrays.asList("1", "2"))
-                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getSource()), SysPcAddress::getSource, sysPcAddressDto.getSource()));
+                .eq(StringUtils.isNotEmpty(sysPcAddressDto.getSource()), SysPcAddress::getSource, sysPcAddressDto.getSource())
+                .eq(sysPcAddressDto.getStatus()!=null, SysPcAddress::getStatus, sysPcAddressDto.getStatus()));
 
         if (CollectionUtil.isEmpty(sysPcAddresses)) return regionInfoVos;
 
@@ -192,6 +199,7 @@ public class SysPcAddressServiceImpl extends ServiceImpl<SysPcAddressMapper, Sys
         wrapper.eq(StringUtils.isNotEmpty(addressInfoDto.getLat()), SysPcAddress::getLatitude, addressInfoDto.getLat());
         wrapper.in(SysPcAddress::getSource, Arrays.asList("1", "2"));
         wrapper.eq(StringUtils.isNotEmpty(addressInfoDto.getSource()), SysPcAddress::getSource, addressInfoDto.getSource());
+        wrapper.eq(addressInfoDto.getStatus()!=null, SysPcAddress::getStatus, addressInfoDto.getStatus());
         wrapper.orderByDesc(SysPcAddress::getOperationTime);
 
         Page<SysPcAddress> insOrdersPage = page(page, wrapper);

+ 3 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -256,9 +256,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
     @Transactional
     public HttpResult<Object> inert(SysUserAccountVo sysUserAccountVo) {
         String userId = BaseController.getUser().getId();
+
         // add  by hxl 2024-09-12  =============== 添加提现用户是渠道的话,只能提现100的整数金额
         BigDecimal amount = sysUserAccountVo.getAmount();
-        judgeAmount(amount, userId);
+       // judgeAmount(amount, userId);   注释掉  2024-09-18
         // add  by  hxl  end =============================
         BigDecimal zero = BigDecimal.ZERO;
         BigDecimal beforeAmount;
@@ -373,7 +374,7 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         String userId = sysUserAccountVo.getUserId();
         // add  by hxl 2024-09-12  =============== 添加提现用户是渠道的话,只能提现100的整数金额
         BigDecimal amount = sysUserAccountVo.getAmount();
-        judgeAmount(amount, userId);
+        // judgeAmount(amount, userId);   注释掉  2024-09-18
         // add  by  hxl  end =============================
         BigDecimal zero = BigDecimal.ZERO;
         BigDecimal beforeAmount;

+ 38 - 5
src/main/java/com/ydtech/modules/esm/controller/EsmRetailController.java

@@ -4,10 +4,14 @@ package com.ydtech.modules.esm.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
 import com.ydtech.core.page.PageResult;
+import com.ydtech.exception.SystemException;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.vo.EsmRetailVo;
 import com.ydtech.modules.esm.service.EsmRetailService;
 import com.ydtech.utils.idgen.IdGenerate;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
@@ -17,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+@Api(tags = "分销设置")
 @RestController
 @RequestMapping("/esmRetail")
 public class EsmRetailController extends BaseController {
@@ -78,6 +83,7 @@ public class EsmRetailController extends BaseController {
     public HttpResult findPage(@RequestBody PageRequest pageRequest) {
         int pageNum = pageRequest.getPageNum();
         int pageSize = pageRequest.getPageSize();
+        String source = PageRequest.getColumnFilterValue(pageRequest, "source"); //
         String deptid = PageRequest.getColumnFilterValue(pageRequest, "deptid"); //
         String containsSubDept = PageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
         String retailtype = PageRequest.getColumnFilterValue(pageRequest, "retailtype");
@@ -85,21 +91,24 @@ public class EsmRetailController extends BaseController {
         StringBuffer whereStr = new StringBuffer(" where 1=1");
         ArrayList array = new ArrayList();
         if ("1".equals(containsSubDept) && !StringUtils.isEmpty(deptid)) {
-            whereStr.append(" and deptid like ?");
+            whereStr.append(" and t.deptid like ?");
             array.add(deptid + "%");
         } else if (!StringUtils.isEmpty(deptid)) {
-            whereStr.append(" and deptid = ?");
+            whereStr.append(" and t.deptid = ?");
             array.add(deptid);
         }
         if (!StringUtils.isEmpty(retailtype)) {
-            whereStr.append(" and retailtype=?");
+            whereStr.append(" and t.retailtype=?");
             array.add(retailtype);
         }
         if (!StringUtils.isEmpty(status)) {
-            whereStr.append(" and status=?");
+            whereStr.append(" and t.status=?");
             array.add(status);
         }
-
+        if (org.apache.commons.lang3.StringUtils.isNotBlank(source)) {
+            whereStr.append(" and dept.management_source=?");
+            array.add(source);
+        }
         PageResult pageResult = esmRetailService.selectPaging(pageNum, pageSize, whereStr.toString(), array.toArray());
 
         return HttpResult.ok(pageResult);
@@ -117,4 +126,28 @@ public class EsmRetailController extends BaseController {
 
         return HttpResult.ok(esmRetail);
     }
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:43
+     *  @Description:  批量设置分销比例
+     */
+    @ApiOperation("批量设置分销比例")
+    @PostMapping(value = "/batchSetData")
+    public HttpResult<Object> batchSetData(@RequestBody EsmRetailVo esmRetailVo) {
+        if(esmRetailVo.getIds() ==null  || esmRetailVo.getIds().size()==0){
+            new SystemException("所选数据不能为空!!");
+        }
+        if(org.apache.commons.lang3.StringUtils.isBlank(esmRetailVo.getRetailLevel())){
+            new SystemException("分销方式不能为空!!");
+        }
+        try{
+            esmRetailService.batchSetData(esmRetailVo);
+        }catch(Exception e){
+            return HttpResult.error("设置失败");
+        }
+        return HttpResult.ok("设置成功");
+    }
 }

+ 7 - 0
src/main/java/com/ydtech/modules/esm/dao/EsmRetailDao.java

@@ -28,6 +28,13 @@ public interface EsmRetailDao {
     public Integer delete(String id);
 
 //    public Integer updateSelective(EsmRetail model);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 14:14
+     *  @Description: 通过部门id查询数据
+     */
+    public EsmRetail selectByDeptId(String deptId);
 }
 
 

+ 52 - 3
src/main/java/com/ydtech/modules/esm/dao/impl/EsmRetailDaoImpl.java

@@ -23,6 +23,8 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
     @Autowired
     public DataSource dataSource;
 
+
+
     public static class EsmRetailRowMapper implements RowMapper {
         public EsmRetail mapRow(ResultSet resultSet, int rowNum) throws SQLException {
             EsmRetail model = new EsmRetail();
@@ -42,6 +44,44 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
             model.setCommission(resultSet.getDouble("commission"));
             model.setStatus(resultSet.getString("status"));
             model.setCreator(resultSet.getString("creator"));
+           // model.setSource(resultSet.getString("source"));
+            if (resultSet.getTimestamp("createtime") != null) {
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date createtime = new Date(resultSet.getTimestamp("createtime").getTime());
+                model.setCreatetime(sdf.format(createtime));
+            } else {
+                model.setCreatetime(null);
+            }
+
+            return model;
+        }
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/19 10:01
+     *  @Description: 添加rowMapper
+     */
+    public static class EsmRetailNewRowMapper implements RowMapper {
+        public EsmRetail mapRow(ResultSet resultSet, int rowNum) throws SQLException {
+            EsmRetail model = new EsmRetail();
+
+            model.setId(resultSet.getString("id"));
+            model.setDeptid(resultSet.getString("deptid"));
+            model.setDeptname(resultSet.getString("deptname"));
+            model.setRetailtype(resultSet.getString("retailtype"));
+            model.setDisrate1(resultSet.getDouble("disrate1"));
+            model.setDisrate2(resultSet.getDouble("disrate2"));
+            model.setDisrate3(resultSet.getDouble("disrate3"));
+            model.setDisplay(resultSet.getString("display"));
+            model.setUsergroup(resultSet.getString("usergroup"));
+            model.setPaytype(resultSet.getString("paytype"));
+            model.setMinamount(resultSet.getDouble("minamount"));
+            model.setMaxamount(resultSet.getDouble("maxamount"));
+            model.setCommission(resultSet.getDouble("commission"));
+            model.setStatus(resultSet.getString("status"));
+            model.setCreator(resultSet.getString("creator"));
+            model.setSource(resultSet.getString("source"));
             if (resultSet.getTimestamp("createtime") != null) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                 Date createtime = new Date(resultSet.getTimestamp("createtime").getTime());
@@ -82,7 +122,7 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
     }
 
     public Integer count(String whereCase, Object[] paramValues) {
-        String sql = "select count(1) from esm_retail t " + whereCase;
+        String sql = "select count(1) from esm_retail t  left  join  sys_dept dept  on t.deptid = dept.id  " + whereCase;
 
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
 
@@ -92,10 +132,10 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
     public PageResult selectPaging(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
 
         Dialect dialect = Dialect.guessDialect(dataSource);
-        String sql = dialect.pagin(pageNumber, pageSize, "select t.id,t.deptid,t.deptname,t.retailtype,t.disrate1,t.disrate2,t.disrate3,t.display,t.usergroup,t.status,t.paytype,t.minamount,t.maxamount,t.commission,t.creator,t.createtime from esm_retail t  " + whereCase);
+        String sql = dialect.pagin(pageNumber, pageSize, "select t.id,t.deptid,t.deptname,t.retailtype,t.disrate1,t.disrate2,t.disrate3,t.display,t.usergroup,t.status,t.paytype,t.minamount,t.maxamount,t.commission,t.creator,t.createtime,dept.management_source AS source  from esm_retail t  left  join  sys_dept dept  on t.deptid = dept.id " +whereCase);
 
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-        List<EsmRetail> recordList = jdbcTemplate.query(sql, paramValues, new EsmRetailRowMapper());
+        List<EsmRetail> recordList = jdbcTemplate.query(sql, paramValues, new EsmRetailNewRowMapper());
 
         int totalCount = count(whereCase, paramValues);
 
@@ -138,6 +178,15 @@ public class EsmRetailDaoImpl implements EsmRetailDao {
         return jdbcTemplate.update(sql, new Object[]{id});
     }
 
+    @Override
+    public EsmRetail selectByDeptId(String id) {
+        String sql = "select t.id,t.deptid,t.deptname,t.retailtype,t.disrate1,t.disrate2,t.disrate3,t.display,t.usergroup,t.status,t.paytype,t.minamount,t.maxamount,t.commission,t.creator,t.createtime from esm_retail t  where deptid=?";
+
+        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+
+        return (EsmRetail) jdbcTemplate.queryForObject(sql,
+                new Object[]{id}, new EsmRetailRowMapper());
+    }
 
 }
 

+ 22 - 0
src/main/java/com/ydtech/modules/esm/model/EsmRetail.java

@@ -25,6 +25,8 @@ public class EsmRetail {
     private String creator;
     private String createtime;
 
+    private  String source;
+
     public String getId() {
         return id;
     }
@@ -152,4 +154,24 @@ public class EsmRetail {
     public void setCreatetime(String createtime) {
         this.createtime = createtime;
     }
+
+    public String getSource() {
+        return source;
+    }
+
+    public void setSource(String source) {
+        this.source = source;
+    }
+
+    public EsmRetail() {
+    }
+
+    public EsmRetail(String deptid, String deptname, String retailtype, double disrate1, double disrate2, double disrate3) {
+        this.deptid = deptid;
+        this.deptname = deptname;
+        this.retailtype = retailtype;
+        this.disrate1 = disrate1;
+        this.disrate2 = disrate2;
+        this.disrate3 = disrate3;
+    }
 }

+ 34 - 0
src/main/java/com/ydtech/modules/esm/model/vo/EsmRetailVo.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.esm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+@ApiModel(description = "批量设置分销对象")
+@Data
+public class EsmRetailVo implements Serializable {
+
+
+    @ApiModelProperty(value = "机构ids(必传)")
+    private  ArrayList<String>  ids =new ArrayList<String>();
+
+    @ApiModelProperty(value = "分销级别")
+    private   String retailLevel;
+
+
+    @ApiModelProperty(value = "1级分销比例")
+    private   Double  disrate1;
+
+
+    @ApiModelProperty(value = "2级分销比例")
+    private   Double  disrate2;
+
+    @ApiModelProperty(value = "3级分销比例")
+    private   Double  disrate3;
+
+
+
+}

+ 8 - 0
src/main/java/com/ydtech/modules/esm/service/EsmRetailService.java

@@ -2,8 +2,16 @@ package com.ydtech.modules.esm.service;
 
 
 import com.ydtech.modules.esm.dao.EsmRetailDao;
+import com.ydtech.modules.esm.model.vo.EsmRetailVo;
 
 public interface EsmRetailService extends EsmRetailDao {
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:53
+     *  @Description:  批量设置比例
+     */
+    void batchSetData(EsmRetailVo esmRetailVo);
 }
 
 

+ 46 - 0
src/main/java/com/ydtech/modules/esm/service/impl/EsmRetailServiceImpl.java

@@ -1,15 +1,61 @@
 package com.ydtech.modules.esm.service.impl;
 
+import com.ydtech.modules.admin.dao.SysDeptMapper;
+import com.ydtech.modules.admin.model.SysDept;
+import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.dao.impl.EsmRetailDaoImpl;
+import com.ydtech.modules.esm.model.EsmRetail;
+import com.ydtech.modules.esm.model.vo.EsmRetailVo;
 import com.ydtech.modules.esm.service.EsmRetailService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
 
 @Service
 public class EsmRetailServiceImpl extends EsmRetailDaoImpl
         implements EsmRetailService {
 
 
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 11:54
+     *  @Description:  批量设置比例
+     */
+    @Override
+    public void batchSetData(EsmRetailVo esmRetailVo) {
+        ArrayList<String> ids = esmRetailVo.getIds();
+        if(ids!=null && ids.size()>0){
+            List<SysDept> deptIds = sysDeptMapper.getListByIds(ids);
+            for(SysDept dept : deptIds){
+                EsmRetail esmRetail = this.selectByDeptId(dept.getId());
+                if(esmRetail!=null){
+                    esmRetail.setRetailtype(esmRetailVo.getRetailLevel());
+                    esmRetail.setDisrate1(esmRetailVo.getDisrate1());
+                    esmRetail.setDisrate2(esmRetailVo.getDisrate2());
+                    esmRetail.setDisrate3(esmRetailVo.getDisrate3());
+                    this.update(esmRetail);
+                }else{
+                    EsmRetail  record  =new EsmRetail(dept.getId(), dept.getName(), esmRetailVo.getRetailLevel(), esmRetailVo.getDisrate1(), esmRetailVo.getDisrate2(), esmRetailVo.getDisrate2());
+                    String id = IdGenerate.nextId();
+                    record.setId(id);
+                    record.setStatus("1");  //0无效 1有效
+                    record.setCreator(new BaseController().getUserName());
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    record.setCreatetime(sdf.format(new Date()));
+                    this.insert(record);
+                }
+            }
+        }
+    }
 }
 
 

+ 3 - 2
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceNewImpl.java

@@ -33,6 +33,7 @@ import com.ydtech.modules.protocol.service.PtlNewCarJudgeRulesService;
 import com.ydtech.modules.protocols.entity.po.*;
 import com.ydtech.modules.protocols.entity.vo.AgreementProductCosts;
 import com.ydtech.modules.protocols.service.*;
+import com.ydtech.utils.BigDecimalUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -294,7 +295,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
         //查找入口与出口费用比例
         //入口配置
         PtlAgreementProductCostsNew ptlAgreementProductCostsNew = ptlAgreementProductCostsNewService.getById(costsId);
-
+        ptlAgreementProductCostsNew.blank();
         //出口配置
         PtlAgreementProductCostsExport ptlAgreementProductCostsExport =
                 ptlAgreementProductCostsExportService.getOne(new LambdaQueryWrapper<PtlAgreementProductCostsExport>().eq(PtlAgreementProductCostsExport::getCostsId, costsId));
@@ -340,7 +341,7 @@ public class FeeRuleSchemeServiceNewImpl implements FeeRuleSchemeNewService {
 
         //商业入口信息
         FeeOrderNewVo.EntranceFee syEntranceFee = feeRuleSchemeService.calcEntranceFee(insFeeOrderNew.getSyPremium(),
-                new BigDecimal(ptlAgreementProductCostsNew.getSyCarCostsProportion()),
+                new BigDecimal(ptlAgreementProductCostsNew.getSyCarCostsProportion()) ,
                 new BigDecimal(ptlAgreementProductCostsNew.getSyCarOtherCostsProportion()), taxRadio);
         insFeeOrderNew.setSyCostsProportion(syEntranceFee.getTotalProportion());
         insFeeOrderNew.setSySuperviseCostsProportion(syEntranceFee.getSuperviseCosts());

+ 12 - 10
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountExcelServiceImpl.java

@@ -100,7 +100,9 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             if (record.getPayoutAmount() == null) {
                 record.setPayoutAmount("0");
             }
-            if (record.getPayoutAmount().equals(record.getApplyAmount())) {
+            double applyAmount = Double.parseDouble(record.getApplyAmount());
+            double payoutAmount = Double.parseDouble(record.getPayoutAmount());
+            if (applyAmount == payoutAmount) {
                 record.setTransferFlag("0");
             }
         }
@@ -179,15 +181,15 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             JSONObject outProfit = invAccountExcel.getOutProfit();
             JSONObject entProfit = invAccountExcel.getEntProfit();
 
-            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId());
-            entJsonUtil(entProfit, enterAccount, enterAccountCard, invAccountOperate1.getAccountOperateId());
+            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId(),payOutAmount);
+            entJsonUtil(entProfit, enterAccount, enterAccountCard, invAccountOperate1.getAccountOperateId(), payOutAmount);
 
             if (invAccountExcel.getApplyAmount().equals(payOutAmount)) {
                 invAccountExcel.setTransferFlag("0");
-                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+                invAccountExcel.setPayoutAmount(String.valueOf(Double.parseDouble(payOutAmount) + Double.parseDouble(invAccountExcel.getPayoutAmount())));
             } else {
                 invAccountExcel.setTransferFlag("1");
-                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(payOutAmount) + Integer.parseInt(invAccountExcel.getPayoutAmount())));
+                invAccountExcel.setPayoutAmount(String.valueOf(Double.parseDouble(payOutAmount) + Double.parseDouble(invAccountExcel.getPayoutAmount())));
             }
 
         } else {
@@ -201,7 +203,7 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
             invAccountOperate.setExcelAccountOperateId(invAccountExcel.getExcelAccountOperateId());
             insAccountOperateService.save(invAccountOperate);
             JSONObject outProfit = invAccountExcel.getOutProfit();
-            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId());
+            outJsonUtil(outProfit, outAccount, outAccountCard,invAccountOperate.getAccountOperateId(),payOutAmount);
 
             if (invAccountExcel.getApplyAmount().equals(payOutAmount)) {
                 invAccountExcel.setTransferFlag("0");
@@ -214,13 +216,13 @@ public class InvAccountExcelServiceImpl extends ServiceImpl<InvAccountExcelMappe
         return HttpResult.ok("", insAccountExcelMapper.updateById(invAccountExcel));
     }
 
-    private void outJsonUtil( JSONObject outProfit, InvAccount outAccount, InvAccountCard outCard,String operateId) {
-        List<InvAccountOp> list = invAccountOutOpList(outProfit, outAccount, outCard,operateId);
+    private void outJsonUtil( JSONObject outProfit, InvAccount outAccount, InvAccountCard outCard,String operateId,String payoutAmount) {
+        List<InvAccountOp> list = invAccountOutOpList1(outProfit, outAccount, outCard,operateId,payoutAmount);
         insAccountOpService.saveBatch(list);
     }
 
-    private void entJsonUtil( JSONObject outProfit, InvAccount entAccount, InvAccountCard entCard,String operateId) {
-        List<InvAccountOp> list = invAccountEntOpList(outProfit, entAccount, entCard,operateId);
+    private void entJsonUtil( JSONObject outProfit, InvAccount entAccount, InvAccountCard entCard,String operateId,String payoutAmount) {
+        List<InvAccountOp> list = invAccountEntOpList1(outProfit, entAccount, entCard,operateId,payoutAmount);
         insAccountOpService.saveBatch(list);
     }
 

+ 1 - 1
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountOperateServiceImpl.java

@@ -275,7 +275,7 @@ public class InvAccountOperateServiceImpl extends ServiceImpl<InvAccountOperateM
                 invAccountExcel.setExcelAccountOperateId(invAccountOperate.getExcelAccountOperateId());
                 invAccountExcel.setUpdateBy(baseController.getUserName());
                 invAccountExcel.setUpdateTime(new Date());
-                invAccountExcel.setPayoutAmount(String.valueOf(Integer.parseInt(invAccountExcel.getPayoutAmount()) - Integer.parseInt(invAccountOperate.getApplyAmount())));
+                invAccountExcel.setPayoutAmount(String.valueOf(Double.parseDouble(invAccountExcel.getPayoutAmount()) - Double.parseDouble(invAccountOperate.getApplyAmount())));
                 invAccountExcel.setTransferFlag("1");
                 invAccountExcelService.updateById(invAccountExcel);
             }

+ 40 - 0
src/main/java/com/ydtech/modules/inv/utils/TransferUtils.java

@@ -50,6 +50,26 @@ public class TransferUtils {
         return list;
     }
 
+    public static List<InvAccountOp> invAccountEntOpList1(JSONObject entProfit, InvAccount entAccount, InvAccountCard entAccountCard, String operateId,String payoutAmount) {
+        List<InvAccountOp> list = new ArrayList<>();
+        if (entProfit != null) {
+            for (Map.Entry<String, Object> entry : entProfit.entrySet()) {
+                if (new BigDecimal(entry.getValue().toString()).compareTo(BigDecimal.ZERO) != 0) {
+                    InvAccountOp invAccountOp = new InvAccountOp();
+                    invAccountOp.setAccountId(entAccount.getAccountId());
+                    invAccountOp.setAccountName(entAccount.getAccountName());
+                    invAccountOp.setCardNum(entAccountCard.getBankCardNum());
+                    invAccountOp.setCardName(entAccountCard.getBankName());
+                    invAccountOp.setAccountOperateId(operateId);
+                    invAccountOp.setProfit(entry.getKey());
+                    invAccountOp.setMoney(payoutAmount);
+                    list.add(invAccountOp);
+                }
+            }
+        }
+        return list;
+    }
+
 
     /**
      * 插入支出归属
@@ -77,6 +97,26 @@ public class TransferUtils {
         return list;
     }
 
+    //处理部分支出时逻辑
+    public static List<InvAccountOp> invAccountOutOpList1(JSONObject outProfit, InvAccount outAccount, InvAccountCard outAccountCard, String operateId,String payoutAmount) {
+        List<InvAccountOp> list = new ArrayList<>();
+        for (Map.Entry<String, Object> entry : outProfit.entrySet()) {
+            if (new BigDecimal(entry.getValue().toString()).compareTo(BigDecimal.ZERO) != 0) {
+                InvAccountOp invAccountOp = new InvAccountOp();
+                invAccountOp.setAccountId(outAccount.getAccountId());
+                invAccountOp.setAccountName(outAccount.getAccountName());
+                invAccountOp.setCardNum(outAccountCard.getBankCardNum());
+                invAccountOp.setCardName(outAccountCard.getBankName());
+                invAccountOp.setProfit(entry.getKey());
+                invAccountOp.setAccountOperateId(operateId);
+                payoutAmount = "-" + payoutAmount;
+                invAccountOp.setMoney(payoutAmount);
+                list.add(invAccountOp);
+            }
+        }
+        return list;
+    }
+
 
     /**
      * 转账成功后添加支出账户操作信息

+ 9 - 1
src/main/java/com/ydtech/modules/order/controller/CarModelController.java

@@ -1,10 +1,13 @@
 package com.ydtech.modules.order.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.service.CarModelService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import okhttp3.Request;
+import org.apache.http.client.methods.HttpPost;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -34,5 +37,10 @@ public class  CarModelController {
         return HttpResult.ok(carModelDTOS);
     }
 
-
+    @GetMapping("/licenseSearch")
+    @ApiOperation("车牌查询")
+    public HttpResult licenseSearch(@RequestParam String licenseNo){
+        JSONObject jsonObject = carModelService.licenseSearch(licenseNo);
+        return HttpResult.ok(jsonObject);
+    }
 }

+ 33 - 0
src/main/java/com/ydtech/modules/order/controller/ExternalOrderController.java

@@ -16,6 +16,7 @@ import com.ydtech.modules.order.service.InsTaskImagesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -121,4 +122,36 @@ public class ExternalOrderController {
         Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
         return HttpResult.ok(insAreaCompanyService.getStageOrder(page, BaseController.getUser().getId(),rejectPageQueryVo));
     }
+
+
+    /**
+     * 外部审核通过分页列表
+     */
+    @PostMapping("/orderCheckPage")
+    @ApiOperation("外部审核通过分页列表")
+    public HttpResult<Object> orderCheckPage(@RequestBody RejectPageQueryVo rejectPageQueryVo){
+        Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
+        return HttpResult.ok(insAreaCompanyService.orderCheckPage(page, BaseController.getUser().getId(),rejectPageQueryVo));
+    }
+
+   /**
+    *  @version
+    *  @author: hxl
+    *  @Date: 2024/9/18 11:17
+    *  @Description:外部駁回刪除
+    */
+    @GetMapping("/orderDelete")
+    @ApiOperation("外部駁回刪除")
+    public HttpResult<Object> orderDelete(String id){
+        if(StringUtils.isBlank(id)){
+            throw new SystemException("订单号不能为空!!");
+        }
+        try{
+            insAreaCompanyService.updateDeleteFalg(id);
+        }catch(Exception e){
+            return HttpResult.ok("操作失败");
+        }
+
+        return HttpResult.ok("操作成功");
+    }
 }

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

@@ -314,6 +314,15 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      * @return
      */
     List<OrdersDataExcel> querOrdersDataListExcel( @Param("vo") OrdersDataVo ordersDataVo);
+
+    /***
+     *
+     * @param page
+     * @param userId
+     * @param rejectPageQueryVo
+     * @return  查询已审核的外部订单
+     */
+    Page<InsAreaCompany> orderCheckPage(Page page, @Param("userId") String userId, @Param("vo") RejectPageQueryVo rejectPageQueryVo);
 }
 
 

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/InsAreaCompany.java

@@ -512,6 +512,9 @@ public class InsAreaCompany implements Serializable {
     @TableField("order_source")
     private Integer orderSource;
 
+     @TableField(value = "del_flag")
+     private String delFlag;
+
     public InsAreaCompany(QuoteRespVo quoteRespVo, PtlAgreementAttribution ptlAgreementAttribution) {
         this.id = IdGenerate.nextId();
         this.orderno = quoteRespVo.getOrderno();

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

@@ -338,6 +338,9 @@ public class InsOrders implements Serializable {
     @TableField(exist = false)
     private String dockingPerson;
 
+   // @ApiModelProperty("对接人")
+   // @TableField(value = "del_flag")
+   // private String delFlag;
 
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {
         // 2. 组装订单

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

@@ -160,7 +160,7 @@ public class OrderQueryVo {
     private Integer leaderId;
 
     @ApiModelProperty("领导人名称")
-    private Integer leaderName;
+    private String leaderName;
 
     public LocalDate getEndDatePlusOneDay() {
         if(ObjectUtils.isEmpty(endDate)){

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

@@ -1,5 +1,6 @@
 package com.ydtech.modules.order.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 
 import java.util.List;
@@ -8,4 +9,5 @@ public interface CarModelService {
 
     List<CarModelDTO> vinSearch(String frameNo);
 
+    JSONObject licenseSearch(String licenseNo);
 }

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

@@ -211,4 +211,18 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * @param orderStatus 订单状态
      */
     void saveInsOrdersUnderwritingReason(String subNoOrder, String message, String orderStatus);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/14 16:58
+     *  @Description: 查询外部审核通过的订单
+     */
+    Page<InsAreaCompany>  orderCheckPage(Page page, String id, RejectPageQueryVo rejectPageQueryVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 10:56
+     *  @Description:  外部订单逻辑删除
+     */
+    void updateDeleteFalg(String id);
 }

+ 37 - 0
src/main/java/com/ydtech/modules/order/service/impl/CarModelServiceImpl.java

@@ -1,6 +1,10 @@
 package com.ydtech.modules.order.service.impl;
 
+import com.alibaba.druid.util.HttpClientUtils;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.pingan.iobs.sdk.repkg.org.apache.http.HttpEntity;
+import com.pingan.iobs.sdk.repkg.org.apache.http.entity.StringEntity;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.order.components.vehicle.QueryVehicleComponents;
 import com.ydtech.modules.order.service.CarModelService;
@@ -8,9 +12,15 @@ import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.YongAnOrderService;
 import com.ydtech.modules.order.service.ZhongMeiOrderService;
 import lombok.RequiredArgsConstructor;
+import okhttp3.*;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
@@ -70,4 +80,31 @@ public class CarModelServiceImpl implements CarModelService {
         return Collections.emptyList();
     }
 
+    @Override
+    public JSONObject licenseSearch(String licenseNo) {
+        String requestUrl = "http://47.92.254.66:8088/lsearch/1";
+        JSONObject params = new JSONObject();
+        params.put("license",licenseNo);
+        OkHttpClient client = new OkHttpClient().newBuilder()
+                .build();
+        MediaType mediaType = MediaType.parse("application/json");
+        RequestBody body = RequestBody.create(mediaType, params.toString());
+        Request request = new Request.Builder()
+                .url(requestUrl)
+                .method("POST", body)
+                .build();
+        try {
+            Response response = client.newCall(request).execute();
+            if(response.isSuccessful()){
+                String responseBody = response.body().string();
+                JSONObject jsonResponse = JSONObject.parseObject(responseBody);
+                return jsonResponse;
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        return null;
+
+    }
+
 }

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

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 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.ydtech.constants.enums.dict.FeeAuditAuditstatus;
@@ -1002,6 +1003,28 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         }
         insOrdersUnderwritingReasonService.saveInsOrdersUnderwritingReason(subNoOrder, message, orderStatus);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/14 16:59
+     *  @Description: 审核通过的外部订单
+     */
+    @Override
+    public Page<InsAreaCompany> orderCheckPage(Page page, String userId, RejectPageQueryVo rejectPageQueryVo) {
+        return  baseMapper.orderCheckPage(page, userId, rejectPageQueryVo);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/9/18 10:57
+     *  @Description: 外部订单删除
+     */
+    @Override
+    public void updateDeleteFalg(String id) {
+        UpdateWrapper<InsAreaCompany> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.set("del_flag",0).eq("id", id);
+        update(updateWrapper);
+    }
 
 
 }

+ 7 - 0
src/main/java/com/ydtech/modules/protocol/controller/PtlAgreementController.java

@@ -104,6 +104,7 @@ public class PtlAgreementController extends BaseController {
             PtlAgreement ptlAgreement = new PtlAgreement();
             ptlAgreement.setId(agreementId);
             ptlAgreement.setValidStatus(pltAgreementBatchVo.getValidStatus());
+            ptlAgreement.setAuditType(pltAgreementBatchVo.getAuditType());
             ptlAgreements.add(ptlAgreement);
         }
         boolean b = ptlAgreementService.updateBatchById(ptlAgreements);
@@ -235,4 +236,10 @@ public class PtlAgreementController extends BaseController {
         return HttpResult.ok(list);
     }
 
+    @PostMapping("/agreementCopy")
+    @ApiOperation("协议复制")
+    public HttpResult getAgreementCopy(@RequestBody PtlAgreementVo ptlAgreementVo) {
+        return ptlAgreementService.getAgreementCopy(ptlAgreementVo);
+    }
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/PltAgreementBatchVo.java

@@ -13,4 +13,7 @@ public class PltAgreementBatchVo {
         @ApiModelProperty("启用/禁用")
         private String validStatus;
 
+        @ApiModelProperty("审核方式")
+        private Integer auditType;
+
 }

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

@@ -71,4 +71,7 @@ public class PtlAgreementPageVo extends PageRequest {
     @ApiModelProperty("外部订单")
     private Integer IsExternal;
 
+    @ApiModelProperty("审核方式")
+    private Integer auditType;
+
 }

+ 269 - 0
src/main/java/com/ydtech/modules/protocol/entity/vo/PtlAgreementVo.java

@@ -0,0 +1,269 @@
+package com.ydtech.modules.protocol.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.ydtech.modules.protocol.utils.AssertionUtils;
+import com.ydtech.utils.StringUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+@Data
+@ApiModel("协议")
+public class PtlAgreementVo {
+    /**
+     * 主键/自增
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private String id;
+
+    /**
+     * 供应商类型
+     * 1 渠道
+     * 2 财险
+     * 3 寿险
+     */
+    @TableField(value = "companies_type")
+    private String companiesType;
+
+    /**
+     * 协议类型
+     * 1  平台协议-平台结算
+     * 2  私有协议-自行结算
+     * 3  网销协议-自行结算
+     */
+    @TableField(value = "agreement_type")
+    private String agreementType;
+
+    /**
+     * 协议代码
+     */
+    @TableField(value = "agreement_code")
+    private String agreementCode;
+
+    /**
+     * 协议描述
+     */
+    @TableField(value = "agreement_name")
+    private String agreementName;
+
+    /**
+     * 协议名称
+     */
+    @TableField(value = "agreement_title")
+    private String agreementTitle;
+
+    /**
+     * 承保描述
+     */
+    @TableField(value = "underwriting_description")
+    private String underwritingDescription;
+
+    /**
+     * 协议简称
+     */
+    @TableField(value = "agreement_abbreviation")
+    private String agreementAbbreviation;
+
+    /**
+     * 合作公司 id
+     */
+    @TableField(value = "partner_companies_id")
+    private String partnerCompaniesId;
+
+    /**
+     * 内部机构 id
+     */
+    @TableField(value = "dept_id")
+    private String deptId;
+
+    /**
+     * 保险公司id
+     */
+    @TableField(value = "association_companies_id")
+    private String associationCompaniesId;
+
+    /**
+     * 关联-保险公司
+     */
+    @TableField(value = "insurance_company")
+    private String insuranceCompany;
+
+    /**
+     * 关联-保险公司id
+     */
+    @TableField(value = "insurance_company_id")
+    private String insuranceCompanyId;
+
+    /**
+     * 协议起期
+     */
+    @TableField(value = "start_date")
+    private LocalDate startDate;
+
+    /**
+     * 协议止期
+     */
+    @TableField(value = "end_date")
+    private LocalDate endDate;
+
+    /**
+     * 结算周期
+     */
+    @TableField(value = "money_time")
+    private Integer moneyTime;
+
+    /**
+     * 保单匹配协议日期类型(保单日期类型)
+     */
+    @TableField(value = "match_type")
+    private String matchType;
+
+    /**
+     * 对接人
+     */
+    @TableField(value = "docking_person")
+    private String dockingPerson;
+
+    /**
+     * 联系方式(对接人)
+     */
+    @TableField(value = "docking_phone")
+    private String dockingPhone;
+
+    /**
+     * 含增值税结算
+     */
+    @TableField(value = "with_tax")
+    private String withTax;
+
+    /**
+     * 佣金发放方式
+     */
+    @TableField(value = "money_type")
+    private String moneyType;
+
+    /**
+     * 有效状态
+     */
+    @TableField(value = "valid_status")
+    private String validStatus;
+
+    /**
+     * 附件id
+     */
+    @TableField(value = "file_id")
+    private String fileId;
+
+    /**
+     * 审核内容
+     */
+    @TableField(value = "audit_content")
+    private String auditContent;
+
+    /**
+     * 审核状态 0 申请审核 1 审核通过 2 审核不通过
+     */
+    @TableField(value = "audit_status")
+    private Integer auditStatus;
+
+    /**
+     * 产品类型
+     */
+    @TableField(value = "products_code")
+    private String productsCode;
+
+    /**
+     * 序号
+     */
+    @ApiModelProperty("serial_number")
+    private Integer serialNumber;
+
+    /**
+     * 创建者
+     */
+    @TableField(value = "creator")
+    private String creator;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    private LocalDateTime createTime;
+
+    /**
+     * 修改人
+     */
+    @TableField(value = "modified_by")
+    private String modifiedBy;
+
+
+    /**
+     * 修改人
+     */
+    @TableField(value = "modified_name")
+    private String modifiedName;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_time")
+    private LocalDateTime updateTime;
+
+    /**
+     * 是否是外部订单费用
+     */
+    @TableField(value = "is_external")
+    private Integer isExternal;
+
+    /**
+     * 审核类型
+     */
+    @TableField(value = "audit_type")
+    private Integer auditType;
+
+    /**
+     * 业务描述
+     */
+    @TableField(value = "business_description")
+    private String businessDescription;
+
+    /**
+     * 工号描述
+     */
+    @TableField(value = "job_description")
+    private String jobDescription;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    /***
+     * 添加是否回显的标志
+     */
+    @TableField(exist = false)
+    private String flag;
+
+    /***
+     * 保险公司名称
+     */
+    @TableField(exist = false)
+    private String partnerCompaniesName;
+
+    /**
+     * 逻辑删除
+     */
+    @TableLogic
+    private Integer deleted;
+
+    public void generateTheProtocolCode() {
+        AssertionUtils.isFail(StringUtils.isNullOrEmpty(this.getPartnerCompaniesId()), "请检查合作保险公司是否选择");
+        String string = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE);
+        this.agreementCode = this.getPartnerCompaniesId() + string;
+    }
+}

+ 4 - 0
src/main/java/com/ydtech/modules/protocol/service/PtlAgreementService.java

@@ -271,4 +271,8 @@ public interface PtlAgreementService extends IService<PtlAgreement> {
      */
     List<PtlAgreement> getAllAgreement(String agreementId);
 
+    HttpResult getAgreementCopy(PtlAgreementVo ptlAgreementVo);
+
+
+
 }

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

@@ -3,6 +3,7 @@ package com.ydtech.modules.protocol.service.impl;
 import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.config.DictEnumConfig;
@@ -205,7 +206,21 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         ptlAgreement.setProductsCode(agreementSaveDto.getProductsCode());
         ptlAgreement.setCreator(userName);
         ptlAgreement.setCreateTime(LocalDateTime.now());
+        ptlAgreement.setDeleted(0);
         save(ptlAgreement);
+        // 新增协议后按序号重新排序
+        List<PtlAgreement> updateList = new ArrayList<>();
+        List<PtlAgreement> list = ptlAgreementMapper.selectList(new QueryWrapper<PtlAgreement>()
+                .ge("serial_number", ptlAgreement.getSerialNumber())
+                .ne("id", ptlAgreement.getId()));
+        if (list != null && !list.isEmpty()) {
+            int newSerialNumber = ptlAgreement.getSerialNumber();
+            for (PtlAgreement ptlAgreement1 : list) {
+                ptlAgreement1.setSerialNumber(++newSerialNumber);
+                updateList.add(ptlAgreement1);
+            }
+            proxyObject.updateBatchById(updateList);
+        }
         // 提交  账号信息 授权部门
         proxyObject.saveAssociationInformation(ptlAgreement.getId(), esmInsCompany, agreement);
         // 添加 历史记录表
@@ -448,7 +463,10 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
                         ptlAgreementPageVo.getAgreementEndDate())
                 // 外部订单
                 .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getIsExternal()), PtlAgreement::getIsExternal,
-                        ptlAgreementPageVo.getIsExternal());
+                        ptlAgreementPageVo.getIsExternal())
+                // 审核方式
+                .eq(!ObjectUtils.isEmpty(ptlAgreementPageVo.getAuditType()), PtlAgreement::getAuditType,
+                        ptlAgreementPageVo.getAuditType());
         // 录入时间
         if (!ObjectUtils.isEmpty(ptlAgreementPageVo.getStartDate()) && !ObjectUtils.isEmpty(ptlAgreementPageVo.getEndDate())) {
             LocalDateTime startDateTime = ptlAgreementPageVo.getStartDate().atTime(LocalTime.MIN);
@@ -575,11 +593,27 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
     @Override
     @Transactional
     public HttpResult<Object> deleteAgreement(String agreementId, String userName) {
-        proxyObject.ifExistsById(agreementId);
+        PtlAgreement ptlAgreement = proxyObject.ifExistsById(agreementId);
         HttpResult<PtlAgreementQueryVo> byAgreementId = getByAgreementId(agreementId);
 
         boolean b = removeById(agreementId);
         AssertionUtils.isSucceed(b, "协议信息删除失败");
+        // 删除协议后按序号重新排序
+        List<PtlAgreement> updateList = new ArrayList<>();
+        List<PtlAgreement> list = ptlAgreementMapper.selectList(new QueryWrapper<PtlAgreement>()
+                .ge("serial_number", ptlAgreement.getSerialNumber())
+                .ne("id", agreementId));
+        if (list != null && !list.isEmpty()) {
+            int newSerialNumber = ptlAgreement.getSerialNumber(); // 被删除协议的序列号
+            for (PtlAgreement ptlAgreement1 : list) {
+                // 对于每一个协议,如果其序列号大于等于被删除协议的序列号,则递增
+                if (ptlAgreement1.getSerialNumber() >= ptlAgreement.getSerialNumber()) {
+                    ptlAgreement1.setSerialNumber(newSerialNumber++);
+                }
+                updateList.add(ptlAgreement1);
+            }
+            proxyObject.updateBatchById(updateList);
+        }
         // 关联表删除
         proxyObject.deleteAssociationInformation(agreementId);
         // 添加 历史记录表
@@ -633,6 +667,19 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
         ptlAgreement.setUpdateTime(LocalDateTime.now());
         //add by hxl  2024-06-12 修改协议改为可以更新null的判断
         boolean b = ptlAgreementMapper.updateWithNull(ptlAgreement);
+
+        List<PtlAgreement> updateList = new ArrayList<>();
+        List<PtlAgreement> list = ptlAgreementMapper.selectList(new QueryWrapper<PtlAgreement>()
+                        .ge("serial_number", ptlAgreement.getSerialNumber())
+                        .ne("id", agreementId));
+        if (list != null && list.size() > 0) {
+            int newSerialNumber = ptlAgreement.getSerialNumber();
+            for (PtlAgreement ptlAgreement1 : list) {
+                ptlAgreement1.setSerialNumber(++newSerialNumber);
+                updateList.add(ptlAgreement1);
+            }
+            proxyObject.updateBatchById(updateList);
+        }
         // 修改协议
         //boolean b = updateById(ptlAgreement);
         AssertionUtils.isSucceed(b, "协议信息修改失败");
@@ -905,4 +952,15 @@ public class PtlAgreementServiceImpl extends ServiceImpl<PtlAgreementMapper, Ptl
                 .eq(PtlAgreement::getInsuranceCompanyId, ptlAgreement.getInsuranceCompanyId()));
     }
 
+    @Override
+    public HttpResult getAgreementCopy(PtlAgreementVo ptlAgreementVo) {
+        PtlAgreement ptlAgreement = baseMapper.selectById(ptlAgreementVo.getId());
+        PtlAgreement newPtlAgreement = new PtlAgreement();
+        BeanUtils.copyProperties(ptlAgreement, newPtlAgreement,"id","agreementCode");
+        newPtlAgreement.setPartnerCompaniesId(ptlAgreement.getPartnerCompaniesId());
+        newPtlAgreement.generateTheProtocolCode();
+        save(newPtlAgreement);
+        return HttpResult.ok("协议复制成功");
+    }
+
 }

+ 13 - 1
src/main/java/com/ydtech/modules/protocols/dao/PtlAgreementProductCostsTrajectoryMapper.java

@@ -3,6 +3,10 @@ package com.ydtech.modules.protocols.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsTrajectory;
 import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 
 /**
@@ -11,9 +15,17 @@ import com.ydtech.modules.protocols.entity.po.PtlAgreementUndwrtRulesAttr;
  * @createDate 2024-2-22 15:44:29
  */
 public interface PtlAgreementProductCostsTrajectoryMapper extends BaseMapper<PtlAgreementProductCostsTrajectory> {
-
+    @Select({
+            "SELECT t.*, u.name as userName",
+            "FROM ptl_agreement_product_costs_trajectory t ",
+            "LEFT JOIN sys_user u ON t.create_by = u.id ",
+            "WHERE t.costs_id = #{costsId} ",
+            "ORDER BY t.create_time ASC"
+    })
+    List<PtlAgreementProductCostsTrajectory> getTrajectoryWithUser(@Param("costsId") String costsId);
 }
 
 
 
 
+

+ 11 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsNew.java

@@ -260,6 +260,17 @@ public class PtlAgreementProductCostsNew {
             this.noCarOtherCostsProportion = "0";
         }
 
+        if (this.jqCostsExportProportion == null || this.jqCostsExportProportion.equals("")) {
+            this.jqCostsExportProportion = "0";
+        }
+        if (this.syCostsExportProportion == null || this.syCostsExportProportion.equals("")) {
+            this.syCostsExportProportion = "0";
+        }
+        if (this.noCostsExportProportion == null || this.noCostsExportProportion.equals("")) {
+            this.noCostsExportProportion = "0";
+        }
+
+
     }
 
 }

+ 3 - 0
src/main/java/com/ydtech/modules/protocols/entity/po/PtlAgreementProductCostsTrajectory.java

@@ -34,4 +34,7 @@ public class PtlAgreementProductCostsTrajectory {
 
     @TableField(value = "create_by")
     private String createBy;
+
+    @TableField(exist = false)
+    private String userName;
 }

+ 27 - 0
src/main/java/com/ydtech/modules/protocols/entity/vo/AgreementProductCosts.java

@@ -161,4 +161,31 @@ public class AgreementProductCosts implements Serializable {
     public PtlAgreementProductCostsAttrLink getAttrLinkByCode(String code) {
         return this.getCostsAttrLinks().stream().filter(attrLink -> code.equals(attrLink.getAttrCode())).findFirst().orElse(null);
     }
+
+    /**
+     * 清空商业比例信息
+     */
+    public void clearSyInfo(){
+        this.setSyCostsProportion("");
+        this.setSyCarCostsProportion("");
+        this.setSyCarOtherCostsProportion("");
+        this.setSyExportRadioLevel1(null);
+        this.setSyExportRadioLevel2(null);
+        this.setSyExportRadioLevel3(null);
+        this.setSyExportRadioLevel4(null);
+        this.setSyExportRadioLevel5(null);
+        this.setSyCostsExportProportion("");
+    }
+
+    public void clearJqInfo(){
+        this.setJqCostsProportion("");
+        this.setJqCarCostsProportion("");
+        this.setJqCarOtherCostsProportion("");
+        this.setJqExportRadioLevel1(null);
+        this.setJqExportRadioLevel2(null);
+        this.setJqExportRadioLevel3(null);
+        this.setJqExportRadioLevel4(null);
+        this.setJqExportRadioLevel5(null);
+        this.setJqCostsExportProportion("");
+    }
 }

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

@@ -712,6 +712,15 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
 //                }
 //            }
 //        }
+        //单交
+        if(agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_0330.getCode())){
+            //清空商业险信息
+            agreementProductCosts.clearSyInfo();
+        }else if(agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_034001.getCode()) ||
+                agreementProductCosts.getProductId().get(0).equals(ProductsType.PT_034002.getCode())){
+            //清空交强险信息
+            agreementProductCosts.clearJqInfo();
+        }
 
         //更新费用主表信息
         PtlAgreementProductCostsNew ptlAgreementProductCostsNew = new PtlAgreementProductCostsNew();
@@ -1039,6 +1048,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             //生成批次ID
             String uuid = IdGenerate.nextId();
             ptlAgreementProductCostsNewHistory.setBatch(uuid);
+            ptlAgreementProductCostsNewHistory.setAgreementId(ptlAgreementProductCostsNew.getAgreementId());
             ptlAgreementProductCostsNewHistory.setProductId(ptlAgreementProductCostsNew.getProductId());
             ptlAgreementProductCostsNewHistory.setProductName(ptlAgreementProductCostsNew.getProductName());
             ptlAgreementProductCostsNewHistory.setOperatorType("update");

+ 5 - 1
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsTrajectoryServiceImpl.java

@@ -11,6 +11,7 @@ import com.ydtech.modules.protocols.service.PtlAgreementUndwrtRulesAttrLinkServi
 import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -23,6 +24,9 @@ import java.util.List;
 public class PtlAgreementProductCostsTrajectoryServiceImpl extends ServiceImpl<PtlAgreementProductCostsTrajectoryMapper, PtlAgreementProductCostsTrajectory>
         implements PtlAgreementProductCostsTrajectoryService {
 
+    @Resource
+    PtlAgreementProductCostsTrajectoryMapper ptlAgreementProductCostsTrajectoryMapper;
+
     @Override
     public boolean addCostsTrajectory(String costsId, String desc, String userId) {
         PtlAgreementProductCostsTrajectory trajectory = new PtlAgreementProductCostsTrajectory();
@@ -36,6 +40,6 @@ public class PtlAgreementProductCostsTrajectoryServiceImpl extends ServiceImpl<P
 
     @Override
     public List<PtlAgreementProductCostsTrajectory> getTrajectory(String costsId) {
-        return lambdaQuery().eq(PtlAgreementProductCostsTrajectory::getCostsId, costsId).orderByAsc(PtlAgreementProductCostsTrajectory::getCreateTime).list();
+        return ptlAgreementProductCostsTrajectoryMapper.getTrajectoryWithUser(costsId);
     }
 }

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

@@ -119,5 +119,14 @@
                     FROM ins_orders
                     WHERE orderno = #{orderNo})
     </select>
+    <select id="getListByIds" resultType="com.ydtech.modules.admin.model.SysDept">
+        SELECT sd.id        AS id,
+               sd.NAME      AS NAME
+        FROM sys_dept sd
+        WHERE sd.id  in
+        <foreach collection="ids" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </select>
 
 </mapper>

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

@@ -242,7 +242,7 @@
         </if>
         and his.user_id = #{vo.userId}
         <if test="vo.startDate !=null and vo.startDate != '' and vo.endDate !=null and vo.endDate != '' ">
-            AND   his.create_time  BETWEEN #{vo.startDate} AND #{vo.endDate}
+            AND   date(his.create_time)  BETWEEN #{vo.startDate} AND #{vo.endDate}
         </if>
         <if test="vo.transactionType !=null and vo.transactionType != ''  and vo.transactionType != '0'">
             and his.property = #{vo.transactionType}
@@ -253,6 +253,9 @@
         <if test="vo.licenseNo !=null and vo.licenseNo != ''">
             and  o.licenseno =#{vo.licenseNo}
         </if>
+        <if test="vo.signBeginDate !=null and vo.signBeginDate != '' and vo.signEndDate !=null and vo.signEndDate != '' ">
+            AND   date(ins.signing_time)  BETWEEN #{vo.signBeginDate} AND #{vo.signEndDate}
+        </if>
         order by his.create_time desc
     </sql>
 

+ 1 - 1
src/main/resources/mapper/modules/ins/InsFeeOrderNewMapper.xml

@@ -940,7 +940,7 @@
         <if test="vo.companyId!=null and  vo.companyId!= ''">
             AND iac.company_id =  #{vo.companyId}
         </if>
-
+         order by  iff.audittime  desc
     </sql>
     <select id="findMyInsuranceTGByUserId"
             resultType="com.ydtech.modules.admin.model.dto.ExportExpenditureTypeDetalsTGDto">

+ 34 - 1
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -695,7 +695,7 @@
         WHERE
             iac.operator_id = #{userId}
         AND
-            ifa.auditstatus = 2
+            ifa.auditstatus = 2  and  IFNULL(iac.del_flag,'') != '0'
         <if test="vo.id  != null  and  vo.id!=''">
             and  iac.id = #{vo.id}
         </if>
@@ -2257,5 +2257,38 @@
         )  b  on b.licenseno  =a.licenseno
     </select>
 
+    <select id="orderCheckPage" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
+        select
+            iac.id,
+            iac.orderno,
+            iac.agreement_id,
+            iac.jqpremium,
+            iac.sypremium,
+            iac.jypremium,
+            iac.taxamount,
+            iac.sumpremium,
+            io.licenseno,
+            iac.createtime,
+            su.name  as auditname
+        FROM
+        ins_area_company iac
+        LEFT JOIN
+        ins_orders io on iac.orderno = io.orderno
+            left join  ptl_agreement  agree  on iac.agreement_id =agree.id
+            left join  ins_fee_audit  ifa  on  iac.id =  ifa.ins_order_no
+            left join  sys_user su  on su.id= ifa.audituser
+        WHERE
+        iac.operator_id = #{userId}
+        AND
+        iac.orderstatus = 3
+        and agree.is_external =1
+        and  auditstatus =1
+        <if test="vo.id  != null  and  vo.id!='' ">
+            and  iac.id = #{vo.id}
+        </if>
+        <if test="vo.licenseno  != null  and  vo.licenseno!='' ">
+            and  io.licenseno like  CONCAT('%', #{vo.licenseno}, '%')
+        </if>
+    </select>
 
 </mapper>

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

@@ -1018,10 +1018,10 @@
             </if>
 
             <if test="orderQueryVo.leaderId != null and orderQueryVo.leaderId != ''">
-                and u.leader_id = #{leaderId}
+                and u.leader_id = #{orderQueryVo.leaderId}
             </if>
             <if test="orderQueryVo.leaderName != null and orderQueryVo.leaderName != ''">
-                and u.leader_name = #{leaderName}
+                and u.leader_name = #{orderQueryVo.leaderName}
             </if>
 
             <if test="orderQueryVo.attachStartDateStr != null and orderQueryVo.attachEndDateStr != ''">
@@ -1156,10 +1156,10 @@
             </if>
 
             <if test="orderQueryVo.leaderId != null and orderQueryVo.leaderId != ''">
-                and u.leader_id = #{leaderId}
+                and u.leader_id = #{orderQueryVo.leaderId}
             </if>
             <if test="orderQueryVo.leaderName != null and orderQueryVo.leaderName != ''">
-                and u.leader_name = #{leaderName}
+                and u.leader_name = #{orderQueryVo.leaderName}
             </if>
 
             <if test="orderQueryVo.attachStartDateStr != null and orderQueryVo.attachEndDateStr != ''">