فهرست منبع

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

wks 2 سال پیش
والد
کامیت
dbb7b2a297
17فایلهای تغییر یافته به همراه297 افزوده شده و 85 حذف شده
  1. 2 0
      sql/Online.sql
  2. 1 0
      src/main/java/com/ydtech/components/TokenInterceptor.java
  3. 7 0
      src/main/java/com/ydtech/modules/admin/controller/SysAgencyFeeApprovalController.java
  4. 8 8
      src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java
  5. 82 4
      src/main/java/com/ydtech/modules/admin/controller/SysLoginController.java
  6. 3 0
      src/main/java/com/ydtech/modules/admin/model/SysAgencyFeeApproval.java
  7. 17 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysAgencyFeeApprovalDto.java
  8. 10 6
      src/main/java/com/ydtech/modules/admin/model/dto/TeamInformationDto.java
  9. 9 0
      src/main/java/com/ydtech/modules/admin/model/dto/TeamUserInfoDto.java
  10. 3 0
      src/main/java/com/ydtech/modules/admin/service/SysAgencyFeeApprovalService.java
  11. 2 1
      src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java
  12. 17 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyFeeApprovalServiceImpl.java
  13. 23 9
      src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java
  14. 18 0
      src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/FuelType.java
  15. 5 2
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/CarConfirmRequest.java
  16. 31 28
      src/main/java/com/ydtech/modules/order/entity/api/pingan/request/UploadFilesRequest.java
  17. 59 27
      src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

+ 2 - 0
sql/Online.sql

