Sfoglia il codice sorgente

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

wks 1 anno fa
parent
commit
9e5aea4ad6

+ 18 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -936,6 +936,24 @@ public class SysUserController extends BaseController {
         }
 
     }
+    /**
+     * @version
+     * @author: whp
+     * @Date: 2024/10/12 16:12
+     * @Description: 机构人员树
+     */
+    @ApiOperation(value = "获取机构人员树")
+    @PostMapping(value = "/getTreeDeptUser")
+    public HttpResult getTreeDeptUser() {
+        try {
+            List<SysDeptTreeVo> userList = sysUserService.getTreeDeptUser();
+            return HttpResult.ok(userList);
+        } catch (Exception e) {
+            return HttpResult.error("查询失败" + e.getMessage());
+        }
+
+    }
+
 
     /**
      * @version

+ 3 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -516,6 +516,9 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     List<QxFrontlineAgentDto> getQxFrontlineAgentList(@Param("vo") QxFrontlineAgentVo qxFrontlineAgentVo);
 
+    List<SysUser> findHxUserListNew();
+
+
 }
 
 

+ 9 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -276,6 +276,15 @@ public interface SysUserService extends BaseIService<SysUser> {
      *  @Description: 查询用户管理的电销组员
      */
     List<String> getGroupByUserId(String userId);
+    /**
+     * @version
+     * @author: whp
+     * @Date: 2024/10/12 16:12
+     * @Description: 机构人员树
+     */
+    List<SysDeptTreeVo> getTreeDeptUser();
+
+
 }
 
 

+ 36 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -16,6 +17,7 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.constants.QuMarks;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.constants.UserWorkStatus;
+import com.ydtech.modules.admin.dao.SysDeptMapper;
 import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
 import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.model.*;
@@ -90,6 +92,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Autowired
     private SysUserLinkAreaMapper sysUserLinkAreaMapper;
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
 
     @Override
     public IPage<SysUserBaseVO> findUserList(PageDto<SysUserDto> pageDto) {
@@ -1731,4 +1735,36 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     public List<String> getGroupByUserId(String userId) {
         return sysUserMapper.getGroupByUserId(userId);
     }
+
+
+    @Override
+    public List<SysDeptTreeVo> getTreeDeptUser() {
+        List<SysUser> hxUserList = sysUserMapper.findHxUserListNew();
+        Map<String, List<SysUser>> groupedByDeptId = hxUserList.stream()
+                .collect(Collectors.groupingBy(SysUser::getDeptId, Collectors.toList()));
+
+
+        SysDept sysDept = this.sysDeptService.getById("9");
+        LambdaQueryWrapper<SysDept> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(SysDept::getDelFlag, 0);
+//        lqw.isNull(SysDept::getComlevel);
+        lqw.likeRight(SysDept::getId, "9");
+        lqw.orderByAsc(SysDept::getOrderNum);
+        List<SysDept> sysDeptList = sysDeptMapper.selectList(lqw);
+        List<SysDeptTreeVo> sysDeptTreeVos = BeanUtil.copyToList(sysDeptList, SysDeptTreeVo.class);
+        Map<String, List<SysDeptTreeVo>> map = sysDeptTreeVos.stream().sorted(Comparator.comparing(SysDeptTreeVo::getId)).collect(Collectors.groupingBy(SysDeptTreeVo::getParentId));
+        sysDeptTreeVos.forEach(i -> {
+            if(map.get(i.getId()) ==null ){
+                List<SysUser> orDefault = groupedByDeptId.getOrDefault(i.getId(), new ArrayList<>());
+                List<SysDeptTreeVo> sysDeptTreeVos1 = BeanUtil.copyToList(orDefault, SysDeptTreeVo.class);
+                i.setChildren(sysDeptTreeVos1);
+            }else {
+                i.setChildren(map.getOrDefault(i.getId(), new ArrayList<>()));
+                i.setDeptCount(i.getChildren().size());
+            }
+        });
+        sysDeptTreeVos = map.get(sysDept.getParentId());
+
+        return sysDeptTreeVos;
+    }
 }

+ 11 - 2
src/main/java/com/ydtech/modules/admin/service/impl/UserReportServiceImpl.java

@@ -476,6 +476,9 @@ public class UserReportServiceImpl implements UserReportService {
             String countyId =   this.removeTrailingZeros(qxFrontlineAgentVo.getCountyId());
             qxFrontlineAgentVo.setCountyId(countyId);
         }
+        HashMap<String, String> map = getDateMapByType(qxFrontlineAgentVo.getDays(), qxFrontlineAgentVo.getCreatetimeStart(), qxFrontlineAgentVo.getCreatetimeEnd());
+        qxFrontlineAgentVo.setCreatetimeStart(map.get("startDate"));
+        qxFrontlineAgentVo.setCreatetimeEnd(map.get("endDate"));
         //按照条件重新查询数据
         List<QxFrontlineAgentDto> list = sysUserMapper.queryQxFrontlineAgentList(qxFrontlineAgentVo);
         List<QxFrontlineAgentDto> listNew =new ArrayList<>();
@@ -508,8 +511,11 @@ public class UserReportServiceImpl implements UserReportService {
                         .collect(Collectors.toList());
                 if(limitList!=null &&  limitList.size()>0){
                     for(QxFrontlineAgentDto  dto : limitList){
+                        List<String> ids = dto.getIds();
+                        qxFrontlineAgentVo.setIds(ids);
+
                         //查询出单人力
-                        Double  sumAmount  = insAreaCompanyService.getOrderPremiumByUserIds(dto.getIds());
+                        Double  sumAmount  = insAreaCompanyService.getOrderPremiumByUserIds(qxFrontlineAgentVo);
                         dto.setTotalPremium(sumAmount.toString());
                         listNew.add(dto);
                     }
@@ -526,7 +532,10 @@ public class UserReportServiceImpl implements UserReportService {
                     userIds.add(dto.getUserId());
                     dto.setIds(userIds);
                     dto.setTotalManpower(userIds.size()+"");
-                    Double  sumAmount  = insAreaCompanyService.getOrderPremiumByUserIds(dto.getIds());
+                    List<String> ids = dto.getIds();
+                    qxFrontlineAgentVo.setIds(ids);
+
+                    Double  sumAmount  = insAreaCompanyService.getOrderPremiumByUserIds(qxFrontlineAgentVo);
                     dto.setTotalPremium(sumAmount.toString());
                     dto.setTotalPremiumNum(sumAmount);
                     listNews.add(dto);

+ 1 - 1
src/main/java/com/ydtech/modules/order/components/InsOrdersComponents.java

@@ -85,7 +85,7 @@ public class InsOrdersComponents {
         //替换商业险信息
         quoteInfoVo.setKindList(kindInfoVoList);
         //赋值 userid
-        if(Objects.isNull(quoteInfoVo.getUserid()) && quoteInfoVo.getUserid().equals("")) {
+        if(Objects.isNull(quoteInfoVo.getUserid()) || quoteInfoVo.getUserid().equals("")) {
             quoteInfoVo.setUserid(quoteInfoVo.getUserId());
         }
         return quoteInfoVo;

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

@@ -10,10 +10,7 @@ import com.ydtech.modules.admin.model.report.opetationData.BusinessDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.BusinessDataQueryDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto;
 import com.ydtech.modules.admin.model.report.opetationData.QuotationCountQueryDto;
-import com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo;
-import com.ydtech.modules.admin.model.vo.OrdersDataVo;
-import com.ydtech.modules.admin.model.vo.SubOrder;
-import com.ydtech.modules.admin.model.vo.TaskStatisticsVo;
+import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
@@ -245,7 +242,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      *  @Date: 2024/8/30 10:22
      *  @Description:  通过用户id查询金额数据
      */
-    Double  getOrderPremiumByUserIds(@Param("ids") List<String>  ids);
+    Double  getOrderPremiumByUserIds(@Param("vo") QxFrontlineAgentVo qxFrontlineAgentVo);
     /**
      *  @version
      *  @author: whp

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

@@ -4,6 +4,7 @@ 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.admin.model.dto.QxFrontlineAgentDto;
+import com.ydtech.modules.admin.model.vo.QxFrontlineAgentVo;
 import com.ydtech.modules.fnc.entity.vo.ProblemOrderQueryVo;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsAreaCompanyAccidentalDriving;
@@ -216,7 +217,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * @Date: 2024/8/30 10:23
      * @Description: 通过用户id查询到导出的数据
      */
-    Double getOrderPremiumByUserIds(List<String> ids);
+    Double getOrderPremiumByUserIds(QxFrontlineAgentVo qxFrontlineAgentVo);
 
 
     /**

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

@@ -12,6 +12,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.constants.ManagementSource;
 import com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto;
+import com.ydtech.modules.admin.model.vo.QxFrontlineAgentVo;
 import com.ydtech.modules.admin.service.SysDeptService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
@@ -1034,8 +1035,8 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
      * @Description: 通过用户id查询总保费
      */
     @Override
-    public Double getOrderPremiumByUserIds(List<String> ids) {
-        return baseMapper.getOrderPremiumByUserIds(ids);
+    public Double getOrderPremiumByUserIds(QxFrontlineAgentVo qxFrontlineAgentVo) {
+        return baseMapper.getOrderPremiumByUserIds(qxFrontlineAgentVo);
     }
 
     @Override

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

@@ -42,8 +42,10 @@ public class PtlAgreementDeptServiceImpl extends ServiceImpl<PtlAgreementDeptMap
 
     @Override
     public void deleteByAgreementId(String agreementId) {
-        boolean remove = remove(byAgreementId(agreementId));
-        AssertionUtils.isSucceed(remove, "协议机构删除失败");
+        //修改BUG  如果这张表没有数据则断言了 无法修改
+        remove(byAgreementId(agreementId));
+//        boolean remove = remove(byAgreementId(agreementId));
+//        AssertionUtils.isSucceed(remove, "协议机构删除失败");
     }
 
     @Override

+ 266 - 31
src/main/java/com/ydtech/modules/protocols/service/impl/PtlAgreementProductCostsNewServiceImpl.java

@@ -1084,6 +1084,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
            if (agreementProductCostsVo.getCostsStartDate() != null) {
                ptlAgreementProductCostsNew.setCostsStartDate(agreementProductCostsVo.getCostsStartDate());
            }
+           ptlAgreementProductCostsNew.setIsAudit(0);
         String desc = "修改费用因子";
         //添加费用因子轨迹
         ptlAgreementProductCostsTrajectoryService.addCostsTrajectory(ptlAgreementProductCostsNew.getId(), desc, BaseController.getUser().getId());
@@ -1136,8 +1137,9 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
             validateItems(costsItem, exportItem);
 
             // 更新费用总比例、1-5级比例
-            updateCostsItem(agreementProductCostsVo, costsItem);
-            updateExportItem(agreementProductCostsVo, exportItem);
+            updateCostsItem(agreementProductCostsVo, costsItem, exportItem);
+            updateExportItem(agreementProductCostsVo, exportItem, costsItem);
+            costsItem.setIsAudit(0);
 
             //添加费用轨迹 费用历史记录
             addCostsTrajectory(costsItem);
@@ -1155,10 +1157,10 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         }
     }
 
-    private void updateCostsItem(AgreementProductCostsVo vo, PtlAgreementProductCostsNew item) {
-        updateProportion(item, vo.getJqCostsProportion(), item::getJqCostsProportion, item::setJqCostsProportion, "交强险总费用");
-        updateProportion(item, vo.getSyCostsProportion(), item::getSyCostsProportion, item::setSyCostsProportion, "商业险总费用");
-        updateProportion(item, vo.getNoCostsProportion(), item::getNoCostsProportion, item::setNoCostsProportion, "非车险总费用");
+    private void updateCostsItem(AgreementProductCostsVo vo, PtlAgreementProductCostsNew item, PtlAgreementProductCostsExport export) {
+        updateProportion(item, vo.getJqCostsProportion(), item::getJqCostsProportion, item::setJqCostsProportion, "交强险总费用", export);
+        updateProportion(item, vo.getSyCostsProportion(), item::getSyCostsProportion, item::setSyCostsProportion, "商业险总费用", export);
+        updateProportion(item, vo.getNoCostsProportion(), item::getNoCostsProportion, item::setNoCostsProportion, "非车险总费用", export);
         //更新其他费用比例
         updateOtherCostsProportion(item, vo.getJqCostsProportion(), item::getJqCarOtherCostsProportion, item::setJqCarOtherCostsProportion, "交强险其他费用");
         updateOtherCostsProportion(item, vo.getSyCostsProportion(), item::getSyCarOtherCostsProportion, item::setSyCarOtherCostsProportion, "商业险其他费用");
@@ -1166,7 +1168,7 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
     }
 
     //更新总比费用
-    private void updateProportion(PtlAgreementProductCostsNew item, String proportionToAdd, Supplier<String> getter, Consumer<String> setter, String desc) {
+    private void updateProportion(PtlAgreementProductCostsNew item, String proportionToAdd, Supplier<String> getter, Consumer<String> setter, String desc, PtlAgreementProductCostsExport export) {
         if (proportionToAdd != null) {
             try {
                 BigDecimal current = new BigDecimal(getter.get());
@@ -1176,6 +1178,38 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
                 if (updatedValue.compareTo(BigDecimal.ZERO) < 0) {
                     throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
                 }
+                switch(desc) {
+                    case "交强险总费用":
+                        BigDecimal totalJqExportRadio = export.getJqExportRadioLevel1()
+                                                    .add(export.getJqExportRadioLevel2())
+                                                    .add(export.getJqExportRadioLevel3())
+                                                    .add(export.getJqExportRadioLevel4())
+                                                    .add(export.getJqExportRadioLevel5());
+                        if (updatedValue.compareTo(totalJqExportRadio) < 0) {
+                            throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于交强险管理比例1-5级的总和");
+                        }
+                        break;
+                    case "商业险总费用":
+                        BigDecimal totalSyExportRadio = export.getSyExportRadioLevel1()
+                                                        .add(export.getSyExportRadioLevel2())
+                                                        .add(export.getSyExportRadioLevel3())
+                                                        .add(export.getSyExportRadioLevel4())
+                                                        .add(export.getSyExportRadioLevel5());
+                        if (updatedValue.compareTo(totalSyExportRadio) < 0) {
+                            throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于商业险管理比例1-5级的总和");
+                        }
+                        break;
+                    case "非车险总费用":
+                        BigDecimal totalNoCarExportRadio = export.getNoCarExportRadioLevel1()
+                                                        .add(export.getNoCarExportRadioLevel2())
+                                                        .add(export.getNoCarExportRadioLevel3())
+                                                        .add(export.getNoCarExportRadioLevel4())
+                                                        .add(export.getNoCarExportRadioLevel5());
+                        if (updatedValue.compareTo(totalNoCarExportRadio) < 0) {
+                            throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于非车险管理比例1-5级的总和");
+                        }
+                        break;
+                }
                 setter.accept(updatedValue.toString());
             } catch (NumberFormatException e) {
                 throw new SystemException("比例值格式错误");
@@ -1183,54 +1217,255 @@ public class PtlAgreementProductCostsNewServiceImpl extends ServiceImpl<PtlAgree
         }
     }
 
-    //更新其他费用比例
+    // 更新其他费用比例
     private void updateOtherCostsProportion(PtlAgreementProductCostsNew item, String otherProportionToAdd, Supplier<String> getter, Consumer<String> setter, String desc) {
         if (otherProportionToAdd != null) {
             try {
                 BigDecimal currentOther = new BigDecimal(getter.get());
                 BigDecimal addOther = new BigDecimal(otherProportionToAdd);
-                BigDecimal updatedValue = currentOther.add(addOther);
-
-                // 检查更新后的值是否小于零
+                BigDecimal updatedValue = currentOther.add(addOther); // 保持加法不变
+                // 如果更新后的值小于零,则设置其他费用比例为0,并调整总费用比例
                 if (updatedValue.compareTo(BigDecimal.ZERO) < 0) {
-                    throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
+                    updatedValue = BigDecimal.ZERO;
+                    setter.accept(updatedValue.toString()); // 设置其他费用比例为0
+                    // 计算费用比例需要减少的值
+                    BigDecimal subtractValue = addOther.abs().subtract(currentOther); // 取绝对值,因为是负数
+                    // 根据描述符更新对应的总费用比例
+                    switch(desc) {
+                        case "交强险其他费用":
+                            // 获得现在费用比例的值
+                            BigDecimal jqCarCostsProportion = new BigDecimal(item.getJqCarCostsProportion());
+                            BigDecimal currentJqCarCostsProportion = jqCarCostsProportion.subtract(subtractValue);
+                            if (currentJqCarCostsProportion.compareTo(BigDecimal.ZERO) < 0) {
+                                throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
+                            }
+                            item.setJqCarCostsProportion(currentJqCarCostsProportion.toString());
+                            break;
+                        case "商业险其他费用":
+                            BigDecimal syCarCostsProportion = new BigDecimal(item.getSyCarCostsProportion());
+                            BigDecimal currentSyCarCostsProportion = syCarCostsProportion.subtract(subtractValue);
+                            if (currentSyCarCostsProportion.compareTo(BigDecimal.ZERO) < 0) {
+                                throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
+                            }
+                            item.setSyCostsProportion(currentSyCarCostsProportion.toString());
+                            break;
+                        case "非车险其他费用":
+                            BigDecimal noCarCostsProportion = new BigDecimal(item.getNoCarCostsProportion());
+                            BigDecimal currentNoCarCostsProportion = noCarCostsProportion.subtract(subtractValue);
+                            if (currentNoCarCostsProportion.compareTo(BigDecimal.ZERO) < 0) {
+                                throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
+                            }
+                            item.setNoCarCostsProportion(currentNoCarCostsProportion.toString());
+                            break;
+                        default:
+                            throw new IllegalArgumentException("未知的费用类型: " + desc);
+                    }
+                } else {
+                    // 如果更新后的值大于等于零,则正常更新
+                    setter.accept(updatedValue.toString());
                 }
-                setter.accept(updatedValue.toString());
             } catch (NumberFormatException e) {
                 throw new SystemException("其他费用比例值格式错误");
             }
         }
     }
+    //更新其他费用比例
+//    private void updateOtherCostsProportion(PtlAgreementProductCostsNew item, String otherProportionToAdd, Supplier<String> getter, Consumer<String> setter, String desc) {
+//        if (otherProportionToAdd != null) {
+//            try {
+//                BigDecimal currentOther = new BigDecimal(getter.get());
+//                BigDecimal addOther = new BigDecimal(otherProportionToAdd);
+//                BigDecimal updatedValue = currentOther.add(addOther);
+//
+//                // 检查更新后的值是否小于零
+//                if (updatedValue.compareTo(BigDecimal.ZERO) < 0) {
+//                    throw new SystemException("id为"+ item.getId() + desc + "比例值不能小于零");
+//                }
+//                setter.accept(updatedValue.toString());
+//            } catch (NumberFormatException e) {
+//                throw new SystemException("其他费用比例值格式错误");
+//            }
+//        }
+//    }
 
     //更新1-5级比例
-    private void updateExportItem(AgreementProductCostsVo vo, PtlAgreementProductCostsExport item) {
-        updateExportRadios(item, vo.getJqExportRadioLevel1(), item::getJqExportRadioLevel1, item::setJqExportRadioLevel1, "交强险一级比例");
-        updateExportRadios(item, vo.getJqExportRadioLevel2(), item::getJqExportRadioLevel2, item::setJqExportRadioLevel2, "交强险二级比例");
-        updateExportRadios(item, vo.getJqExportRadioLevel3(), item::getJqExportRadioLevel3, item::setJqExportRadioLevel3, "交强险三级比例");
-        updateExportRadios(item, vo.getJqExportRadioLevel4(), item::getJqExportRadioLevel4, item::setJqExportRadioLevel4, "交强险四级比例");
-        updateExportRadios(item, vo.getJqExportRadioLevel5(), item::getJqExportRadioLevel5, item::setJqExportRadioLevel5, "交强险五级比例");
-        updateExportRadios(item, vo.getSyExportRadioLevel1(), item::getSyExportRadioLevel1, item::setSyExportRadioLevel1, "商业险一级比例");
-        updateExportRadios(item, vo.getSyExportRadioLevel2(), item::getSyExportRadioLevel2, item::setSyExportRadioLevel2, "商业险二级比例");
-        updateExportRadios(item, vo.getSyExportRadioLevel3(), item::getSyExportRadioLevel3, item::setSyExportRadioLevel3, "商业险三级比例");
-        updateExportRadios(item, vo.getSyExportRadioLevel4(), item::getSyExportRadioLevel4, item::setSyExportRadioLevel4, "商业险四级比例");
-        updateExportRadios(item, vo.getSyExportRadioLevel5(), item::getSyExportRadioLevel5, item::setSyExportRadioLevel5, "商业险五级比例");
-        updateExportRadios(item, vo.getNoCarExportRadioLevel1(), item::getNoCarExportRadioLevel1, item::setNoCarExportRadioLevel1, "非车险一级比例");
-        updateExportRadios(item, vo.getNoCarExportRadioLevel2(), item::getNoCarExportRadioLevel2, item::setNoCarExportRadioLevel2, "非车险二级比例");
-        updateExportRadios(item, vo.getNoCarExportRadioLevel3(), item::getNoCarExportRadioLevel3, item::setNoCarExportRadioLevel3, "非车险三级比例");
-        updateExportRadios(item, vo.getNoCarExportRadioLevel4(), item::getNoCarExportRadioLevel4, item::setNoCarExportRadioLevel4, "非车险四级比例");
-        updateExportRadios(item, vo.getNoCarExportRadioLevel5(), item::getNoCarExportRadioLevel5, item::setNoCarExportRadioLevel5, "非车险五级比例");
+    private void updateExportItem(AgreementProductCostsVo vo, PtlAgreementProductCostsExport item,PtlAgreementProductCostsNew costsItem) {
+        updateExportRadios(item, vo.getJqExportRadioLevel1(), item::getJqExportRadioLevel1, item::setJqExportRadioLevel1, "交强险一级比例", costsItem);
+        updateExportRadios(item, vo.getJqExportRadioLevel2(), item::getJqExportRadioLevel2, item::setJqExportRadioLevel2, "交强险二级比例", costsItem);
+        updateExportRadios(item, vo.getJqExportRadioLevel3(), item::getJqExportRadioLevel3, item::setJqExportRadioLevel3, "交强险三级比例", costsItem);
+        updateExportRadios(item, vo.getJqExportRadioLevel4(), item::getJqExportRadioLevel4, item::setJqExportRadioLevel4, "交强险四级比例", costsItem);
+        updateExportRadios(item, vo.getJqExportRadioLevel5(), item::getJqExportRadioLevel5, item::setJqExportRadioLevel5, "交强险五级比例", costsItem);
+        updateExportRadios(item, vo.getSyExportRadioLevel1(), item::getSyExportRadioLevel1, item::setSyExportRadioLevel1, "商业险一级比例", costsItem);
+        updateExportRadios(item, vo.getSyExportRadioLevel2(), item::getSyExportRadioLevel2, item::setSyExportRadioLevel2, "商业险二级比例", costsItem);
+        updateExportRadios(item, vo.getSyExportRadioLevel3(), item::getSyExportRadioLevel3, item::setSyExportRadioLevel3, "商业险三级比例", costsItem);
+        updateExportRadios(item, vo.getSyExportRadioLevel4(), item::getSyExportRadioLevel4, item::setSyExportRadioLevel4, "商业险四级比例", costsItem);
+        updateExportRadios(item, vo.getSyExportRadioLevel5(), item::getSyExportRadioLevel5, item::setSyExportRadioLevel5, "商业险五级比例", costsItem);
+        updateExportRadios(item, vo.getNoCarExportRadioLevel1(), item::getNoCarExportRadioLevel1, item::setNoCarExportRadioLevel1, "非车险一级比例", costsItem);
+        updateExportRadios(item, vo.getNoCarExportRadioLevel2(), item::getNoCarExportRadioLevel2, item::setNoCarExportRadioLevel2, "非车险二级比例", costsItem);
+        updateExportRadios(item, vo.getNoCarExportRadioLevel3(), item::getNoCarExportRadioLevel3, item::setNoCarExportRadioLevel3, "非车险三级比例", costsItem);
+        updateExportRadios(item, vo.getNoCarExportRadioLevel4(), item::getNoCarExportRadioLevel4, item::setNoCarExportRadioLevel4, "非车险四级比例", costsItem);
+        updateExportRadios(item, vo.getNoCarExportRadioLevel5(), item::getNoCarExportRadioLevel5, item::setNoCarExportRadioLevel5, "非车险五级比例", costsItem);
     }
 
     //更新1-5级比例
-    private void updateExportRadios(PtlAgreementProductCostsExport item, BigDecimal valueToAdd, Supplier<BigDecimal> getter, Consumer<BigDecimal> setter,String desc) {
+    private void updateExportRadios(PtlAgreementProductCostsExport item, BigDecimal valueToAdd, Supplier<BigDecimal> getter, Consumer<BigDecimal> setter,String desc,PtlAgreementProductCostsNew costsItem) {
         if (valueToAdd != null) {
             BigDecimal currentValue = getter.get();
             BigDecimal updatedValue = currentValue.add(valueToAdd);
-
+            BigDecimal jqCostsProportion = BigDecimal.ZERO;
+            BigDecimal syCostsProportion = BigDecimal.ZERO;
+            BigDecimal noCarCostsProportion = BigDecimal.ZERO;
+            if (costsItem.getJqCostsProportion() != null && !costsItem.getJqCostsProportion().equals("")) {
+                jqCostsProportion = new BigDecimal(costsItem.getJqCostsProportion());
+            }
+            if (costsItem.getSyCostsProportion() != null && !costsItem.getSyCostsProportion().equals("")) {
+                syCostsProportion = new BigDecimal(costsItem.getSyCostsProportion());
+            }
+            if (costsItem.getNoCostsProportion() != null && !costsItem.getNoCostsProportion().equals("")) {
+                noCarCostsProportion = new BigDecimal(costsItem.getNoCostsProportion());
+            }
             // 检查更新后的值是否小于零
             if (updatedValue.compareTo(BigDecimal.ZERO) < 0) {
                 throw new SystemException("id为"+ item.getCostsId() + desc + "比例值不能小于零");
             }
+            switch(desc) {
+                case "交强险一级比例":
+                    BigDecimal totalJqCostsExportRadio1 = updatedValue.add(item.getJqExportRadioLevel2())
+                            .add(item.getJqExportRadioLevel3())
+                            .add(item.getJqExportRadioLevel4())
+                            .add(item.getJqExportRadioLevel5());
+
+                    if (totalJqCostsExportRadio1.compareTo(jqCostsProportion) > 0) {
+                        throw new SystemException("交强险一级比例与二级、三级、四级、五级之和不能大于交强险总比例");
+                    }
+                    break;
+                case "交强险二级比例":
+                    BigDecimal totalJqCostsExportRadio2 = updatedValue.add(item.getJqExportRadioLevel1())
+                            .add(item.getJqExportRadioLevel3())
+                            .add(item.getJqExportRadioLevel4())
+                            .add(item.getJqExportRadioLevel5());
+                    if (totalJqCostsExportRadio2.compareTo(jqCostsProportion) > 0) {
+                        throw new SystemException("交强险一级比例与二级、三级、四级、五级之和不能大于交强险总比例");
+                    }
+                    break;
+                case "交强险三级比例":
+                    BigDecimal totalJqCostsExportRadio3 = updatedValue.add(item.getJqExportRadioLevel1())
+                            .add(item.getJqExportRadioLevel2())
+                            .add(item.getJqExportRadioLevel4())
+                            .add(item.getJqExportRadioLevel5());
+                    if (totalJqCostsExportRadio3.compareTo(jqCostsProportion) > 0) {
+                        throw new SystemException("交强险一级比例与二级、三级、四级、五级之和不能大于交强险总比例");
+                    }
+                    break;
+                case "交强险四级比例":
+                    BigDecimal totalJqCostsExportRadio4 = updatedValue.add(item.getJqExportRadioLevel1())
+                            .add(item.getJqExportRadioLevel2())
+                            .add(item.getJqExportRadioLevel3())
+                            .add(item.getJqExportRadioLevel5());
+                    if (totalJqCostsExportRadio4.compareTo(jqCostsProportion) > 0) {
+                        throw new SystemException("交强险一级比例与二级、三级、四级、五级之和不能大于交强险总比例");
+                    }
+                    break;
+                case "交强险五级比例":
+                    BigDecimal totalJqCostsExportRadio5 = updatedValue.add(item.getJqExportRadioLevel1())
+                            .add(item.getJqExportRadioLevel2())
+                            .add(item.getJqExportRadioLevel3())
+                            .add(item.getJqExportRadioLevel4());
+                    if (totalJqCostsExportRadio5.compareTo(jqCostsProportion) > 0) {
+                        throw new SystemException("交强险一级比例与二级、三级、四级、五级之和不能大于交强险总比例");
+                    }
+                    break;
+                case "商业险一级比例":
+                    BigDecimal totalSyCostsExportRadio1 = updatedValue.add(item.getSyExportRadioLevel2())
+                            .add(item.getSyExportRadioLevel3())
+                            .add(item.getSyExportRadioLevel4())
+                            .add(item.getSyExportRadioLevel5());
+                    if (totalSyCostsExportRadio1.compareTo(syCostsProportion) > 0) {
+                        throw new SystemException("商业险一级比例与二级、三级、四级、五级之和不能大于商业总比例");
+                    }
+                    break;
+                case "商业险二级比例":
+                    BigDecimal totalSyCostsExportRadio2 = updatedValue.add(item.getSyExportRadioLevel1())
+                            .add(item.getSyExportRadioLevel3())
+                            .add(item.getSyExportRadioLevel4())
+                            .add(item.getSyExportRadioLevel5());
+                    if (totalSyCostsExportRadio2.compareTo(syCostsProportion) > 0) {
+                        throw new SystemException("商业险一级比例与二级、三级、四级、五级之和不能大于商业总比例");
+                    }
+                    break;
+                case "商业险三级比例":
+                    BigDecimal totalSyCostsExportRadio3 = updatedValue.add(item.getSyExportRadioLevel1())
+                            .add(item.getSyExportRadioLevel2())
+                            .add(item.getSyExportRadioLevel4())
+                            .add(item.getSyExportRadioLevel5());
+                    if (totalSyCostsExportRadio3.compareTo(syCostsProportion) > 0) {
+                        throw new SystemException("商业险一级比例与二级、三级、四级、五级之和不能大于商业总比例");
+                    }
+                    break;
+                case "商业险四级比例":
+                    BigDecimal totalSyCostsExportRadio4 = updatedValue.add(item.getSyExportRadioLevel1())
+                            .add(item.getSyExportRadioLevel2())
+                            .add(item.getSyExportRadioLevel3())
+                            .add(item.getSyExportRadioLevel5());
+                    if (totalSyCostsExportRadio4.compareTo(syCostsProportion) > 0) {
+                        throw new SystemException("商业险一级比例与二级、三级、四级、五级之和不能大于商业总比例");
+                    }
+                    break;
+                case "商业险五级比例":
+                    BigDecimal totalSyCostsExportRadio5 = updatedValue.add(item.getSyExportRadioLevel1())
+                            .add(item.getSyExportRadioLevel2())
+                            .add(item.getSyExportRadioLevel3())
+                            .add(item.getSyExportRadioLevel4());
+                    if (totalSyCostsExportRadio5.compareTo(syCostsProportion) > 0) {
+                        throw new SystemException("商业险一级比例与二级、三级、四级、五级之和不能大于商业总比例");
+                    }
+                    break;
+                case "非车险一级比例":
+                    BigDecimal totalNoCarCostsExportRadio1 = updatedValue.add(item.getNoCarExportRadioLevel2())
+                            .add(item.getNoCarExportRadioLevel3())
+                            .add(item.getNoCarExportRadioLevel4())
+                            .add(item.getNoCarExportRadioLevel5());
+                    if (totalNoCarCostsExportRadio1.compareTo(noCarCostsProportion) > 0) {
+                        throw new SystemException("非车险一级比例与二级、三级、四级、五级之和不能大于非车总比例");
+                    }
+                    break;
+                case "非车险二级比例":
+                    BigDecimal totalNoCarCostsExportRadio2 = updatedValue.add(item.getNoCarExportRadioLevel1())
+                            .add(item.getNoCarExportRadioLevel3())
+                            .add(item.getNoCarExportRadioLevel4())
+                            .add(item.getNoCarExportRadioLevel5());
+                    if (totalNoCarCostsExportRadio2.compareTo(noCarCostsProportion) > 0) {
+                        throw new SystemException("非车险一级比例与二级、三级、四级、五级之和不能大于非车总比例");
+                    }
+                    break;
+                case "非车险三级比例":
+                    BigDecimal totalNoCarCostsExportRadio3 = updatedValue.add(item.getNoCarExportRadioLevel1())
+                            .add(item.getNoCarExportRadioLevel2())
+                            .add(item.getNoCarExportRadioLevel4())
+                            .add(item.getNoCarExportRadioLevel5());
+                    if (totalNoCarCostsExportRadio3.compareTo(noCarCostsProportion) > 0) {
+                        throw new SystemException("非车险一级比例与二级、三级、四级、五级之和不能大于非车总比例");
+                    }
+                    break;
+                case "非车险四级比例":
+                    BigDecimal totalNoCarCostsExportRadio4 = updatedValue.add(item.getNoCarExportRadioLevel1())
+                            .add(item.getNoCarExportRadioLevel2())
+                            .add(item.getNoCarExportRadioLevel3())
+                            .add(item.getNoCarExportRadioLevel5());
+                    if (totalNoCarCostsExportRadio4.compareTo(noCarCostsProportion) > 0) {
+                        throw new SystemException("非车险一级比例与二级、三级、四级、五级之和不能大于非车总比例");
+                    }
+                    break;
+                case "非车险五级比例":
+                    BigDecimal totalNoCarCostsExportRadio5 = updatedValue.add(item.getNoCarExportRadioLevel1())
+                            .add(item.getNoCarExportRadioLevel2())
+                            .add(item.getNoCarExportRadioLevel3())
+                            .add(item.getNoCarExportRadioLevel4());
+                    if (totalNoCarCostsExportRadio5.compareTo(noCarCostsProportion) > 0) {
+                        throw new SystemException("非车险一级比例与二级、三级、四级、五级之和不能大于非车总比例");
+                    }
+                    break;
+            }
             setter.accept(updatedValue);
         }
     }

+ 20 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1304,6 +1304,26 @@
         AND t1.id NOT LIKE '%M%'
     </select>
 
+    <select id="findHxUserListNew" resultType="com.ydtech.modules.admin.model.SysUser">
+        SELECT
+        t1.id AS id,
+        t1.NAME AS NAME,
+        t1.mobile AS mobile,
+        t1.`status` AS `status`,
+        t2.id AS deptId,
+        t2.id AS parentId,
+        t2.`name` AS deptName,
+        sd2.id AS pDeptId,
+        sd2.`name` AS pDeptName
+        FROM
+        sys_user t1
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+        LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+        WHERE
+        t1.`status` = 1
+        AND t1.id NOT LIKE '%M%'
+    </select>
+
     <select id="queryHXReportDataNew" resultType="java.util.HashMap">
         SELECT
             IFNULL(sum(info.salary),0) as  "salary",

+ 6 - 2
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -2477,12 +2477,16 @@
         LEFT JOIN ins_orders io ON io.orderno = iac.orderno
         <where>
             iac.orderstatus = '3'
-            <if test="ids  != null  and  ids.size()>0 ">
+            <if test="vo.ids  != null  and  vo.ids.size()>0 ">
                 AND io.userid IN
-                <foreach item="item"  collection="ids" open="(" separator="," close=")">
+                <foreach item="item"  collection="vo.ids" open="(" separator="," close=")">
                     #{item}
                 </foreach>
             </if>
+
+            <if test="vo.createtimeStart  != null  and  vo.createtimeStart!=''  and vo.createtimeEnd  != null  and  vo.createtimeEnd!=''">
+                AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
+            </if>
         </where>
     </select>
     <select id="querOrdersDataPage"  resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">