@@ -42,6 +42,7 @@ CREATE TABLE `sys_agency_fee_approval` (
                                            `user_name` varchar(50) DEFAULT NULL COMMENT '员工姓名',
                                            `dept_id` varchar(30) DEFAULT NULL COMMENT '机构id',
                                            `dept_name` varchar(50) DEFAULT NULL COMMENT '机构名称',
+                                           `number` varchar(255) DEFAULT NULL COMMENT '提现编号',
                                            `sumpremium` decimal(10,2) DEFAULT NULL COMMENT '总保费',
                                            `proportional` varchar(10) DEFAULT NULL COMMENT '抽成比例(总保费抽成)',
                                            `extract_fee` decimal(10,2) DEFAULT NULL COMMENT '总保费抽成费用',
@@ -66,6 +67,7 @@ CREATE TABLE `sys_agency_fee_approval_record` (
                                                   `user_name` varchar(50) DEFAULT NULL COMMENT '员工姓名',
                                                   `dept_id` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '机构id',
                                                   `dept_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '机构名称',
+                                                  `number` varchar(255) DEFAULT NULL COMMENT '提现编号',
                                                   `sumpremium` decimal(10,2) DEFAULT NULL COMMENT '总保费',
                                                   `proportional` varchar(10) DEFAULT NULL COMMENT '抽成比例(总保费抽成)',
                                                   `extract_fee` decimal(10,2) DEFAULT NULL COMMENT '总保费抽成费用',

+ 1 - 0
src/main/java/com/ydtech/components/TokenInterceptor.java

@@ -27,6 +27,7 @@ public class TokenInterceptor {
 
         notMatchList.add("/captchaById"); // 验证码通过ID
         notMatchList.add("/login2");//登录2  配合验证码ID的校验
+        notMatchList.add("/aapLogin");//合伙人和机构负责人登录APP接口
 
         notMatchList.add("/sendMsg");
         notMatchList.add("/loginByPhone");

+ 7 - 0
src/main/java/com/ydtech/modules/admin/controller/SysAgencyFeeApprovalController.java

@@ -4,6 +4,7 @@ package com.ydtech.modules.admin.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysAgencyFeeApproval;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalAddDto;
+import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalEditDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalPageDto;
 import com.ydtech.modules.admin.service.SysAgencyFeeApprovalService;
@@ -14,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * 机构保费抽成审批表(SysAgencyFeeApproval)表控制层
@@ -109,6 +111,11 @@ public class SysAgencyFeeApprovalController extends BaseController {
         return HttpResult.ok(this.sysAgencyFeeApprovalService.confirmAccounts(sysAgencyFeeApprovalEditDto));
     }
 
+    @ApiOperation(value = "当前用户的提现记录")
+    @PostMapping("/queryOperateInfo")
+    public HttpResult<List<SysAgencyFeeApproval>> queryOperateInfo(@RequestBody SysAgencyFeeApprovalDto sysAgencyFeeApprovalDto) {
+        return HttpResult.ok(this.sysAgencyFeeApprovalService.queryOperateInfo(sysAgencyFeeApprovalDto));
+    }
 
 
 }

+ 8 - 8
src/main/java/com/ydtech/modules/admin/controller/SysAgencyLeaderController.java

@@ -3,9 +3,9 @@ package com.ydtech.modules.admin.controller;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
+import com.ydtech.modules.admin.model.dto.TeamInformationDto;
 import com.ydtech.modules.admin.model.dto.TeamUserInfoDto;
-import com.ydtech.modules.admin.model.vo.AgencyExtractFeeVo;
-import com.ydtech.modules.admin.model.vo.SysAgencyLeaderVo;
+import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.admin.service.SysAgencyLeaderService;
@@ -128,7 +128,7 @@ public class SysAgencyLeaderController extends BaseController {
      */
     @GetMapping("/checkUserId")
     @ApiOperation(value = "登录用户校验是否是机构负责人")
-    public HttpResult checkUserId() {
+    public HttpResult<Boolean> checkUserId() {
 
         return HttpResult.ok(this.sysAgencyLeaderService.checkUserId(getUserId()));
     }
@@ -138,7 +138,7 @@ public class SysAgencyLeaderController extends BaseController {
      */
     @GetMapping("/queryExtractFee")
     @ApiOperation(value = "查询机构负责人和合伙人的抽成费用")
-    public HttpResult queryExtractFee() {
+    public HttpResult<AgencyExtractFee> queryExtractFee() {
 
 
         return HttpResult.ok(this.sysAgencyLeaderService.queryExtractFee(getUserId()));
@@ -163,11 +163,11 @@ public class SysAgencyLeaderController extends BaseController {
     /**
      * 查询机构下所有团队的信息
      */
-    @GetMapping("/queryTeamInfo")
+    @PostMapping("/queryTeamInfo")
     @ApiOperation(value = "查询机构下所有团队的信息")
-    public HttpResult queryTeamInfo(){
+    public HttpResult<List<TeamInformation>> queryTeamInfo(@RequestBody TeamInformationDto teamInformationDto){
 
-        return HttpResult.ok("success", this.sysAgencyLeaderService.queryTeamInfo(getUserId()));
+        return HttpResult.ok("success", this.sysAgencyLeaderService.queryTeamInfo(teamInformationDto));
     }
 
     /**
@@ -176,7 +176,7 @@ public class SysAgencyLeaderController extends BaseController {
 
     @PostMapping("/queryTeamUser")
     @ApiOperation(value = "根据团队id查询团队下人员信息")
-    public HttpResult queryTeamUser(@RequestBody TeamUserInfoDto teamUserInfoDto) {
+    public HttpResult<List<TeamUserInfoVo>> queryTeamUser(@RequestBody TeamUserInfoDto teamUserInfoDto) {
 
         return HttpResult.ok("success", this.sysAgencyLeaderService.queryTeamUser(teamUserInfoDto));
     }

+ 82 - 4
src/main/java/com/ydtech/modules/admin/controller/SysLoginController.java

@@ -20,10 +20,7 @@ import com.ydtech.modules.admin.model.vo.LoginBean;
 import com.ydtech.modules.admin.model.vo.LoginTicket;
 import com.ydtech.modules.admin.model.vo.PhoneLoginVo;
 import com.ydtech.modules.admin.model.vo.QrCodeStatusEnum;
-import com.ydtech.modules.admin.service.SysPasswordService;
-import com.ydtech.modules.admin.service.SysUserLinkSysService;
-import com.ydtech.modules.admin.service.SysUserRoleService;
-import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.admin.service.*;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.security.utils.PasswordUtils;
 import com.ydtech.utils.IPUtil;
@@ -82,6 +79,11 @@ public class SysLoginController {
     private final SysPasswordService sysPasswordService;
 
     private final SysUserLinkSysService  sysUserLinkSysService;
+
+    private final SysPartnerService sysPartnerService;
+
+    private final SysAgencyLeaderService sysAgencyLeaderService;
+
     @GetMapping("captcha.jpg")
     @ApiOperation(value = "获取验证码", produces = "application/octet-stream")
     public void captcha(HttpServletResponse response, HttpServletRequest request) throws IOException {
@@ -245,6 +247,81 @@ public class SysLoginController {
 
     }
 
+    /**
+     * 合伙人 和机构负责人登录APP接口
+     */
+    @PostMapping(value = "/aapLogin")
+    @ApiOperation(value = "合伙人和机构负责人登录APP接口")
+    public HttpResult aapLogin(@RequestBody LoginBean loginBean, HttpServletRequest request) {
+        String username = loginBean.getAccount();
+        String password = loginBean.getPassword();
+        String captcha = loginBean.getCaptcha();
+
+        // 用户信息
+        SysUser user = sysUserService.getById(username);
+        //校验登录用户是否为合伙人或者是机构负责人
+        boolean a = sysPartnerService.checkPartner(user.getId());
+        boolean b = sysAgencyLeaderService.checkUserId(user.getId());
+        if (!a ) {
+            if (!b) {
+                throw  new SystemException("该用户无权限登录AAP,只能合伙人或者机构负责人才能登录!");
+            }
+        }
+
+
+        String captchaId = loginBean.getCaptchaId();
+        if (StringUtils.isEmpty(captchaId)) return HttpResult.error("验证码不正确");
+
+        // 从redis中获取
+        String kaptcha = redisTemplate.opsForValue().get(captchaId);
+        log.info("登录校验验证码,redis取出的信息为:" + captchaId + ":" + kaptcha);
+        log.info("页面验证码:" + captcha + "===" + "redis验证码:" + kaptcha);
+        if (!captcha.equals(kaptcha)) {
+            return HttpResult.error("验证码不正确");
+        }
+
+        /**
+         *  多个系统登录  添加默认参数解决手机端登陆问题
+         * */
+        if (StringUtils.isBlank(loginBean.getSysId())) {
+            loginBean.setSysId("1");
+        }
+        if (!SysConstants.ADMIN.equalsIgnoreCase(username) && !"1".equals(loginBean.getSysId())) {
+            LambdaQueryWrapper<SysUserLinkSys> sysLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            sysLambdaQueryWrapper.eq(SysUserLinkSys::getUserId, user.getId());
+            sysLambdaQueryWrapper.eq(SysUserLinkSys::getSysId, loginBean.getSysId());
+            List<SysUserLinkSys> list = sysUserLinkSysService.list(sysLambdaQueryWrapper);
+            if (list == null || list.size() == 0) {
+                throw new SystemException("该用户未授权");
+            }
+        }
+
+        //验证用户
+        SysUser.verifyUser(user);
+        SysPassword sysPassword = sysPasswordService.getOne(new LambdaQueryWrapper<SysPassword>().eq(SysPassword::getCode, SysPasswordEnum.GENERAL.getCode()));
+        // 万能密码设置
+        if (!"admin".equals(username) && PasswordUtils.matches(sysPassword.getSalt(), password,
+                sysPassword.getPassword())) {
+            log.info("万能密码登录系统");
+        } else {
+            if (!PasswordUtils.matches(user.getSalt(), password, user.getPassword())) {
+                return HttpResult.error("密码不正确");
+            }
+        }
+        //查询用户角色
+        SysRole sysRole = sysUserRoleService.gainRoleByUserId(user.getId());
+        //设置用户角色
+        user.setRoleId(sysRole.getId().toString());
+        user.setRoleName(sysRole.getName());
+        // 获取这个人的token
+        String token = StpUtil.createLoginSession(user.getId());
+        StpUtil.getSessionByLoginId(user.getId()).set(SaSession.USER, user);
+
+        return HttpResult.ok("登录成功", token);
+
+    }
+
+
     /**
      * 手机验证码登录
      *
@@ -252,6 +329,7 @@ public class SysLoginController {
      * @return token
      */
     @PostMapping("/loginByPhone")
+    @ApiOperation(value = "手机验证码登录")
     public HttpResult<String> loginByPhone(@RequestBody PhoneLoginVo phoneLoginVo) {
         // 用户信息
         String phone = phoneLoginVo.getPhone();

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

@@ -51,6 +51,9 @@ public class SysAgencyFeeApproval implements Serializable {
      */
     @ApiModelProperty(value = "机构name")
     private String deptName;
+
+    @ApiModelProperty(value = "提现编号")
+    private String number;
     /**
      * 总保费
      */

+ 17 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysAgencyFeeApprovalDto.java

@@ -0,0 +1,17 @@
+package com.ydtech.modules.admin.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+@Data
+@ApiModel(value = "提现记录")
+public class SysAgencyFeeApprovalDto {
+    @ApiModelProperty(value = "开始时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+}

+ 10 - 6
src/main/java/com/ydtech/modules/admin/model/dto/TeamInformationDto.java

@@ -3,15 +3,19 @@ package com.ydtech.modules.admin.model.dto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 
 @Data
-@ApiModel(value = "查询机构负责人的抽成费用")
+@ApiModel(value = "查询机构下团队信息")
 public class TeamInformationDto {
+
     @ApiModelProperty(value = "用户id")
-    private String userId;
+    private String deptName;
 
-    @ApiModelProperty(value = "页数")
-    private int pageNum;
-    @ApiModelProperty(value = "每页条数")
-    private int pageSize;
+    @ApiModelProperty(value = "开始时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String endTime;
 }

+ 9 - 0
src/main/java/com/ydtech/modules/admin/model/dto/TeamUserInfoDto.java

@@ -17,4 +17,13 @@ public class TeamUserInfoDto {
     @ApiModelProperty(value = "保费提层计算开始时间")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
     private String startTime;
+
+    @ApiModelProperty(value = "开始时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String beginTime;
+    @ApiModelProperty(value = "结束时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/service/SysAgencyFeeApprovalService.java

@@ -6,6 +6,7 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.model.SysAgencyFeeApproval;
 import com.ydtech.modules.admin.model.SysAgencyFeeApprovalRecord;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalAddDto;
+import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalEditDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalPageDto;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -30,4 +31,6 @@ public interface SysAgencyFeeApprovalService extends IService<SysAgencyFeeApprov
     List<SysAgencyFeeApprovalRecord> queryOperate(Integer id);
 
     boolean confirmAccounts(SysAgencyFeeApprovalEditDto sysAgencyFeeApprovalEditDto);
+
+    List<SysAgencyFeeApproval> queryOperateInfo(SysAgencyFeeApprovalDto sysAgencyFeeApprovalDto);
 }

+ 2 - 1
src/main/java/com/ydtech/modules/admin/service/SysAgencyLeaderService.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
+import com.ydtech.modules.admin.model.dto.TeamInformationDto;
 import com.ydtech.modules.admin.model.dto.TeamUserInfoDto;
 import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -50,7 +51,7 @@ public interface SysAgencyLeaderService extends IService<SysAgencyLeader> {
 
     BasePageResult<AgencyExtractFeeVo> queryExtractFeeAll(SysAgencyLeaderPageDto sysAgencyLeaderPageDto);
 
-    List<TeamInformation> queryTeamInfo(String userId);
+    List<TeamInformation> queryTeamInfo(TeamInformationDto teamInformationDto);
 
     List<TeamUserInfoVo> queryTeamUser(TeamUserInfoDto teamUserInfoDto);
 }

+ 17 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyFeeApprovalServiceImpl.java

@@ -12,12 +12,15 @@ import com.ydtech.modules.admin.dao.SysAgencyFeeApprovalRecordMapper;
 import com.ydtech.modules.admin.model.SysAgencyFeeApproval;
 import com.ydtech.modules.admin.model.SysAgencyFeeApprovalRecord;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalAddDto;
+import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalEditDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyFeeApprovalPageDto;
 import com.ydtech.modules.admin.service.SysAgencyFeeApprovalService;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.utils.StringUtils;
+import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -47,6 +50,7 @@ public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApp
     public HttpResult insert(SysAgencyFeeApprovalAddDto sysAgencyFeeApprovalAddDto) {
         SysAgencyFeeApproval sysAgencyFeeApproval = BeanUtil.copyProperties(sysAgencyFeeApprovalAddDto, SysAgencyFeeApproval.class);
         sysAgencyFeeApproval.setCreateTime(new Date());
+        sysAgencyFeeApproval.setNumber(IdGenerate.nextId());
         sysAgencyFeeApproval.setCreateBy(BaseController.getUser().getName());
         //提交审核信息
         save(sysAgencyFeeApproval);
@@ -128,5 +132,18 @@ public class SysAgencyFeeApprovalServiceImpl extends ServiceImpl<SysAgencyFeeApp
         return sysAgencyFeeApprovalRecordMapper.insert(sysAgencyFeeApprovalRecord)>0;
     }
 
+    @Override
+    public List<SysAgencyFeeApproval> queryOperateInfo(SysAgencyFeeApprovalDto sysAgencyFeeApprovalDto) {
+
+        List<SysAgencyFeeApproval> feeApprovalList = sysAgencyFeeApprovalMapper.selectList(new LambdaQueryWrapper<SysAgencyFeeApproval>()
+                .eq(SysAgencyFeeApproval::getUserId, BaseController.getUserId()).eq(SysAgencyFeeApproval::getStatus, 1)
+                .ge(StringUtils.isNotEmpty(sysAgencyFeeApprovalDto.getBeginTime()), SysAgencyFeeApproval::getAuditTime,sysAgencyFeeApprovalDto.getBeginTime())
+                .le(StringUtils.isNotEmpty(sysAgencyFeeApprovalDto.getEndTime()),SysAgencyFeeApproval::getAuditTime,sysAgencyFeeApprovalDto.getEndTime()));
+
+        return feeApprovalList;
+    }
+
+
+
 
 }

+ 23 - 9
src/main/java/com/ydtech/modules/admin/service/impl/SysAgencyLeaderServiceImpl.java

@@ -11,6 +11,7 @@ import com.ydtech.modules.admin.dao.*;
 import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderDto;
 import com.ydtech.modules.admin.model.dto.SysAgencyLeaderPageDto;
+import com.ydtech.modules.admin.model.dto.TeamInformationDto;
 import com.ydtech.modules.admin.model.dto.TeamUserInfoDto;
 import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.admin.service.SysAgencyLeaderService;
@@ -549,12 +550,13 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
     }
 
     @Override
-    public List<TeamInformation> queryTeamInfo(String userId) {
+    public List<TeamInformation> queryTeamInfo(TeamInformationDto teamInformationDto) {
+        String userId = BaseController.getUser().getId();
         List<TeamInformation> informationList = new ArrayList<>();
         //合伙人
         boolean c = sysPartnerService.checkPartner(userId);
         if (c) {
-            extracted(userId, informationList);
+            extracted(userId, informationList,teamInformationDto);
             return informationList;
         }
         //校验当前用户是否为机构负责人
@@ -566,7 +568,8 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
             String[] split = sysAgencyLeaders.getSource().split(",");
             //根据当前机构id查询出下面的团队,条件:机构来源相同,机构等级为null的团队
             List<SysDept> sysDeptList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>().likeRight(SysDept::getId, sysAgencyLeaders.getDeptId())
-                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0).in(SysDept::getManagementSource, split));
+                    .isNull(SysDept::getComlevel).eq(SysDept::getDelFlag, 0).in(SysDept::getManagementSource, split)
+                    .like(StringUtils.isNotEmpty(teamInformationDto.getDeptName()),SysDept::getName,teamInformationDto.getDeptName()));
             if (sysDeptList.size() > 0) {
                 //总保费
                 BigDecimal bigDecimal = new BigDecimal("0.00");
@@ -583,13 +586,17 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                         //机构下所有订单
                         insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
                                 .likeRight(InsOrders::getDeptid, sysDept.getId())
-                                .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
+                                .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime())
+                                .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()),InsOrders::getCreatetime,teamInformationDto.getBeginTime())
+                                .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()),InsOrders::getCreatetime,teamInformationDto.getEndTime()));
                         teamInformation.setStartTime(sysAgencyLeaders.getCreateTime());
 
                     } else {
                         insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
                                 .likeRight(InsOrders::getDeptid, sysDept.getId())
-                                .ge(InsOrders::getCreatetime, updateTime));
+                                .ge(InsOrders::getCreatetime, updateTime)
+                                .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()),InsOrders::getCreatetime,teamInformationDto.getBeginTime())
+                                .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()),InsOrders::getCreatetime,teamInformationDto.getEndTime()));
                         teamInformation.setStartTime(updateTime);
                     }
 
@@ -635,7 +642,7 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
         return informationList;
     }
 
-    private void extracted(String userId, List<TeamInformation> informationList) {
+    private void extracted(String userId, List<TeamInformation> informationList,TeamInformationDto teamInformationDto) {
         //查询所有推荐的机构负责人核算总保费
         List<SysRelationPerson> sysRelationPeople = sysRelationPersonMapper.selectList(new LambdaQueryWrapper<SysRelationPerson>()
                 .eq(SysRelationPerson::getSuggestId, userId).eq(SysRelationPerson::getType, 1));
@@ -655,7 +662,8 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                                           .likeRight(SysDept::getId, sysAgencyLeaders.getDeptId())
                                           .isNull(SysDept::getComlevel)
                                           .eq(SysDept::getDelFlag, 0)
-                                          .in(SysDept::getManagementSource, split));
+                                          .in(SysDept::getManagementSource, split)
+                                          .like(StringUtils.isNotEmpty(teamInformationDto.getDeptName()),SysDept::getName,teamInformationDto.getDeptName()));
                 if (sysDeptList.size() > 0) {
                     for (SysDept sysDept : sysDeptList) {
                         TeamInformation teamInformation = new TeamInformation();
@@ -672,12 +680,16 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
                             //机构下所有订单
                             insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
                                     .likeRight(InsOrders::getDeptid, sysDept.getId())
-                                    .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime()));
+                                    .ge(InsOrders::getCreatetime, sysAgencyLeaders.getCreateTime())
+                                    .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()),InsOrders::getCreatetime,teamInformationDto.getBeginTime())
+                                    .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()),InsOrders::getCreatetime,teamInformationDto.getEndTime()));
                             teamInformation.setStartTime(sysAgencyLeaders.getCreateTime());
                         } else {
                             insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
                                     .likeRight(InsOrders::getDeptid, sysDept.getId())
-                                    .ge(InsOrders::getCreatetime, updateTime));
+                                    .ge(InsOrders::getCreatetime, updateTime)
+                                    .ge(StringUtils.isNotEmpty(teamInformationDto.getBeginTime()),InsOrders::getCreatetime,teamInformationDto.getBeginTime())
+                                    .le(StringUtils.isNotEmpty(teamInformationDto.getEndTime()),InsOrders::getCreatetime,teamInformationDto.getEndTime()));
                             teamInformation.setStartTime(updateTime);
                         }
 
@@ -733,6 +745,8 @@ public class SysAgencyLeaderServiceImpl extends ServiceImpl<SysAgencyLeaderMappe
         for (SysUser sysUser : sysUsers) {
             List<InsOrders> insOrderList = insOrdersMapper.selectList(new LambdaQueryWrapper<InsOrders>()
                     .ge(InsOrders::getCreatetime, teamUserInfoDto.getStartTime())
+                    .ge(StringUtils.isNotEmpty(teamUserInfoDto.getBeginTime()),InsOrders::getCreatetime,teamUserInfoDto.getBeginTime())
+                    .le(StringUtils.isNotEmpty(teamUserInfoDto.getEndTime()),InsOrders::getCreatetime,teamUserInfoDto.getEndTime())
                     .eq(InsOrders::getUserid, sysUser.getId()));
             //总保费
             BigDecimal bigDecimal = new BigDecimal("0.00");

+ 18 - 0
src/main/java/com/ydtech/modules/order/entity/api/guoren/constants/FuelType.java

@@ -33,4 +33,22 @@ public enum FuelType {
         return Arrays.asList(ENERGY);
     }
 
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/14 10:39
+     *  @Description:  根据值获取code
+     */
+    public static String getCodeByValue(String value) {
+        if("汽油".equals(value)){
+            value="燃油";
+        }
+        for (FuelType fuelType : FuelType.values()) {
+            if (fuelType.desc.equals(value)) {
+                return fuelType.code;
+            }
+        }
+       return null;
+    }
+
 }

+ 5 - 2
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/CarConfirmRequest.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.order.entity.api.pingan.request;
 
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.vo.CustomerInfoVo;
+import com.ydtech.modules.order.entity.api.guoren.constants.FuelType;
 import com.ydtech.modules.order.entity.api.pingan.constants.dict.SexCodeEnum;
 import com.ydtech.modules.order.entity.api.pingan.response.SearchPAVehicleListResponse;
 import com.ydtech.modules.order.entity.api.pingan.utils.NetworkUtils;
@@ -775,7 +776,7 @@ public class CarConfirmRequest extends PingAnBaseRequest {
          * 北京:
          * A:汽油,B:柴油,c:电,D:混合油,E:天然气,F:液化石油气,L:甲醇,M:乙醇,N:太阳能,O:混合动力,Y:无,Z:其它
          *
-         * 其他地区:
+         * 其他地区:  [A,B,C,D,E,F,L,M,N,O,Y,Z,0,1,2,3,4]
          * 0: 燃油
          * 1: 纯电动
          * 2: 燃料电池
@@ -787,7 +788,9 @@ public class CarConfirmRequest extends PingAnBaseRequest {
         private String fuelType;
 
         public ForceQuoteDTO(String fuelType) {
-            this.fuelType = fuelType;
+            //转换成枚举的code
+            String value = FuelType.getCodeByValue(fuelType);
+            this.fuelType = value;
         }
     }
     /***

+ 31 - 28
src/main/java/com/ydtech/modules/order/entity/api/pingan/request/UploadFilesRequest.java

@@ -31,7 +31,28 @@ public class UploadFilesRequest extends PingAnBaseRequest{
     public UploadFilesRequest(List<DocListDTO> list) {
         this.setDocList(list);
     }
-
+    /***
+     * 投保单号
+     * m
+     */
+    @CheckNotEmpty(fieldName = "投保单号", message = "投保单号不能为空")
+    private String applyPolicyNo;
+    /***
+     * 关联投保保单号
+     * c
+     */
+    private String relationApplyPolicyNo;
+    /***
+     * 用户ID
+     * c
+     */
+    private String userId;
+    /***
+     * 数据来源 openApi
+     *  m
+     */
+    @CheckNotEmpty(fieldName = "数据来源", message = "数据来源不能为空")
+    private String dataSource;
 
     /***
      *  文件信息
@@ -77,44 +98,26 @@ public class UploadFilesRequest extends PingAnBaseRequest{
          * c
          */
         private String documentSize;
-        /***
-         * 投保单号
-         * m
-         */
-        @CheckNotEmpty(fieldName = "投保单号", message = "投保单号不能为空")
-        private String applyPolicyNo;
-        /***
-         * 关联投保保单号
-         * c
-         */
-        private String relationApplyPolicyNo;
-        /***
-         * 用户ID
-         * c
-         */
-        private String userId;
-        /***
-         * 数据来源 openApi
-         *  m
-         */
-        @CheckNotEmpty(fieldName = "数据来源", message = "数据来源不能为空")
-        private String dataSource;
 
 
-        public DocListDTO(String docId, String documentClass, String documentType, String documentName, String documentFormat, String documentSize, String applyPolicyNo, String relationApplyPolicyNo, String userId, String dataSource) {
+        public DocListDTO(String docId, String documentClass, String documentType, String documentName, String documentFormat, String documentSize) {
             this.docId = docId;
             this.documentClass = documentClass;
             this.documentType = documentType;
             this.documentName = documentName;
             this.documentFormat = documentFormat;
             this.documentSize = documentSize;
-            this.applyPolicyNo = applyPolicyNo;
-            this.relationApplyPolicyNo = relationApplyPolicyNo;
-            this.userId = userId;
-            this.dataSource = dataSource;
         }
     }
 
+    public UploadFilesRequest(List<DocListDTO> docList, String applyPolicyNo, String relationApplyPolicyNo, String userId, String dataSource) {
+        this.docList = docList;
+        this.applyPolicyNo = applyPolicyNo;
+        this.relationApplyPolicyNo = relationApplyPolicyNo;
+        this.userId = userId;
+        this.dataSource = dataSource;
+    }
+
     @Validate
     public void validate() {
         // 执行验证逻辑

+ 59 - 27
src/main/java/com/ydtech/modules/order/service/impl/PingAnOrderApiServiceImpl.java

@@ -558,24 +558,18 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
     @Override
     public HttpResult<Object> submitImage(String subOrderNo) {
         InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
-
         // 账号信息
         PtlAgreementAttribution ptlAgreementAttribution = ptlAgreementAttributionService.getById(insAreaCompany.getAgreementId());
         // 通过 协议id获取配置实体
         PingAnConfigureParameters parameters = configureParametersComponents.toEntity(PingAnConfigureParameters.class,
                 ptlAgreementAttribution);
         PinganApiLog pinganApiLog = new PinganApiLog(insAreaCompany.getOrderno(),subOrderNo,insAreaCompany.getAgreementId());
-        InsOrders insOrders = insOrdersService.existOrder(insAreaCompany.getOrderno());
-
         //图片
         List<InsUploadImagesDto> imgList = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(insAreaCompany.getOrderno());
 
-        // List<InsTaskImagesBase64> insTaskImagesBase64s = insTaskImagesService.findByOrderNo(insOrders.getOrderno(),
-        //         insAreaCompany.getId(), true);
         if (imgList.isEmpty()) {
             return HttpResult.error("影像集合为空");
         } else {
-            List<InsTaskImages> listNew = new ArrayList<InsTaskImages>();
             List<UploadFilesRequest.DocListDTO> list = new ArrayList<>();
             // 获取当前项目的目录
             File projectFile =new File(System.getProperty("user.dir"));
@@ -597,17 +591,17 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                 String documentFormat = fileName.split("\\.")[1];
                 boolean upLoadFileFlag = PingAnUpLoadUtils.getUpLoadFile(properties.getHost(), properties.getBucket(), properties.getAk(), properties.getSk(), file, key);
                 if(!upLoadFileFlag){
-                    // throw new SystemException("上传影像文件失败");
+                    throw new SystemException("上传影像文件失败");
                 }
                 UploadFilesRequest.DocListDTO docListDTO = new UploadFilesRequest.DocListDTO(key, documentClass, documentType, documentName,documentFormat ,
-                        null, insAreaCompany.getJqapplyno(),null, parameters.getUserId(), "openApi");
+                        null);
                 list.add(docListDTO);
             }
             if(insTaskImages!=null && insTaskImages.size()>0){
                 boolean b = insTaskImagesService.updateBatchById(insTaskImages);
             }
             //调用文件上传
-            UploadFilesRequest uploadRequest = new UploadFilesRequest(list);
+            UploadFilesRequest uploadRequest = new UploadFilesRequest(list,insAreaCompany.getJqapplyno(),null, parameters.getUserId(), "openApi");
 
             UploadFilesResponse uploadFilesResponse = null;
             try {
@@ -634,6 +628,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
     public HttpResult<Object> audit(SpecialAuditVo<SubmitVerifyRequest.EngageListDTO> vo) {
         String companyId = vo.getCompanyId();
         List<SubmitVerifyRequest.EngageListDTO> engageList = vo.getEngageList();
+        //特约处理  暂时获取不到
         if(engageList!=null && engageList.size()>0){
 
         }
@@ -647,23 +642,16 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         String flowid = insAreaCompany.getFlowid();
         InsOrders insOrders = insOrdersService.existOrder(insAreaCompany.getOrderno());
         PinganApiLog pinganApiLog = new PinganApiLog(insAreaCompany.getOrderno(),companyId,insAreaCompany.getAgreementId());
-        //组装上传的资料信息提交
-        List<SubmitApplyRequest.DocListDTO> docList =new ArrayList<SubmitApplyRequest.DocListDTO>();
-        //通过报价单号查询上传的影像
-        LambdaQueryWrapper<InsTaskImages> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(InsTaskImages::getQuoteNo, insOrders.getQuoteno());
-        List<InsTaskImages> insTaskImagesListAll = insTaskImagesService.list(queryWrapper);
-        //组装平安影像
-        for(InsTaskImages insTaskImages :insTaskImagesListAll){
-            InsUploadFiles fiels = insUploadFilesService.getById(insTaskImages.getImageId());
-            SubmitApplyRequest.DocListDTO  dto=new SubmitApplyRequest.DocListDTO().getDocListDTOMsg(fiels,insTaskImages);
-            docList.add(dto);
-        }
+
+
         //交强特约
         List<SubmitApplyRequest.BizSpecialPromiseListDTO> bizSpecialPromiseList=new ArrayList<SubmitApplyRequest.BizSpecialPromiseListDTO>();
         //商业特约
         List<SubmitApplyRequest.BizSpecialPromiseListDTO> forceSpecialPromiseList=new ArrayList<SubmitApplyRequest.BizSpecialPromiseListDTO>();
-
+        //UploadFilesResponse uploadFilesResponse = getUploadResponseByParam(insAreaCompany,pinganApiLog,parameters.getUserId());
+       // if (uploadFilesResponse != null & !"0".equals(uploadFilesResponse.getResultCode()) ) {
+        //    throw new SystemException(uploadFilesResponse.getResultMessage());
+       // }
         //调用6.1 补充信息并核保
         SubmitApplyRequest submitApplyRequest = new SubmitApplyRequest(parameters,flowid, "true",insOrders,null,null,null);
         SubmitApplyResponse submitApplyResponse = null;
@@ -675,7 +663,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         if (submitApplyResponse != null) {
             // 事中资料  15 时上传资料
             if("15".equals(submitApplyResponse.getResultCode())){
-                submitApplyRequest.setDocList(docList);
+                submitApplyRequest.setDocList(null);
                 try {
                     submitApplyResponse = pinganRequestApiComponents.submitApply(submitApplyRequest,pinganApiLog);
                 } catch (Exception e) {
@@ -757,9 +745,16 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
                             JSONArray objects = JSON.parseArray(JSON.toJSONString(jyList));
                             insAreaCompany.setCrossInsurance(objects);
                         }
+                        pinganApiLog.setId(null);
+                        //上传影像
+
                         //说明核保成功,更新大订单和小订单的状态为1  更新为已核保待缴费
                         insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
                         insAreaCompanyService.updateCompanyAndOrders(insAreaCompany);
+                        UploadFilesResponse uploadFilesResponse = getUploadResponseByParam(insAreaCompany,pinganApiLog,parameters.getUserId());
+                        if (uploadFilesResponse != null & !"0".equals(uploadFilesResponse.getResultCode()) ) {
+                             throw new SystemException(uploadFilesResponse.getResultMessage());
+                        }
                         return HttpResult.ok("提交核保成功");
                     }
                 } else {
@@ -771,7 +766,45 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         }
         return HttpResult.error("提交核保接口失败");
     }
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/8/14 8:52
+     *  @Description:   上传文件
+     */
+    private UploadFilesResponse getUploadResponseByParam(InsAreaCompany insAreaCompany,PinganApiLog pinganApiLog,String userId){
+        //组装上传的资料信息提交
+        UploadFilesResponse uploadFilesResponse = null;
+        //通过报价单号查询上传的影像
+        List<InsUploadImagesDto> imgList = insTaskImagesMapper.getByOrderNoInsUploadImagesDtoList(insAreaCompany.getOrderno());
+        if (imgList.isEmpty()) {
+            throw  new SystemException("影像集合为空");
+        } else {
+            List<UploadFilesRequest.DocListDTO> list = new ArrayList<>();
+            for (InsUploadImagesDto insUploadImagesDto : imgList) {
+                InsUploadFiles fiels = insUploadFilesService.getById(insUploadImagesDto.getImageId());
+                InsTaskImages imagevo = insTaskImagesService.getById(insUploadImagesDto.getId());
+                String key = imagevo.getPinganKey();
+                File file = new File(fiels.getFilePath());
+                PingAnDocumentClassEnum fileEnum = PingAnDocumentClassEnum.getCode(insUploadImagesDto.getImageType());
+                String documentClass = fileEnum.getDocument();
+                String documentType = fileEnum.getDocumentType();
+                String fileName = file.getName();
+                String documentName = fileName.split("\\.")[0];
+                String documentFormat = fileName.split("\\.")[1];
+                UploadFilesRequest.DocListDTO docListDTO = new UploadFilesRequest.DocListDTO(key, documentClass, documentType, documentName, documentFormat,null);
+                list.add(docListDTO);
+            }
+            //调用文件上传
+            UploadFilesRequest uploadRequest = new UploadFilesRequest(list,insAreaCompany.getJqapplyno(),insAreaCompany.getJqapplyno(),userId,"openApi");
+            try {
+                uploadFilesResponse = pinganRequestApiComponents.uploadFiles(uploadRequest, pinganApiLog);
+            } catch (Exception e) {
+                throw new SystemException(e.getMessage());
+            }
+        }
+        return uploadFilesResponse;
+    }
     /**
      * @Description 获取保单pdf地址  调用 002
      * @Author hxl
@@ -802,11 +835,10 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         //非车保单号
         String application = null;
         if(crossInsurance!=null && crossInsurance.size() > 0) {
-            application = crossInsurance.getJSONObject(0).getString("application");
+            application = crossInsurance.getJSONObject(0).getString("policy");
         }
         CrawlerPolicyPrintVo  crawlerPolicyPrintVo =new CrawlerPolicyPrintVo();
         //交强
-
         if(StringUtils.isNotBlank(jqpolicyno) ){
             String fileName="_交强险保单";
             String fileBZName="-交强险标志";
@@ -870,7 +902,7 @@ public class PingAnOrderApiServiceImpl implements PingAnOrderApiService {
         String fileBZName="";
         //驾意险
         if(type==3){
-             flag="true";
+            flag="true";
             fileName="_非车险保单";
         }else if(type==1){
             //交强