Jelajahi Sumber

1、全局异常捕获数据库唯一约束。
2、全局异常捕获权限不足。
3、去掉方法日志注解(@MethodLogAnnotation)
4、增加权限拦截
5、增加审批状态枚举
6、自定义分页方法略微改造
7、APP登录控制类去掉check相关方法。
8、系统用户类代码改造。
9、人员管理, 改造部分、注释部分方法,慢慢取消check方法。
10、永诚API方式,修改回调及其他参数赋值优化。
11、增加发票信息管理、发票公司管理功能。
12、excel工具类增加财务导入所需的方法。
13、配置文件修改永诚API信息

ligang134 3 tahun lalu
induk
melakukan
20ad34dca3
66 mengubah file dengan 3231 tambahan dan 2308 penghapusan
  1. 16 0
      src/main/java/com/ydtech/aop/GlobalExceptionHandler.java
  2. 92 102
      src/main/java/com/ydtech/aop/MethodLogAspect.java
  3. 1 1
      src/main/java/com/ydtech/components/RenbaoRequestComponents.java
  4. 2 3
      src/main/java/com/ydtech/components/ZhongmeiRequestComponents.java
  5. 1 1
      src/main/java/com/ydtech/config/SwaggerConfig.java
  6. 7 0
      src/main/java/com/ydtech/config/WebSecurityConfig.java
  7. 35 0
      src/main/java/com/ydtech/constants/enums/dict/ApprovalStatusEnum.java
  8. 7 0
      src/main/java/com/ydtech/core/page/HttpResult.java
  9. 9 0
      src/main/java/com/ydtech/core/page/PageRequest.java
  10. 4 72
      src/main/java/com/ydtech/core/page/PageResult.java
  11. 23 37
      src/main/java/com/ydtech/modules/admin/controller/AppLoginController.java
  12. 9 1
      src/main/java/com/ydtech/modules/admin/controller/SysUserController.java
  13. 13 9
      src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java
  14. 7 0
      src/main/java/com/ydtech/modules/admin/model/SysUser.java
  15. 8 0
      src/main/java/com/ydtech/modules/admin/service/SysUserService.java
  16. 34 121
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  17. 6 1
      src/main/java/com/ydtech/modules/admin/service/impl/WechatServiceImpl.java
  18. 358 336
      src/main/java/com/ydtech/modules/esm/controller/EsmUserInternalCheckController.java
  19. 449 220
      src/main/java/com/ydtech/modules/esm/controller/EsmUserInternalController.java
  20. 58 0
      src/main/java/com/ydtech/modules/esm/dao/EsmUserAgentMapper.java
  21. 101 0
      src/main/java/com/ydtech/modules/esm/dao/EsmUserInternalMapper.java
  22. 5 0
      src/main/java/com/ydtech/modules/esm/model/EsmUserAgent.java
  23. 50 50
      src/main/java/com/ydtech/modules/esm/model/EsmUserCheck.java
  24. 9 294
      src/main/java/com/ydtech/modules/esm/model/EsmUserInternal.java
  25. 12 1
      src/main/java/com/ydtech/modules/esm/service/EsmUserAgentService.java
  26. 11 11
      src/main/java/com/ydtech/modules/esm/service/EsmUserInternalCheckService.java
  27. 9 6
      src/main/java/com/ydtech/modules/esm/service/EsmUserInternalService.java
  28. 26 1
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserAgentServiceImpl.java
  29. 426 426
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserInternalCheckServiceImpl.java
  30. 150 101
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserInternalServiceImpl.java
  31. 20 0
      src/main/java/com/ydtech/modules/esm/vo/TeamUserVONew.java
  32. 0 75
      src/main/java/com/ydtech/modules/fnc/controller/TaxController.java
  33. 0 8
      src/main/java/com/ydtech/modules/fnc/dao/TaxToolMapper.java
  34. 0 40
      src/main/java/com/ydtech/modules/fnc/model/TaxTool.java
  35. 0 26
      src/main/java/com/ydtech/modules/fnc/service/TaxToolService.java
  36. 0 77
      src/main/java/com/ydtech/modules/fnc/service/impl/TaxToolServiceImpl.java
  37. 2 3
      src/main/java/com/ydtech/modules/ins/controller/HengbangController.java
  38. 10 37
      src/main/java/com/ydtech/modules/ins/controller/InsAlltrustApiController.java
  39. 0 1
      src/main/java/com/ydtech/modules/ins/controller/InsApiLogController.java
  40. 101 63
      src/main/java/com/ydtech/modules/ins/controller/InsPayApplyController.java
  41. 0 3
      src/main/java/com/ydtech/modules/ins/controller/InsYongchengController.java
  42. 1 9
      src/main/java/com/ydtech/modules/ins/controller/InsZhongmeiController.java
  43. 2 3
      src/main/java/com/ydtech/modules/ins/controller/RenbaoController.java
  44. 3 3
      src/main/java/com/ydtech/modules/ins/controller/YongAnController.java
  45. 39 4
      src/main/java/com/ydtech/modules/ins/model/yc/CallBackRequest.java
  46. 4 2
      src/main/java/com/ydtech/modules/ins/model/yc/ruote/Base.java
  47. 27 26
      src/main/java/com/ydtech/modules/ins/model/yc/ruote/Vhl.java
  48. 239 54
      src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java
  49. 48 16
      src/main/java/com/ydtech/modules/inv/controller/InvCompanyController.java
  50. 133 19
      src/main/java/com/ydtech/modules/inv/controller/InvInvoiceInfoController.java
  51. 97 1
      src/main/java/com/ydtech/modules/inv/dao/InvCompanyMapper.java
  52. 12 0
      src/main/java/com/ydtech/modules/inv/model/InvCompany.java
  53. 62 2
      src/main/java/com/ydtech/modules/inv/model/InvInvoiceInfo.java
  54. 8 0
      src/main/java/com/ydtech/modules/inv/service/InvCompanyService.java
  55. 14 0
      src/main/java/com/ydtech/modules/inv/service/InvInvoiceInfoService.java
  56. 41 0
      src/main/java/com/ydtech/modules/inv/service/impl/InvCompanyServiceImpl.java
  57. 86 5
      src/main/java/com/ydtech/modules/inv/service/impl/InvInvoiceInfoServiceImpl.java
  58. 34 0
      src/main/java/com/ydtech/modules/inv/vo/req/InvCompanyReqVO.java
  59. 29 0
      src/main/java/com/ydtech/modules/inv/vo/req/InvInvoiceInfoReqVO.java
  60. 44 0
      src/main/java/com/ydtech/modules/inv/vo/res/InvCompanyResVO.java
  61. 19 0
      src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteVo.java
  62. 2 2
      src/main/java/com/ydtech/utils/DateUtil.java
  63. 111 3
      src/main/java/com/ydtech/utils/excel/ExcelUtils.java
  64. 48 2
      src/main/java/com/ydtech/utils/excel/ExcelUtils2.java
  65. 12 14
      src/main/resources/application-prod.yml
  66. 45 16
      src/main/resources/application-test.yml

+ 16 - 0
src/main/java/com/ydtech/aop/GlobalExceptionHandler.java

@@ -6,6 +6,8 @@ import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.security.access.AccessDeniedException;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
 import org.springframework.web.bind.MethodArgumentNotValidException;
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import java.sql.SQLIntegrityConstraintViolationException;
 import java.util.List;
 
 @ControllerAdvice
@@ -66,5 +69,18 @@ public class GlobalExceptionHandler {
         return HttpResult.error(400, message);
     }
 
+
+    @ExceptionHandler(value = DuplicateKeyException.class)
+    @ResponseBody
+    public HttpResult sqlExceptionHandle(SQLIntegrityConstraintViolationException sqlException){
+        return HttpResult.error("违反唯一约束:" + sqlException.getMessage().substring(0,sqlException.getMessage().indexOf("for key")));
+    }
+
+    @ExceptionHandler(value = AccessDeniedException.class)
+    @ResponseBody
+    public HttpResult accessDeniedException(AccessDeniedException accessDeniedException){
+        return HttpResult.error(accessDeniedException.getMessage());
+    }
+
 }
 

+ 92 - 102
src/main/java/com/ydtech/aop/MethodLogAspect.java

@@ -1,106 +1,96 @@
-package com.ydtech.aop;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.ydtech.aop.request.MethodLogAnnotation;
-import com.ydtech.modules.admin.dao.SysMethodLogDao;
-import com.ydtech.modules.admin.model.SysMethodLog;
-import lombok.Data;
-import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.Signature;
-import org.aspectj.lang.annotation.*;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-import java.lang.reflect.Method;
-import java.util.Date;
-
-/**
- * 切面类
- * AOP切面,记录方法的调用,入参以及出參
- */
-@Aspect
-@Component
-@Data
-public class MethodLogAspect {
-
-    @Autowired
-    private SysMethodLogDao sysMethodLogDao;
-
-    @Value("${open.method.log}")
-    private String methodLogSwitch;
-
-
-    /**
-     * 保存线程共享变量,开始执行时间
-     */
-    ThreadLocal<Long> startTime = new ThreadLocal<>();
-
-
-    private final static Logger LOGGER = LoggerFactory.getLogger(MethodLogAspect.class);
-
-//    @Pointcut("execution(public * com.ydtech.*.*.*.*(..))")
-    @Pointcut("@annotation(com.ydtech.aop.request.MethodLogAnnotation)")
-    private void methodLog() {
-    }
-
-    /**
-     * 环绕通知
-     */
-    @Around("methodLog()")
-    public Object advice(ProceedingJoinPoint joinPoint) throws Throwable {
-        //记下请求开始时间
-        startTime.set(System.currentTimeMillis());
-
-        Signature signature = joinPoint.getSignature();
-        MethodSignature methodSignature = (MethodSignature) signature;
-        Method method = methodSignature.getMethod();
-        MethodLogAnnotation mla = method.getAnnotation(MethodLogAnnotation.class);
-        //获取切入点所在目标对象
-        Object targetObj =joinPoint.getTarget();
-
-        SysMethodLog sml = new SysMethodLog();
-        sml.setDescription(mla.title());
-        sml.setCreateTime(new Date());
-        sml.setRequestMethod(method.getName());
-        sml.setRequestElapsedTime(System.currentTimeMillis() - startTime.get());
-        sml.setRequestClass(targetObj.getClass().getName());
-
-        //4. 获取方法的参数
-        Object[] args = joinPoint.getArgs();
-        JSONArray json = (JSONArray) JSONObject.toJSON(args);
-        sml.setParams(json.toJSONString());
-        sysMethodLogDao.insert(sml);
-
-        //执行到这里走原来的方法
-        Object proceed = joinPoint.proceed();
-        System.out.println("around after....");
-        return proceed;
-    }
-
-    @Before("methodLog()")
-    public void record(JoinPoint joinPoint) {
-//        System.out.println("Before");
+//package com.ydtech.aop;
+//
+//import com.ydtech.aop.request.MethodLogAnnotation;
+//import lombok.Data;
+//import org.aspectj.lang.JoinPoint;
+//import org.aspectj.lang.ProceedingJoinPoint;
+//import org.aspectj.lang.Signature;
+//import org.aspectj.lang.annotation.*;
+//import org.aspectj.lang.reflect.MethodSignature;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.stereotype.Component;
+//
+//import java.lang.reflect.Method;
+//
+///**
+// * 切面类
+// * AOP切面,记录方法的调用,入参以及出參
+// */
+//@Aspect
+//@Component
+//@Data
+//public class MethodLogAspect {
+//
+////    @Autowired
+////    private SysMethodLogDao sysMethodLogDao;
+//
+//
+//    /**
+//     * 保存线程共享变量,开始执行时间
+//     */
+//    ThreadLocal<Long> startTime = new ThreadLocal<>();
+//
+//
+//    private final static Logger LOGGER = LoggerFactory.getLogger(MethodLogAspect.class);
+//
+////    @Pointcut("execution(public * com.ydtech.*.*.*.*(..))")
+//    @Pointcut("@annotation(com.ydtech.aop.request.MethodLogAnnotation)")
+//    private void methodLog() {
+//    }
+//
+//    /**
+//     * 环绕通知
+//     */
+//    @Around("methodLog()")
+//    public Object advice(ProceedingJoinPoint joinPoint) throws Throwable {
+//        //记下请求开始时间
+//        startTime.set(System.currentTimeMillis());
+//
 //        Signature signature = joinPoint.getSignature();
 //        MethodSignature methodSignature = (MethodSignature) signature;
 //        Method method = methodSignature.getMethod();
 //        MethodLogAnnotation mla = method.getAnnotation(MethodLogAnnotation.class);
-//        System.err.println("tttt:"+mla.title());
-//        System.err.println("tttt================");
-//        startTime = System.currentTimeMillis();
-    }
-
-    @After("methodLog()")
-    public void after(JoinPoint joinPoint) {
-
-
-
-    }
-}
-
-
+//        //获取切入点所在目标对象
+//        Object targetObj =joinPoint.getTarget();
+//
+////        sml.setDescription(mla.title());
+////        SysMethodLog sml = new SysMethodLog();
+////        sml.setCreateTime(new Date());
+////        sml.setRequestMethod(method.getName());
+////        sml.setRequestElapsedTime(System.currentTimeMillis() - startTime.get());
+////        sml.setRequestClass(targetObj.getClass().getName());
+////
+////        //4. 获取方法的参数
+////        Object[] args = joinPoint.getArgs();
+////        JSONArray json = (JSONArray) JSONObject.toJSON(args);
+////        sml.setParams(json.toJSONString());
+////        sysMethodLogDao.insert(sml);
+//
+//        //执行到这里走原来的方法
+//        Object proceed = joinPoint.proceed();
+//        System.out.println("around after....");
+//        return proceed;
+//    }
+//
+//    @Before("methodLog()")
+//    public void record(JoinPoint joinPoint) {
+////        System.out.println("Before");
+////        Signature signature = joinPoint.getSignature();
+////        MethodSignature methodSignature = (MethodSignature) signature;
+////        Method method = methodSignature.getMethod();
+////        MethodLogAnnotation mla = method.getAnnotation(MethodLogAnnotation.class);
+////        System.err.println("tttt:"+mla.title());
+////        System.err.println("tttt================");
+////        startTime = System.currentTimeMillis();
+//    }
+//
+//    @After("methodLog()")
+//    public void after(JoinPoint joinPoint) {
+//
+//
+//
+//    }
+//}
+//
+//

+ 1 - 1
src/main/java/com/ydtech/components/RenbaoRequestComponents.java

@@ -34,7 +34,7 @@ public class RenbaoRequestComponents {
     @Value("${rb.brand.search.url}")
     private String rbBrandSearchUrl;
 
-    @MethodLogAnnotation(title = "报价-请求python")
+//    @MethodLogAnnotation(title = "报价-请求python")
     public <T, B> B post(String url,String message, @Nullable T requestBody, Class<B> responseType) {
         HttpHeaders httpHeaders = new HttpHeaders();
         httpHeaders.setContentType(MediaType.APPLICATION_JSON);

+ 2 - 3
src/main/java/com/ydtech/components/ZhongmeiRequestComponents.java

@@ -1,6 +1,5 @@
 package com.ydtech.components;
 
-import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.request.Response;
 import lombok.extern.slf4j.Slf4j;
@@ -67,12 +66,12 @@ public class ZhongmeiRequestComponents {
         return post(k, zmModelQueryUrl, responseType);
     }
 
-    @MethodLogAnnotation(title = "中煤-报价-请求python")
+//    @MethodLogAnnotation(title = "中煤-报价-请求python")
     public <T, K> Response<T> quote(K k, ParameterizedTypeReference<Response<T>> responseType) {
         return post(k, zmQuoteUrl, responseType);
     }
 
-    @MethodLogAnnotation(title = "中煤-核保-请求python")
+//    @MethodLogAnnotation(title = "中煤-核保-请求python")
     public <T, K> Response<T> audit(K k, ParameterizedTypeReference<Response<T>> responseType) {
         return post(k, zmAuditUrl, responseType);
     }

+ 1 - 1
src/main/java/com/ydtech/config/SwaggerConfig.java

@@ -35,7 +35,7 @@ public class SwaggerConfig {
                 .modelRef(new ModelRef("string"))
                 .parameterType("header")
                 .required(false)
-                .defaultValue(" ")
+                .defaultValue("Authorization")
                 .build();
         parameters.add(parameterBuilder.build());
         return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())

+ 7 - 0
src/main/java/com/ydtech/config/WebSecurityConfig.java

@@ -94,6 +94,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 // 中煤回调
                 .antMatchers("/order/zhongMeiApi/underwritingCallback").permitAll()
                 .antMatchers("/order/zhongMeiApi/auditCallback").permitAll()
+
+                //审核退回
+                .antMatchers("/api/inv/invoiceInfo/approvalBack").hasAuthority("inv:invoice:info:approval:back")
+                //审核通过
+                .antMatchers("/api/inv/invoiceInfo/approvalPass").hasAuthority("inv:invoice:info:approval:pass")
                 // 其他所有请求需要身份认证
                 .anyRequest().authenticated();
         // 退出登录处理器
@@ -104,6 +109,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         http.addFilterBefore(new JwtAuthenticationFilter(authenticationManager()), UsernamePasswordAuthenticationFilter.class);
     }
 
+
+
     @Bean
     @Override
     public AuthenticationManager authenticationManager() throws Exception {

+ 35 - 0
src/main/java/com/ydtech/constants/enums/dict/ApprovalStatusEnum.java

@@ -0,0 +1,35 @@
+package com.ydtech.constants.enums.dict;
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+
+/**
+ * 审批状态
+ *
+ * @author: lig
+ * @date: 2023-05-04
+ */
+@Getter
+@AllArgsConstructor
+@DictEnum(key = "approvalStatus", desc = "审批状态")
+public enum ApprovalStatusEnum implements IBaseEnum {
+
+//    0 申请审核 1 审核通过 2 审核不通过 3 退回修改
+    AS0("0", "申请审核",1,0),
+    AS1("1", "审核通过",2,0),
+    AS2("2", "审核不通过",3,0),
+    AS3("3", "退回修改",4,0),
+    ;
+
+    private String code;
+    private String desc;
+    //排序
+    private Integer sort;
+    //状态  0 启用  1 不启用
+    private Integer status;
+
+
+
+}

+ 7 - 0
src/main/java/com/ydtech/core/page/HttpResult.java

@@ -27,6 +27,13 @@ public class HttpResult<T> {
         r.setMsg(msg);
         return r;
     }
+    public static HttpResult error(int code,Object data, String msg) {
+        HttpResult r = new HttpResult();
+        r.setCode(code);
+        r.setData(data);
+        r.setMsg(msg);
+        return r;
+    }
 
     public static HttpResult error(Object data) {
         HttpResult r = new HttpResult();

+ 9 - 0
src/main/java/com/ydtech/core/page/PageRequest.java

@@ -66,6 +66,15 @@ public class PageRequest {
         p.setCurrent(pageNum);
         return p;
     }
+    public static Page<T>  buildPageRequestByVo(BasePageVO basePageVo){
+        int pageNum = basePageVo.getPageNum() < 1?1:basePageVo.getPageNum();
+        int pageSize = basePageVo.getPageSize() <1?1:basePageVo.getPageSize();
+
+        Page<T> p = new Page();
+        p.setSize(pageSize);
+        p.setCurrent(pageNum);
+        return p;
+    }
 
 
     /**

+ 4 - 72
src/main/java/com/ydtech/core/page/PageResult.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import com.github.pagehelper.Page;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.util.Collection;
 import java.util.List;
@@ -18,6 +19,7 @@ import java.util.List;
  * @date Aug 19, 2018
  */
 @ApiModel
+@Data
 public class PageResult<T> {
     /**
      * 当前页码
@@ -42,7 +44,7 @@ public class PageResult<T> {
     /**
      * 分页数据
      */
-    private List<?> content;
+    private List<T> content;
 
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private String jsum;
@@ -53,83 +55,13 @@ public class PageResult<T> {
     @JsonInclude(JsonInclude.Include.NON_EMPTY)
     private String yssum;
 
-    public String getJsum() {
-        return jsum;
-    }
-
-    public void setJsum(String jsum) {
-        this.jsum = jsum;
-    }
-
-    public String getYfsum() {
-        return yfsum;
-    }
-
-    public void setYfsum(String yfsum) {
-        this.yfsum = yfsum;
-    }
-
-    public String getSsum() {
-        return ssum;
-    }
-
-    public void setSsum(String ssum) {
-        this.ssum = ssum;
-    }
-
-    public String getYssum() {
-        return yssum;
-    }
-
-    public void setYssum(String yssum) {
-        this.yssum = yssum;
-    }
 
-    public int getPageNum() {
-        return pageNum;
-    }
-
-    public void setPageNum(int pageNum) {
-        this.pageNum = pageNum;
-    }
-
-    public int getPageSize() {
-        return pageSize;
-    }
-
-    public void setPageSize(int pageSize) {
-        this.pageSize = pageSize;
-    }
-
-    public long getTotalSize() {
-        return totalSize;
-    }
-
-    public void setTotalSize(long totalSize) {
-        this.totalSize = totalSize;
-    }
-
-    public int getTotalPages() {
-        return totalPages;
-    }
-
-    public void setTotalPages(int totalPages) {
-        this.totalPages = totalPages;
-    }
-
-    public List<?> getContent() {
-        return content;
-    }
-
-    public void setContent(List<?> content) {
-        this.content = content;
-    }
 
     public PageResult() {
 
     }
 
-    public PageResult(int currentPage, int numPerPage, int totalCount, List<?> recordList) {
+    public PageResult(int currentPage, int numPerPage, int totalCount, List<T> recordList) {
         this.pageNum = currentPage;
         this.pageSize = numPerPage;
         this.totalSize = totalCount;

+ 23 - 37
src/main/java/com/ydtech/modules/admin/controller/AppLoginController.java

@@ -2,25 +2,17 @@ package com.ydtech.modules.admin.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
-import com.ydtech.modules.admin.convert.SysUserConvert;
 import com.ydtech.modules.admin.model.SysCarousel;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysCarouselService;
 import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.admin.vo.SysUserVO;
-import com.ydtech.modules.esm.convert.EsmUserInternalCheckConvert;
 import com.ydtech.modules.esm.convert.EsmUserInternalConvert;
 import com.ydtech.modules.esm.model.EsmOfferChannel;
 import com.ydtech.modules.esm.model.EsmUserInternal;
-import com.ydtech.modules.esm.model.EsmUserInternalCheck;
-import com.ydtech.modules.esm.model.SysUserCheck;
 import com.ydtech.modules.esm.service.EsmOfferChannelService;
-import com.ydtech.modules.esm.service.EsmUserInternalCheckService;
 import com.ydtech.modules.esm.service.EsmUserInternalService;
-import com.ydtech.modules.esm.service.SysUserCheckService;
 import com.ydtech.modules.esm.vo.EsmUserInternalVo;
 import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
@@ -29,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Date;
 import java.util.List;
 
 @Api(tags = "app端登录")
@@ -37,14 +28,14 @@ import java.util.List;
 @RequestMapping("/apps")
 public class AppLoginController{
 
-    @Autowired
-    private EsmUserInternalCheckService esmUserInternalCheckService;
+//    @Autowired
+//    private EsmUserInternalCheckService esmUserInternalCheckService;
 
     @Autowired
     private SysUserService sysUserService;
 
-    @Autowired
-    private SysUserCheckService sysUserCheckService;
+//    @Autowired
+//    private SysUserCheckService sysUserCheckService;
 
     @Autowired
     private EsmUserInternalService esmUserInternalService;
@@ -62,37 +53,30 @@ public class AppLoginController{
         if (StringUtils.isNullOrEmpty(record.getId())) {
             return HttpResult.error("工号不能为空");
         }
-        SysUserCheck sysUserCheck = sysUserCheckService.selectByPk(record.getId());
 
-        EsmUserInternalCheck esmUserInternalCheck = esmUserInternalCheckService.selectByPk(record.getId());
-        EsmUserInternalCheck internalCheck = EsmUserInternalCheckConvert.INSTANCE.vo2Dto(record);
+        SysUser sysUser = sysUserService.getById(record.getId());
+        if(null == sysUser) return HttpResult.ok("系统用户不存在");
+        EsmUserInternal esmUserInternal = esmUserInternalService.getById(record.getId());
+
         EsmUserInternal internal = EsmUserInternalConvert.INSTANCE.vo2Dto(record);
         internal.setStatus("0");
         internal.setIsteamleader("0");
-        internalCheck.setStatus("0");
-        internalCheck.setIsteamleader("0");
         // 查询申请不为空,就是修改
-        if (esmUserInternalCheck != null) {
-            Integer integer = esmUserInternalCheckService.updateSelective(internalCheck);
-            Integer integer1 = esmUserInternalService.updateSelective(internal);
-            if (integer == 1 && integer1 == 1) {
+        if (esmUserInternal != null) {
+            if (esmUserInternalService.updateById(internal)) {
                 return HttpResult.ok("修改成功");
             }
             return HttpResult.ok("修改失败");
         }
-        SysUser sysUser = new SysUser();
+
         sysUser.setSex(record.getSex());
         sysUser.setId(record.getId());
         sysUser.setName(record.getName());
-        SysUserCheck sysUserCheck1 = SysUserConvert.INSTANCE.dto2Check(sysUser);
-        sysUserCheck1.setCheckid(sysUserCheck.getCheckid());
-        Integer integer2 = sysUserCheckService.updateSelective(sysUserCheck1);
         // 新注册的信息提交
-        boolean integer = sysUserService.updateById(sysUser);
-        internalCheck.setCheckid(sysUserCheck.getCheckid());
-        Integer insert = esmUserInternalCheckService.insertSelective(internalCheck);
-        Integer integer1 = esmUserInternalService.insertSelective(internal);
-        if (insert == 1 && integer == true && integer1 == 1 && integer2 == 1) {
+        boolean sysUserBoo = sysUserService.updateById(sysUser);
+        boolean integerBoo = esmUserInternalService.save(internal);
+
+        if (sysUserBoo == true && integerBoo == true) {
             return HttpResult.ok("保存成功");
         }
         throw new SystemException("修改失败");
@@ -101,9 +85,10 @@ public class AppLoginController{
     @GetMapping("/getApplicationStatus")
     @ApiOperation("工号查询申请状态")
     public HttpResult getApplicationStatus(String jobNumber) {
-        EsmUserInternalCheck esmUserInternalCheck = esmUserInternalCheckService.selectByPk(jobNumber);
-        if (esmUserInternalCheck != null) {
-            return HttpResult.ok("成功", esmUserInternalCheck.getStatus());
+        SysUser sysUser = sysUserService.getById(jobNumber);
+//        EsmUserInternalCheck esmUserInternalCheck = esmUserInternalCheckService.selectByPk(jobNumber);
+        if (sysUser != null) {
+            return HttpResult.ok("成功", sysUser.getApprovalStatus());
         }
         return HttpResult.error("未提交认证信息");
     }
@@ -111,9 +96,10 @@ public class AppLoginController{
     @GetMapping("/getApplicationInfo")
     @ApiOperation("获取申请信息")
     public HttpResult getApplicationInfo(String jobNumber) {
-        EsmUserInternalCheck esmUserInternalCheck = esmUserInternalCheckService.selectByPk(jobNumber);
-        if (esmUserInternalCheck != null) {
-            EsmUserInternalVo esmUserInternalVo = EsmUserInternalCheckConvert.INSTANCE.dto2Vo(esmUserInternalCheck);
+        EsmUserInternal esmUserInternal = esmUserInternalService.getById(jobNumber);
+//        EsmUserInternalCheck esmUserInternalCheck = esmUserInternalCheckService.selectByPk(jobNumber);
+        if (esmUserInternal != null) {
+            EsmUserInternalVo esmUserInternalVo = EsmUserInternalConvert.INSTANCE.dto2Vo(esmUserInternal);
             SysUser sysUser = sysUserService.getById(jobNumber);
             esmUserInternalVo.setSex(sysUser.getSex());
             esmUserInternalVo.setName(sysUser.getName());

+ 9 - 1
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -19,6 +19,7 @@ import com.ydtech.modules.admin.vo.SysUserBaseVO;
 import com.ydtech.modules.admin.vo.SysUserInternalVO;
 import com.ydtech.modules.admin.vo.SysUserVO;
 import com.ydtech.modules.esm.model.EsmInsCompany;
+import com.ydtech.modules.esm.service.EsmUserInternalService;
 import com.ydtech.security.utils.PasswordUtils;
 import com.ydtech.utils.DateUtil;
 import com.ydtech.utils.StringUtils;
@@ -48,6 +49,8 @@ public class SysUserController extends BaseController {
     @Autowired
     private SysUserService sysUserService;
     @Autowired
+    private EsmUserInternalService esmUserInternalService;
+    @Autowired
     private SysUserRoleService sysUserRoleService;
 
 //	@PreAuthorize("hasAuthority('sys:user:add') AND hasAuthority('sys:user:edit')")
@@ -270,6 +273,9 @@ public class SysUserController extends BaseController {
 //        LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
 //        lqw.or().eq(StringUtils.isNotEmpty(sysUser.getDeptId()), SysUser::getDeptId, sysUser.getDeptId());
 //        ;
+        //手机号不能重复
+        SysUser userMobile = sysUserService.findByPhone(sysUser.getMobile());
+        if(null != userMobile) return HttpResult.error("已经存在该手机号");
 
         //处理密码
         if (StringUtils.isNotEmpty(sysUser.getPassword())) {
@@ -282,7 +288,6 @@ public class SysUserController extends BaseController {
         if (StringUtils.isNullOrEmpty(vo.getSysUser().getId())) {
             //新增
 
-
             sysUser.setId(sysUserService.gainNextUserId(sysUser.getDeptId()));
             sysUser.setDelFlag(0);
             sysUser.setMobile(sysUser.getMobile());
@@ -292,6 +297,9 @@ public class SysUserController extends BaseController {
             sysUser.setCreateTime(new Date());
             sysUserService.save(sysUser);
 
+//            //详情表
+//            esmUserInternalService.
+
 
         } else {
             //更新

+ 13 - 9
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -43,15 +43,16 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
             ",dict2.label as approvalStatus";
 
 
-    String selectUserFromSql = " from sys_user su \n" +
-            "left JOIN sys_dept sd on su.dept_id=sd.id\n" +
-            "left join sys_dept psd on sd.parent_id=psd.id\n" +
-            "left join sys_dict dict on dict.value=su.job_code\n" +
-            "left join sys_dict dict2 on dict2.value=su.approval_status\n" +
-            "where 1=1\n" +
-            "and sd.id &lt;&gt; '' \n" +
-            "AND dict.itemname = 'jobcode'\n" +
-            "AND dict2.itemname = 'approval'";
+    String selectUserFromSql = " from sys_user su " +
+            " left JOIN sys_dept sd on su.dept_id=sd.id " +
+            " left join sys_dept psd on sd.parent_id=psd.id " +
+            " left join sys_dict dict on dict.value=su.job_code " +
+            " left join sys_dict dict2 on dict2.value=su.approval_status " +
+            " left join esm_user_internal eui on eui.id=su.id " +
+            " where 1=1 " +
+            " AND sd.id &lt;&gt; '' " +
+            " AND dict.itemname = 'jobcode' " +
+            " AND dict2.itemname = 'approval' ";
 
     String selectUserFromWhereSql = " " +
             "<if test='page.columnFilters.usertype !=null and page.columnFilters.usertype.value!=\"\" and page.columnFilters.usertype.value!=null '>" +
@@ -72,6 +73,9 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
             "<if test='page.columnFilters.delFlag !=null and page.columnFilters.delFlag.value!=\"\" and page.columnFilters.delFlag.value!=null '>" +
             " and su.del_flag = #{page.columnFilters.delFlag.value}" +
             "</if> " +
+            "<if test='page.columnFilters.deptId !=null and page.columnFilters.deptId.value!=\"\" and page.columnFilters.deptId.value!=null '>" +
+            " and su.dept_id like concat('%',#{page.columnFilters.deptId.value},'%')" +
+            "</if> " +
             "";
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/admin/model/SysUser.java

@@ -148,6 +148,13 @@ public class SysUser implements Serializable {
     @TableField(value = "approval_status")
     private Integer approvalStatus;
 
+    /**
+     * 审批意见
+     */
+    @ApiModelProperty(value = "审批意见")
+    @TableField(value = "approval_opinion")
+    private String approvalOpinion;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 

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

@@ -64,6 +64,14 @@ public interface SysUserService extends IService<SysUser> {
 
     SysUserInternalVO gainUserSynthesisInfo(String userId);
 
+
+    String findMaxId(String deptId);
+
+    //审批
+    public boolean check(String userId,Integer approvalStatus,String approvalOpinion);
+
+
+
 }
 //public interface SysUserService extends SysUserDao {
 //    SysUser findByUsername(String username);

+ 34 - 121
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -271,128 +271,41 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser>
 
         return vo;
     }
+
+
+
+    @Override
+    public String findMaxId(String deptId) {
+        QueryWrapper<SysUser> qw = new QueryWrapper<>();
+        qw.select("IFNULL(MAX(id),0) maxId");
+        qw.eq("dept_id",deptId);
+        Map<String,Object> m = getMap(qw);
+        String maxId = m.get("maxId").toString();
+        return maxId;
+
+    }
+
+    @Override
+    public boolean check(String userId,Integer approvalStatus,String approvalOpinion) {
+
+        SysUser user = getById(userId);
+        user.setApprovalStatus(approvalStatus);
+        user.setApprovalOpinion(approvalOpinion);
+
+        return updateById(user);
+
+
+    }
+
+
+
+
 }
-//@Service
-//public class SysUserServiceImpl extends SysUserDaoImpl
-//        implements SysUserService {
-//
-//
-//    @Override
-//    public SysUser findByUsername(String username) {
-//        SysUser sysUser = null;
-//        if (!StringUtils.isNullOrEmpty(username)) {
-////			List<SysUser> lst = selectList(" where name=? ", new Object[]{username});
-//            List<SysUser> lst = selectList(" where id=? ", new Object[]{username});
-//            if (lst.size() > 0) {
-//                sysUser = lst.get(0);
-//            }
-//        }
-//
-//        return sysUser;
-//    }
-//
-//    @Override
-//    public SysUser findByPhone(String phone) {
-//        SysUser sysUser = null;
-//        if (!StringUtils.isNullOrEmpty(phone)) {
-////			List<SysUser> lst = selectList(" where name=? ", new Object[]{username});
-//            List<SysUser> lst = selectList(" where mobile=? ", new Object[]{phone});
-//            if (lst.size() > 0) {
-//                sysUser = lst.get(0);
-//            }
-//        }
-//
-//        return sysUser;
-//    }
-//
-//    @Override
-//    public Set<String> findPermissions(SysUser sysUser) {
-//        Set<String> perms = new HashSet<>();
-//        String sql = "";
-//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-//        List<String> lsPerms = null;
-//
-//        if (sysUser.getId().equalsIgnoreCase("admin")) {
-//            sql = "SELECT perms FROM sys_menu WHERE perms IS NOT NULL AND perms <> ''";
-//
-//            lsPerms = jdbcTemplate.queryForList(sql, String.class);
-//        } else {
-//            sql = "SELECT perms FROM sys_menu sm WHERE sm.id IN ( " +
-//                    "SELECT menu_id FROM sys_role_menu srm, sys_user_role sur ,sys_user su " +
-//                    "WHERE srm.role_id=sur.role_id " +
-//                    "AND sur.user_id=su.id AND su.id=?) " +
-//                    "AND perms IS NOT NULL AND perms <> ''"
-//            ;
-//
-//            lsPerms = jdbcTemplate.queryForList(sql, String.class, sysUser.getId());
-//        }
-//
-//        if (lsPerms != null && lsPerms.size() > 0) {
-//            for (String perm : lsPerms) {
-//                if (!StringUtils.isNullOrEmpty(perm)) {
-//                    perms.add(perm);
-//                }
-//            }
-//        }
-//
-//        return perms;
-//    }
-//
-//    @Override
-//    public List<SysUserRole> findUserRoles(Long userId) {
-//        return null;
-//    }
-//
-//    @Override
-//    public PageResult selectPagingCustom(int pageNumber, int pageSize, String name, String deptCode) {
-//        return null;
-//    }
-//
-//    @Override
-//    public void findSysUseresmUserInternalVORoles(PageResult pageResult) {
-//
-//    }
-//
-//    @Override
-//    public Integer deleteFlag(List<SysUser> lsSysUser) {
-//        String sql = "update sys_user set del_flag='1' where id=?";
-//
-//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-//
-//        return jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
-//            @Override
-//            public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
-//                preparedStatement.setString(1, lsSysUser.get(i).getId());
-//            }
-//
-//            @Override
-//            public int getBatchSize() {
-//                return lsSysUser.size();
-//            }
-//        }).length;
-//    }
-//
-//    @Override
-//    public SysUser findById(String id) {
-//        if (!StringUtils.isNullOrEmpty(id)) {
-//            return selectByPk(id);
-//        }
-//        return null;
-//    }
-//
-//    @Override
-//    public SysUser findByUserId(String userId) {
-//        SysUser sysUser = null;
-//        if (!StringUtils.isNullOrEmpty(userId)) {
-//            List<SysUser> lst = selectList(" where id=? ", new Object[]{userId});
-//            if (lst.size() > 0) {
-//                sysUser = lst.get(0);
-//            }
-//        }
-//
-//        return sysUser;
-//    }
-//}
+
+
+
+
+
 
 
 

+ 6 - 1
src/main/java/com/ydtech/modules/admin/service/impl/WechatServiceImpl.java

@@ -9,6 +9,7 @@ import com.ydtech.modules.admin.dao.SysUserRoleMapper;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRole;
 import com.ydtech.modules.admin.service.SysMsgLogService;
+import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.admin.service.WechatService;
 import com.ydtech.modules.admin.vo.WechatBindPhoneVo;
 import com.ydtech.modules.admin.vo.WechatBindVo;
@@ -45,6 +46,9 @@ public class WechatServiceImpl implements WechatService {
 
     private final SysUserMapper sysUserMapper;
 
+    @Autowired
+    private SysUserService sysUserService;
+
     private final WxMpService wxMpService;
     private final AuthenticationManager authenticationManager;
 
@@ -80,7 +84,8 @@ public class WechatServiceImpl implements WechatService {
         if (sysUser == null) {
             SysUser sysUser1 = new SysUser();
 
-            String maxId = esmUserInternalService.findMaxId(pyramid);
+            String maxId = sysUserService.findMaxId(pyramid);
+//            String maxId = esmUserInternalService.findMaxId(pyramid);
             if (maxId == null) {
                 throw new SystemException("没有上级人员信息");
             }

+ 358 - 336
src/main/java/com/ydtech/modules/esm/controller/EsmUserInternalCheckController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.esm.controller;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
 import com.ydtech.core.page.BaseController;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
@@ -15,7 +16,7 @@ import com.ydtech.modules.admin.service.SysUserRoleService;
 import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.model.*;
 import com.ydtech.modules.esm.service.EsmUserAgentCheckService;
-import com.ydtech.modules.esm.service.EsmUserInternalCheckService;
+//import com.ydtech.modules.esm.service.EsmUserInternalCheckService;
 import com.ydtech.modules.esm.service.EsmUserInternalService;
 import com.ydtech.modules.esm.service.SysUserCheckService;
 import com.ydtech.modules.esm.vo.UserRegistVO;
@@ -54,14 +55,14 @@ public class EsmUserInternalCheckController extends BaseController {
     @Autowired
     private SysUserService sysUserService;
 
-    @Autowired
-    private EsmUserInternalCheckService esmUserInternalCheckService;
+//    @Autowired
+//    private EsmUserInternalCheckService esmUserInternalCheckService;
 
     @Autowired
     private EsmUserInternalService esmUserInternalService;
 
-    @Autowired
-    private EsmUserAgentCheckService esmUserAgentCheckService;
+//    @Autowired
+//    private EsmUserAgentCheckService esmUserAgentCheckService;
 
     @Autowired
     private SysMsgLogService sysMsgLogService;
@@ -72,167 +73,167 @@ public class EsmUserInternalCheckController extends BaseController {
     @Autowired
     private StringRedisTemplate stringRedisTemplate;
 
-    /**
-     * 保存人员信息, 返回人员编码
-     *
-     * @param record
-     * @return
-     */
-//    @PreAuthorize("hasAuthority('sys:user:edit')")
-    @PostMapping(value = "/saveUser")
-    public HttpResult save(@RequestBody VoEsmUserInternalCheck record) {
-        int noCount = 3;//顺序号是几位的
-
-        Integer result = 0;
-        String resultStr = "";
-        String msg = "保存成功";
-        SysUserCheck sysUserCheck = record.getSysUser();
-        EsmUserInternalCheck esmUserInternalCheck = record.getEsmUserInternal();
-
-        String nextPK = "001";
-        if (sysUserCheck != null) {
-            if (StringUtils.isNullOrEmpty(sysUserCheck.getId())) {//新增
-                //手机号和身份证号都不可以重复
-                if (!StringUtils.isNullOrEmpty(sysUserCheck.getMobile())) {
-                    SysUser sysUser = sysUserService.findByPhone(sysUserCheck.getMobile());
-                    if (sysUser != null) {
-                        return HttpResult.error("手机号已存在");
-                    }
-                }
-            /*    if(!StringUtils.isNullOrEmpty(esmUserInternalCheck.getIdentity())){
-                    List<EsmUserInternalCheck> users = esmUserInternalCheckService.selectList(" where identity=?",new Object[]{esmUserInternalCheck.getIdentity()});
-                    if(users != null && users.size()>0){
-                        return HttpResult.error("身份证号已存在");
-                    }
-                }*/
-
-                //生成临时表主键 checkid
-                String checkid = String.valueOf(new Date().getTime());
-                sysUserCheck.setCheckid(checkid);
-                //根据机构号获取userid最大值,不需要加人员类型判断  从sys_user获取
-                String maxId = esmUserInternalService.findMaxId(sysUserCheck.getDeptId());
-                if (StringUtils.isNullOrEmpty(maxId)) {
-                    nextPK = sysUserCheck.getDeptId() + "001";
-                } else {
-                    nextPK = IdGenerate.nextCode(maxId, noCount);
-                }
-                sysUserCheck.setId(nextPK);
-                //密码加密
-                String salt = PasswordUtils.getSalt();
-                String password = PasswordUtils.encode(sysUserCheck.getPassword(), salt);
-                sysUserCheck.setPassword(password);
-                sysUserCheck.setSalt(salt);
-                sysUserCheck.setStatus(0); //初始化为0  审核后为1 有效
-
-                sysUserCheck.setCreateBy(getUserName());
-                sysUserCheck.setCreateTime(new Date());
-                sysUserCheck.setLastUpdateBy(getUserName());
-                sysUserCheck.setLastUpdateTime(new Date());
-                result = sysUserCheckService.insertSelective(sysUserCheck);
-
-                // 插入正式表
-                SysUser sysUser = new SysUser();
-                BeanUtils.copyProperties(sysUserCheck, sysUser);
-                result = sysUserService.save(sysUser)==true?1:0;
-
-                //角色配置
-                SysUserRole userRole = new SysUserRole();
-                userRole.setUserId(nextPK);
-                userRole.setRoleId(2L);
-                sysUserRoleService.save(userRole);
-
-                if (esmUserInternalCheck != null) {
-                    esmUserInternalCheck.setCheckid(checkid);
-                    esmUserInternalCheck.setId(nextPK);
-                    esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
-                    result = esmUserInternalCheckService.insertSelective(esmUserInternalCheck);
-                }
-                EsmUserAgentCheck esmUserAgentCheck = record.getEsmUserAgent();
-                if (esmUserAgentCheck != null) {
-                    esmUserAgentCheck.setCheckid(checkid);
-                    esmUserAgentCheck.setId(nextPK);
-                    result = esmUserAgentCheckService.insertSelective(esmUserAgentCheck);
-                }
-            } else if (StringUtils.isNullOrEmpty(sysUserCheck.getCheckid())) { //修改正式信息后提交
-                if (!StringUtils.isNullOrEmpty(sysUserCheck.getMobile())) {
-//                    List<SysUser> users = sysUserService.selectList(" where id != ? and mobile=?", new Object[]{sysUserCheck.getId(), sysUserCheck.getMobile()});
-                    LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
-                    lqw.ne(SysUser::getId,sysUserCheck.getId());
-                    lqw.eq(SysUser::getMobile,sysUserCheck.getMobile());
-                    List<SysUser> users = sysUserService.list(lqw);
-                    if (users != null && users.size() > 0) {
-                        return HttpResult.error("手机号已存在");
-                    }
-                }
-                if (!StringUtils.isNullOrEmpty(esmUserInternalCheck.getIdentity())) {
-                    List<EsmUserInternalCheck> users = esmUserInternalCheckService.selectList(" where id != ? and identity=?", new Object[]{sysUserCheck.getId(), esmUserInternalCheck.getIdentity()});
-                    if (users != null && users.size() > 0) {
-                        return HttpResult.error("身份证号已存在");
-                    }
-                }
-                //生成临时表主键 checkid
-                String checkid = String.valueOf(new Date().getTime());
-                sysUserCheck.setCheckid(checkid);
-
-                sysUserCheck.setStatus(0); //初始化为0  审核后为1 有效
-
-                sysUserCheck.setCreateBy(getUserName());
-                sysUserCheck.setCreateTime(new Date());
-                sysUserCheck.setLastUpdateBy(getUserName());
-                sysUserCheck.setLastUpdateTime(new Date());
-                result = sysUserCheckService.insertSelective(sysUserCheck);
-
-                if (esmUserInternalCheck != null) {
-                    esmUserInternalCheck.setCheckid(checkid);
-                    esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
-                    result = esmUserInternalCheckService.insertSelective(esmUserInternalCheck);
-                }
-                EsmUserAgentCheck esmUserAgentCheck = record.getEsmUserAgent();
-                if (esmUserAgentCheck != null) {
-                    esmUserAgentCheck.setCheckid(checkid);
-                    result = esmUserAgentCheckService.insertSelective(esmUserAgentCheck);
-                }
-            } else {// 退回修改后重新提交
-                if (!StringUtils.isNullOrEmpty(sysUserCheck.getMobile())) {
-                    LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
-                    lqw.ne(SysUser::getId,sysUserCheck.getId());
-                    lqw.eq(SysUser::getMobile,sysUserCheck.getMobile());
-                    List<SysUser> users = sysUserService.list(lqw);
-//                    List<SysUser> users = sysUserService.selectList(" where id != ? and mobile=?", new Object[]{sysUserCheck.getId(), sysUserCheck.getMobile()});
-                    if (users != null && users.size() > 0) {
-                        return HttpResult.error("手机号已存在");
-                    }
-                }
-                if (!StringUtils.isNullOrEmpty(esmUserInternalCheck.getIdentity())) {
-                    List<EsmUserInternalCheck> users = esmUserInternalCheckService.selectList(" where id != ? and identity=?", new Object[]{sysUserCheck.getId(), esmUserInternalCheck.getIdentity()});
-                    if (users != null && users.size() > 0) {
-                        return HttpResult.error("身份证号已存在");
-                    }
-                }
-                sysUserCheck.setStatus(0); //初始化为0  审核后为1 有效
-                sysUserCheck.setLastUpdateBy(getUserName());
-                sysUserCheck.setLastUpdateTime(new Date());
-                result = sysUserCheckService.updateSelective(sysUserCheck);
-
-
-                if (esmUserInternalCheck != null) {
-                    esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
-                    result = esmUserInternalCheckService.updateSelective(esmUserInternalCheck);
-                }
-                EsmUserAgentCheck esmUserAgentCheck = record.getEsmUserAgent();
-                if (esmUserAgentCheck != null) {
-                    result = esmUserAgentCheckService.updateSelective(esmUserAgentCheck);
-                }
-            }
-
-        }
-        //返回人员编号给前端 20200506
-        if (result == 1) {
-            resultStr = sysUserCheck.getId();
-        }
-
-        return HttpResult.ok(msg, resultStr);
-    }
+//    /**
+//     * 保存人员信息, 返回人员编码
+//     *
+//     * @param record
+//     * @return
+//     */
+////    @PreAuthorize("hasAuthority('sys:user:edit')")
+//    @PostMapping(value = "/saveUser")
+//    public HttpResult save(@RequestBody VoEsmUserInternalCheck record) {
+//        int noCount = 3;//顺序号是几位的
+//
+//        Integer result = 0;
+//        String resultStr = "";
+//        String msg = "保存成功";
+//        SysUserCheck sysUserCheck = record.getSysUser();
+//        EsmUserInternalCheck esmUserInternalCheck = record.getEsmUserInternal();
+//
+//        String nextPK = "001";
+//        if (sysUserCheck != null) {
+//            if (StringUtils.isNullOrEmpty(sysUserCheck.getId())) {//新增
+//                //手机号和身份证号都不可以重复
+//                if (!StringUtils.isNullOrEmpty(sysUserCheck.getMobile())) {
+//                    SysUser sysUser = sysUserService.findByPhone(sysUserCheck.getMobile());
+//                    if (sysUser != null) {
+//                        return HttpResult.error("手机号已存在");
+//                    }
+//                }
+//            /*    if(!StringUtils.isNullOrEmpty(esmUserInternalCheck.getIdentity())){
+//                    List<EsmUserInternalCheck> users = esmUserInternalCheckService.selectList(" where identity=?",new Object[]{esmUserInternalCheck.getIdentity()});
+//                    if(users != null && users.size()>0){
+//                        return HttpResult.error("身份证号已存在");
+//                    }
+//                }*/
+//
+//                //生成临时表主键 checkid
+//                String checkid = String.valueOf(new Date().getTime());
+//                sysUserCheck.setCheckid(checkid);
+//                //根据机构号获取userid最大值,不需要加人员类型判断  从sys_user获取
+//                String maxId = esmUserInternalService.findMaxId(sysUserCheck.getDeptId());
+//                if (StringUtils.isNullOrEmpty(maxId)) {
+//                    nextPK = sysUserCheck.getDeptId() + "001";
+//                } else {
+//                    nextPK = IdGenerate.nextCode(maxId, noCount);
+//                }
+//                sysUserCheck.setId(nextPK);
+//                //密码加密
+//                String salt = PasswordUtils.getSalt();
+//                String password = PasswordUtils.encode(sysUserCheck.getPassword(), salt);
+//                sysUserCheck.setPassword(password);
+//                sysUserCheck.setSalt(salt);
+//                sysUserCheck.setStatus(0); //初始化为0  审核后为1 有效
+//
+//                sysUserCheck.setCreateBy(getUserName());
+//                sysUserCheck.setCreateTime(new Date());
+//                sysUserCheck.setLastUpdateBy(getUserName());
+//                sysUserCheck.setLastUpdateTime(new Date());
+//                result = sysUserCheckService.insertSelective(sysUserCheck);
+//
+//                // 插入正式表
+//                SysUser sysUser = new SysUser();
+//                BeanUtils.copyProperties(sysUserCheck, sysUser);
+//                result = sysUserService.save(sysUser)==true?1:0;
+//
+//                //角色配置
+//                SysUserRole userRole = new SysUserRole();
+//                userRole.setUserId(nextPK);
+//                userRole.setRoleId(2L);
+//                sysUserRoleService.save(userRole);
+//
+//                if (esmUserInternalCheck != null) {
+//                    esmUserInternalCheck.setCheckid(checkid);
+//                    esmUserInternalCheck.setId(nextPK);
+//                    esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
+//                    result = esmUserInternalCheckService.insertSelective(esmUserInternalCheck);
+//                }
+//                EsmUserAgentCheck esmUserAgentCheck = record.getEsmUserAgent();
+//                if (esmUserAgentCheck != null) {
+//                    esmUserAgentCheck.setCheckid(checkid);
+//                    esmUserAgentCheck.setId(nextPK);
+//                    result = esmUserAgentCheckService.insertSelective(esmUserAgentCheck);
+//                }
+//            } else if (StringUtils.isNullOrEmpty(sysUserCheck.getCheckid())) { //修改正式信息后提交
+//                if (!StringUtils.isNullOrEmpty(sysUserCheck.getMobile())) {
+////                    List<SysUser> users = sysUserService.selectList(" where id != ? and mobile=?", new Object[]{sysUserCheck.getId(), sysUserCheck.getMobile()});
+//                    LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+//                    lqw.ne(SysUser::getId,sysUserCheck.getId());
+//                    lqw.eq(SysUser::getMobile,sysUserCheck.getMobile());
+//                    List<SysUser> users = sysUserService.list(lqw);
+//                    if (users != null && users.size() > 0) {
+//                        return HttpResult.error("手机号已存在");
+//                    }
+//                }
+//                if (!StringUtils.isNullOrEmpty(esmUserInternalCheck.getIdentity())) {
+//                    List<EsmUserInternalCheck> users = esmUserInternalCheckService.selectList(" where id != ? and identity=?", new Object[]{sysUserCheck.getId(), esmUserInternalCheck.getIdentity()});
+//                    if (users != null && users.size() > 0) {
+//                        return HttpResult.error("身份证号已存在");
+//                    }
+//                }
+//                //生成临时表主键 checkid
+//                String checkid = String.valueOf(new Date().getTime());
+//                sysUserCheck.setCheckid(checkid);
+//
+//                sysUserCheck.setStatus(0); //初始化为0  审核后为1 有效
+//
+//                sysUserCheck.setCreateBy(getUserName());
+//                sysUserCheck.setCreateTime(new Date());
+//                sysUserCheck.setLastUpdateBy(getUserName());
+//                sysUserCheck.setLastUpdateTime(new Date());
+//                result = sysUserCheckService.insertSelective(sysUserCheck);
+//
+//                if (esmUserInternalCheck != null) {
+//                    esmUserInternalCheck.setCheckid(checkid);
+//                    esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
+//                    result = esmUserInternalCheckService.insertSelective(esmUserInternalCheck);
+//                }
+//                EsmUserAgentCheck esmUserAgentCheck = record.getEsmUserAgent();
+//                if (esmUserAgentCheck != null) {
+//                    esmUserAgentCheck.setCheckid(checkid);
+//                    result = esmUserAgentCheckService.insertSelective(esmUserAgentCheck);
+//                }
+//            } else {// 退回修改后重新提交
+//                if (!StringUtils.isNullOrEmpty(sysUserCheck.getMobile())) {
+//                    LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+//                    lqw.ne(SysUser::getId,sysUserCheck.getId());
+//                    lqw.eq(SysUser::getMobile,sysUserCheck.getMobile());
+//                    List<SysUser> users = sysUserService.list(lqw);
+////                    List<SysUser> users = sysUserService.selectList(" where id != ? and mobile=?", new Object[]{sysUserCheck.getId(), sysUserCheck.getMobile()});
+//                    if (users != null && users.size() > 0) {
+//                        return HttpResult.error("手机号已存在");
+//                    }
+//                }
+//                if (!StringUtils.isNullOrEmpty(esmUserInternalCheck.getIdentity())) {
+//                    List<EsmUserInternalCheck> users = esmUserInternalCheckService.selectList(" where id != ? and identity=?", new Object[]{sysUserCheck.getId(), esmUserInternalCheck.getIdentity()});
+//                    if (users != null && users.size() > 0) {
+//                        return HttpResult.error("身份证号已存在");
+//                    }
+//                }
+//                sysUserCheck.setStatus(0); //初始化为0  审核后为1 有效
+//                sysUserCheck.setLastUpdateBy(getUserName());
+//                sysUserCheck.setLastUpdateTime(new Date());
+//                result = sysUserCheckService.updateSelective(sysUserCheck);
+//
+//
+//                if (esmUserInternalCheck != null) {
+//                    esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
+//                    result = esmUserInternalCheckService.updateSelective(esmUserInternalCheck);
+//                }
+//                EsmUserAgentCheck esmUserAgentCheck = record.getEsmUserAgent();
+//                if (esmUserAgentCheck != null) {
+//                    result = esmUserAgentCheckService.updateSelective(esmUserAgentCheck);
+//                }
+//            }
+//
+//        }
+//        //返回人员编号给前端 20200506
+//        if (result == 1) {
+//            resultStr = sysUserCheck.getId();
+//        }
+//
+//        return HttpResult.ok(msg, resultStr);
+//    }
 
     @ApiOperation("人员审核 传入人员编码和审核状态: 0 申请审核 1 审核通过 2 审核不通过 3 退回修改")
     @GetMapping(value = "/check")
@@ -241,9 +242,9 @@ public class EsmUserInternalCheckController extends BaseController {
         String userName = getUserName();
 
         String res = "更新成功";
-        Integer cnt = esmUserInternalCheckService.check(userName, checkid, status, remark);
+        boolean boo = sysUserService.check( checkid, Integer.parseInt(status), remark);
 
-        if (cnt != 1) {
+        if (!boo) {
             res = "更新失败";
         }
 
@@ -258,112 +259,35 @@ public class EsmUserInternalCheckController extends BaseController {
      */
     @PostMapping(value = "/findPage")
     public HttpResult findPage(@RequestBody PageRequest pageRequest) {
-        int pageNum = pageRequest.getPageNum();
-        int pageSize = pageRequest.getPageSize();
-        String name = pageRequest.getColumnFilterValue(pageRequest, "name");
-        String deptId = pageRequest.getColumnFilterValue(pageRequest, "deptId");
-        String usertype = pageRequest.getColumnFilterValue(pageRequest, "usertype");
-        String status = pageRequest.getColumnFilterValue(pageRequest, "status");
-        String isteamleader = pageRequest.getColumnFilterValue(pageRequest, "isteamleader");
-        String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
-        String id = pageRequest.getColumnFilterValue(pageRequest, "id");
-        String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate");
-        String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate");
-
-        StringBuffer whereStr = new StringBuffer(" where 1=1 ");
-        ArrayList<Object> params = new ArrayList<Object>();
-        if (!StringUtils.isNullOrEmpty(name)) {
-            whereStr.append(" and t1.name like ?");
-            params.add("%" + name + "%");
-        }
-        if (!StringUtils.isNullOrEmpty(mobile)) {
-            whereStr.append(" and t1.mobile = ?");
-            params.add(mobile);
-        }
-        if (!StringUtils.isNullOrEmpty(id)) {
-            whereStr.append(" and t1.id = ?");
-            params.add(id);
-        }
-
-        if (deptId != null) {
-            String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
-            if (containsSubDept != null && containsSubDept.equalsIgnoreCase("1")) {
-                whereStr.append(" and t1.dept_id like ?");
-                params.add(deptId + "%");
-            } else {
-                whereStr.append(" and t1.dept_id = ?");
-                params.add(deptId);
-            }
-        }
-
-        if (status != null) {
-            //ArrayList<String> ls = new ArrayList<>();
-            String str = " and t2.status in (";
-            String pre = "";
-            String[] sa = status.split(",");
-            for (String s : sa) {
-                str += pre + "'" + s.trim() + "'";
-                pre = ",";
-            }
-            str += ")";
-            whereStr.append(str);
-        }
-
-        if (!StringUtils.isNullOrEmpty(isteamleader)) {
-            whereStr.append(" and t2.isteamleader = ?");
-            params.add(isteamleader.trim());
-        }
 
-        if (!StringUtils.isNullOrEmpty(startdate)) {
-            whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') >= date ?");
-            params.add(startdate);
-        }
-        if (!StringUtils.isNullOrEmpty(enddate)) {
-            whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') <= date ?");
-            params.add(enddate);
-        }
-
-        //后线人员 usertype为A
-        if (usertype != null) {
-            whereStr.append(" and usertype = ?");
-            params.add(usertype.trim());
-        }
-
-        //过滤离司人员  这里del_flag用作离司
-        whereStr.append(" and t1.del_flag <> ?");
-        params.add("1");
-
-        //传入查询条件
-        PageResult pageResult = esmUserInternalCheckService.selectPagingCustom(pageNum, pageSize, whereStr.toString(), params.toArray());
-
-        return HttpResult.ok(pageResult);
-    }
-
-    /**
-     * 根据主键查询
-     *
-     * @param checkid
-     * @return
-     */
-    @ApiOperation("根据主键查询需要审核的人员信息")
-    @GetMapping(value = "/findById")
-    public HttpResult findById(@RequestParam String checkid) {
-        SysUserCheck sysUser = sysUserCheckService.selectByPk(checkid);
-        if (sysUser != null) {
-            sysUser.setPassword("");
-            sysUser.setSalt("");
-        }
-        EsmUserInternalCheck esmUserInternal = esmUserInternalCheckService.selectByPk(checkid);
-        EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(checkid);
-
-        VoEsmUserInternalCheck voEsmUserInternal = new VoEsmUserInternalCheck();
-        voEsmUserInternal.setSysUser(sysUser);
-        voEsmUserInternal.setEsmUserInternal(esmUserInternal);
-        voEsmUserInternal.setEsmUserAgent(esmUserAgent);
-
-        return HttpResult.ok(voEsmUserInternal);
+        return HttpResult.ok(sysUserService.gainUserPage(pageRequest));
     }
 
+//    /**
+//     * 根据主键查询
+//     *
+//     * @param checkid
+//     * @return
+//     */
+//    @ApiOperation("根据主键查询需要审核的人员信息")
+//    @GetMapping(value = "/findById")
+//    public HttpResult findById(@RequestParam String checkid) {
+//        SysUserCheck sysUser = sysUserCheckService.selectByPk(checkid);
+//        if (sysUser != null) {
+//            sysUser.setPassword("");
+//            sysUser.setSalt("");
+//        }
+//        EsmUserInternalCheck esmUserInternal = esmUserInternalCheckService.selectByPk(checkid);
+//        EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(checkid);
+//
+//        VoEsmUserInternalCheck voEsmUserInternal = new VoEsmUserInternalCheck();
+//        voEsmUserInternal.setSysUser(sysUser);
+//        voEsmUserInternal.setEsmUserInternal(esmUserInternal);
+//        voEsmUserInternal.setEsmUserAgent(esmUserAgent);
+//
+//        return HttpResult.ok(voEsmUserInternal);
+//    }
+//
     /**
      * 个代注册
      *
@@ -405,51 +329,47 @@ public class EsmUserInternalCheckController extends BaseController {
         if (sysUser != null) {
             return HttpResult.error("手机号已存在");
         }
-        SysUserCheck sysUserCheck = new SysUserCheck();
-        EsmUserInternalCheck esmUserInternalCheck = new EsmUserInternalCheck();
+//        SysUserCheck sysUserCheck = new SysUserCheck();
+//        EsmUserInternalCheck esmUserInternalCheck = new EsmUserInternalCheck();
         EsmUserInternal esmUserInternal = new EsmUserInternal();
         String nextPK = "001";
         //生成临时表主键 checkid
-        String checkid = String.valueOf(new Date().getTime());
-        sysUserCheck.setCheckid(checkid);
+//        String checkid = String.valueOf(new Date().getTime());
+//        sysUserCheck.setCheckid(checkid);
         //根据机构号获取userid最大值,不需要加人员类型判断  从sys_user获取
-        String maxId = esmUserInternalService.findMaxId(recommender.getDeptId());
+        String maxId = sysUserService.findMaxId(recommender.getDeptId());
         if (StringUtils.isNullOrEmpty(maxId)) {
             nextPK = recommender.getDeptId() + "001";
         } else {
             nextPK = IdGenerate.nextCode(maxId, noCount);
         }
-        sysUserCheck.setId(nextPK);
+//        sysUserCheck.setId(nextPK);
         if (record.getName() != null && !record.getName().equals("")) {
-            sysUserCheck.setName(record.getName());
+//            sysUserCheck.setName(record.getName());
 
             esmUserInternal.setAddressnow(record.getAddressnow());
             esmUserInternal.setIdentity(record.getIdentity());
-            esmUserInternal.setId(sysUserCheck.getId());
-            esmUserInternalCheck.setAddressnow(record.getAddressnow());
-            esmUserInternalCheck.setIdentity(record.getIdentity());
+            esmUserInternal.setId(nextPK);
+//            esmUserInternalCheck.setAddressnow(record.getAddressnow());
+//            esmUserInternalCheck.setIdentity(record.getIdentity());
         } else {
-            sysUserCheck.setName("游客");
+            sysUser.setName("游客");
         }
-        sysUserCheck.setUsertype("B"); //个代
-        sysUserCheck.setMobile(record.getPhone());
-        sysUserCheck.setDeptId(recommender.getDeptId());
+        sysUser.setUsertype("2"); //个代
+        sysUser.setMobile(record.getPhone());
+        sysUser.setDeptId(recommender.getDeptId());
         //密码加密
         String salt = PasswordUtils.getSalt();
         String password = PasswordUtils.encode(record.getPassword(), salt);
-        sysUserCheck.setPassword(password);
-        sysUserCheck.setSalt(salt);
-        sysUserCheck.setStatus(2); //1:正常   0:离司 2:新注册    审核后为1
-
-        sysUserCheck.setCreateBy(nextPK);
-        sysUserCheck.setCreateTime(new Date());
-        sysUserCheck.setLastUpdateBy(nextPK);
-        sysUserCheck.setLastUpdateTime(new Date());
-        result = sysUserCheckService.insertSelective(sysUserCheck);
-
-        // 插入正式表
-        sysUser = new SysUser();
-        BeanUtils.copyProperties(sysUserCheck, sysUser);
+        sysUser.setPassword(password);
+        sysUser.setSalt(salt);
+        sysUser.setStatus(2); //1:正常   0:离司 2:新注册    审核后为1
+
+        sysUser.setCreateBy(nextPK);
+        sysUser.setCreateTime(new Date());
+        sysUser.setLastUpdateBy(nextPK);
+        sysUser.setLastUpdateTime(new Date());
+
         result = sysUserService.save(sysUser)==true?1:0;
 
         //角色配置
@@ -458,49 +378,151 @@ public class EsmUserInternalCheckController extends BaseController {
         userRole.setRoleId(2L);
         sysUserRoleService.save(userRole);
 
-        esmUserInternalCheck.setCheckid(checkid);
-        esmUserInternalCheck.setId(nextPK);
-        esmUserInternalCheck.setIsteamleader("0");
-        esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
-        result = esmUserInternalCheckService.insertSelective(esmUserInternalCheck);
-
-        EsmUserAgentCheck esmUserAgentCheck = new EsmUserAgentCheck();
-        esmUserAgentCheck.setCheckid(checkid);
-        esmUserAgentCheck.setId(nextPK);
-        esmUserAgentCheck.setRecommenderid(recommenderid);
-        esmUserAgentCheck.setRecommendername(record.getRecommendername());
-        result = esmUserAgentCheckService.insertSelective(esmUserAgentCheck);
-        if (record.getName() != null && !record.getName().equals("")) {
-            esmUserInternal.setId(sysUserCheck.getId());
-            esmUserInternalService.updateSelective(esmUserInternal);
 
-        }
         //返回人员编号给前端 20200506
         if (result == 1) {
-            resultStr = sysUserCheck.getId();
+            resultStr = sysUser.getId();
         }
 
         return HttpResult.ok("保存成功", resultStr);
     }
-
-    @PostMapping(value = "/updateName")
-    public HttpResult updateName(HttpServletRequest request, @RequestBody EsmUserCheck record) {
-        //得到操作用户
-        String res = "更新成功";
-        SysUser sysUser = sysUserService.getById(record.getId());
-        EsmUserInternal esmUserInternal = new EsmUserInternal();
-        esmUserInternal.setAddressnow(record.getAddressnow());
-        esmUserInternal.setIdentity(record.getIdentity());
-        esmUserInternal.setId(record.getId());
-
-        sysUser.setName(record.getNamespecial());
-        sysUser.setId(record.getId());
-        sysUserService.updateById(sysUser);
-        Integer integer = esmUserInternalService.updateSelective(esmUserInternal);
-        if (integer != 1) {
-            res = "更新失败";
-        }
-
-        return HttpResult.ok("200", res);
-    }
+//    /**
+//     * 个代注册
+//     *
+//     * @param record
+//     * @return
+//     */
+//    @PostMapping(value = "/userRegist")
+//    public HttpResult userRegist(HttpServletRequest request, @RequestBody UserRegistVO record) {
+//        int noCount = 3;//顺序号是几位的
+//        Integer result = 0;
+//        String resultStr = "";
+//
+//        String phoneMsg = record.getPhoneMsg();
+//        if (StringUtils.isNullOrEmpty(phoneMsg)) {
+//            return HttpResult.error("短信验证码不能为空");
+//        }
+//        // 从session中获取之前保存的短信验证码跟前台传来的验证码进行匹配
+////        Object msg = request.getSession().getAttribute("PHONE_SESSION_KEY");
+//        //从数据库获取最新验证码
+//        String msg = stringRedisTemplate.opsForValue().get(PHONE_VERIFICATION_CODE_KEY + record.getPhone());
+//
+//        if (msg == null || msg.length() == 0) {
+//            return HttpResult.error("短信验证码发送失败");
+//        }
+//
+//        if (!phoneMsg.equals(msg)) {
+//            return HttpResult.error("短信验证码不正确");
+//        }
+//        String recommenderid = record.getRecommenderid();
+//        if (StringUtils.isNullOrEmpty(recommenderid)) {
+//            return HttpResult.error("推荐人ID不能为空");
+//        }
+//        SysUser recommender = sysUserService.getById(recommenderid);
+//        if (recommender == null) {
+//            return HttpResult.error("推荐人信息不存在");
+//        }
+//
+//        SysUser sysUser = sysUserService.findByPhone(record.getPhone());
+//        if (sysUser != null) {
+//            return HttpResult.error("手机号已存在");
+//        }
+//        SysUserCheck sysUserCheck = new SysUserCheck();
+//        EsmUserInternalCheck esmUserInternalCheck = new EsmUserInternalCheck();
+//        EsmUserInternal esmUserInternal = new EsmUserInternal();
+//        String nextPK = "001";
+//        //生成临时表主键 checkid
+//        String checkid = String.valueOf(new Date().getTime());
+//        sysUserCheck.setCheckid(checkid);
+//        //根据机构号获取userid最大值,不需要加人员类型判断  从sys_user获取
+//        String maxId = esmUserInternalService.findMaxId(recommender.getDeptId());
+//        if (StringUtils.isNullOrEmpty(maxId)) {
+//            nextPK = recommender.getDeptId() + "001";
+//        } else {
+//            nextPK = IdGenerate.nextCode(maxId, noCount);
+//        }
+//        sysUserCheck.setId(nextPK);
+//        if (record.getName() != null && !record.getName().equals("")) {
+//            sysUserCheck.setName(record.getName());
+//
+//            esmUserInternal.setAddressnow(record.getAddressnow());
+//            esmUserInternal.setIdentity(record.getIdentity());
+//            esmUserInternal.setId(sysUserCheck.getId());
+//            esmUserInternalCheck.setAddressnow(record.getAddressnow());
+//            esmUserInternalCheck.setIdentity(record.getIdentity());
+//        } else {
+//            sysUserCheck.setName("游客");
+//        }
+//        sysUserCheck.setUsertype("B"); //个代
+//        sysUserCheck.setMobile(record.getPhone());
+//        sysUserCheck.setDeptId(recommender.getDeptId());
+//        //密码加密
+//        String salt = PasswordUtils.getSalt();
+//        String password = PasswordUtils.encode(record.getPassword(), salt);
+//        sysUserCheck.setPassword(password);
+//        sysUserCheck.setSalt(salt);
+//        sysUserCheck.setStatus(2); //1:正常   0:离司 2:新注册    审核后为1
+//
+//        sysUserCheck.setCreateBy(nextPK);
+//        sysUserCheck.setCreateTime(new Date());
+//        sysUserCheck.setLastUpdateBy(nextPK);
+//        sysUserCheck.setLastUpdateTime(new Date());
+//        result = sysUserCheckService.insertSelective(sysUserCheck);
+//
+//        // 插入正式表
+//        sysUser = new SysUser();
+//        BeanUtils.copyProperties(sysUserCheck, sysUser);
+//        result = sysUserService.save(sysUser)==true?1:0;
+//
+//        //角色配置
+//        SysUserRole userRole = new SysUserRole();
+//        userRole.setUserId(nextPK);
+//        userRole.setRoleId(2L);
+//        sysUserRoleService.save(userRole);
+//
+//        esmUserInternalCheck.setCheckid(checkid);
+//        esmUserInternalCheck.setId(nextPK);
+//        esmUserInternalCheck.setIsteamleader("0");
+//        esmUserInternalCheck.setStatus("0");  //0 申请审核 1 审核通过 2 审核不通过 3 退回修改
+//        result = esmUserInternalCheckService.insertSelective(esmUserInternalCheck);
+//
+//        EsmUserAgentCheck esmUserAgentCheck = new EsmUserAgentCheck();
+//        esmUserAgentCheck.setCheckid(checkid);
+//        esmUserAgentCheck.setId(nextPK);
+//        esmUserAgentCheck.setRecommenderid(recommenderid);
+//        esmUserAgentCheck.setRecommendername(record.getRecommendername());
+//        result = esmUserAgentCheckService.insertSelective(esmUserAgentCheck);
+//        if (record.getName() != null && !record.getName().equals("")) {
+//            esmUserInternal.setId(sysUserCheck.getId());
+//            esmUserInternalService.updateSelective(esmUserInternal);
+//
+//        }
+//        //返回人员编号给前端 20200506
+//        if (result == 1) {
+//            resultStr = sysUserCheck.getId();
+//        }
+//
+//        return HttpResult.ok("保存成功", resultStr);
+//    }
+//
+//    @PostMapping(value = "/updateName")
+//    public HttpResult updateName(HttpServletRequest request, @RequestBody EsmUserCheck record) {
+//        //得到操作用户
+//        String res = "更新成功";
+//        SysUser sysUser = sysUserService.getById(record.getId());
+//        EsmUserInternal esmUserInternal = new EsmUserInternal();
+//        esmUserInternal.setAddressnow(record.getAddressnow());
+//        esmUserInternal.setIdentity(record.getIdentity());
+//        esmUserInternal.setId(record.getId());
+//
+//        sysUser.setName(record.getNamespecial());
+//        sysUser.setId(record.getId());
+//        sysUserService.updateById(sysUser);
+//        Integer integer = esmUserInternalService.updateSelective(esmUserInternal);
+//        if (integer != 1) {
+//            res = "更新失败";
+//        }
+//
+//        return HttpResult.ok("200", res);
+//    }
 }

+ 449 - 220
src/main/java/com/ydtech/modules/esm/controller/EsmUserInternalController.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ydtech.constants.SysConstants;
+import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
 import com.ydtech.core.page.BaseController;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageRequest;
@@ -27,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * ---------------------------
@@ -52,8 +54,8 @@ public class EsmUserInternalController extends BaseController {
     @Autowired
     private SysUserCheckService sysUserCheckService;
 
-    @Autowired
-    private EsmUserInternalCheckService esmUserInternalCheckService;
+//    @Autowired
+//    private EsmUserInternalCheckService esmUserInternalCheckService;
 
     @Autowired
     private EsmUserAgentCheckService esmUserAgentCheckService;
@@ -71,7 +73,8 @@ public class EsmUserInternalController extends BaseController {
         if (StringUtils.isNullOrEmpty(record.getId())) {
             return HttpResult.error("id不能为空");
         }
-        esmUserInternalService.updateSelective(record);
+        esmUserInternalService.updateById(record);
+//        esmUserInternalService.updateSelective(record);
         return HttpResult.ok("保存成功");
     }
 
@@ -81,6 +84,7 @@ public class EsmUserInternalController extends BaseController {
 
         List<EsmUserInternal> esmUserInternals = new ArrayList<>();
         List<EsmUserAgent> esmUserAgents = new ArrayList<>();
+        List<String> esmUserAgentIds = new ArrayList<>();
 
         List<SysUserCheck> sysUserChecks = new ArrayList<>();
         List<EsmUserInternalCheck> esmUserInternalChecks = new ArrayList<>();
@@ -99,6 +103,7 @@ public class EsmUserInternalController extends BaseController {
             EsmUserAgent esmUserAgent = new EsmUserAgent();
             esmUserAgent.setId(record.getId());
             esmUserAgents.add(esmUserAgent);
+//            esmUserAgentIds.add(esmUserAgent.getId());
 
             EsmUserInternalCheck esmUserInternalCheck = new EsmUserInternalCheck();
             esmUserInternalCheck.setId(record.getId());
@@ -119,12 +124,14 @@ public class EsmUserInternalController extends BaseController {
         });
 //            sysUserService.delete(records);
 
-        esmUserInternalService.delete(esmUserInternals);
+//        esmUserInternalService.remove(esmUserInternals);
+//        esmUserInternalService.delete(esmUserInternals);
 
-        esmUserAgentService.delete(esmUserAgents);
+        esmUserAgentService.removeBatchByIds(esmUserAgentIds);
+//        esmUserAgentService.delete(esmUserAgents);
 
         sysUserCheckService.delete(sysUserChecks);
-        esmUserInternalCheckService.delete(esmUserInternalChecks);
+//        esmUserInternalCheckService.delete(esmUserInternalChecks);
         esmUserAgentCheckService.delete(esmUserAgentChecks);
 
         return HttpResult.ok("删除成功");
@@ -138,84 +145,90 @@ public class EsmUserInternalController extends BaseController {
      */
     @PostMapping(value = "/findPage")
     public HttpResult findPage(@RequestBody PageRequest pageRequest) {
-        int pageNum = pageRequest.getPageNum();
-        int pageSize = pageRequest.getPageSize();
-        String name = pageRequest.getColumnFilterValue(pageRequest, "name");
-        String deptId = pageRequest.getColumnFilterValue(pageRequest, "deptId");
-        String usertype = pageRequest.getColumnFilterValue(pageRequest, "usertype");
-        String status = pageRequest.getColumnFilterValue(pageRequest, "status");
-        String isteamleader = pageRequest.getColumnFilterValue(pageRequest, "isteamleader");
-        String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
-        String id = pageRequest.getColumnFilterValue(pageRequest, "id");
-        String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate");
-        String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate");
-
-        StringBuffer whereStr = new StringBuffer(" where 1=1 ");
-        ArrayList<Object> params = new ArrayList<Object>();
-        if (!StringUtils.isNullOrEmpty(name)) {
-            whereStr.append(" and t1.name like ?");
-            params.add("%" + name + "%");
-        }
-        if (!StringUtils.isNullOrEmpty(mobile)) {
-            whereStr.append(" and t1.mobile = ?");
-            params.add(mobile);
-        }
-        if (!StringUtils.isNullOrEmpty(id)) {
-            whereStr.append(" and t1.id = ?");
-            params.add(id);
-        }
 
-        if (deptId != null) {
-            String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
-            if (containsSubDept != null && containsSubDept.equalsIgnoreCase("1")) {
-                whereStr.append(" and t1.dept_id like ?");
-                params.add(deptId + "%");
-            } else {
-                whereStr.append(" and t1.dept_id = ?");
-                params.add(deptId);
-            }
-        }
 
-        if (status != null) {
+        return HttpResult.ok(sysUserService.gainUserPage(pageRequest));
 
-            //ArrayList<String> ls = new ArrayList<>();
-            String andStr = " and t2.status in (";
-            String pre = "";
-            String[] sa = status.split(",");
-            for (String s : sa) {
-                andStr += pre + "'" + s.trim() + "'";
-                pre = ",";
-            }
-            andStr += ")";
-            whereStr.append(andStr);
-        }
 
-        if (!StringUtils.isNullOrEmpty(isteamleader)) {
-            whereStr.append(" and t2.isteamleader = ?");
-            params.add(isteamleader.trim());
-        }
-        if (!StringUtils.isNullOrEmpty(startdate)) {
-            whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') >= date ?");
-            params.add(startdate);
-        }
-        if (!StringUtils.isNullOrEmpty(enddate)) {
-            whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') <= date ?");
-            params.add(enddate);
-        }
 
-        //后线人员 usertype为A
-        if (usertype != null) {
-            whereStr.append(" and usertype = ?");
-            params.add(usertype.trim());
-        }
-        //过滤离司人员  这里del_flag用作离司
-        whereStr.append(" and t1.del_flag <> ?");
-        params.add("1");
-
-        //传入查询条件
-        PageResult pageResult = esmUserInternalService.selectPagingCustom(pageNum, pageSize, whereStr.toString(), params.toArray());
-
-        return HttpResult.ok(pageResult);
+//        int pageNum = pageRequest.getPageNum();
+//        int pageSize = pageRequest.getPageSize();
+//        String name = pageRequest.getColumnFilterValue(pageRequest, "name");
+//        String deptId = pageRequest.getColumnFilterValue(pageRequest, "deptId");
+//        String usertype = pageRequest.getColumnFilterValue(pageRequest, "usertype");
+//        String status = pageRequest.getColumnFilterValue(pageRequest, "status");
+//        String isteamleader = pageRequest.getColumnFilterValue(pageRequest, "isteamleader");
+//        String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
+//        String id = pageRequest.getColumnFilterValue(pageRequest, "id");
+//        String startdate = pageRequest.getColumnFilterValue(pageRequest, "startdate");
+//        String enddate = pageRequest.getColumnFilterValue(pageRequest, "enddate");
+//
+//        StringBuffer whereStr = new StringBuffer(" where 1=1 ");
+//        ArrayList<Object> params = new ArrayList<Object>();
+//        if (!StringUtils.isNullOrEmpty(name)) {
+//            whereStr.append(" and t1.name like ?");
+//            params.add("%" + name + "%");
+//        }
+//        if (!StringUtils.isNullOrEmpty(mobile)) {
+//            whereStr.append(" and t1.mobile = ?");
+//            params.add(mobile);
+//        }
+//        if (!StringUtils.isNullOrEmpty(id)) {
+//            whereStr.append(" and t1.id = ?");
+//            params.add(id);
+//        }
+//
+//        if (deptId != null) {
+//            String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
+//            if (containsSubDept != null && containsSubDept.equalsIgnoreCase("1")) {
+//                whereStr.append(" and t1.dept_id like ?");
+//                params.add(deptId + "%");
+//            } else {
+//                whereStr.append(" and t1.dept_id = ?");
+//                params.add(deptId);
+//            }
+//        }
+//
+//        if (status != null) {
+//
+//            //ArrayList<String> ls = new ArrayList<>();
+//            String andStr = " and t2.status in (";
+//            String pre = "";
+//            String[] sa = status.split(",");
+//            for (String s : sa) {
+//                andStr += pre + "'" + s.trim() + "'";
+//                pre = ",";
+//            }
+//            andStr += ")";
+//            whereStr.append(andStr);
+//        }
+//
+//        if (!StringUtils.isNullOrEmpty(isteamleader)) {
+//            whereStr.append(" and t2.isteamleader = ?");
+//            params.add(isteamleader.trim());
+//        }
+//        if (!StringUtils.isNullOrEmpty(startdate)) {
+//            whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') >= date ?");
+//            params.add(startdate);
+//        }
+//        if (!StringUtils.isNullOrEmpty(enddate)) {
+//            whereStr.append(" and DATE_FORMAT(t2.intime,'%Y-%m-%d') <= date ?");
+//            params.add(enddate);
+//        }
+//
+//        //后线人员 usertype为A
+//        if (usertype != null) {
+//            whereStr.append(" and usertype = ?");
+//            params.add(usertype.trim());
+//        }
+//        //过滤离司人员  这里del_flag用作离司
+//        whereStr.append(" and t1.del_flag <> ?");
+//        params.add("1");
+//
+//        //传入查询条件
+//        PageResult pageResult = esmUserInternalService.selectPagingCustom(pageNum, pageSize, whereStr.toString(), params.toArray());
+//
+//        return HttpResult.ok(pageResult);
     }
 
     /**
@@ -259,6 +272,176 @@ public class EsmUserInternalController extends BaseController {
         return HttpResult.ok(userList);
     }
 
+//    /**
+//     * 查询团队人数:我的团队人数,一级团队人数,二级团队人数,三级团队人数,临时用户人数
+//     *
+//     * @param record
+//     * @return
+//     */
+//    @PostMapping("/queryTeamNum")
+//    public HttpResult queryTeamNum(@RequestBody TeamUserQryVO record) {
+//        List<TeamUserVO> teamList = new ArrayList<TeamUserVO>();
+//        StringBuffer sbStr = new StringBuffer(" where 1=1 ");
+//        ArrayList<String> paramList = new ArrayList<String>();
+////        if (!StringUtils.isNullOrEmpty(record.getId())) {
+////            sbStr.append(" and id = ?");
+////            paramList.add(record.getId());
+////        }
+////        if (!StringUtils.isNullOrEmpty(record.getName())) {
+////            sbStr.append(" and name = ?");
+////            paramList.add(record.getName());
+////        }
+////        if (!StringUtils.isNullOrEmpty(record.getMobile())) {
+////            sbStr.append(" and mobile = ?");
+////            paramList.add(record.getMobile());
+////        }
+//
+//        String dateStr = "";
+//        if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//
+//        }
+//        LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+//        lqw.eq(StringUtils.isNotEmpty(record.getId()),SysUser::getId,record.getId());
+//        lqw.eq(StringUtils.isNotEmpty(record.getName()),SysUser::getName,record.getName());
+//        lqw.eq(StringUtils.isNotEmpty(record.getMobile()),SysUser::getMobile,record.getMobile());
+//
+//        List<SysUser> users = sysUserService.list(lqw);
+////        List<SysUser> users = sysUserService.selectList(sbStr.toString(), paramList.toArray());
+//        for (SysUser user : users) {
+//            TeamUserVO teamUserVO = new TeamUserVO();
+//            teamUserVO.setId(user.getId());
+//            teamUserVO.setName(user.getName());
+//            teamUserVO.setDeptid(user.getDeptId());
+//            teamUserVO.setDeptname("");
+//            teamUserVO.setSex(user.getSex());
+//            teamUserVO.setMobile(user.getMobile());
+//            teamUserVO.setJobcode(user.getJobCode());
+//            //判断是否团队长
+////            EsmUserInternal userInternal = esmUserInternalService.selectByPk(user.getId());
+////            if("1".equals(userInternal.getIsteamleader())){
+////                // 查询团队人数
+////                ArrayList<String> param = new ArrayList<>();
+////                param.add(user.getDeptId());
+////                List<SysUser> ls = sysUserService.selectList(" where dept_id=?", param.toArray());
+////                teamUserVO.setTeamnum(ls==null?0:ls.size());
+////                //临时用户人数
+////                teamUserVO.setTempnum(esmUserInternalService.queryTempNum(user.getDeptId()));
+////            }
+//            //一级人数
+//            StringBuffer whereStr = new StringBuffer();
+//            ArrayList<String> params = new ArrayList<String>();
+//            whereStr.append(" where recommenderid=? ");
+//            params.add(user.getId());
+//
+//            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                params.add(record.getStartdate());
+//                params.add(record.getEnddate());
+//            }
+//
+//            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+//            JSONArray objects = JSONObject.parseArray(JSONObject.toJSONString(list));
+//            System.out.println("一级用户" + objects);
+//            double sum1 = 0;
+//            int outSingle1 = 0;
+//            if (list != null && list.size() > 0) {
+//                Map map = queryPrice(record, list);
+//                sum1 = (double) map.get("sum");
+//                outSingle1 = (int) map.get("OutSingle");
+//
+//            }
+//            BigDecimal bs = new BigDecimal(sum1);
+//            double f = bs.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+//
+//            teamUserVO.setList1Premium(f);
+//            teamUserVO.setOutSingle1(outSingle1);
+//            teamUserVO.setLevel1num(list == null ? 0 : list.size());
+//            //二级人数
+//            List<EsmUserAgent> list2 = new ArrayList<>();
+//            double sum2 = 0;
+//            int outSingle2 = 0;
+//            List<EsmUserAgent> ls = null;
+//            for (EsmUserAgent agent : list) {
+//                whereStr = new StringBuffer();
+//                params = new ArrayList<String>();
+//                whereStr.append(" where recommenderid=? ");
+//                params.add(agent.getId());
+//                if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                    whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                    params.add(record.getStartdate());
+//                    params.add(record.getEnddate());
+//                }
+//                ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+//
+//
+//                list2.addAll(ls);
+//
+//            }
+//
+//            if (list2 != null && list2.size() > 0) {
+//                Map map = queryPrice(record, list2);
+//                sum2 = (double) map.get("sum");
+//                outSingle2 = (int) map.get("OutSingle");
+//            }
+//            JSONArray objects1 = JSONObject.parseArray(JSONObject.toJSONString(list2));
+//            BigDecimal b = new BigDecimal(sum2);
+//            double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+//            System.out.println("二级用户" + objects1);
+//            teamUserVO.setLevel2num(list2.size());
+//            teamUserVO.setList2Premium(f1);
+//            teamUserVO.setOutSingle2(outSingle2);
+//            double sum3 = 0;
+//            int outSingle3 = 0;
+//            //三级人数
+//            List<EsmUserAgent> list3 = new ArrayList<>();
+//            for (EsmUserAgent agent : list2) {
+//                whereStr = new StringBuffer();
+//                params = new ArrayList<String>();
+//                whereStr.append(" where recommenderid=? ");
+//                params.add(agent.getId());
+//                if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                    whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                    params.add(record.getStartdate());
+//                    params.add(record.getEnddate());
+//                }
+//                ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+//
+//
+//                list3.addAll(ls);
+//            }
+//            JSONArray objects3 = JSONObject.parseArray(JSONObject.toJSONString(list3));
+//
+//            System.out.println("三级用户" + objects3);
+//
+//            if (list3 != null && list3.size() > 0) {
+//                Map map = queryPrice(record, list3);
+//                sum3 = (double) map.get("sum");
+//                outSingle3 = (int) map.get("OutSingle");
+//
+//            }
+//            BigDecimal bs3 = new BigDecimal(sum3);
+//            double f3 = bs3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+//
+//            teamUserVO.setLevel3num(list3.size());
+//            teamUserVO.setList3Premium(f3);
+//            teamUserVO.setOutSingle3(outSingle3);
+//            //临时用户:推荐的未生效人员
+//            List<String> lss = esmUserInternalService.queryTeamUser(user.getId());
+//            teamUserVO.setTempnum(lss == null ? 0 : lss.size());
+//            int teamnum = teamUserVO.getLevel1num() + teamUserVO.getLevel2num() + teamUserVO.getLevel3num() + teamUserVO.getTempnum();
+//            teamUserVO.setTeamnum(teamnum);
+//
+//            BigDecimal countPre = new BigDecimal(teamUserVO.getList1Premium() + teamUserVO.getList2Premium() + teamUserVO.getList3Premium());
+//            double countPremium = countPre.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+//            teamUserVO.setCountPremium(countPremium);
+//
+//            teamUserVO.setCountSingle(teamUserVO.getOutSingle1() + teamUserVO.getOutSingle2() + teamUserVO.getOutSingle3());
+//
+//            teamList.add(teamUserVO);
+//        }
+//
+//        return HttpResult.ok(teamList);
+//    }
     /**
      * 查询团队人数:我的团队人数,一级团队人数,二级团队人数,三级团队人数,临时用户人数
      *
@@ -314,19 +497,29 @@ public class EsmUserInternalController extends BaseController {
 //                //临时用户人数
 //                teamUserVO.setTempnum(esmUserInternalService.queryTempNum(user.getDeptId()));
 //            }
+
             //一级人数
-            StringBuffer whereStr = new StringBuffer();
-            ArrayList<String> params = new ArrayList<String>();
-            whereStr.append(" where recommenderid=? ");
-            params.add(user.getId());
+//            StringBuffer whereStr = new StringBuffer();
+//            ArrayList<String> params = new ArrayList<String>();
+//            whereStr.append(" where recommenderid=? ");
+//            params.add(user.getId());
+//
+//            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                params.add(record.getStartdate());
+//                params.add(record.getEnddate());
+//            }
+//            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
 
-            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
-                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                params.add(record.getStartdate());
-                params.add(record.getEnddate());
-            }
+            //临时用户:推荐的未生效人员
+//            List<String> lss = esmUserInternalService.queryTeamUser(user.getId());
+            List<TeamUserVONew> lss = new ArrayList<>();
+
+
+
+            TeamUserQryVO vo = record;
+            List<TeamUserVONew> list = esmUserAgentService.gainBelowUserByUserId(vo);
 
-            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
             JSONArray objects = JSONObject.parseArray(JSONObject.toJSONString(list));
             System.out.println("一级用户" + objects);
             double sum1 = 0;
@@ -336,6 +529,9 @@ public class EsmUserInternalController extends BaseController {
                 sum1 = (double) map.get("sum");
                 outSingle1 = (int) map.get("OutSingle");
 
+                List lsList = list.stream().map(s -> s.getApprovalStatus()).filter(s -> !s.equals(ApprovalStatusEnum.AS1.getCode())).collect(Collectors.toList());
+                lss.addAll(lsList);
+
             }
             BigDecimal bs = new BigDecimal(sum1);
             double f = bs.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
@@ -344,24 +540,14 @@ public class EsmUserInternalController extends BaseController {
             teamUserVO.setOutSingle1(outSingle1);
             teamUserVO.setLevel1num(list == null ? 0 : list.size());
             //二级人数
-            List<EsmUserAgent> list2 = new ArrayList<>();
+            List<TeamUserVONew> list2 = new ArrayList<>();
             double sum2 = 0;
             int outSingle2 = 0;
-            List<EsmUserAgent> ls = null;
-            for (EsmUserAgent agent : list) {
-                whereStr = new StringBuffer();
-                params = new ArrayList<String>();
-                whereStr.append(" where recommenderid=? ");
-                params.add(agent.getId());
-                if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
-                    whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                    params.add(record.getStartdate());
-                    params.add(record.getEnddate());
-                }
-                ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+            for (TeamUserVONew oneUser : list) {
+                vo.setId(oneUser.getUserId());
+                list2.addAll(esmUserAgentService.gainBelowUserByUserId(vo));
 
-
-                list2.addAll(ls);
+//                list2.addAll(ls);
 
             }
 
@@ -369,6 +555,8 @@ public class EsmUserInternalController extends BaseController {
                 Map map = queryPrice(record, list2);
                 sum2 = (double) map.get("sum");
                 outSingle2 = (int) map.get("OutSingle");
+                List lsList2 = list2.stream().map(s -> s.getApprovalStatus()).filter(s -> !s.equals(ApprovalStatusEnum.AS1.getCode())).collect(Collectors.toList());
+                lss.addAll(lsList2);
             }
             JSONArray objects1 = JSONObject.parseArray(JSONObject.toJSONString(list2));
             BigDecimal b = new BigDecimal(sum2);
@@ -380,21 +568,12 @@ public class EsmUserInternalController extends BaseController {
             double sum3 = 0;
             int outSingle3 = 0;
             //三级人数
-            List<EsmUserAgent> list3 = new ArrayList<>();
-            for (EsmUserAgent agent : list2) {
-                whereStr = new StringBuffer();
-                params = new ArrayList<String>();
-                whereStr.append(" where recommenderid=? ");
-                params.add(agent.getId());
-                if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
-                    whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                    params.add(record.getStartdate());
-                    params.add(record.getEnddate());
-                }
-                ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+            List<TeamUserVONew> list3 = new ArrayList<>();
+            for (TeamUserVONew twoUser : list2) {
 
+                vo.setId(twoUser.getUserId());
+                list3.addAll(esmUserAgentService.gainBelowUserByUserId(vo));
 
-                list3.addAll(ls);
             }
             JSONArray objects3 = JSONObject.parseArray(JSONObject.toJSONString(list3));
 
@@ -404,6 +583,8 @@ public class EsmUserInternalController extends BaseController {
                 Map map = queryPrice(record, list3);
                 sum3 = (double) map.get("sum");
                 outSingle3 = (int) map.get("OutSingle");
+                List lsList3 = list3.stream().map(s -> s.getApprovalStatus()).filter(s -> !s.equals(ApprovalStatusEnum.AS1.getCode())).collect(Collectors.toList());
+                lss.addAll(lsList3);
 
             }
             BigDecimal bs3 = new BigDecimal(sum3);
@@ -412,8 +593,8 @@ public class EsmUserInternalController extends BaseController {
             teamUserVO.setLevel3num(list3.size());
             teamUserVO.setList3Premium(f3);
             teamUserVO.setOutSingle3(outSingle3);
-            //临时用户:推荐的未生效人员
-            List<String> lss = esmUserInternalService.queryTeamUser(user.getId());
+//
+
             teamUserVO.setTempnum(lss == null ? 0 : lss.size());
             int teamnum = teamUserVO.getLevel1num() + teamUserVO.getLevel2num() + teamUserVO.getLevel3num() + teamUserVO.getTempnum();
             teamUserVO.setTeamnum(teamnum);
@@ -430,101 +611,101 @@ public class EsmUserInternalController extends BaseController {
         return HttpResult.ok(teamList);
     }
 
-    /**
-     * 通过工号查询该人员所有下级人员信息(一级、二级、三级、临时团队)
-     *
-     * @param record
-     * @return
-     */
-    @PostMapping("/queryTeamUser")
-    public HttpResult queryTeamUser(@RequestBody TeamUserQryVO record) {
-        List<VoEsmUserInternal> level1List = new ArrayList<VoEsmUserInternal>();
-        List<VoEsmUserInternal> level2List = new ArrayList<VoEsmUserInternal>();
-        List<VoEsmUserInternal> level3List = new ArrayList<VoEsmUserInternal>();
-        List<VoEsmUserInternalCheck> tempList = new ArrayList<VoEsmUserInternalCheck>();
-        SysUser user = sysUserService.getById(record.getId());
-        //一级人数
-//        List<EsmUserAgent> list = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{id});
-        StringBuffer whereStr = new StringBuffer();
-        ArrayList<String> params = new ArrayList<String>();
-        whereStr.append(" where recommenderid=? ");
-        params.add(user.getId());
-        if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
-            whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-            params.add(record.getStartdate());
-            params.add(record.getEnddate());
-        }
-        List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-
-
-        //二级人数
-        List<EsmUserAgent> list2 = new ArrayList<>();
-        for (EsmUserAgent agent : list) {
-            //  level1List.add(findUserById(agent.getId()));
-            level1List.add(findUserBy(agent.getId(), record, list));
-            whereStr = new StringBuffer();
-            params = new ArrayList<String>();
-            whereStr.append(" where recommenderid=? ");
-            params.add(agent.getId());
-            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
-                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                params.add(record.getStartdate());
-                params.add(record.getEnddate());
-            }
-            List<EsmUserAgent> ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-//            List<EsmUserAgent> ls = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{agent.getId()});
-            list2.addAll(ls);
-        }
-        //三级人数
-        List<EsmUserAgent> list3 = new ArrayList<>();
-        for (EsmUserAgent agent : list2) {
-            // level2List.add(findUserById(agent.getId()));
-            level2List.add(findUserBy(agent.getId(), record, list2));
-            whereStr = new StringBuffer();
-            params = new ArrayList<String>();
-            whereStr.append(" where recommenderid=? ");
-            params.add(agent.getId());
-            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
-                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                params.add(record.getStartdate());
-                params.add(record.getEnddate());
-            }
-            List<EsmUserAgent> ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-//            List<EsmUserAgent> ls = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{agent.getId()});
-            list3.addAll(ls);
-        }
-        //三级人员信息
-        for (EsmUserAgent agent : list3) {
-            // level3List.add(findUserById(agent.getId()));
-            level3List.add(findUserBy(agent.getId(), record, list3));
-
-        }
-
-        //临时用户:推荐的未生效人员
-        List<String> ls = esmUserInternalService.queryTeamUser(record.getId());
-        for (String userId : ls) {
-            SysUserCheck sysUser = sysUserCheckService.selectByPk(userId);
-            if (sysUser != null) {
-                sysUser.setPassword("");
-                sysUser.setSalt("");
-            }
-            EsmUserInternalCheck esmUserInternal = esmUserInternalCheckService.selectByPk(userId);
-            EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(userId);
-
-            VoEsmUserInternalCheck voEsmUserInternal = new VoEsmUserInternalCheck();
-            voEsmUserInternal.setSysUser(sysUser);
-            voEsmUserInternal.setEsmUserInternal(esmUserInternal);
-            voEsmUserInternal.setEsmUserAgent(esmUserAgent);
-            tempList.add(voEsmUserInternal);
-        }
-
-        Map map = new HashMap<>();
-        map.put("level1", level1List);
-        map.put("level2", level2List);
-        map.put("level3", level3List);
-        map.put("temp", tempList);
-        return HttpResult.ok(map);
-    }
+//    /**
+//     * 通过工号查询该人员所有下级人员信息(一级、二级、三级、临时团队)
+//     *
+//     * @param record
+//     * @return
+//     */
+//    @PostMapping("/queryTeamUser")
+//    public HttpResult queryTeamUser(@RequestBody TeamUserQryVO record) {
+//        List<VoEsmUserInternal> level1List = new ArrayList<VoEsmUserInternal>();
+//        List<VoEsmUserInternal> level2List = new ArrayList<VoEsmUserInternal>();
+//        List<VoEsmUserInternal> level3List = new ArrayList<VoEsmUserInternal>();
+//        List<VoEsmUserInternalCheck> tempList = new ArrayList<VoEsmUserInternalCheck>();
+//        SysUser user = sysUserService.getById(record.getId());
+//        //一级人数
+////        List<EsmUserAgent> list = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{id});
+//        StringBuffer whereStr = new StringBuffer();
+//        ArrayList<String> params = new ArrayList<String>();
+//        whereStr.append(" where recommenderid=? ");
+//        params.add(user.getId());
+//        if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//            whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//            params.add(record.getStartdate());
+//            params.add(record.getEnddate());
+//        }
+//        List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+//
+//
+//        //二级人数
+//        List<EsmUserAgent> list2 = new ArrayList<>();
+//        for (EsmUserAgent agent : list) {
+//            //  level1List.add(findUserById(agent.getId()));
+//            level1List.add(findUserBy(agent.getId(), record, list));
+//            whereStr = new StringBuffer();
+//            params = new ArrayList<String>();
+//            whereStr.append(" where recommenderid=? ");
+//            params.add(agent.getId());
+//            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                params.add(record.getStartdate());
+//                params.add(record.getEnddate());
+//            }
+//            List<EsmUserAgent> ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+////            List<EsmUserAgent> ls = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{agent.getId()});
+//            list2.addAll(ls);
+//        }
+//        //三级人数
+//        List<EsmUserAgent> list3 = new ArrayList<>();
+//        for (EsmUserAgent agent : list2) {
+//            // level2List.add(findUserById(agent.getId()));
+//            level2List.add(findUserBy(agent.getId(), record, list2));
+//            whereStr = new StringBuffer();
+//            params = new ArrayList<String>();
+//            whereStr.append(" where recommenderid=? ");
+//            params.add(agent.getId());
+//            if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                params.add(record.getStartdate());
+//                params.add(record.getEnddate());
+//            }
+//            List<EsmUserAgent> ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+////            List<EsmUserAgent> ls = esmUserAgentService.selectList(" where recommenderid=?",new Object[]{agent.getId()});
+//            list3.addAll(ls);
+//        }
+//        //三级人员信息
+//        for (EsmUserAgent agent : list3) {
+//            // level3List.add(findUserById(agent.getId()));
+//            level3List.add(findUserBy(agent.getId(), record, list3));
+//
+//        }
+//
+//        //临时用户:推荐的未生效人员
+//        List<String> ls = esmUserInternalService.queryTeamUser(record.getId());
+//        for (String userId : ls) {
+//            SysUserCheck sysUser = sysUserCheckService.selectByPk(userId);
+//            if (sysUser != null) {
+//                sysUser.setPassword("");
+//                sysUser.setSalt("");
+//            }
+//            EsmUserInternalCheck esmUserInternal = esmUserInternalCheckService.selectByPk(userId);
+//            EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(userId);
+//
+//            VoEsmUserInternalCheck voEsmUserInternal = new VoEsmUserInternalCheck();
+//            voEsmUserInternal.setSysUser(sysUser);
+//            voEsmUserInternal.setEsmUserInternal(esmUserInternal);
+//            voEsmUserInternal.setEsmUserAgent(esmUserAgent);
+//            tempList.add(voEsmUserInternal);
+//        }
+//
+//        Map map = new HashMap<>();
+//        map.put("level1", level1List);
+//        map.put("level2", level2List);
+//        map.put("level3", level3List);
+//        map.put("temp", tempList);
+//        return HttpResult.ok(map);
+//    }
 
     /**
      * 根据主键查询
@@ -545,8 +726,8 @@ public class EsmUserInternalController extends BaseController {
         SysUser sysUser = sysUserService.getById(id);
         sysUser.setPassword("");
         sysUser.setSalt("");
-        EsmUserInternal esmUserInternal = esmUserInternalService.selectByPk(id);
-        EsmUserAgent esmUserAgent = esmUserAgentService.selectByPk(id);
+        EsmUserInternal esmUserInternal = esmUserInternalService.getById(id);
+        EsmUserAgent esmUserAgent = esmUserAgentService.getById(id);
 
         VoEsmUserInternal voEsmUserInternal = new VoEsmUserInternal();
         voEsmUserInternal.setSysUser(sysUser);
@@ -556,7 +737,7 @@ public class EsmUserInternalController extends BaseController {
         return voEsmUserInternal;
     }
 
-    public Map queryPrice(TeamUserQryVO record, List<EsmUserAgent> list) {
+    public Map queryPrice(TeamUserQryVO record, List<TeamUserVONew> list) {
         Map map = new HashMap();
         List<InsOrder> orderList = null;
         double sum = 0;
@@ -570,7 +751,7 @@ public class EsmUserInternalController extends BaseController {
                 param = new ArrayList<String>();
                 whereStrs.append(" where orderstatus=7 ");
                 whereStrs.append(" and userid=? ");
-                param.add(list.get(i).getId());
+                param.add(list.get(i).getUserId());
                 if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
                     whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
                     param.add(record.getStartdate());
@@ -600,6 +781,50 @@ public class EsmUserInternalController extends BaseController {
 
         return map;
     }
+//    public Map queryPrice(TeamUserQryVO record, List<EsmUserAgent> list) {
+//        Map map = new HashMap();
+//        List<InsOrder> orderList = null;
+//        double sum = 0;
+//        int count = 0;
+//        if (list != null && list.size() > 0) {
+//            for (int i = 0; i < list.size(); i++) {
+//
+//                StringBuffer whereStrs = new StringBuffer();
+//                ArrayList<String> param = new ArrayList<String>();
+//                whereStrs = new StringBuffer();
+//                param = new ArrayList<String>();
+//                whereStrs.append(" where orderstatus=7 ");
+//                whereStrs.append(" and userid=? ");
+//                param.add(list.get(i).getId());
+//                if (!StringUtils.isNullOrEmpty(record.getStartdate()) && !StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                    whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                    param.add(record.getStartdate());
+//                    param.add(record.getEnddate());
+//                }
+//                orderList = insOrderService.selectList(whereStrs.toString(), param.toArray());
+//                if (orderList != null && orderList.size() > 0) {
+//                    count = count + 1;
+//                    for (int j = 0; j < orderList.size(); j++) {
+//                        double sumpremium = orderList.get(j).getSumpremium();
+//                        double taxamount = orderList.get(j).getTaxamount();
+//                        if (sumpremium > 0) {
+//                            sum = sum + sumpremium - taxamount;
+//
+//                        }
+//
+//                    }
+//                    System.out.println("大小" + orderList.size());
+//
+//                }
+//            }
+//        }
+//        map.put("OutSingle", count);
+//        map.put("sum", sum);
+//        System.out.println("总共===" + count);
+//
+//
+//        return map;
+//    }
 
     private TeamUserCountPriceVO queryBillPrice(TeamUserQryVO record, String id) {
         Map map = new HashMap();
@@ -675,8 +900,8 @@ public class EsmUserInternalController extends BaseController {
         SysUser sysUser = sysUserService.getById(id);
         sysUser.setPassword("");
         sysUser.setSalt("");
-        EsmUserInternal esmUserInternal = esmUserInternalService.selectByPk(id);
-        EsmUserAgent esmUserAgent = esmUserAgentService.selectByPk(id);
+        EsmUserInternal esmUserInternal = esmUserInternalService.getById(id);
+        EsmUserAgent esmUserAgent = esmUserAgentService.getById(id);
         TeamUserCountPriceVO teamUserCountPriceVO = queryBillPrice(record, id);
         VoEsmUserInternal voEsmUserInternal = new VoEsmUserInternal();
         voEsmUserInternal.setSysUser(sysUser);
@@ -686,4 +911,8 @@ public class EsmUserInternalController extends BaseController {
 
         return voEsmUserInternal;
     }
+
+
+
+
 }

+ 58 - 0
src/main/java/com/ydtech/modules/esm/dao/EsmUserAgentMapper.java

@@ -0,0 +1,58 @@
+package com.ydtech.modules.esm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.vo.SysUserVO;
+import com.ydtech.modules.esm.model.EsmUserAgent;
+import com.ydtech.modules.esm.vo.TeamUserVONew;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+@Repository
+public interface EsmUserAgentMapper extends BaseMapper<EsmUserAgent> {
+
+    //    String slq1 = "select t.id, t.recommenderid, t.recommendername, t.leaderupid, t.leaderupname, t.grouppersonid, t.grouppersonname, t.deppersonid, t.deppersonname, t.isshowteam, t.isshowsalesroom from esm_user_agent t ";
+//    String whereSql1 = " where 1=1 " +
+//            "<if test='m.recommenderId!=\"\" '>" +
+//            "  and recommenderid = #{m.recommenderId}" +
+//            "</if> " +
+//            "<if test='m.startDate!=\"\" and m.endDate!=\"\" '>" +
+//            " exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date #{m.startDate} and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date #{m.endDate}) " +
+//            "</if> "
+//
+//            ;
+    String slq1 = "select t2.id as userId,t1.recommenderid as recommenderId,t2.approval_status as approvalStatus " +
+            " from esm_user_agent t1" +
+            " left join sys_user t2 on t1.id = t2.id" +
+            " left join esm_user_internal t3 on t1.id = t3.id";
+    String whereSql1 = " where 1=1 " +
+            "<if test='m.recommenderId!=\"\" '>" +
+            "  and t1.recommenderid = #{m.recommenderId}" +
+            "</if> " +
+            "<if test='m.startDate!=\"\" and m.endDate!=\"\" '>" +
+            " and t3.intime BETWEEN #{m.startDate} and #{m.endDate} " +
+//            " and DATE_FORMAT(t3.intime,'%Y-%m-%d') >= date #{m.startDate} and DATE_FORMAT(t3.intime,'%Y-%m-%d') <= date #{m.endDate}) " +
+            "</if> ";
+
+
+    String sql2 = "select id from esm_user_agent_check a where a.recommenderid=#{id} and not exists (select 1 from esm_user_agent t where t.id=a.id)";
+
+
+    @Select({"<script>",slq1,whereSql1,"</script>"})
+    List<TeamUserVONew> gainBelowUserByUserId(@Param("m") Map m);
+//    @Select(slq1 + whereSql1)
+//    List<EsmUserAgent> gainInternalUserByDeptId(@Param("m") Map m);
+
+    @Select(sql2)
+    List<String> queryTeamUser(@Param("id") String id);
+
+
+}
+
+
+
+

+ 101 - 0
src/main/java/com/ydtech/modules/esm/dao/EsmUserInternalMapper.java

@@ -0,0 +1,101 @@
+package com.ydtech.modules.esm.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.esm.model.EsmUserInternal;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface EsmUserInternalMapper extends BaseMapper<EsmUserInternal> {
+
+//    String internalUserSql = "select t.id,t.name,t.dept_id deptid,t2.name deptname,t3.id comid,t3.name comname,t.status " +
+//            "from sys_user t left join sys_dept t2 on t.dept_id=t2.id " +
+//            "left join sys_dept t3 on t2.parent_id=t3.id " +
+//            "left join esm_user_internal a on t.id=a.id " +
+//            "where t.id=#{userId}";
+//
+//    String internalUserByDeptIdSql = "select t1.id,t1.name,t1.dept_id deptid,sd.name deptname,sd2.id comid,sd2.name comname,t2.status " +
+//            "from sys_user t1 left join esm_user_internal t2 on t1.id=t2.id " +
+//            "LEFT JOIN sys_dept sd ON t1.dept_id=sd.id " +
+//            "LEFT JOIN sys_dept sd2 ON sd2.id=sd.parent_id " +
+//            "where 1=1  and t2.isteamleader = '1' and t1.dept_id=#{deptId}";
+//
+//
+//    String selectUserParamSql = "select su.id as userId,su.name,su.sex,su.mobile,su.status\n" +
+//            ",sd.id as deptId,sd.name as deptName\n" +
+//            ",psd.id as pDeptId,psd.name as pDeptName\n" +
+//            ",dict.label as jobName\n" +
+//            ",dict2.label as approvalStatus";
+//
+//
+//    String selectUserFromSql = " from sys_user su \n" +
+//            "left JOIN sys_dept sd on su.dept_id=sd.id\n" +
+//            "left join sys_dept psd on sd.parent_id=psd.id\n" +
+//            "left join sys_dict dict on dict.value=su.job_code\n" +
+//            "left join sys_dict dict2 on dict2.value=su.approval_status\n" +
+//            "where 1=1\n" +
+//            "and sd.id &lt;&gt; '' \n" +
+//            "AND dict.itemname = 'jobcode'\n" +
+//            "AND dict2.itemname = 'approval'";
+//
+//    String selectUserFromWhereSql = " " +
+//            "<if test='page.columnFilters.usertype !=null and page.columnFilters.usertype.value!=\"\" and page.columnFilters.usertype.value!=null '>" +
+//            "  and su.usertype = #{page.columnFilters.usertype.value}" +
+//            "</if> " +
+//            "<if test='page.columnFilters.approvalStatus !=null and page.columnFilters.approvalStatus.value!=\"\" and page.columnFilters.approvalStatus.value!=null '>" +
+//            " and su.approval_status = #{page.columnFilters.approvalStatus.value}" +
+//            "</if> " +
+//            "<if test='page.columnFilters.realName !=null and page.columnFilters.realName.value!=\"\" and page.columnFilters.realName.value!=null '> " +
+//            " and su.name like concat('%',#{page.columnFilters.realName.value},'%')" +
+//            "</if> " +
+//            "<if test='page.columnFilters.userId !=null and page.columnFilters.userId.value!=\"\" and page.columnFilters.userId.value!=null '>" +
+//            " and su.id = #{page.columnFilters.userId.value}" +
+//            "</if> " +
+//            "<if test='page.columnFilters.mobile !=null and page.columnFilters.mobile.value!=\"\" and page.columnFilters.mobile.value!=null '>" +
+//            " and su.mobile = #{page.columnFilters.mobile.value}" +
+//            "</if> " +
+//            "<if test='page.columnFilters.delFlag !=null and page.columnFilters.delFlag.value!=\"\" and page.columnFilters.delFlag.value!=null '>" +
+//            " and su.del_flag = #{page.columnFilters.delFlag.value}" +
+//            "</if> " +
+//            "<if test='page.columnFilters.deptId !=null and page.columnFilters.deptId.value!=\"\" and page.columnFilters.deptId.value!=null '>" +
+//            " and su.dept_id like concat('%',#{page.columnFilters.deptId.value},'%')" +
+//            "</if> " +
+//            "";
+//
+//
+////    String selectUserFromWhereSql = " " +
+////            " and su.usertype = #{page.columnFilters.usertype.value}" +
+////            " and su.status = #{page.columnFilters.status.value}" +
+////            " and su.name like concat('%',#{page.columnFilters.name.value},'%')" +
+////            " and su.id = #{page.columnFilters.userId.value}" +
+////            " and su.mobile = #{page.columnFilters.mobile.value}" +
+////            "";
+//
+//
+//    @Select(internalUserSql)
+//    SysUserVO gainInternalUser(@Param("userId") String userId);
+//
+//
+//    @Select(internalUserByDeptIdSql)
+//    SysUserVO gainInternalUserByDeptId(@Param("deptId") String deptId);
+//
+//
+//    //    @Select("select * from (" + selectUserParamSql + selectUserFromSql + selectUserFromWhereSql + " limit #{page.pageNum},#{page.pageSize} ) aaa")
+//    @Select({"<script>",
+//            "select * from (",
+//            selectUserParamSql,
+//            selectUserFromSql,
+//            selectUserFromWhereSql,
+//            " limit #{page.pageNum},#{page.pageSize} ) aaa",
+//            "</script>"})
+//    List<SysUserBaseVO> gainUserBaseInfo(@Param("page") PageRequest pageRequest);
+//
+//
+//    //    @Select("select count(1) " + selectUserFromSql + selectUserFromWhereSql)
+//    @Select({"<script>","select count(1) ",selectUserFromSql,selectUserFromWhereSql,"</script>"})
+//    int gainUserBaseInfoCount(@Param("page") PageRequest pageRequest);
+
+}
+
+
+
+

+ 5 - 0
src/main/java/com/ydtech/modules/esm/model/EsmUserAgent.java

@@ -1,12 +1,17 @@
 package com.ydtech.modules.esm.model;
 
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
 import java.io.Serializable;
 
 
+@TableName(value = "esm_user_agent")
 public class EsmUserAgent implements Serializable {
 
     private static final long serialVersionUID = 5136325897342636490L;
 
+    @TableId(value = "id")
     private String id;
     private String recommenderid;
     private String recommendername;

+ 50 - 50
src/main/java/com/ydtech/modules/esm/model/EsmUserCheck.java

@@ -1,50 +1,50 @@
-package com.ydtech.modules.esm.model;
-
-import java.util.Date;
-
-/**
- * @ClassName EsmUserCheck
- * @Description: TODO
- * @Author
- * @Date 2021/6/24
- **/
-public class EsmUserCheck {
-
-    private String id;
-    private String identity;
-    private String namespecial;
-
-    private String addressnow;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getIdentity() {
-        return identity;
-    }
-
-    public void setIdentity(String identity) {
-        this.identity = identity;
-    }
-
-    public String getNamespecial() {
-        return namespecial;
-    }
-
-    public void setNamespecial(String namespecial) {
-        this.namespecial = namespecial;
-    }
-
-    public String getAddressnow() {
-        return addressnow;
-    }
-
-    public void setAddressnow(String addressnow) {
-        this.addressnow = addressnow;
-    }
-}
+//package com.ydtech.modules.esm.model;
+//
+//import java.util.Date;
+//
+///**
+// * @ClassName EsmUserCheck
+// * @Description: TODO
+// * @Author
+// * @Date 2021/6/24
+// **/
+//public class EsmUserCheck {
+//
+//    private String id;
+//    private String identity;
+//    private String namespecial;
+//
+//    private String addressnow;
+//
+//    public String getId() {
+//        return id;
+//    }
+//
+//    public void setId(String id) {
+//        this.id = id;
+//    }
+//
+//    public String getIdentity() {
+//        return identity;
+//    }
+//
+//    public void setIdentity(String identity) {
+//        this.identity = identity;
+//    }
+//
+//    public String getNamespecial() {
+//        return namespecial;
+//    }
+//
+//    public void setNamespecial(String namespecial) {
+//        this.namespecial = namespecial;
+//    }
+//
+//    public String getAddressnow() {
+//        return addressnow;
+//    }
+//
+//    public void setAddressnow(String addressnow) {
+//        this.addressnow = addressnow;
+//    }
+//}

+ 9 - 294
src/main/java/com/ydtech/modules/esm/model/EsmUserInternal.java

@@ -1,13 +1,22 @@
 package com.ydtech.modules.esm.model;
 
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
 import java.io.Serializable;
 import java.util.Date;
 
 
+@TableName(value = "esm_user_internal")
+@Data
+@ApiModel
 public class EsmUserInternal implements Serializable {
 
     private static final long serialVersionUID = 5053893395186078389L;
 
+    @TableId(value = "id")
     private String id;
     private String addressnow;
     private String nations;
@@ -46,301 +55,7 @@ public class EsmUserInternal implements Serializable {
     private String whichteam;
     private String remark;
 
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getAddressnow() {
-        return addressnow;
-    }
-
-    public void setAddressnow(String addressnow) {
-        this.addressnow = addressnow;
-    }
-
-    public String getNations() {
-        return nations;
-    }
-
-    public void setNations(String nations) {
-        this.nations = nations;
-    }
-
-    public String getPoliticalstatus() {
-        return politicalstatus;
-    }
-
-    public void setPoliticalstatus(String politicalstatus) {
-        this.politicalstatus = politicalstatus;
-    }
-
-    public String getCollege() {
-        return college;
-    }
-
-    public void setCollege(String college) {
-        this.college = college;
-    }
-
-    public String getIdentity() {
-        return identity;
-    }
-
-    public void setIdentity(String identity) {
-        this.identity = identity;
-    }
-
-    public String getEducation() {
-        return education;
-    }
-
-    public void setEducation(String education) {
-        this.education = education;
-    }
-
-    public String getBankname() {
-        return bankname;
-    }
-
-    public void setBankname(String bankname) {
-        this.bankname = bankname;
-    }
-
-    public String getAccountno() {
-        return accountno;
-    }
-
-    public void setAccountno(String accountno) {
-        this.accountno = accountno;
-    }
-
-    public String getAddressresident() {
-        return addressresident;
-    }
-
-    public void setAddressresident(String addressresident) {
-        this.addressresident = addressresident;
-    }
-
-    public String getHealth() {
-        return health;
-    }
-
-    public void setHealth(String health) {
-        this.health = health;
-    }
-
-    public String getPostalcode() {
-        return postalcode;
-    }
-
-    public void setPostalcode(String postalcode) {
-        this.postalcode = postalcode;
-    }
-
-    public String getPhonehouse() {
-        return phonehouse;
-    }
-
-    public void setPhonehouse(String phonehouse) {
-        this.phonehouse = phonehouse;
-    }
-
-    public Date getCollegetm() {
-        return collegetm;
-    }
-
-    public void setCollegetm(Date collegetm) {
-        this.collegetm = collegetm;
-    }
-
-    public String getSpeciality() {
-        return speciality;
-    }
-
-    public void setSpeciality(String speciality) {
-        this.speciality = speciality;
-    }
-
-    public String getNativeplace() {
-        return nativeplace;
-    }
-
-    public void setNativeplace(String nativeplace) {
-        this.nativeplace = nativeplace;
-    }
-
-    public String getWorktype() {
-        return worktype;
-    }
-
-    public void setWorktype(String worktype) {
-        this.worktype = worktype;
-    }
-
-    public String getBlood() {
-        return blood;
-    }
-
-    public void setBlood(String blood) {
-        this.blood = blood;
-    }
-
-    public String getSaleno() {
-        return saleno;
-    }
-
-    public void setSaleno(String saleno) {
-        this.saleno = saleno;
-    }
-
-    public String getOrglast() {
-        return orglast;
-    }
-
-    public void setOrglast(String orglast) {
-        this.orglast = orglast;
-    }
-
-    public String getJoblast() {
-        return joblast;
-    }
-
-    public void setJoblast(String joblast) {
-        this.joblast = joblast;
-    }
-
-    public String getHobby() {
-        return hobby;
-    }
-
-    public void setHobby(String hobby) {
-        this.hobby = hobby;
-    }
-
-    public String getNamespecial() {
-        return namespecial;
-    }
-
-    public void setNamespecial(String namespecial) {
-        this.namespecial = namespecial;
-    }
-
-    public String getPhonespecial() {
-        return phonespecial;
-    }
-
-    public void setPhonespecial(String phonespecial) {
-        this.phonespecial = phonespecial;
-    }
-
-    public String getIntimes() {
-        return intimes;
-    }
-
-    public void setIntimes(String intimes) {
-        this.intimes = intimes;
-    }
-
-    public Date getContracttime() {
-        return contracttime;
-    }
-
-    public void setContracttime(Date contracttime) {
-        this.contracttime = contracttime;
-    }
-
-    public String getIsteamleader() {
-        return isteamleader;
-    }
-
-    public void setIsteamleader(String isteamleader) {
-        this.isteamleader = isteamleader;
-    }
-
-    public String getDocumentno() {
-        return documentno;
-    }
-
-    public void setDocumentno(String documentno) {
-        this.documentno = documentno;
-    }
-
-    public String getHrcode() {
-        return hrcode;
-    }
-
-    public void setHrcode(String hrcode) {
-        this.hrcode = hrcode;
-    }
-
-    public Date getRegulartm() {
-        return regulartm;
-    }
-
-    public void setRegulartm(Date regulartm) {
-        this.regulartm = regulartm;
-    }
-
-    public Date getIntime() {
-        return intime;
-    }
-
-    public void setIntime(Date intime) {
-        this.intime = intime;
-    }
-
-    public String getSalarycode() {
-        return salarycode;
-    }
-
-    public void setSalarycode(String salarycode) {
-        this.salarycode = salarycode;
-    }
-
-    public Date getBirthday() {
-        return birthday;
-    }
-
-    public void setBirthday(Date birthday) {
-        this.birthday = birthday;
-    }
-
-    public String getMarrycode() {
-        return marrycode;
-    }
-
-    public void setMarrycode(String marrycode) {
-        this.marrycode = marrycode;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getWhichteam() {
-        return whichteam;
-    }
-
-    public void setWhichteam(String whichteam) {
-        this.whichteam = whichteam;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
 
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
 
 
 }

+ 12 - 1
src/main/java/com/ydtech/modules/esm/service/EsmUserAgentService.java

@@ -1,13 +1,24 @@
 package com.ydtech.modules.esm.service;
 
 
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.esm.model.EsmUserAgent;
 import com.ydtech.modules.esm.dao.EsmUserAgentDao;
+import com.ydtech.modules.esm.vo.TeamUserQryVO;
+import com.ydtech.modules.esm.vo.TeamUserVONew;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 
-public interface EsmUserAgentService extends EsmUserAgentDao {
+public interface EsmUserAgentService extends IService<EsmUserAgent> {
+//public interface EsmUserAgentService extends EsmUserAgentDao {
+
+
+    List<TeamUserVONew> gainBelowUserByUserId(TeamUserQryVO vo);
+
 
 }
 

+ 11 - 11
src/main/java/com/ydtech/modules/esm/service/EsmUserInternalCheckService.java

@@ -1,11 +1,11 @@
-package com.ydtech.modules.esm.service;
-
-import com.ydtech.core.page.PageResult;
-import com.ydtech.modules.esm.dao.EsmUserInternalCheckDao;
-
-
-public interface EsmUserInternalCheckService extends EsmUserInternalCheckDao {
-    Integer check(String username, String id, String status, String remark);
-
-    PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues);
-}
+//package com.ydtech.modules.esm.service;
+//
+//import com.ydtech.core.page.PageResult;
+//import com.ydtech.modules.esm.dao.EsmUserInternalCheckDao;
+//
+//
+//public interface EsmUserInternalCheckService extends EsmUserInternalCheckDao {
+//    Integer check(String username, String id, String status, String remark);
+//
+//    PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues);
+//}

+ 9 - 6
src/main/java/com/ydtech/modules/esm/service/EsmUserInternalService.java

@@ -1,21 +1,24 @@
 package com.ydtech.modules.esm.service;
 
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.esm.dao.EsmUserInternalDao;
+import com.ydtech.modules.esm.model.EsmUserInternal;
 
 import java.util.List;
 
-public interface EsmUserInternalService extends EsmUserInternalDao {
+public interface EsmUserInternalService extends IService<EsmUserInternal> {
+//public interface EsmUserInternalService extends EsmUserInternalDao {
 
-    public PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues);
+//    public PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues);
 
-    public String findMaxId(String deptId);
+    //替换为sysUserService里
+//    public String findMaxId(String deptId);
 
-    public int queryTempNum(String deptId);
+//    public int queryTempNum(String deptId);
 
-    public List<String> queryTeamUser(String id);
+//    public List<String> queryTeamUser(String id);
 
     public Integer check(String id, String status);
 

+ 26 - 1
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserAgentServiceImpl.java

@@ -1,17 +1,42 @@
 package com.ydtech.modules.esm.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserMapper;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.dao.EsmUserAgentDao;
+import com.ydtech.modules.esm.dao.EsmUserAgentMapper;
 import com.ydtech.modules.esm.dao.impl.EsmUserAgentDaoImpl;
+import com.ydtech.modules.esm.dao.impl.EsmUserCheckhistoryDaoImpl;
+import com.ydtech.modules.esm.model.EsmUserAgent;
 import com.ydtech.modules.esm.service.EsmUserAgentService;
+import com.ydtech.modules.esm.service.EsmUserCheckhistoryService;
+import com.ydtech.modules.esm.vo.TeamUserQryVO;
+import com.ydtech.modules.esm.vo.TeamUserVONew;
+import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 
 @Service
-public class EsmUserAgentServiceImpl extends EsmUserAgentDaoImpl
+//public class EsmUserAgentServiceImpl extends EsmUserAgentDaoImpl implements EsmUserAgentService {
+
+public class EsmUserAgentServiceImpl extends ServiceImpl<EsmUserAgentMapper, EsmUserAgent>
         implements EsmUserAgentService {
 
 
+    @Override
+    public List<TeamUserVONew> gainBelowUserByUserId(TeamUserQryVO vo) {
+        Map m = new HashMap();
+        m.put("recommenderId", StringUtils.toString(vo.getId(),""));
+        m.put("startDate",StringUtils.toString(vo.getStartdate(),""));
+        m.put("endDate",StringUtils.toString(vo.getEnddate(),""));
+        return super.baseMapper.gainBelowUserByUserId(m);
+    }
 }
 
 

+ 426 - 426
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserInternalCheckServiceImpl.java

@@ -1,428 +1,428 @@
-package com.ydtech.modules.esm.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.github.drinkjava2.jdialects.Dialect;
-import com.ydtech.core.page.PageResult;
-import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.admin.model.SysUserRole;
-import com.ydtech.modules.admin.service.SysUserRoleService;
-import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.esm.dao.impl.EsmUserInternalCheckDaoImpl;
-import com.ydtech.modules.esm.model.*;
-import com.ydtech.modules.esm.service.*;
-import com.ydtech.utils.StringUtils;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.RowCallbackHandler;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.io.Serializable;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-
-@Service
-public class EsmUserInternalCheckServiceImpl extends EsmUserInternalCheckDaoImpl
-        implements EsmUserInternalCheckService {
-
-    @Autowired
-    SysUserCheckService sysUserCheckService;
-
+//package com.ydtech.modules.esm.service.impl;
+//
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.github.drinkjava2.jdialects.Dialect;
+//import com.ydtech.core.page.PageResult;
+//import com.ydtech.modules.admin.model.SysUser;
+//import com.ydtech.modules.admin.model.SysUserRole;
+//import com.ydtech.modules.admin.service.SysUserRoleService;
+//import com.ydtech.modules.admin.service.SysUserService;
+//import com.ydtech.modules.esm.dao.impl.EsmUserInternalCheckDaoImpl;
+//import com.ydtech.modules.esm.model.*;
+//import com.ydtech.modules.esm.service.*;
+//import com.ydtech.utils.StringUtils;
+//import org.springframework.beans.BeanUtils;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.jdbc.core.JdbcTemplate;
+//import org.springframework.jdbc.core.RowCallbackHandler;
+//import org.springframework.stereotype.Service;
+//import org.springframework.transaction.annotation.Transactional;
+//
+//import java.io.Serializable;
+//import java.sql.ResultSet;
+//import java.sql.SQLException;
+//import java.util.ArrayList;
+//import java.util.Date;
+//import java.util.List;
+//
+//
+//@Service
+//public class EsmUserInternalCheckServiceImpl extends EsmUserInternalCheckDaoImpl
+//        implements EsmUserInternalCheckService {
+//
+//    @Autowired
+//    SysUserCheckService sysUserCheckService;
+//
+////    @Autowired
+////    EsmUserInternalCheckService esmUserInternalCheckService;
+//
+//    @Autowired
+//    EsmUserAgentCheckService esmUserAgentCheckService;
+//
+//    @Autowired
+//    SysUserService sysUserService;
+//
 //    @Autowired
-//    EsmUserInternalCheckService esmUserInternalCheckService;
-
-    @Autowired
-    EsmUserAgentCheckService esmUserAgentCheckService;
-
-    @Autowired
-    SysUserService sysUserService;
-
-    @Autowired
-    EsmUserInternalService esmUserInternalService;
-
-    @Autowired
-    EsmUserAgentService esmUserAgentService;
-
-    @Autowired
-    SysUserRoleService sysUserRoleService;
-
-    //"人员审核 传入人员编码和审核状态: 0 申请审核 1 审核通过 2 审核不通过 3 退回修改"
-    @Override
-    @Transactional
-    public Integer check(String username, String checkid, String status, String remark) {
-
-        //1. 审核通过 sys_user status变为1
-        //2. 审核不通过 原表中的数据不变,status变为2,本表中的 status变为2
-        //3. 退回修改 原表中的数据不变,status变为3,本表中的 status变为3
-        try {
-            //1. 审核通过
-            if (status.equalsIgnoreCase("1")) {
-                SysUserCheck sysUserCheck = sysUserCheckService.selectByPk(checkid);
-                // 运营人员更新状态
-                updateOperationAuthority(sysUserCheck.getId());
-                String id = sysUserCheck.getId();
-                // sys_user 状态变为有效1
+//    EsmUserInternalService esmUserInternalService;
+//
+//    @Autowired
+//    EsmUserAgentService esmUserAgentService;
+//
+//    @Autowired
+//    SysUserRoleService sysUserRoleService;
+//
+//    //"人员审核 传入人员编码和审核状态: 0 申请审核 1 审核通过 2 审核不通过 3 退回修改"
+//    @Override
+//    @Transactional
+//    public Integer check(String username, String checkid, String status, String remark) {
+//
+//        //1. 审核通过 sys_user status变为1
+//        //2. 审核不通过 原表中的数据不变,status变为2,本表中的 status变为2
+//        //3. 退回修改 原表中的数据不变,status变为3,本表中的 status变为3
+//        try {
+//            //1. 审核通过
+//            if (status.equalsIgnoreCase("1")) {
+//                SysUserCheck sysUserCheck = sysUserCheckService.selectByPk(checkid);
+//                // 运营人员更新状态
+//                updateOperationAuthority(sysUserCheck.getId());
+//                String id = sysUserCheck.getId();
+//                // sys_user 状态变为有效1
+////                JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+////                String sql = " UPDATE sys_user SET STATUS=1 WHERE id =? ";
+////                int out = jdbcTemplate.update(sql, new Object[]{id});
+//
+////                sql = " UPDATE esm_user_internal SET id=CONCAT(id,'_1'),STATUS=?,remark=? WHERE id =? ";
+////                out = jdbcTemplate.update(sql, new Object[]{status, remark, id});
+////                sql = " UPDATE esm_user_agent SET id=CONCAT(id,'_1') WHERE id =? ";
+////                out = jdbcTemplate.update(sql, new Object[]{id});
+//
+//                EsmUserInternalCheck esmUserInternalCheck = selectByPk(checkid);
+//                EsmUserAgentCheck esmUserAgentCheck = esmUserAgentCheckService.selectByPk(checkid);
+//
+//                sysUserCheck.setLastUpdateBy(username);
+//                sysUserCheck.setLastUpdateTime(new Date());
+//                sysUserCheck.setStatus(StringUtils.toInt(status, -1)); // 状态  -1 出错了 0 申请审核 1 审核通过 2 审核不通过 3 退回修改   99:离司
+//                sysUserCheckService.updateSelective(sysUserCheck);
+//
+//                SysUser sysUser = new SysUser();
+//                BeanUtils.copyProperties(sysUserCheck, sysUser);
+//                sysUser.setSalt(null);
+//                sysUser.setPassword(null);
+//                sysUser.setStatus(1);
+//                sysUserService.updateById(sysUser);
+//
+//                if (esmUserInternalCheck.getIntime() == null) {
+//                    esmUserInternalCheck.setIntime(new Date());// 入司时间取审核通过时间
+//                }
+//                esmUserInternalCheck.setStatus(status); // 状态  -1 出错了 0 申请审核 1 审核通过 2 审核不通过 3 退回修改   99:离司
+//                esmUserInternalCheck.setRemark(remark);
+//                updateSelective(esmUserInternalCheck);
+//
+//                EsmUserInternal esmUserInternal = new EsmUserInternal();
+//                BeanUtils.copyProperties(esmUserInternalCheck, esmUserInternal);
+//                EsmUserInternal internal = esmUserInternalService.selectByPk(id);
+//                if (internal == null) {
+//                    esmUserInternalService.insertSelective(esmUserInternal);
+//                } else {
+//                    esmUserInternalService.updateSelective(esmUserInternal);
+//                }
+//
+////            esmUserAgentCheck.setLastUpdateBy(username);
+////            esmUserAgentCheck.setLastUpdateTime(new Date());
+////            esmUserAgentCheck.setStatus(StringUtils.toInt(status,-1)); // 状态  -1 出错了 0 申请审核 1 审核通过 2 审核不通过 3 退回修改   99:离司
+////            esmUserAgentCheckService.updateSelective(esmUserAgentCheck);
+//
+//                if (esmUserAgentCheck != null) {
+//                    EsmUserAgent esmUserAgent = new EsmUserAgent();
+//                    BeanUtils.copyProperties(esmUserAgentCheck, esmUserAgent);
+//                    EsmUserAgent agent = esmUserAgentService.selectByPk(id);
+//                    if (agent == null) {
+//                        esmUserAgentService.insertSelective(esmUserAgent);
+//                    } else {
+//                        esmUserAgentService.updateSelective(esmUserAgent);
+//                    }
+//
+//                }
+//            }
+//            //2. 审核不通过 原表中的数据不变,status变为2,本表中的 status变为2
+//            //3. 退回修改 原表中的数据不变,status变为3,本表中的 status变为3
+//            else if (status.equalsIgnoreCase("2") || status.equalsIgnoreCase("3")) {
 //                JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-//                String sql = " UPDATE sys_user SET STATUS=1 WHERE id =? ";
-//                int out = jdbcTemplate.update(sql, new Object[]{id});
-
-//                sql = " UPDATE esm_user_internal SET id=CONCAT(id,'_1'),STATUS=?,remark=? WHERE id =? ";
-//                out = jdbcTemplate.update(sql, new Object[]{status, remark, id});
-//                sql = " UPDATE esm_user_agent SET id=CONCAT(id,'_1') WHERE id =? ";
-//                out = jdbcTemplate.update(sql, new Object[]{id});
-
-                EsmUserInternalCheck esmUserInternalCheck = selectByPk(checkid);
-                EsmUserAgentCheck esmUserAgentCheck = esmUserAgentCheckService.selectByPk(checkid);
-
-                sysUserCheck.setLastUpdateBy(username);
-                sysUserCheck.setLastUpdateTime(new Date());
-                sysUserCheck.setStatus(StringUtils.toInt(status, -1)); // 状态  -1 出错了 0 申请审核 1 审核通过 2 审核不通过 3 退回修改   99:离司
-                sysUserCheckService.updateSelective(sysUserCheck);
-
-                SysUser sysUser = new SysUser();
-                BeanUtils.copyProperties(sysUserCheck, sysUser);
-                sysUser.setSalt(null);
-                sysUser.setPassword(null);
-                sysUser.setStatus(1);
-                sysUserService.updateById(sysUser);
-
-                if (esmUserInternalCheck.getIntime() == null) {
-                    esmUserInternalCheck.setIntime(new Date());// 入司时间取审核通过时间
-                }
-                esmUserInternalCheck.setStatus(status); // 状态  -1 出错了 0 申请审核 1 审核通过 2 审核不通过 3 退回修改   99:离司
-                esmUserInternalCheck.setRemark(remark);
-                updateSelective(esmUserInternalCheck);
-
-                EsmUserInternal esmUserInternal = new EsmUserInternal();
-                BeanUtils.copyProperties(esmUserInternalCheck, esmUserInternal);
-                EsmUserInternal internal = esmUserInternalService.selectByPk(id);
-                if (internal == null) {
-                    esmUserInternalService.insertSelective(esmUserInternal);
-                } else {
-                    esmUserInternalService.updateSelective(esmUserInternal);
-                }
-
-//            esmUserAgentCheck.setLastUpdateBy(username);
-//            esmUserAgentCheck.setLastUpdateTime(new Date());
-//            esmUserAgentCheck.setStatus(StringUtils.toInt(status,-1)); // 状态  -1 出错了 0 申请审核 1 审核通过 2 审核不通过 3 退回修改   99:离司
-//            esmUserAgentCheckService.updateSelective(esmUserAgentCheck);
-
-                if (esmUserAgentCheck != null) {
-                    EsmUserAgent esmUserAgent = new EsmUserAgent();
-                    BeanUtils.copyProperties(esmUserAgentCheck, esmUserAgent);
-                    EsmUserAgent agent = esmUserAgentService.selectByPk(id);
-                    if (agent == null) {
-                        esmUserAgentService.insertSelective(esmUserAgent);
-                    } else {
-                        esmUserAgentService.updateSelective(esmUserAgent);
-                    }
-
-                }
-            }
-            //2. 审核不通过 原表中的数据不变,status变为2,本表中的 status变为2
-            //3. 退回修改 原表中的数据不变,status变为3,本表中的 status变为3
-            else if (status.equalsIgnoreCase("2") || status.equalsIgnoreCase("3")) {
-                JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-//                String sql = " UPDATE sys_user_check SET STATUS=? WHERE checkid =? ";
-//                int out = jdbcTemplate.update(sql, new Object[]{status, checkid});
-                String sql = " UPDATE esm_user_internal_check SET STATUS=?,remark=? WHERE checkid =? ";
-                int out = jdbcTemplate.update(sql, new Object[]{status, remark, checkid});
-
-                if (status.equalsIgnoreCase("2")){
-                    SysUserCheck sysUserCheck = sysUserCheckService.selectByPk(checkid);
-                    String id = sysUserCheck.getId();
-                    SysUser sysUser = new SysUser();
-                    sysUser.setId(id);
-                    sysUser.setDeptId("1");
-                    sysUserService.updateById(sysUser);
-                }
-//
-//                sql = " UPDATE sys_user SET STATUS=? WHERE id =? ";
-//                out = jdbcTemplate.update(sql, new Object[]{status, id});
-//                sql = " UPDATE esm_user_internal SET STATUS=?,remark=? WHERE id =? ";
-//                out = jdbcTemplate.update(sql, new Object[]{status, remark, id});
-
-            }
-
-            return 1;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return 0;
-        }
-    }
-
-    /**
-     * 推荐人为运营人员,审核成功以后也是运营人员
-     */
-    public void updateOperationAuthority(String jobNumber) {
-        // 报错后不影响正常审核
-        try {
-            EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(jobNumber);
-            SysUserRole sysUserRole = sysUserRoleService.selectByUserId(esmUserAgent.getRecommenderid());
-
-            if (sysUserRole.getRoleId().equals(20L)) {
-                SysUserRole sysUserRole1 = sysUserRoleService.selectByUserId(jobNumber);
-                if (sysUserRole1 != null) {
-                    sysUserRole1.setRoleId(sysUserRole.getRoleId());
-                    sysUserRoleService.updateById(sysUserRole1);
-                } else {
-                    SysUserRole sysUserRole2 = new SysUserRole();
-                    sysUserRole2.setUserId(jobNumber);
-                    sysUserRole2.setRoleId(sysUserRole.getRoleId());
-                    sysUserRoleService.save(sysUserRole2);
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-
-    public Integer countPagingCustom(String whereCase, Object[] paramValues) {
-        String sql = "select count(1)  from sys_user_check t1 left join esm_user_internal_check t2 on t1.checkid=t2.checkid " + whereCase;
-
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-
-        return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
-    }
-
-    @Override
-    public PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
-
-        Dialect dialect = Dialect.guessDialect(dataSource);
-        String oriSql = "SELECT t1.last_update_time, t2.status, t1.job_code , t1.checkid, t1.id, t1.name,  t1.email, t1.mobile, t1.dept_id, sd.name as dept_name, t1.usertype, t1.del_flag, t2.identity, t1.sex, t2.documentno, t2.regulartm, t2.hrcode, t2.saleno  " +
-                "FROM  sys_user_check t1 LEFT JOIN esm_user_internal_check t2 ON t1.checkid=t2.checkid " +
-                "LEFT JOIN sys_dept sd ON t1.dept_id=sd.id " + whereCase;
-        String sql = dialect.pagin(pageNumber, pageSize, oriSql);
-
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-//		NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate);
-
-        List<SysUseresmUserInternalVO> recordList = new ArrayList<SysUseresmUserInternalVO>();
-
-        jdbcTemplate.query(sql, paramValues,
-                new RowCallbackHandler() {
-                    @Override
-                    public void processRow(ResultSet resultSet) throws SQLException {
-                        SysUseresmUserInternalVO model = new SysUseresmUserInternalVO();
-                        model.setLastUpdateTime(resultSet.getString("last_update_time"));
-                        model.setStatus(resultSet.getString("status"));
-                        model.setJobCode(resultSet.getString("job_code"));
-                        model.setCheckid(resultSet.getString("checkid"));
-                        model.setId(resultSet.getString("id"));
-                        model.setName(resultSet.getString("name"));
-                        model.setEmail(resultSet.getString("email"));
-                        model.setMobile(resultSet.getString("mobile"));
-                        model.setDeptId(resultSet.getString("dept_id"));
-                        model.setDeptName(resultSet.getString("dept_name"));
-                        model.setUsertype(resultSet.getString("usertype"));
-                        model.setDelFlag(resultSet.getInt("del_flag"));
-                        model.setIdentity(resultSet.getString("identity"));
-                        model.setSex(resultSet.getString("sex"));
-                        model.setDocumentno(resultSet.getString("documentno"));
-                        model.setRegulartm(resultSet.getDate("regulartm"));
-                        model.setHrcode(resultSet.getString("hrcode"));
-                        model.setSaleno(resultSet.getString("saleno"));
-
-                        recordList.add(model);
-                    }
-                });
-
-        int totalCount = countPagingCustom(whereCase, paramValues);
-
-        PageResult PageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
-
-        return PageResult;
-    }
-
-    public class SysUseresmUserInternalVO implements Serializable {
-        private static final long serialVersionUID = 5445785034406404908L;
-
-        private String lastUpdateTime;
-
-        public String getLastUpdateTime() {
-            return lastUpdateTime;
-        }
-
-        public void setLastUpdateTime(String lastUpdateTime) {
-            this.lastUpdateTime = lastUpdateTime;
-        }
-
-        private String status;
-
-        public String getStatus() {
-            return status;
-        }
-
-        public void setStatus(String status) {
-            this.status = status;
-        }
-
-        private String jobCode;
-
-        public String getJobCode() {
-            return jobCode;
-        }
-
-        public void setJobCode(String jobCode) {
-            this.jobCode = jobCode;
-        }
-
-        private String deptName;
-
-        public String getDeptName() {
-            return deptName;
-        }
-
-        public void setDeptName(String deptName) {
-            this.deptName = deptName;
-        }
-
-        private String checkid;
-        //编号
-        private String id;
-        //用户名
-        private String name;
-        //邮箱
-        private String email;
-        //手机号
-        private String mobile;
-        //机构ID
-        private String deptId;
-        //用户类型:0:系统用户 1:后线人员 2:代理人员
-        private String usertype;
-        //是否删除  -1:已删除  0:正常
-        private Integer delFlag;
-        //身份证号
-        private String identity;
-        //性别
-        private String sex;
-        //后线人员档案号
-        private String documentno;
-        //转正时间
-        private Date regulartm;
-        //后线人员HR编码
-        private String hrcode;
-        //业务员职业证书号:
-        private String saleno;
-
-        public String getId() {
-            return id;
-        }
-
-        public void setId(String id) {
-            this.id = id;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public void setName(String name) {
-            this.name = name;
-        }
-
-
-        public String getEmail() {
-            return email;
-        }
-
-        public void setEmail(String email) {
-            this.email = email;
-        }
-
-        public String getMobile() {
-            return mobile;
-        }
-
-        public void setMobile(String mobile) {
-            this.mobile = mobile;
-        }
-
-        public String getDeptId() {
-            return deptId;
-        }
-
-        public void setDeptId(String deptId) {
-            this.deptId = deptId;
-        }
-
-        public String getUsertype() {
-            return usertype;
-        }
-
-        public void setUsertype(String usertype) {
-            this.usertype = usertype;
-        }
-
-        public Integer getDelFlag() {
-            return delFlag;
-        }
-
-        public void setDelFlag(Integer delFlag) {
-            this.delFlag = delFlag;
-        }
-
-        public String getIdentity() {
-            return identity;
-        }
-
-        public void setIdentity(String identity) {
-            this.identity = identity;
-        }
-
-        public String getSex() {
-            return sex;
-        }
-
-        public void setSex(String sex) {
-            this.sex = sex;
-        }
-
-        public String getDocumentno() {
-            return documentno;
-        }
-
-        public void setDocumentno(String documentno) {
-            this.documentno = documentno;
-        }
-
-        public Date getRegulartm() {
-            return regulartm;
-        }
-
-        public void setRegulartm(Date regulartm) {
-            this.regulartm = regulartm;
-        }
-
-        public String getHrcode() {
-            return hrcode;
-        }
-
-        public void setHrcode(String hrcode) {
-            this.hrcode = hrcode;
-        }
-
-        public String getSaleno() {
-            return saleno;
-        }
-
-        public void setSaleno(String saleno) {
-            this.saleno = saleno;
-        }
-
-        public String getCheckid() {
-            return checkid;
-        }
-
-        public void setCheckid(String checkid) {
-            this.checkid = checkid;
-        }
-    }
-
-}
+////                String sql = " UPDATE sys_user_check SET STATUS=? WHERE checkid =? ";
+////                int out = jdbcTemplate.update(sql, new Object[]{status, checkid});
+//                String sql = " UPDATE esm_user_internal_check SET STATUS=?,remark=? WHERE checkid =? ";
+//                int out = jdbcTemplate.update(sql, new Object[]{status, remark, checkid});
+//
+//                if (status.equalsIgnoreCase("2")){
+//                    SysUserCheck sysUserCheck = sysUserCheckService.selectByPk(checkid);
+//                    String id = sysUserCheck.getId();
+//                    SysUser sysUser = new SysUser();
+//                    sysUser.setId(id);
+//                    sysUser.setDeptId("1");
+//                    sysUserService.updateById(sysUser);
+//                }
+////
+////                sql = " UPDATE sys_user SET STATUS=? WHERE id =? ";
+////                out = jdbcTemplate.update(sql, new Object[]{status, id});
+////                sql = " UPDATE esm_user_internal SET STATUS=?,remark=? WHERE id =? ";
+////                out = jdbcTemplate.update(sql, new Object[]{status, remark, id});
+//
+//            }
+//
+//            return 1;
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//            return 0;
+//        }
+//    }
+//
+//    /**
+//     * 推荐人为运营人员,审核成功以后也是运营人员
+//     */
+//    public void updateOperationAuthority(String jobNumber) {
+//        // 报错后不影响正常审核
+//        try {
+//            EsmUserAgentCheck esmUserAgent = esmUserAgentCheckService.selectByPk(jobNumber);
+//            SysUserRole sysUserRole = sysUserRoleService.selectByUserId(esmUserAgent.getRecommenderid());
+//
+//            if (sysUserRole.getRoleId().equals(20L)) {
+//                SysUserRole sysUserRole1 = sysUserRoleService.selectByUserId(jobNumber);
+//                if (sysUserRole1 != null) {
+//                    sysUserRole1.setRoleId(sysUserRole.getRoleId());
+//                    sysUserRoleService.updateById(sysUserRole1);
+//                } else {
+//                    SysUserRole sysUserRole2 = new SysUserRole();
+//                    sysUserRole2.setUserId(jobNumber);
+//                    sysUserRole2.setRoleId(sysUserRole.getRoleId());
+//                    sysUserRoleService.save(sysUserRole2);
+//                }
+//            }
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
+//
+//
+//    public Integer countPagingCustom(String whereCase, Object[] paramValues) {
+//        String sql = "select count(1)  from sys_user_check t1 left join esm_user_internal_check t2 on t1.checkid=t2.checkid " + whereCase;
+//
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//
+//        return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
+//    }
+//
+//    @Override
+//    public PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
+//
+//        Dialect dialect = Dialect.guessDialect(dataSource);
+//        String oriSql = "SELECT t1.last_update_time, t2.status, t1.job_code , t1.checkid, t1.id, t1.name,  t1.email, t1.mobile, t1.dept_id, sd.name as dept_name, t1.usertype, t1.del_flag, t2.identity, t1.sex, t2.documentno, t2.regulartm, t2.hrcode, t2.saleno  " +
+//                "FROM  sys_user_check t1 LEFT JOIN esm_user_internal_check t2 ON t1.checkid=t2.checkid " +
+//                "LEFT JOIN sys_dept sd ON t1.dept_id=sd.id " + whereCase;
+//        String sql = dialect.pagin(pageNumber, pageSize, oriSql);
+//
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+////		NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate);
+//
+//        List<SysUseresmUserInternalVO> recordList = new ArrayList<SysUseresmUserInternalVO>();
+//
+//        jdbcTemplate.query(sql, paramValues,
+//                new RowCallbackHandler() {
+//                    @Override
+//                    public void processRow(ResultSet resultSet) throws SQLException {
+//                        SysUseresmUserInternalVO model = new SysUseresmUserInternalVO();
+//                        model.setLastUpdateTime(resultSet.getString("last_update_time"));
+//                        model.setStatus(resultSet.getString("status"));
+//                        model.setJobCode(resultSet.getString("job_code"));
+//                        model.setCheckid(resultSet.getString("checkid"));
+//                        model.setId(resultSet.getString("id"));
+//                        model.setName(resultSet.getString("name"));
+//                        model.setEmail(resultSet.getString("email"));
+//                        model.setMobile(resultSet.getString("mobile"));
+//                        model.setDeptId(resultSet.getString("dept_id"));
+//                        model.setDeptName(resultSet.getString("dept_name"));
+//                        model.setUsertype(resultSet.getString("usertype"));
+//                        model.setDelFlag(resultSet.getInt("del_flag"));
+//                        model.setIdentity(resultSet.getString("identity"));
+//                        model.setSex(resultSet.getString("sex"));
+//                        model.setDocumentno(resultSet.getString("documentno"));
+//                        model.setRegulartm(resultSet.getDate("regulartm"));
+//                        model.setHrcode(resultSet.getString("hrcode"));
+//                        model.setSaleno(resultSet.getString("saleno"));
+//
+//                        recordList.add(model);
+//                    }
+//                });
+//
+//        int totalCount = countPagingCustom(whereCase, paramValues);
+//
+//        PageResult PageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
+//
+//        return PageResult;
+//    }
+//
+//    public class SysUseresmUserInternalVO implements Serializable {
+//        private static final long serialVersionUID = 5445785034406404908L;
+//
+//        private String lastUpdateTime;
+//
+//        public String getLastUpdateTime() {
+//            return lastUpdateTime;
+//        }
+//
+//        public void setLastUpdateTime(String lastUpdateTime) {
+//            this.lastUpdateTime = lastUpdateTime;
+//        }
+//
+//        private String status;
+//
+//        public String getStatus() {
+//            return status;
+//        }
+//
+//        public void setStatus(String status) {
+//            this.status = status;
+//        }
+//
+//        private String jobCode;
+//
+//        public String getJobCode() {
+//            return jobCode;
+//        }
+//
+//        public void setJobCode(String jobCode) {
+//            this.jobCode = jobCode;
+//        }
+//
+//        private String deptName;
+//
+//        public String getDeptName() {
+//            return deptName;
+//        }
+//
+//        public void setDeptName(String deptName) {
+//            this.deptName = deptName;
+//        }
+//
+//        private String checkid;
+//        //编号
+//        private String id;
+//        //用户名
+//        private String name;
+//        //邮箱
+//        private String email;
+//        //手机号
+//        private String mobile;
+//        //机构ID
+//        private String deptId;
+//        //用户类型:0:系统用户 1:后线人员 2:代理人员
+//        private String usertype;
+//        //是否删除  -1:已删除  0:正常
+//        private Integer delFlag;
+//        //身份证号
+//        private String identity;
+//        //性别
+//        private String sex;
+//        //后线人员档案号
+//        private String documentno;
+//        //转正时间
+//        private Date regulartm;
+//        //后线人员HR编码
+//        private String hrcode;
+//        //业务员职业证书号:
+//        private String saleno;
+//
+//        public String getId() {
+//            return id;
+//        }
+//
+//        public void setId(String id) {
+//            this.id = id;
+//        }
+//
+//        public String getName() {
+//            return name;
+//        }
+//
+//        public void setName(String name) {
+//            this.name = name;
+//        }
+//
+//
+//        public String getEmail() {
+//            return email;
+//        }
+//
+//        public void setEmail(String email) {
+//            this.email = email;
+//        }
+//
+//        public String getMobile() {
+//            return mobile;
+//        }
+//
+//        public void setMobile(String mobile) {
+//            this.mobile = mobile;
+//        }
+//
+//        public String getDeptId() {
+//            return deptId;
+//        }
+//
+//        public void setDeptId(String deptId) {
+//            this.deptId = deptId;
+//        }
+//
+//        public String getUsertype() {
+//            return usertype;
+//        }
+//
+//        public void setUsertype(String usertype) {
+//            this.usertype = usertype;
+//        }
+//
+//        public Integer getDelFlag() {
+//            return delFlag;
+//        }
+//
+//        public void setDelFlag(Integer delFlag) {
+//            this.delFlag = delFlag;
+//        }
+//
+//        public String getIdentity() {
+//            return identity;
+//        }
+//
+//        public void setIdentity(String identity) {
+//            this.identity = identity;
+//        }
+//
+//        public String getSex() {
+//            return sex;
+//        }
+//
+//        public void setSex(String sex) {
+//            this.sex = sex;
+//        }
+//
+//        public String getDocumentno() {
+//            return documentno;
+//        }
+//
+//        public void setDocumentno(String documentno) {
+//            this.documentno = documentno;
+//        }
+//
+//        public Date getRegulartm() {
+//            return regulartm;
+//        }
+//
+//        public void setRegulartm(Date regulartm) {
+//            this.regulartm = regulartm;
+//        }
+//
+//        public String getHrcode() {
+//            return hrcode;
+//        }
+//
+//        public void setHrcode(String hrcode) {
+//            this.hrcode = hrcode;
+//        }
+//
+//        public String getSaleno() {
+//            return saleno;
+//        }
+//
+//        public void setSaleno(String saleno) {
+//            this.saleno = saleno;
+//        }
+//
+//        public String getCheckid() {
+//            return checkid;
+//        }
+//
+//        public void setCheckid(String checkid) {
+//            this.checkid = checkid;
+//        }
+//    }
+//
+//}

+ 150 - 101
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserInternalServiceImpl.java

@@ -1,20 +1,26 @@
 package com.ydtech.modules.esm.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.drinkjava2.jdialects.Dialect;
-import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.model.SysDept;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.esm.dao.impl.EsmUserInternalDaoImpl;
+import com.ydtech.modules.esm.dao.EsmUserInternalMapper;
 import com.ydtech.modules.esm.model.EsmUserAgent;
+import com.ydtech.modules.esm.model.EsmUserInternal;
 import com.ydtech.modules.esm.service.EsmUserAgentService;
 import com.ydtech.modules.esm.service.EsmUserInternalService;
+import com.ydtech.modules.esm.vo.TeamUserQryVO;
+import com.ydtech.modules.esm.vo.TeamUserVONew;
 import com.ydtech.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowCallbackHandler;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.RequestParam;
 
 import java.io.Serializable;
 import java.sql.ResultSet;
@@ -22,11 +28,14 @@ import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 
 @Service
-public class EsmUserInternalServiceImpl extends EsmUserInternalDaoImpl
-        implements EsmUserInternalService {
+public class EsmUserInternalServiceImpl extends ServiceImpl<EsmUserInternalMapper, EsmUserInternal>
+        implements EsmUserInternalService  {
+//public class EsmUserInternalServiceImpl extends EsmUserInternalDaoImpl
+//        implements EsmUserInternalService {
 
     @Autowired
     EsmUserAgentService esmUserAgentService;
@@ -36,97 +45,128 @@ public class EsmUserInternalServiceImpl extends EsmUserInternalDaoImpl
 
     //人员审核
     public Integer check(String id, String status) {
-        String sql = " update esm_user_internal set status=? where id=? ";
-
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-
-        return jdbcTemplate.update(sql, new Object[]{status, id});
-    }
-
-
-    public Integer countPagingCustom(String whereCase, Object[] paramValues) {
-        String sql = "select count(1)  from sys_user t1 left join esm_user_internal t2 on t1.id=t2.id " + whereCase;
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-        return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
-    }
-
-    @Override
-    public PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
-
-        Dialect dialect = Dialect.guessDialect(dataSource);
-        String oriSql = "SELECT t1.status, t1.job_code , t1.id, t1.name,  t1.email, t1.mobile, t1.dept_id, sd.name as dept_name, t1.usertype, t1.del_flag, t2.identity, t1.sex, t2.documentno, t2.regulartm, t2.hrcode, t2.saleno  " +
-                "FROM  sys_user t1 LEFT JOIN esm_user_internal t2 ON t1.id=t2.id " +
-                "LEFT JOIN sys_dept sd ON t1.dept_id=sd.id " + whereCase;
-        String sql = dialect.pagin(pageNumber, pageSize, oriSql);
-
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-//		NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate);
-
-        List<SysUseresmUserInternalVO> recordList = new ArrayList<SysUseresmUserInternalVO>();
-
-        jdbcTemplate.query(sql, paramValues,
-                new RowCallbackHandler() {
-                    @Override
-                    public void processRow(ResultSet resultSet) throws SQLException {
-                        SysUseresmUserInternalVO model = new SysUseresmUserInternalVO();
-                        model.setStatus(resultSet.getString("status"));
-                        model.setJobCode(resultSet.getString("job_code"));
-                        model.setId(resultSet.getString("id"));
-                        model.setName(resultSet.getString("name"));
-                        model.setEmail(resultSet.getString("email"));
-                        model.setMobile(resultSet.getString("mobile"));
-                        model.setDeptId(resultSet.getString("dept_id"));
-                        model.setDeptName(resultSet.getString("dept_name"));
-                        model.setUsertype(resultSet.getString("usertype"));
-                        model.setDelFlag(resultSet.getInt("del_flag"));
-                        model.setIdentity(resultSet.getString("identity"));
-                        model.setSex(resultSet.getString("sex"));
-                        model.setDocumentno(resultSet.getString("documentno"));
-                        model.setRegulartm(resultSet.getDate("regulartm"));
-                        model.setHrcode(resultSet.getString("hrcode"));
-                        model.setSaleno(resultSet.getString("saleno"));
-
-                        recordList.add(model);
-                    }
-                });
-
-        int totalCount = countPagingCustom(whereCase, paramValues);
-
-        PageResult PageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
-
-        return PageResult;
-    }
-
-    @Override
-    public String findMaxId(String deptId) {
-        String sql = "SELECT MAX(id) FROM sys_user t  WHERE dept_id=?"; // AND usertype=?";
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-        return jdbcTemplate.queryForObject(sql, String.class, new Object[]{deptId});
-    }
-
-    // 统计临时人员
-    @Override
-    public int queryTempNum(String deptId) {
-        String sql = "select count(*) from sys_user a,esm_user_internal_check b where a.id=b.id and a.dept_id=? and b.status != '1'";
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-        String num = jdbcTemplate.queryForObject(sql, String.class, new Object[]{deptId});
-        return Integer.valueOf(num);
-    }
-
-    @Override
-    public List<String> queryTeamUser(String id) {
-        List<String> recordList = new ArrayList<String>();
-        String sql = "select id from esm_user_agent_check a where a.recommenderid=? and not exists (select 1 from esm_user_agent t where t.id=a.id)";
-        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
-        jdbcTemplate.query(sql, new Object[]{id},
-                new RowCallbackHandler() {
-                    @Override
-                    public void processRow(ResultSet resultSet) throws SQLException {
-                        recordList.add(resultSet.getString("id"));
-                    }
-                });
-        return recordList;
+        LambdaUpdateWrapper<EsmUserInternal> luw = new LambdaUpdateWrapper();
+        luw.set(EsmUserInternal::getStatus,status);
+        luw.eq(EsmUserInternal::getId,id);
+        return update(luw) == true ?1:0;
     }
+//    //人员审核
+//    public Integer check(String id, String status) {
+//        String sql = " update esm_user_internal set status=? where id=? ";
+//
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//
+//        return jdbcTemplate.update(sql, new Object[]{status, id});
+//    }
+
+
+//    public Integer countPagingCustom(String whereCase, Object[] paramValues) {
+//        String sql = "select count(1)  from sys_user t1 left join esm_user_internal t2 on t1.id=t2.id " + whereCase;
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//        return jdbcTemplate.queryForObject(sql, paramValues, Integer.class);
+//    }
+
+//    @Override
+//    public PageResult selectPagingCustom(int pageNumber, int pageSize, String whereCase, Object[] paramValues) {
+//
+//
+//
+//        String oriSql = "SELECT t1.status, t1.job_code , t1.id, t1.name,  t1.email, t1.mobile, t1.dept_id, sd.name as dept_name, t1.usertype, t1.del_flag, t2.identity, t1.sex, t2.documentno, t2.regulartm, t2.hrcode, t2.saleno  " +
+//                "FROM  sys_user t1 LEFT JOIN esm_user_internal t2 ON t1.id=t2.id " +
+//                "LEFT JOIN sys_dept sd ON t1.dept_id=sd.id " + whereCase;
+//
+//        Dialect dialect = Dialect.guessDialect(dataSource);
+//        String sql = dialect.pagin(pageNumber, pageSize, oriSql);
+//
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+////		NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate);
+//
+//        List<SysUseresmUserInternalVO> recordList = new ArrayList<SysUseresmUserInternalVO>();
+//
+//        jdbcTemplate.query(sql, paramValues,
+//                new RowCallbackHandler() {
+//                    @Override
+//                    public void processRow(ResultSet resultSet) throws SQLException {
+//                        SysUseresmUserInternalVO model = new SysUseresmUserInternalVO();
+//                        model.setStatus(resultSet.getString("status"));
+//                        model.setJobCode(resultSet.getString("job_code"));
+//                        model.setId(resultSet.getString("id"));
+//                        model.setName(resultSet.getString("name"));
+//                        model.setEmail(resultSet.getString("email"));
+//                        model.setMobile(resultSet.getString("mobile"));
+//                        model.setDeptId(resultSet.getString("dept_id"));
+//                        model.setDeptName(resultSet.getString("dept_name"));
+//                        model.setUsertype(resultSet.getString("usertype"));
+//                        model.setDelFlag(resultSet.getInt("del_flag"));
+//                        model.setIdentity(resultSet.getString("identity"));
+//                        model.setSex(resultSet.getString("sex"));
+//                        model.setDocumentno(resultSet.getString("documentno"));
+//                        model.setRegulartm(resultSet.getDate("regulartm"));
+//                        model.setHrcode(resultSet.getString("hrcode"));
+//                        model.setSaleno(resultSet.getString("saleno"));
+//
+//                        recordList.add(model);
+//                    }
+//                });
+//
+//        int totalCount = countPagingCustom(whereCase, paramValues);
+//
+//        PageResult PageResult = new PageResult(pageNumber, pageSize, totalCount, recordList);
+//
+//        return PageResult;
+//    }
+
+//    @Override
+//    public String findMaxId(String deptId) {
+//        QueryWrapper<EsmUserInternal> qw = new QueryWrapper<>();
+//        qw.select("IFNULL(MAX(id),0) maxId");
+//        Map<String,Object> m = getMap(qw);
+//        String maxId = m.get("maxId").toString();
+//        return maxId;
+//
+//    }
+//    @Override
+//    public String findMaxId(String deptId) {
+//        String sql = "SELECT MAX(id) FROM sys_user t  WHERE dept_id=?"; // AND usertype=?";
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//        return jdbcTemplate.queryForObject(sql, String.class, new Object[]{deptId});
+//    }
+
+//    // 统计临时人员
+//    @Override
+//    public int queryTempNum(String deptId) {
+//        LambdaQueryWrapper<EsmUserInternal> lqw = new LambdaQueryWrapper<>();
+//        return (int)count(lqw);
+//        String sql = "select count(*) from sys_user a,esm_user_internal_check b where a.id=b.id and a.dept_id=? and b.status != '1'";
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//        String num = jdbcTemplate.queryForObject(sql, String.class, new Object[]{deptId});
+//        return Integer.valueOf(num);
+//    }
+//    // 统计临时人员
+//    @Override
+//    public int queryTempNum(String deptId) {
+//        String sql = "select count(*) from sys_user a,esm_user_internal_check b where a.id=b.id and a.dept_id=? and b.status != '1'";
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//        String num = jdbcTemplate.queryForObject(sql, String.class, new Object[]{deptId});
+//        return Integer.valueOf(num);
+//    }
+
+//    @Override
+//    public List<String> queryTeamUser(String id) {
+//
+//
+//        List<String> recordList = new ArrayList<String>();
+//        String sql = "select id from esm_user_agent_check a where a.recommenderid=? and not exists (select 1 from esm_user_agent t where t.id=a.id)";
+//        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
+//        jdbcTemplate.query(sql, new Object[]{id},
+//                new RowCallbackHandler() {
+//                    @Override
+//                    public void processRow(ResultSet resultSet) throws SQLException {
+//                        recordList.add(resultSet.getString("id"));
+//                    }
+//                });
+//        return recordList;
+//    }
 
 
     public class SysUseresmUserInternalVO implements Serializable {
@@ -300,15 +340,24 @@ public class EsmUserInternalServiceImpl extends EsmUserInternalDaoImpl
     public List<SysUser> getSuperior(String id) {
         List<SysUser> userList = new ArrayList<SysUser>();
         for (int i = 0; i < 3; i++) {
-            StringBuffer whereStr = new StringBuffer(" where 1=1 ");
-            ArrayList<String> params = new ArrayList<String>();
+//            StringBuffer whereStr = new StringBuffer(" where 1=1 ");
+//            ArrayList<String> params = new ArrayList<String>();
+//            if (id != null) {
+//                whereStr.append(" and id = ?");
+//                params.add(id);
+//            }
+//
+//            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+
+
+            TeamUserQryVO vo = new TeamUserQryVO();
             if (id != null) {
-                whereStr.append(" and id = ?");
-                params.add(id);
+                vo.setId(id);
             }
-            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+            List<TeamUserVONew> list = esmUserAgentService.gainBelowUserByUserId(vo);
+
             if (list != null && list.size() > 0) {
-                id = list.get(0).getRecommenderid(); //上级推荐人代码
+                id = list.get(0).getRecommenderId(); //上级推荐人代码
                 if (StringUtils.isNullOrEmpty(id)) {
                     break;
                 }

+ 20 - 0
src/main/java/com/ydtech/modules/esm/vo/TeamUserVONew.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.esm.vo;
+
+import lombok.Data;
+
+/**
+ *
+ *
+ * @author: lig
+ * @date: 2023年05月29日 0029
+ */
+@Data
+public class TeamUserVONew {
+
+    private String userId;
+    //推荐ID
+    private String recommenderId;
+    //审批状态
+    private String approvalStatus;
+
+}

+ 0 - 75
src/main/java/com/ydtech/modules/fnc/controller/TaxController.java

@@ -1,75 +0,0 @@
-package com.ydtech.modules.fnc.controller;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.fnc.dao.TaxToolMapper;
-import com.ydtech.modules.fnc.model.FncBook;
-import com.ydtech.modules.fnc.model.TaxTool;
-import com.ydtech.modules.fnc.service.BookService;
-import com.ydtech.modules.fnc.service.TaxToolService;
-import com.ydtech.modules.fnc.vo.FncBookReq;
-import com.ydtech.utils.DateUtil;
-import io.swagger.annotations.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * 税务控制层
- *
- * @author: lig
- * @date: 2023年05月11日 0011
- */
-@Api(tags = "税务控制层")
-@RestController
-@RequestMapping("/tax")
-public class TaxController {
-
-//    @Autowired
-//    private TaxToolMapper taxToolMapper;
-    @Autowired
-    private TaxToolService taxToolService;
-
-
-    @ApiOperation(value = "保存")
-    @ApiResponses({
-            @ApiResponse(code = 500, message = "出现异常"),
-            @ApiResponse(code = 200, message = "请求成功")
-    })
-    @PostMapping(value = "/save")
-    public HttpResult save(@RequestBody TaxTool taxTool) {
-
-        Map m = taxToolService.gainTaxInfo();
-        // -1:小于;   0 :等于;   1 :大于
-        if (taxTool.getMoney().compareTo(new BigDecimal(m.get("allowMoney").toString())) == 1){
-            return HttpResult.error("可用报税金额不足");
-        }
-
-        taxTool.setDate(new Date());
-        taxToolService.save(taxTool);
-
-        return HttpResult.ok();
-    }
-
-    @ApiOperation(value = "获取可报税额")
-    @ApiResponses({
-            @ApiResponse(code = 500, message = "出现异常"),
-            @ApiResponse(code = 200, message = "请求成功")
-    })
-    @PostMapping(value = "/gainUpTaxMoney")
-    public HttpResult gainUpTaxMoney() {
-        return HttpResult.ok(taxToolService.gainTaxInfo());
-    }
-
-
-
-}

+ 0 - 8
src/main/java/com/ydtech/modules/fnc/dao/TaxToolMapper.java

@@ -1,8 +0,0 @@
-package com.ydtech.modules.fnc.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ydtech.modules.fnc.model.TaxTool;
-
-public interface TaxToolMapper extends BaseMapper<TaxTool> {
-
-}

+ 0 - 40
src/main/java/com/ydtech/modules/fnc/model/TaxTool.java

@@ -1,40 +0,0 @@
-package com.ydtech.modules.fnc.model;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-@TableName(value = "fnc_tax_tool")
-@Data
-@ApiModel(value = "税务工具", description = "税务工具")
-public class TaxTool implements Serializable {
-
-    private static final long serialVersionUID = -9026881180080083597L;
-
-    @ApiModelProperty(value = "id")
-    @TableId(value = "id", type = IdType.ASSIGN_ID)
-    private String id;
-
-    @ApiModelProperty(value = "年度报税最大金额")
-    @TableField(value = "year_max_money")
-    private String yearMaxMoney;
-
-    @ApiModelProperty(value = "日期")
-    @TableField(value = "date")
-    private Date date;
-
-    @ApiModelProperty(value = "金额")
-    @TableField(value = "money")
-    private BigDecimal money;
-
-
-
-}

+ 0 - 26
src/main/java/com/ydtech/modules/fnc/service/TaxToolService.java

@@ -1,26 +0,0 @@
-package com.ydtech.modules.fnc.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.fnc.model.FncBook;
-import com.ydtech.modules.fnc.model.TaxTool;
-import com.ydtech.modules.fnc.vo.FncBookReq;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Map;
-
-/**
- *
- * @author: lig
- * @date: 2023年05月11日 0011
- */
-public interface TaxToolService extends IService<TaxTool> {
-    /**
-     * 获取报税信息
-     *
-     * @return
-     */
-    Map gainTaxInfo();
-
-}

+ 0 - 77
src/main/java/com/ydtech/modules/fnc/service/impl/TaxToolServiceImpl.java

@@ -1,77 +0,0 @@
-package com.ydtech.modules.fnc.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.pagehelper.PageHelper;
-import com.ydtech.constants.SysConstants;
-import com.ydtech.core.page.HttpResult;
-import com.ydtech.core.page.PageResult;
-import com.ydtech.modules.admin.dao.SysUserMapper;
-import com.ydtech.modules.admin.model.SysUser;
-import com.ydtech.modules.admin.service.SysUserService;
-import com.ydtech.modules.fnc.dao.FncBookMapper;
-import com.ydtech.modules.fnc.dao.TaxToolMapper;
-import com.ydtech.modules.fnc.model.FncBook;
-import com.ydtech.modules.fnc.model.TaxTool;
-import com.ydtech.modules.fnc.service.BookService;
-import com.ydtech.modules.fnc.service.TaxToolService;
-import com.ydtech.modules.fnc.vo.FncBookReq;
-import com.ydtech.security.utils.PubUserInfo;
-import com.ydtech.utils.DateUtil;
-import com.ydtech.utils.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Function;
-
-@Service
-public class TaxToolServiceImpl extends ServiceImpl<TaxToolMapper, TaxTool>
-        implements TaxToolService {
-
-
-    @Override
-    public Map gainTaxInfo() {
-        String sectionStart = DateUtil.nowDateMonthFirstDay(DateUtil.gainFrontOneYear());
-        String sectionEnd = DateUtil.nowDateMonthFirstDay(null);
-//
-        QueryWrapper<TaxTool> lq = new QueryWrapper();
-        lq.select("sum(money) as money");
-        lq.between("date", sectionStart, sectionEnd);
-
-        String moneyStr = getObj(lq, new Function<Object, String>() {
-            @Override
-            public String apply(Object money) {
-                return money.toString();
-            }
-        });
-
-
-        Map<String, Object> m = new HashMap<>();
-        if (StringUtils.isNotEmpty(moneyStr)) {
-
-            double resultMoneyDouble = 0;
-            BigDecimal astrictMoney = new BigDecimal(500);
-            BigDecimal usedMoney = new BigDecimal(moneyStr);
-            BigDecimal resultMoney = null;
-            resultMoney = astrictMoney.subtract(new BigDecimal(moneyStr));
-            resultMoney.setScale(2);
-            if (resultMoney.compareTo(BigDecimal.ZERO) == -1) {
-            } else {
-                resultMoneyDouble = resultMoney.doubleValue();
-            }
-
-            m.put("allowMoney", resultMoneyDouble);
-            m.put("usedMoney", usedMoney.doubleValue());
-            m.put("sectionStart",sectionStart);
-            m.put("sectionEnd",sectionEnd);
-
-        }
-            return m;
-    }
-}

+ 2 - 3
src/main/java/com/ydtech/modules/ins/controller/HengbangController.java

@@ -1,7 +1,6 @@
 package com.ydtech.modules.ins.controller;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
@@ -31,7 +30,7 @@ public class HengbangController {
 
     @PostMapping("/quote")
     @ApiOperation(value = "报价")
-    @MethodLogAnnotation(title = "恒邦-报价")
+//    @MethodLogAnnotation(title = "恒邦-报价")
     public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
         try {
             return insHengbangService.quote(yaQuoteInfoVo);
@@ -42,7 +41,7 @@ public class HengbangController {
 
     @PostMapping("/audit")
     @ApiOperation(value = "核保")
-    @MethodLogAnnotation(title = "恒邦-核保")
+//    @MethodLogAnnotation(title = "恒邦-核保")
     public HttpResult audit(@RequestSingleParam(value = "orderno") String orderno) throws IOException {
         try {
             return insHengbangService.audit(orderno);

+ 10 - 37
src/main/java/com/ydtech/modules/ins/controller/InsAlltrustApiController.java

@@ -2,7 +2,7 @@ package com.ydtech.modules.ins.controller;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.ydtech.aop.request.MethodLogAnnotation;
+//import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.dao.EsmInsAttachInsureDetailsMapper;
@@ -17,10 +17,7 @@ import com.ydtech.modules.order.components.InsOrdersComponents;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.utils.Base64Utils;
 import com.ydtech.utils.StringUtils;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -64,9 +61,14 @@ public class InsAlltrustApiController {
         return insYongchengApiService.modelsQueryApi(carModelReq);
     }
 
+    @ApiResponses({
+            @ApiResponse(code = 500, message = "出现异常"),
+            @ApiResponse(code = 101, message = "转保单"),
+            @ApiResponse(code = 200, message = "请求成功")
+    })
     @ApiOperation(value = "永诚API方式 - 报价")
     @PostMapping("/quote")
-    @MethodLogAnnotation(title = "永诚API方式 - 报价")
+//    @MethodLogAnnotation(title = "永诚API方式 - 报价")
     public HttpResult quoteApi(@RequestBody BaseQuoteVo<AccidentalDrivingVo> quoteVo) {
 //        BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo());
         return insYongchengApiService.quoteApi(quoteVo);
@@ -74,7 +76,7 @@ public class InsAlltrustApiController {
 
     @ApiOperation(value = "永诚API方式 - 核保")
     @PostMapping("/audit")
-    @MethodLogAnnotation(title = "永诚API方式 - 核保")
+//    @MethodLogAnnotation(title = "永诚API方式 - 核保")
     public HttpResult auditApi(@RequestSingleParam(value = "companyId") String companyId) {
         return insYongchengApiService.auditApi(companyId);
     }
@@ -112,37 +114,8 @@ public class InsAlltrustApiController {
         while (pNames.hasMoreElements()) {
             String name = (String) pNames.nextElement();
             log.info("永诚API方式 - 回调 - 参数:" + name);
-//            String value = request.getParameter(name);
-//            log.info("永诚API方式 - 回调 - 参数 值:" + value);
             if (StringUtils.isNotEmpty(name)) {
-                String str222 = Base64Utils.getBase64Decode(name);
-                log.info("永诚API方式 - 回调 - 参数 - 解析1次后:" + str222);
-                String paramStr = Base64Utils.getBase64Decode(str222);
-
-                log.info("永诚API方式 - 回调 - 参数 - 解析2次后:" + paramStr);
-                String[] paramArr = paramStr.split("&");
-
-                Map<String, String> reqMap = new HashMap<>();
-                Arrays.stream(paramArr).forEach(a -> {
-                    String[] pArr = a.split("=");
-                    reqMap.put(pArr[0], pArr.length > 1 ? pArr[1] : "");
-
-                });
-
-                CallBackRequest cbr = new CallBackRequest();
-                cbr.setTransNo(StringUtils.toString(reqMap.get("transNo")));
-                cbr.setType(StringUtils.toString(reqMap.get("type")));
-                cbr.setResult(StringUtils.toString(reqMap.get("result")));
-                cbr.setBizPolicyNo(StringUtils.toString(reqMap.get("biz_policy_no")));
-                cbr.setCiPolicyNo(StringUtils.toString(reqMap.get("ci_policy_no")));
-                cbr.setMessage(StringUtils.toString(reqMap.get("message")));
-                cbr.setBizPolicyAppNo(StringUtils.toString(reqMap.get("biz_policy_app_no")));
-                cbr.setCiPolicyAppNo(StringUtils.toString(reqMap.get("ci_policy_app_no")));
-                cbr.setStatus(StringUtils.toString(reqMap.get("status")));
-                cbr.setRemark(StringUtils.toString(reqMap.get("remark")));
-                cbr.setJqstatus(StringUtils.toString(reqMap.get("jqstatus")));
-                cbr.setSystatus(StringUtils.toString(reqMap.get("systatus")));
-
+                CallBackRequest cbr = CallBackRequest.buildCallBackParam(name);
                 return insYongchengApiService.callBackApi(cbr);
 
             }

+ 0 - 1
src/main/java/com/ydtech/modules/ins/controller/InsApiLogController.java

@@ -1,7 +1,6 @@
 package com.ydtech.modules.ins.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.model.InsTaskImage;
 import com.ydtech.modules.ins.dao.InsApiLogDao;

+ 101 - 63
src/main/java/com/ydtech/modules/ins/controller/InsPayApplyController.java

@@ -18,6 +18,7 @@ import com.ydtech.modules.esm.service.EsmUserInternalService;
 import com.ydtech.modules.esm.vo.ExtensionVO;
 import com.ydtech.modules.esm.vo.TeamUserQryVO;
 import com.ydtech.modules.esm.vo.TeamUserVO;
+import com.ydtech.modules.esm.vo.TeamUserVONew;
 import com.ydtech.modules.ins.model.InsOrder;
 import com.ydtech.modules.ins.model.InsPayApply;
 import com.ydtech.modules.ins.service.*;
@@ -340,7 +341,7 @@ public class InsPayApplyController extends BaseController {
         decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
         apply.setBalance(decimal.doubleValue());
         apply.setDisrate("");
-        EsmUserInternal userInternal = esmUserInternalService.selectByPk(userid);
+        EsmUserInternal userInternal = esmUserInternalService.getById(userid);
         apply.setBankname(userInternal.getBankname());
         apply.setAccountno(userInternal.getAccountno());
         apply.setApplystatus("0"); //0申请中 1支付中 2已支付
@@ -424,7 +425,7 @@ public class InsPayApplyController extends BaseController {
         decimal = decimal.setScale(2, BigDecimal.ROUND_HALF_UP);
         apply.setBalance(decimal.doubleValue());
         apply.setDisrate("");
-        EsmUserInternal userInternal = esmUserInternalService.selectByPk(userid);
+        EsmUserInternal userInternal = esmUserInternalService.getById(userid);
         apply.setBankname(userInternal.getBankname());
         apply.setAccountno(userInternal.getAccountno());
         apply.setApplystatus("0"); //0申请中 1支付中 2已支付
@@ -567,18 +568,22 @@ public class InsPayApplyController extends BaseController {
         for (SysUser user : users) {
             TeamUserVO teamUserVO = new TeamUserVO();
             //一级人数
-            StringBuffer whereStr = new StringBuffer();
-            ArrayList<String> params = new ArrayList<String>();
-            whereStr.append(" where recommenderid=? ");
-            params.add(user.getId());
-
-            if (!com.ydtech.utils.StringUtils.isNullOrEmpty(record.getStartdate()) && !com.ydtech.utils.StringUtils.isNullOrEmpty(record.getEnddate())) {
-                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                params.add(record.getStartdate());
-                params.add(record.getEnddate());
-            }
-            //查询本月推广人数
-            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+            TeamUserQryVO vo = record;
+            List<TeamUserVONew> list = esmUserAgentService.gainBelowUserByUserId(vo);
+
+//            StringBuffer whereStr = new StringBuffer();
+//            ArrayList<String> params = new ArrayList<String>();
+//            whereStr.append(" where recommenderid=? ");
+//            params.add(user.getId());
+//
+//            if (!com.ydtech.utils.StringUtils.isNullOrEmpty(record.getStartdate()) && !com.ydtech.utils.StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                params.add(record.getStartdate());
+//                params.add(record.getEnddate());
+//            }
+//
+//            //查询本月推广人数
+//            List<EsmUserAgent> list = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
             double sum1 = 0;
             int outSingle1 = 0;
             if (list != null && list.size() > 0) {
@@ -594,23 +599,15 @@ public class InsPayApplyController extends BaseController {
             teamUserVO.setOutSingle1(outSingle1);
             teamUserVO.setLevel1num(list == null ? 0 : list.size());
             //二级人数
-            List<EsmUserAgent> list2 = new ArrayList<>();
+            List<TeamUserVONew> list2 = new ArrayList<>();
             double sum2 = 0;
             int outSingle2 = 0;
-            List<EsmUserAgent> ls = null;
-            for (EsmUserAgent agent : list) {
-                whereStr = new StringBuffer();
-                params = new ArrayList<String>();
-                whereStr.append(" where recommenderid=? ");
-                params.add(agent.getId());
-                if (!com.ydtech.utils.StringUtils.isNullOrEmpty(record.getStartdate()) && !com.ydtech.utils.StringUtils.isNullOrEmpty(record.getEnddate())) {
-                    whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                    params.add(record.getStartdate());
-                    params.add(record.getEnddate());
-                }
-                ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+//            List<EsmUserAgent> ls = null;
+            for (TeamUserVONew oneUser : list) {
+
+                vo.setId(oneUser.getUserId());
+                list2.addAll(esmUserAgentService.gainBelowUserByUserId(vo));
 
-                list2.addAll(ls);
 
             }
             if (list2 != null && list2.size() > 0) {
@@ -626,20 +623,10 @@ public class InsPayApplyController extends BaseController {
             double sum3 = 0;
             int outSingle3 = 0;
             //三级人数
-            List<EsmUserAgent> list3 = new ArrayList<>();
-            for (EsmUserAgent agent : list2) {
-                whereStr = new StringBuffer();
-                params = new ArrayList<String>();
-                whereStr.append(" where recommenderid=? ");
-                params.add(agent.getId());
-                if (!com.ydtech.utils.StringUtils.isNullOrEmpty(record.getStartdate()) && !com.ydtech.utils.StringUtils.isNullOrEmpty(record.getEnddate())) {
-                    whereStr.append("and exists (select 1 from esm_user_internal a where t.id=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
-                    params.add(record.getStartdate());
-                    params.add(record.getEnddate());
-                }
-                ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-
-                list3.addAll(ls);
+            List<TeamUserVONew> list3 = new ArrayList<>();
+            for (TeamUserVONew twoUser : list2) {
+                vo.setId(twoUser.getUserId());
+                list3.addAll(esmUserAgentService.gainBelowUserByUserId(vo));
             }
 
             if (list3 != null && list3.size() > 0) {
@@ -670,29 +657,37 @@ public class InsPayApplyController extends BaseController {
             if (record.getEnddate().equals(format.format(DateMonthUtils.getEndDayOfMonth()))) {
                 extensionVO.setMonthExNumber(teamUserVO.getTeamnum());//本月推广人数
                 extensionVO.setMonthPremium(teamUserVO.getCountPremium());//本月推广订单保费
-                whereStr = new StringBuffer();
-                params = new ArrayList<String>();
-                whereStr.append(" where recommenderid=? ");
-                params.add(user.getId());
+
+
+//                whereStr = new StringBuffer();
+//                params = new ArrayList<String>();
+//                whereStr.append(" where recommenderid=? ");
+//                params.add(user.getId());
+//                //一级人数
+//                List<EsmUserAgent> listone = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
+
                 //一级人数
-                List<EsmUserAgent> listone = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-                for (EsmUserAgent agent : listone) {
-                    whereStr = new StringBuffer();
-                    params = new ArrayList<String>();
-                    whereStr.append(" where recommenderid=? ");
-                    params.add(agent.getId());
+                vo.setId(user.getId());
+                List<TeamUserVONew> listone = esmUserAgentService.gainBelowUserByUserId(vo);
+
+
+                for (TeamUserVONew oneUser : listone) {
+
+                    vo.setId(oneUser.getUserId());
                     // 二级人数
-                    ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-                    list2.addAll(ls);
+                    list2.addAll(esmUserAgentService.gainBelowUserByUserId(vo)) ;
 
                 }
-                for (EsmUserAgent agent : list2) {
-                    whereStr = new StringBuffer();
-                    params = new ArrayList<String>();
-                    whereStr.append(" where recommenderid=? ");
-                    params.add(agent.getId());
-                    ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
-                    list3.addAll(ls);
+                for (TeamUserVONew twoUser : list2) {
+                    vo.setId(twoUser.getUserId());
+
+                    // 三级人数
+                    list3.addAll(esmUserAgentService.gainBelowUserByUserId(vo));
+//                    whereStr = new StringBuffer();
+//                    params = new ArrayList<String>();
+//                    whereStr.append(" where recommenderid=? ");
+//                    params.add(agent.getId());
+//                    ls = esmUserAgentService.selectList(whereStr.toString(), params.toArray());
                 }
                 extensionVO.setHistoryNumber(listone.size() + list2.size() + list3.size());
             }
@@ -702,7 +697,7 @@ public class InsPayApplyController extends BaseController {
 
     }
 
-    public Map queryPrice(TeamUserQryVO record, List<EsmUserAgent> list) {
+    public Map queryPrice(TeamUserQryVO record, List<TeamUserVONew> list) {
         Map map = new HashMap();
         List<InsOrder> orderList = null;
         double sum = 0;
@@ -716,7 +711,7 @@ public class InsPayApplyController extends BaseController {
                 param = new ArrayList<String>();
                 whereStrs.append(" where orderstatus=7 ");
                 whereStrs.append(" and userid=? ");
-                param.add(list.get(i).getId());
+                param.add(list.get(i).getUserId());
                 if (!com.ydtech.utils.StringUtils.isNullOrEmpty(record.getStartdate()) && !com.ydtech.utils.StringUtils.isNullOrEmpty(record.getEnddate())) {
                     whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
                     param.add(record.getStartdate());
@@ -745,6 +740,49 @@ public class InsPayApplyController extends BaseController {
 
         return map;
     }
+//    public Map queryPrice(TeamUserQryVO record, List<EsmUserAgent> list) {
+//        Map map = new HashMap();
+//        List<InsOrder> orderList = null;
+//        double sum = 0;
+//        int count = 0;
+//        if (list != null && list.size() > 0) {
+//            for (int i = 0; i < list.size(); i++) {
+//
+//                StringBuffer whereStrs = new StringBuffer();
+//                ArrayList<String> param = new ArrayList<String>();
+//                whereStrs = new StringBuffer();
+//                param = new ArrayList<String>();
+//                whereStrs.append(" where orderstatus=7 ");
+//                whereStrs.append(" and userid=? ");
+//                param.add(list.get(i).getId());
+//                if (!com.ydtech.utils.StringUtils.isNullOrEmpty(record.getStartdate()) && !com.ydtech.utils.StringUtils.isNullOrEmpty(record.getEnddate())) {
+//                    whereStrs.append("and exists (select 1 from esm_user_internal a where t.userid=a.id and DATE_FORMAT(a.intime,'%Y-%m-%d') >= date ? and DATE_FORMAT(a.intime,'%Y-%m-%d') <= date ?)");
+//                    param.add(record.getStartdate());
+//                    param.add(record.getEnddate());
+//                }
+//                orderList = insOrderService.selectList(whereStrs.toString(), param.toArray());
+//                if (orderList != null && orderList.size() > 0) {
+//                    count = count + 1;
+//                    for (int j = 0; j < orderList.size(); j++) {
+//                        double sumpremium = orderList.get(j).getSumpremium();
+//                        double taxamount = orderList.get(j).getTaxamount();
+//
+//                        if (sumpremium > 0) {
+//                            sum = sum + sumpremium - taxamount;
+//
+//                        }
+//
+//                    }
+//
+//                }
+//            }
+//        }
+//        map.put("OutSingle", count);
+//        map.put("sum", sum);
+//
+//
+//        return map;
+//    }
 
 
 }

+ 0 - 3
src/main/java/com/ydtech/modules/ins/controller/InsYongchengController.java

@@ -1,7 +1,6 @@
 package com.ydtech.modules.ins.controller;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
@@ -33,14 +32,12 @@ public class  InsYongchengController {
 
     @PostMapping("/quote")
     @ApiOperation("报价")
-    @MethodLogAnnotation(title = "永诚-报价")
     public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
         return insYongchengService.quote(yaQuoteInfoVo);
     }
 
     @PostMapping("/audit")
     @ApiOperation("核保")
-    @MethodLogAnnotation(title = "永诚-核保")
     public HttpResult audit(@RequestSingleParam("orderno") String orderNo) throws IOException {
         return insYongchengService.audit(orderNo);
     }

+ 1 - 9
src/main/java/com/ydtech/modules/ins/controller/InsZhongmeiController.java

@@ -1,17 +1,12 @@
 package com.ydtech.modules.ins.controller;
 
 
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.aop.request.RequestSingleParam;
 import com.ydtech.components.ZhongmeiRequestComponents;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.dao.SysMethodLogDao;
-import com.ydtech.modules.esm.model.InsTaskImage;
-import com.ydtech.modules.ins.model.InsOrder;
 import com.ydtech.modules.ins.model.ya.CarModel_Req;
-import com.ydtech.modules.ins.model.ya.YaQuoteInfoVo;
 import com.ydtech.modules.ins.service.InsZhongmeiService;
 import com.ydtech.modules.ins.service.YongAnService;
 import io.swagger.annotations.Api;
@@ -19,9 +14,6 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.client.RestClientException;
-
-import java.io.IOException;
 
 @Api(tags = "中煤财险")
 @RestController
@@ -38,7 +30,7 @@ public class InsZhongmeiController {
 
     @Autowired
     private YongAnService yongAnService;
-    
+
     public InsZhongmeiController(InsZhongmeiService insZhongmeiService) {
         this.insZhongmeiService = insZhongmeiService;
     }

+ 2 - 3
src/main/java/com/ydtech/modules/ins/controller/RenbaoController.java

@@ -1,7 +1,6 @@
 package com.ydtech.modules.ins.controller;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
-import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.ins.model.InsOrder;
@@ -41,7 +40,7 @@ public class RenbaoController {
 
     @PostMapping("/quote")
     @ApiOperation(value = "报价")
-    @MethodLogAnnotation(title = "人保-报价")
+//    @MethodLogAnnotation(title = "人保-报价")
     public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) throws JsonProcessingException {
         try {
             return insRenbaoService.quote(yaQuoteInfoVo);
@@ -52,7 +51,7 @@ public class RenbaoController {
 
     @PostMapping("/audit")
     @ApiOperation(value = "核保")
-    @MethodLogAnnotation(title = "人保-核保")
+//    @MethodLogAnnotation(title = "人保-核保")
     public HttpResult audit(@RequestBody InsOrder orderno) throws IOException {
         try {
             return insRenbaoService.audit(orderno.getOrderno());

+ 3 - 3
src/main/java/com/ydtech/modules/ins/controller/YongAnController.java

@@ -1,6 +1,6 @@
 package com.ydtech.modules.ins.controller;
 
-import com.ydtech.aop.request.MethodLogAnnotation;
+//import com.ydtech.aop.request.MethodLogAnnotation;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.esm.model.InsTaskImage;
 import com.ydtech.modules.ins.model.InsOrder;
@@ -34,13 +34,13 @@ public class YongAnController {
     }
 
     @PostMapping("/quote")
-    @MethodLogAnnotation(title = "永安-报价")
+//    @MethodLogAnnotation(title = "永安-报价")
     public HttpResult quote(@RequestBody YaQuoteInfoVo yaQuoteInfoVo) {
         return yongAnService.quote(yaQuoteInfoVo);
     }
 
     @PostMapping("/audit")
-    @MethodLogAnnotation(title = "永安-核保")
+//    @MethodLogAnnotation(title = "永安-核保")
     public HttpResult audit(@RequestBody InsOrder orderno) {
         return yongAnService.audit(orderno.getOrderno());
     }

+ 39 - 4
src/main/java/com/ydtech/modules/ins/model/yc/CallBackRequest.java

@@ -1,8 +1,12 @@
 package com.ydtech.modules.ins.model.yc;
 
+import com.ydtech.utils.Base64Utils;
+import com.ydtech.utils.StringUtils;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -65,23 +69,54 @@ public class CallBackRequest implements Serializable {
 
     /**
      * 投保单状态
-     *    0待核保   5上报复核   9已核保未交费   3退回修改    1已核保且交费
+     * 0待核保   5上报复核   9已核保未交费   3退回修改    1已核保且交费
      */
     private String status;
     /**
      * 交强 投保单状态
-     *    0待核保   5上报复核   9已核保未交费   3退回修改    1已核保且交费
+     * 0待核保   5上报复核   9已核保未交费   3退回修改    1已核保且交费
      */
     private String jqstatus;
     /**
      * 商业 投保单状态
-     *    0待核保   5上报复核   9已核保未交费   3退回修改    1已核保且交费
+     * 0待核保   5上报复核   9已核保未交费   3退回修改    1已核保且交费
      */
     private String systatus;
 
     /**
      * 备注
-     *
      */
     private String remark;
+
+
+    public static CallBackRequest buildCallBackParam(String str) {
+        CallBackRequest cbr = new CallBackRequest();
+        if (StringUtils.isNotEmpty(str)) {
+            String str222 = Base64Utils.getBase64Decode(str);
+            String paramStr = Base64Utils.getBase64Decode(str222);
+            String[] paramArr = paramStr.split("&");
+
+            Map<String, String> reqMap = new HashMap<>();
+            Arrays.stream(paramArr).forEach(a -> {
+                String[] pArr = a.split("=");
+                reqMap.put(pArr[0], pArr.length > 1 ? pArr[1] : "");
+
+            });
+
+            cbr.setTransNo(StringUtils.toString(reqMap.get("transNo")));
+            cbr.setType(StringUtils.toString(reqMap.get("type")));
+            cbr.setResult(StringUtils.toString(reqMap.get("result")));
+            cbr.setBizPolicyNo(StringUtils.toString(reqMap.get("biz_policy_no")));
+            cbr.setCiPolicyNo(StringUtils.toString(reqMap.get("ci_policy_no")));
+            cbr.setMessage(StringUtils.toString(reqMap.get("message")));
+            cbr.setBizPolicyAppNo(StringUtils.toString(reqMap.get("biz_policy_app_no")));
+            cbr.setCiPolicyAppNo(StringUtils.toString(reqMap.get("ci_policy_app_no")));
+            cbr.setStatus(StringUtils.toString(reqMap.get("status")));
+            cbr.setRemark(StringUtils.toString(reqMap.get("remark")));
+            cbr.setJqstatus(StringUtils.toString(reqMap.get("jqstatus")));
+            cbr.setSystatus(StringUtils.toString(reqMap.get("systatus")));
+
+        }
+        return cbr;
+    }
 }

+ 4 - 2
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Base.java

@@ -282,7 +282,8 @@ public class Base {
 //    public static Base buildBase(YaQuoteInfoVo yaQuoteInfoVo,Agent agent) {
         Base base = new Base();
 
-        base.setCDptCde("14A4");
+        base.setCDptCde(apiComponents.getDptCde());
+//        base.setCDptCde("14A4");
         //@TODO 不确定  340001	按日计算(D)  340002	按月计算(M)
         base.setCRatioTyp("340001");
         base.setNRatioCoef("1");
@@ -290,7 +291,8 @@ public class Base {
         base.setCAmtCur("01");
         base.setCPrmCur("01");
         base.setCOprCde(apiComponents.getCOprcde());
-        base.setCImmeffMrk("1");
+        //@TODO 是否及时生效
+        base.setCImmeffMrk("0");
         base.setCUserType("0");
         base.setUserType("0");
         //续保标志(交强)  0 非续保   1 续保

+ 27 - 26
src/main/java/com/ydtech/modules/ins/model/yc/ruote/Vhl.java

@@ -73,6 +73,11 @@ public class Vhl {
     private String CPlateTyp;
     /**
      * 使用性质
+     * 336001	非营业
+     * 336002	营业
+     * 336002001	营业出租、租赁
+     * 336002002	营业城市公交
+     * 336002003	营业公路客运
      */
     @JacksonXmlProperty(localName = "CUsageCde")
     private String CUsageCde;
@@ -163,18 +168,19 @@ public class Vhl {
 //     */
 //    @JacksonXmlProperty(localName = "CResvTxt7")
 //    private String CResvTxt7;
-//    /**
-//     * 查询码-商业   转保业务,第二次请求必传
-//     */
-//    @JacksonXmlProperty(localName = "CQryCdeSY")
-//    private String CQryCdeSY;
-//    /**
-//     * 查询码-交强   转保业务,第二次请求必传
-//     */
-//    @JacksonXmlProperty(localName = "CQryCdeJQ")
-//    private String CQryCdeJQ;
+    /**
+     * 查询码-商业   转保业务,第二次请求必传
+     */
+    @JacksonXmlProperty(localName = "CQryCdeSY")
+    private String CQryCdeSY;
+    /**
+     * 查询码-交强   转保业务,第二次请求必传
+     */
+    @JacksonXmlProperty(localName = "CQryCdeJQ")
+    private String CQryCdeJQ;
     /**
      * 业务类型
+     * 0:新保 1:续保 2:转保
      */
     @JacksonXmlProperty(localName = "CBusType")
     private String CBusType;
@@ -273,16 +279,16 @@ public class Vhl {
 //     */
 //    @JacksonXmlProperty(localName = "TResvTm3")
 //    private String TResvTm3;
-//    /**
-//     * 转保校验码-商业
-//     */
-//    @JacksonXmlProperty(localName = "CCheckCodeSY")
-//    private String CCheckCodeSY;
-//    /**
-//     * 转保校验码-交强
-//     */
-//    @JacksonXmlProperty(localName = "CCheckCodeJQ")
-//    private String CCheckCodeJQ;
+    /**
+     * 转保校验码-商业
+     */
+    @JacksonXmlProperty(localName = "CCheckCodeSY")
+    private String CCheckCodeSY;
+    /**
+     * 转保校验码-交强
+     */
+    @JacksonXmlProperty(localName = "CCheckCodeJQ")
+    private String CCheckCodeJQ;
     /**
      * 系统默认排气量
      */
@@ -392,15 +398,9 @@ public class Vhl {
         vhl.setCEngNo(carInfo.getEngineNo());
         vhl.setCFrmNo(carInfo.getVinNo());
 
-        //@TODO 不确定 01大型汽车号牌  02小型汽车号牌
         vhl.setCPlateTyp(carInfo.getLicenseTypeCode());
 
         vhl.setCUsageCde("336001");
-//        if(carInfo.getCarnature().equals("8A")){
-//            vhl.setCUsageCde("336001");
-//        }else if(carInfo.getCarnature().equals("8B")){
-//            vhl.setCUsageCde("336001");
-//        }
 
         //所属性质(1个人 2企业 3机关)
         if (carInfo.getProperty().equals("1")) {
@@ -421,6 +421,7 @@ public class Vhl {
 //        //新旧车标志  0 新车,1 旧车
         vhl.setCNewMrk("1");
 
+        //轿车
         vhl.setCRegVhlTyp("K33");
 
 

+ 239 - 54
src/main/java/com/ydtech/modules/ins/service/impl/InsAlltrustApiServiceImpl.java

@@ -51,9 +51,9 @@ import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
-import com.ydtech.utils.HttpXmlUtil;
-import com.ydtech.utils.IDCardUtils;
-import com.ydtech.utils.StringUtils;
+import com.ydtech.utils.*;
+import com.ydtech.utils.baidu.FileUtil;
+import org.apache.poi.ss.formula.functions.T;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -63,6 +63,7 @@ import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.File;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -231,35 +232,99 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
         //构造地区
         buildRegion(m);
 
-        //6 接口请求
-        log.debug("=========永诚API方式 - xml请求 - 报价开始======");
-        InsApiLog apiLog = httpPost(xmlMapper, m, YcBuildData.API_QUOTE);
-        log.debug("=========永诚API方式 - xml请求 - 报价结束!======");
-        verifyRequest(apiLog, iac, InsQuoteFlow.Q_S_0);
-
-        String responseData = apiLog.getResponseData();
+        //请求转保处理
+        if (StringUtils.isNotEmpty(quoteVo.getRenewalCodeJq()) || StringUtils.isNotEmpty(quoteVo.getRenewalCodeSy())) {
+            m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(quoteVo.getRenewalCodeJq());
+            m.getRequestLabel().getCondition().getVhl().setCCheckCodeSY(quoteVo.getRenewalCodeSy());
+            m.getRequestLabel().getCondition().getVhl().setCBusType("2");
+            m.getRequestLabel().getCondition().getVhl().setCQryCdeJQ(quoteVo.getCQryCdeJq());
+            m.getRequestLabel().getCondition().getVhl().setCQryCdeSY(quoteVo.getCQryCdeSy());
 
-        try {
-            String cleanStr = YcBuildData.cleanResponseStr(responseData);
-            RuoteResponse rd = xmlMapper.readValue(cleanStr, RuoteResponse.class);
+        }
 
-            if (!rd.getHead().getErrorCode().equals("000000")) {
-                throw new SystemException(rd.getHead().getErrorMessage());
+        RuoteResponse rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
+        if (null == rr) return HttpResult.error("远程请求报价失败");
+        if (rr.getHead().getErrorCode().equals("000000")) {
+            String cCheckCodeJQ = rr.getVhl().getCCheckCodeJQ();
+            String cCheckCodeSY = rr.getVhl().getCCheckCodeSY();
+
+            boolean flagTransferInsJQ = StringUtils.isNotEmpty(rr.getVhl().getCCheckCodeJQ()) &&
+                    StringUtils.isNotEmpty(rr.getVhl().getCQryCdeJQ());
+            boolean flagTransferInsSY = StringUtils.isNotEmpty(rr.getVhl().getCCheckCodeSY()) &&
+                    StringUtils.isNotEmpty(rr.getVhl().getCQryCdeSY());
+            boolean flagTransferIns = StringUtils.isNotEmpty(rr.getVhl().getCBusType()) && (flagTransferInsJQ || flagTransferInsSY);
+            //响应  转保单
+            if (flagTransferIns) {
+                quoteVo.setRenewalCodeJq(cCheckCodeJQ);
+                quoteVo.setRenewalCodeSy(cCheckCodeSY);
+                quoteVo.setCQryCdeJq(rr.getVhl().getCQryCdeJQ());
+                quoteVo.setCQryCdeSy(rr.getVhl().getCQryCdeSY());
+                return HttpResult.error(101,quoteVo,"转保单");
             }
-            QuoteRespVo quoteRespVo = YcBuildData.buildQuoteRespVo(order, rd, yaQuoteInfoVo);
-            //8 生成订单
-            iac = response_order(order, quoteRespVo, m, rd,quoteVo);
-//            updateApiLog(apiLog, iac);
-            quoteRespVo.setCompanyId(iac.getId());
-
 
-            httpResult.setData(quoteRespVo);
-            httpResult.setMsg("成功");
 
-        } catch (IOException e) {
-            throw new RuntimeException(e);
+        } else {
+            return HttpResult.error(rr.getHead().getErrorMessage());
+//            throw new SystemException(rd.getHead().getErrorMessage());
         }
-        return httpResult;
+
+
+//        RuoteResponse rr = null;
+//        int flag = 0;
+//        while (flag < 3) {
+//            log.debug("永诚API方式 - 报价 - 请求 {} 次",flag);
+//            rr = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
+//            if (null == rr) return HttpResult.error("远程请求报价失败");
+//            if (rr.getHead().getErrorCode().equals("000000")) {
+//
+//                String cCheckCodeJQ = rr.getVhl().getCCheckCodeJQ();
+//                String cCheckCodeSY = rr.getVhl().getCCheckCodeSY();
+//
+//                boolean flagTransferInsJQ = StringUtils.isNotEmpty(rr.getVhl().getCCheckCodeJQ()) &&
+//                        StringUtils.isNotEmpty(rr.getVhl().getCQryCdeJQ());
+//                boolean flagTransferInsSY = StringUtils.isNotEmpty(rr.getVhl().getCCheckCodeSY()) &&
+//                        StringUtils.isNotEmpty(rr.getVhl().getCQryCdeSY());
+//                boolean flagTransferIns = StringUtils.isNotEmpty(rr.getVhl().getCBusType()) && (flagTransferInsJQ || flagTransferInsSY);
+//                //转保单
+//                if (flagTransferIns) {
+//                    log.debug("永诚API方式 - 报价 - 转保单业务处理");
+//                    String cBusType = rr.getVhl().getCBusType();
+//                    m.getRequestLabel().getCondition().getVhl().setCBusType(cBusType);
+//                    if(flagTransferInsJQ){
+//                        String imgStr = Tess4jOcr.ocrImageStr(cCheckCodeJQ);
+//                        //获取图片的验证码
+//                        m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(imgStr);
+//                    }
+//                    if(flagTransferInsSY){
+//                        String imgStr = Tess4jOcr.ocrImageStr(cCheckCodeJQ);
+//                        //获取图片的验证码
+//                        m.getRequestLabel().getCondition().getVhl().setCCheckCodeJQ(imgStr);
+//                    }
+//
+//                }else{
+//                    flag = 10;
+//                }
+//
+//                flag++;
+//
+//
+//
+//            } else {
+//                return HttpResult.error(rr.getHead().getErrorMessage());
+////            throw new SystemException(rd.getHead().getErrorMessage());
+//            }
+//
+//        }
+
+
+        QuoteRespVo quoteRespVo = YcBuildData.buildQuoteRespVo(order, rr, yaQuoteInfoVo);
+        //8 生成订单
+        iac = response_order(order, quoteRespVo, m, rr, quoteVo);
+//            updateApiLog(apiLog, iac);
+        quoteRespVo.setCompanyId(iac.getId());
+
+
+        return HttpResult.ok("报价成功", quoteRespVo);
 
     }
 
@@ -332,7 +397,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 } else {
                     iac.setOrderstatus(InsOrderStatus.S_2.getCode());
                 }
-                if(StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())){
+                if (StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())) {
                     order.setOrderstatus(iac.getOrderstatus());
                 }
             } else {
@@ -355,11 +420,11 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             if (InsOrderStatus.S_2.getCode().equals(InsOrderStatus.matchKey(iac.getOrderstatus()).getCode())) {
                 //获取缴费地址
                 getPayUrlApi(iac);
-            }else {
+            } else {
                 h = HttpResult.error(msg + "状态:" + InsOrderStatus.matchKey(iac.getOrderstatus()).getDesc());
             }
             insAreaCompanyService.updateById(iac);
-            insOrdersService.updateByOrderStatus(order.getOrderno(),order.getOrderstatus());
+            insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
 
 //            if (InsOrderStatus.S_2.getCode().equals(InsOrderStatus.matchKey(iac.getOrderstatus()).getCode())) {
 //                return HttpResult.ok(msg);
@@ -519,8 +584,9 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 return HttpResult.error("报价订单不存在");
             }
             //0 支付回调 1核保回调 5直接返回字符串信息
-            String type = "0";
-            if(iac.getOrderstatus().equals(InsOrderStatus.S_1.getCode())) type = "1";
+//            String type = "0";
+            String type = "5";
+//            if(iac.getOrderstatus().equals(InsOrderStatus.S_1.getCode())) type = "1";
             //组装参数
             CallbackAnOrder o = CallbackAnOrder.buildCallbackAnOrderParam(iac, gainAuthorityDataXml(), type);
 
@@ -536,13 +602,46 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
             String cleanStr = YcBuildData.cleanResponseStr(responseData);
 //            CallbackAnOrderResponse callbackAnOrderResponse = xmlMapper.readValue(cleanStr, CallbackAnOrderResponse.class);
 
-            if (cleanStr.equals("0000")) {
-                httpResult.setMsg("操作成功");
-            } else {
-                httpResult.setMsg(cleanStr);
-//                httpResult.setMsg(callbackAnOrderResponse.getMessage());
+            if (StringUtils.isNullOrEmpty(cleanStr)) {
+                log.info("永诚API方式 - 补传回调 - 参数:" + cleanStr);
+                CallBackRequest param = CallBackRequest.buildCallBackParam(cleanStr);
+
+                //成功
+                if (param.getResult().equals("0")) {
+//                    LambdaQueryWrapper<InsAreaCompany> lqw = new LambdaQueryWrapper();
+//                    //交强投保单号查询
+//                    lqw.eq(StringUtils.isNotEmpty(param.getCiPolicyAppNo()), InsAreaCompany::getJqapplyno, param.getCiPolicyAppNo());
+//                    //商业投保单号查询
+//                    lqw.eq(StringUtils.isNotEmpty(param.getBizPolicyAppNo()), InsAreaCompany::getSyapplyno, param.getBizPolicyAppNo());
+//                    InsAreaCompany iac = insAreaCompanyService.getOne(lqw);
+
+
+                    if (StringUtils.isNotEmpty(param.getBizPolicyNo())) iac.setSypolicyno(param.getBizPolicyNo());
+                    if (StringUtils.isNotEmpty(param.getCiPolicyNo())) iac.setJqpolicyno(param.getCiPolicyNo());
+
+                    iac = buildCallBack(iac, param);
+
+                    if (StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())) {
+                        order.setOrderstatus(iac.getOrderstatus());
+                    }
+                    insAreaCompanyService.updateById(iac);
+                    insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
+
+                } else {
+                    //失败原因
+                    httpResult = HttpResult.error(param.getMessage());
+                    log.info(String.format("永诚API方式 - 补传回调 - 失败,交强保单号:{} ,商业保单号:{},类型:{}", param.getCiPolicyNo(), param.getBizPolicyNo(), param.getType()));
+                }
+                return HttpResult.ok(param);
+
             }
 
+//            if (cleanStr.equals("0000")) {
+//                httpResult.setMsg("操作成功");
+//            } else {
+//                httpResult.setMsg(cleanStr);
+//            }
+
         } catch (SystemException e) {
             return HttpResult.error(e.getMessage());
         } catch (Exception e) {
@@ -583,12 +682,12 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
 
             if (pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusCode().equals("E0000")) {
                 Map m = new HashMap();
-                if(policyPrintVo.getType().equals("1")){
+                if (policyPrintVo.getType().equals("1")) {
                     m.put("jqFlagUrl", pResp.getPolicyBZUrl());
                     m.put("jqUrl", "");
                     m.put("syUrl", "");
                 }
-                if(policyPrintVo.getType().equals("2")){
+                if (policyPrintVo.getType().equals("2")) {
                     m.put("jqFlagUrl", pResp.getPolicyBZUrl());
                     m.put("jqUrl", pResp.getJqpolicyUrl());
                     m.put("syUrl", pResp.getSypolicyUrl());
@@ -596,7 +695,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 }
 //                httpResult.setData(m);
 //                httpResult.setMsg(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription());
-                return HttpResult.ok(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription(),m);
+                return HttpResult.ok(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription(), m);
 
             } else {
                 return HttpResult.error(pResp.getHead().getResponseCompleteMessageStatus().getMessageStatusDescription());
@@ -850,16 +949,15 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
                 if (StringUtils.isNotEmpty(param.getBizPolicyNo())) iac.setSypolicyno(param.getBizPolicyNo());
                 if (StringUtils.isNotEmpty(param.getCiPolicyNo())) iac.setJqpolicyno(param.getCiPolicyNo());
 
-                iac = buildCallBack(iac,param);
+                iac = buildCallBack(iac, param);
 
                 InsOrders order = insOrdersService.getById(iac.getOrderno());
-                if(StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())){
+                if (StringUtils.toInt(order.getOrderstatus()) < StringUtils.toInt(iac.getOrderstatus())) {
                     order.setOrderstatus(iac.getOrderstatus());
                 }
 
                 insAreaCompanyService.updateById(iac);
-                insOrdersService.updateByOrderStatus(order.getOrderno(),order.getOrderstatus());
-
+                insOrdersService.updateByOrderStatus(order.getOrderno(), order.getOrderstatus());
 
 
                 //支付后 手工确认意外险
@@ -1158,7 +1256,7 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
      * @author: lig
      * @date: 2023年02月16日 0016
      */
-    private InsAreaCompany response_order(InsOrders insOrder, QuoteRespVo quoteRespVo, Ruote requestData, RuoteResponse responseData,BaseQuoteVo<AccidentalDrivingVo> quoteVo) {
+    private InsAreaCompany response_order(InsOrders insOrder, QuoteRespVo quoteRespVo, Ruote requestData, RuoteResponse responseData, BaseQuoteVo<AccidentalDrivingVo> quoteVo) {
 
 
         //交强保费 含税
@@ -1368,21 +1466,21 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
     /**
-     *  构造回调
-     *  依赖 buildCallBack
+     * 构造回调
+     * 依赖 buildCallBack
      *
      * @author: lig
      * @date: 2023-05-06
      */
-    private InsAreaCompany buildCallBack(InsAreaCompany iac,CallBackRequest param){
+    private InsAreaCompany buildCallBack(InsAreaCompany iac, CallBackRequest param) {
         //正常回调 与 补传回调
-        if(StringUtils.isNotEmpty(param.getStatus())){
+        if (StringUtils.isNotEmpty(param.getStatus())) {
             iac = buildCallBackStatus(iac, param.getStatus());
-        }else {
-            if(StringUtils.isNotEmpty(param.getJqstatus())){
+        } else {
+            if (StringUtils.isNotEmpty(param.getJqstatus())) {
                 iac = buildCallBackStatus(iac, param.getJqstatus());
             }
-            if(StringUtils.isNotEmpty(param.getSystatus())){
+            if (StringUtils.isNotEmpty(param.getSystatus())) {
                 iac = buildCallBackStatus(iac, param.getSystatus());
             }
 
@@ -1391,13 +1489,12 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
     /**
-     *  构造回调状态
-     *
+     * 构造回调状态
      *
      * @author: lig
      * @date: 2023-05-06
      */
-    private InsAreaCompany buildCallBackStatus(InsAreaCompany iac,String status){
+    private InsAreaCompany buildCallBackStatus(InsAreaCompany iac, String status) {
         if (status.equals("9")) {
             iac.setOrderstatus(InsOrderStatus.S_2.getCode());
             //更新支付连接
@@ -1415,4 +1512,92 @@ public class InsAlltrustApiServiceImpl implements InsAlltrustApiService {
     }
 
 
+//    /**
+//     * 通过修改参数后 报价
+//     *
+//     * @author: lig
+//     * @date: 2023年05月17日 0017
+//     */
+//    private RuoteResponse quoteApiByEdit(Ruote m) {
+//
+//        RuoteResponse rd = null;
+//
+//        log.debug("=========永诚API方式 - xml请求 - (修改参数后)报价开始======");
+//        InsApiLog apiLog = httpPost(xmlMapper, m, YcBuildData.API_QUOTE);
+//        log.debug("=========永诚API方式 - xml请求 - (修改参数后)报价结束!======");
+//        verifyRequest(apiLog, null, InsQuoteFlow.Q_S_0);
+//
+//        String responseData = apiLog.getResponseData();
+//
+//        try {
+//            String cleanStr = YcBuildData.cleanResponseStr(responseData);
+//            rd = xmlMapper.readValue(cleanStr, RuoteResponse.class);
+//
+//
+//        } catch (IOException e) {
+//            log.error("=========永诚API方式 - xml请求 - (修改参数后)报价 错误:" + e.getMessage());
+//            throw new RuntimeException(e);
+//        }
+//        return rd;
+//
+//    }
+
+
+    /**
+     * 请求API接口,返回对象
+     *
+     * @author: lig
+     * @date: 2023年05月18日 0018
+     */
+    private <T> T requestApi(Object m, T response, InsAreaCompany iac, String reqUrl, InsQuoteFlow iqf) {
+//    private Object aaa(T m,T ruoteResponse,InsAreaCompany iac){
+        //6 接口请求
+        log.debug("=========永诚API方式 - xml请求 - {}开始======", iqf.getDesc());
+        InsApiLog apiLog = httpPost(xmlMapper, m, reqUrl);
+        log.debug("=========永诚API方式 - xml请求 - {}结束!======", iqf.getDesc());
+        verifyRequest(apiLog, iac, iqf);
+
+        String responseData = apiLog.getResponseData();
+        String cleanStr = YcBuildData.cleanResponseStr(responseData);
+//        Object rd = null;
+        try {
+            response = (T) xmlMapper.readValue(cleanStr, response.getClass());
+            return response;
+        } catch (JsonProcessingException e) {
+            log.debug("=========永诚API方式 - xml请求 - {}解析报错:{}", iqf.getDesc(), e.getMessage());
+//            throw new RuntimeException(e);
+            throw new SystemException("请求接口失败,对象转换错误,请联系管理员。");
+        }
+    }
+
+
+//    private boolean gainResultFlag(RuoteResponse rd,Ruote m){
+//        boolean flag = false;
+//        if (null == rd) {
+//            throw new SystemException("远程请求报价失败");
+//        }
+//
+//        if (rd.getHead().getErrorCode().equals("000000")) {
+//            //获取失败
+//            boolean fail = !(StringUtils.isNotEmpty(rd.getVhl().getCQryCdeJQ()) || StringUtils.isNotEmpty(rd.getVhl().getCQryCdeSY()));
+//            if (fail) {
+//                //如果类型错误,修改类型后,继续报价
+//                if (StringUtils.isNotEmpty(rd.getVhl().getCBusType())) {
+//                    //修改类型继续报价
+//                    m.getRequestLabel().getCondition().getVhl().setCBusType(rd.getVhl().getCBusType());
+//                    rd = requestApi(m, new RuoteResponse(), iac, YcBuildData.API_QUOTE, InsQuoteFlow.Q_S_0);
+//                    if (null == rd) return HttpResult.error("远程请求报价失败");
+//                    if (fail) {
+//                        throw new SystemException(rd.getHead().getErrorMessage());
+//                    }
+//                }
+//                throw new SystemException(rd.getHead().getErrorMessage());
+//            }
+//        } else {
+//            throw new SystemException(rd.getHead().getErrorMessage());
+//        }
+//
+//    }
+
+
 }

+ 48 - 16
src/main/java/com/ydtech/modules/inv/controller/InvCompanyController.java

@@ -1,10 +1,15 @@
 package com.ydtech.modules.inv.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ydtech.core.page.BaseController;
 import com.ydtech.core.page.HttpResult;
-import com.ydtech.modules.fnc.model.TaxTool;
-import com.ydtech.modules.fnc.service.TaxToolService;
+import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.inv.model.InvCompany;
 import com.ydtech.modules.inv.service.InvCompanyService;
+import com.ydtech.modules.inv.vo.req.InvCompanyReqVO;
+import com.ydtech.modules.inv.vo.res.InvCompanyResVO;
+import com.ydtech.utils.DateUtil;
+import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
@@ -15,9 +20,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.math.BigDecimal;
 import java.util.Date;
-import java.util.Map;
+import java.util.List;
 
 /**
  * 发票公司控制层
@@ -27,8 +31,8 @@ import java.util.Map;
  */
 @Api(tags = "发票公司控制层")
 @RestController
-@RequestMapping("inv/company")
-public class InvCompanyController {
+@RequestMapping("api/inv/company")
+public class InvCompanyController extends BaseController {
 
     @Autowired
     private InvCompanyService invCompanyService;
@@ -40,19 +44,47 @@ public class InvCompanyController {
             @ApiResponse(code = 200, message = "请求成功")
     })
     @PostMapping(value = "/save")
+//    @ApiOperationSupport(ignoreParameters = {"id"})
     public HttpResult save(@RequestBody InvCompany invCompany) {
-        return HttpResult.ok(invCompanyService.save(invCompany));
+
+
+        if(StringUtils.isNotEmpty(invCompany.getId())){
+            //更新
+            invCompany.setUpdateBy(getUserId());
+            invCompany.setUpdateTime(new Date());
+
+        }else{
+            //新增
+            invCompany.setDelFlag(0);
+            invCompany.setCreateBy(getUserId());
+            invCompany.setCreateTime(new Date());
+        }
+
+        return HttpResult.ok(invCompanyService.saveOrUpdate(invCompany));
+    }
+
+    @ApiOperation(value = "开票公司查询分页(展示额度)",notes = "默认当前一年")
+    @PostMapping(value = "/findPage")
+    public HttpResult<PageResult<InvCompanyResVO>> findPage(@RequestBody InvCompanyReqVO InvCompanyReqVO) {
+
+        if(StringUtils.isNullOrEmpty(InvCompanyReqVO.getStartInvoiceDate())){
+            String sectionStart = DateUtil.gainDateMonthFirstDay(DateUtil.gainFrontOneYear());
+            InvCompanyReqVO.setStartInvoiceDate(sectionStart);
+        }
+        if(StringUtils.isNullOrEmpty(InvCompanyReqVO.getEndInvoiceDate())){
+            String sectionEnd = DateUtil.gainDateMonthFirstDay(null);
+            InvCompanyReqVO.setEndInvoiceDate(sectionEnd);
+        }
+        return HttpResult.ok(invCompanyService.gainPage(InvCompanyReqVO));
+
     }
 
-//    @ApiOperation(value = "获取可报税额")
-//    @ApiResponses({
-//            @ApiResponse(code = 500, message = "出现异常"),
-//            @ApiResponse(code = 200, message = "请求成功")
-//    })
-//    @PostMapping(value = "/gainUpTaxMoney")
-//    public HttpResult gainUpTaxMoney() {
-//        return HttpResult.ok(taxToolService.gainTaxInfo());
-//    }
+
+    @ApiOperation(value = "开票公司查询")
+    @PostMapping(value = "/findList")
+    public HttpResult<List<InvCompany>> findList() {
+        return HttpResult.ok(invCompanyService.list());
+    }
 
 
 

+ 133 - 19
src/main/java/com/ydtech/modules/inv/controller/InvInvoiceInfoController.java

@@ -1,17 +1,30 @@
 package com.ydtech.modules.inv.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.aop.exception.DescribeException;
+import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
+import com.ydtech.core.page.BaseController;
 import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.inv.model.InvInvoiceInfo;
 import com.ydtech.modules.inv.service.InvInvoiceInfoService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
+import com.ydtech.modules.inv.vo.req.InvInvoiceInfoReqVO;
+import com.ydtech.utils.StringUtils;
+import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 发票信息管理
@@ -21,8 +34,8 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @Api(tags = "发票信息管理")
 @RestController
-@RequestMapping("inv/invoiceInfo")
-public class InvInvoiceInfoController {
+@RequestMapping("api/inv/invoiceInfo")
+public class InvInvoiceInfoController extends BaseController {
 
     @Autowired
     private InvInvoiceInfoService invInvoiceInfoService;
@@ -35,19 +48,120 @@ public class InvInvoiceInfoController {
     })
     @PostMapping(value = "/save")
     public HttpResult save(@RequestBody InvInvoiceInfo invInvoiceInfo) {
-        return HttpResult.ok(invInvoiceInfoService.save(invInvoiceInfo));
+
+
+
+
+        invInvoiceInfo.setApprovalStatus(ApprovalStatusEnum.AS0.getCode());
+        if(StringUtils.isNotEmpty(invInvoiceInfo.getId())){
+            //更新
+            InvInvoiceInfo info = invInvoiceInfoService.getById(invInvoiceInfo.getId());
+            if(info.getApprovalStatus().equals(ApprovalStatusEnum.AS1.getCode())){
+                return HttpResult.error("审核通过的不允许修改");
+            }
+
+            invInvoiceInfo.setUpdateBy(getUserId());
+            invInvoiceInfo.setUpdateTime(new Date());
+
+        }else{
+            //新增
+            invInvoiceInfo.setCreateBy(getUserId());
+            invInvoiceInfo.setCreateTime(new Date());
+        }
+
+
+        return HttpResult.ok(invInvoiceInfoService.saveOrUpdate(invInvoiceInfo));
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param reqVo
+     * @return
+     */
+    @ApiOperation(value = "分页查询")
+    @PostMapping(value = "/queryPage")
+    public HttpResult queryPage(@RequestBody InvInvoiceInfoReqVO reqVo){
+
+        LambdaQueryWrapper<InvInvoiceInfo> lqw = new LambdaQueryWrapper();
+        lqw.eq(StringUtils.isNotEmpty(reqVo.getApprovalStatus()),InvInvoiceInfo::getApprovalStatus,reqVo.getApprovalStatus());
+        lqw.eq(StringUtils.isNotEmpty(reqVo.getInvoiceClerk()),InvInvoiceInfo::getInvoiceClerk,reqVo.getInvoiceClerk());
+        lqw.eq(StringUtils.isNotEmpty(reqVo.getInvCompanyId()),InvInvoiceInfo::getInvCompanyId,reqVo.getInvCompanyId());
+
+        Page p = PageRequest.buildPageRequestByVo(reqVo);
+        IPage<InvInvoiceInfo> pResult = invInvoiceInfoService.page(p, lqw);
+        //传入查询条件
+        PageResult pageResult = PageResult.buildPageResult(pResult);
+        return HttpResult.ok(pageResult);
+    }
+
+
+    /**
+     * 审批通过
+     *
+     * @param
+     * @return
+     */
+    @PreAuthorize("hasAuthority('inv:invoice:info:approval:pass')")
+    @ApiOperation(value = "审批通过")
+    @PostMapping(value = "/approvalPass")
+    public HttpResult approvalPass(@RequestParam("ids") List<String> ids){
+
+        return HttpResult.ok(invInvoiceInfoService.approval(ApprovalStatusEnum.AS1,ids));
+    }
+
+    /**
+     * 审批退回
+     *
+     * @param
+     * @return
+     */
+    @PreAuthorize("hasAuthority('inv:invoice:info:approval:back')")
+    @ApiOperation(value = "审批退回")
+    @PostMapping(value = "/approvalBack")
+    public HttpResult approvalBack(@RequestParam("ids") List<String> ids){
+
+        return HttpResult.ok(invInvoiceInfoService.approval(ApprovalStatusEnum.AS3,ids));
     }
 
-//    @ApiOperation(value = "获取可报税额")
-//    @ApiResponses({
-//            @ApiResponse(code = 500, message = "出现异常"),
-//            @ApiResponse(code = 200, message = "请求成功")
-//    })
-//    @PostMapping(value = "/gainUpTaxMoney")
-//    public HttpResult gainUpTaxMoney() {
-//        return HttpResult.ok(taxToolService.gainTaxInfo());
+
+//    /**
+//     * 批量删除
+//     *
+//     * @param
+//     * @return
+//     */
+//    @ApiOperation(value = "批量删除")
+//    @PostMapping(value = "/batchDelete")
+//    public HttpResult batchDelete(List<String> ids){
+//
+//        return HttpResult.ok(invInvoiceInfoService.removeBatchByIds(ids));
 //    }
 
 
 
+    @PostMapping("/import")
+    @ApiOperation(value = "excel导入数据")
+    public HttpResult importData(@ApiParam(name = "file", value = "excel文件") MultipartFile file, HttpServletRequest request) {
+        HttpResult result = null;
+
+        return invInvoiceInfoService.importData(file);
+
+    }
+//    @PostMapping("/export")
+    @GetMapping("/export")
+    @ApiOperation(value = "excel导出数据")
+    public void exportData(@RequestParam("ids") List<String> ids, HttpServletRequest request, HttpServletResponse response) {
+
+        try {
+            invInvoiceInfoService.exportData(ids,request,response);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new DescribeException("信息导出失败!" + e.getMessage());
+        }
+
+    }
+
+
+
 }

+ 97 - 1
src/main/java/com/ydtech/modules/inv/dao/InvCompanyMapper.java

@@ -1,9 +1,105 @@
 package com.ydtech.modules.inv.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ydtech.modules.fnc.model.TaxTool;
+import com.ydtech.core.page.PageRequest;
 import com.ydtech.modules.inv.model.InvCompany;
+import com.ydtech.modules.inv.vo.req.InvCompanyReqVO;
+import com.ydtech.modules.inv.vo.res.InvCompanyResVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 public interface InvCompanyMapper extends BaseMapper<InvCompany> {
 
+
+    String selectSum = "SELECT" +
+            "	max( ic.id ) AS id," +
+            "	sum( iii.Invoice_amount ) AS invoicedMoney," +
+            "IF" +
+            "	(" +
+            "		max( ic.tax_limit ) = '不限'," +
+            "		'-'," +
+            "		 GREATEST(max( ic.tax_limit ) - sum( iii.Invoice_amount ), 0 ) " +
+            "	) AS notInvoicedMoney " +
+            "FROM" +
+            " inv_invoice_info iii" +
+            "	LEFT JOIN inv_company ic ON iii.inv_company_id = ic.id " +
+            "WHERE" +
+            "	1 = 1 " +
+            "	AND ic.del_flag = 0 " +
+            "	AND iii.approval_status = 1 " +
+            " <if test='page.startInvoiceDate !=null and page.startInvoiceDate!=\"\" and page.endInvoiceDate !=null and page.endInvoiceDate!=\"\" '>" +
+            " and iii.invoice_date between #{page.startInvoiceDate} and #{page.endInvoiceDate}" +
+//            " and iii.invoice_date between '2023-01-01' and '2023-05-01'" +
+            "</if> " +
+//            "<if test='page.enterpriseId !=null and page.enterpriseId!=\"\" and page.enterpriseId !=null and page.enterpriseId!=\"\" '>" +
+//            " and ic.id = #{page.enterpriseId} " +
+//            "</if> " +
+//            "<if test='page.qualityId !=null and page.qualityId!=\"\" and page.qualityId !=null and page.qualityId!=\"\" '>" +
+//            " and ic.quality_id = #{page.qualityId} " +
+//            "</if> " +
+            " GROUP BY iii.inv_company_id ";
+
+
+    //查询开票公司发票额度信息
+    String selectCompanyInvoiceQuotaSql = " select  ic.id AS id," +
+            "ic.quality_name AS qualityName," +
+            "ic.quality_id AS qualityId," +
+            "ic.area_name AS areaName," +
+            "ic.tax_rate AS taxRate," +
+            "ic.enterprise_name AS enterpriseName," +
+            "ic.legal_person AS legalPerson," +
+            "ic.found_date AS foundDate," +
+            "ic.admin AS admin," +
+            "ic.tax_limit AS taxLimit," +
+            "t1.invoicedMoney," +
+            "t1.notInvoicedMoney " +
+            " FROM inv_company ic LEFT JOIN" +
+            "	(" + selectSum + "	) t1 on t1.id=ic.id" +
+            " where 1=1 " +
+            "<if test='page.enterpriseId !=null and page.enterpriseId!=\"\" and page.enterpriseId !=null and page.enterpriseId!=\"\" '>" +
+            " and ic.id = #{page.enterpriseId} " +
+            "</if> " +
+            "<if test='page.qualityId !=null and page.qualityId!=\"\" and page.qualityId !=null and page.qualityId!=\"\" '>" +
+            " and ic.quality_id = #{page.qualityId} " +
+            "</if> " ;
+
+
+//    String selectCompanyInvoiceQuotaSql = " select  max(ic.id) as id" +
+//            ",max(ic.quality_name) as qualityName" +
+//            ",max(ic.enterprise_name)  as enterpriseName" +
+//            ",max(ic.legal_person) as legalPerson" +
+//            ",max(ic.found_date) as foundDate" +
+//            ",max(ic.admin) as admin" +
+//            ",max(ic.tax_limit) as taxLimit" +
+//            ",sum(iii.Invoice_amount) as invoicedMoney" +
+//            ",IF(max(ic.tax_limit) ='不限','-' ,GREATEST(max(ic.tax_limit) - sum(iii.Invoice_amount),0)  ) as notInvoicedMoney" +
+//            " from inv_company ic " +
+//            " left join inv_invoice_info iii on iii.inv_company_name = ic.enterprise_name" +
+//            " where 1=1 and ic.del_flag=0 " +
+//            " <if test='page.startInvoiceDate !=null and page.startInvoiceDate!=\"\" and page.endInvoiceDate !=null and page.endInvoiceDate!=\"\" '>" +
+//            " and iii.invoice_date between #{page.startInvoiceDate} and #{page.endInvoiceDate}" +
+////            " and iii.invoice_date between '2023-01-01' and '2023-05-01'" +
+//            "</if> " +
+//            "<if test='page.enterpriseId !=null and page.enterpriseId!=\"\" and page.enterpriseId !=null and page.enterpriseId!=\"\" '>" +
+//            " and ic.quality_id = #{page.enterpriseId} " +
+//            "</if> " +
+//            "<if test='page.enterpriseId !=null and page.enterpriseId!=\"\" and page.enterpriseId !=null and page.enterpriseId!=\"\" '>" +
+//            " and ic.id = #{page.enterpriseId} " +
+//            "</if> " +
+//            "<if test='page.qualityId !=null and page.qualityId!=\"\" and page.qualityId !=null and page.qualityId!=\"\" '>" +
+//            " and ic.quality_id = #{page.qualityId} " +
+//            "</if> " +
+//
+//            "GROUP BY iii.inv_company_name ";
+
+
+    @Select({"<script> select count(1) from (", selectCompanyInvoiceQuotaSql, ") a </script>"})
+    int gainCount(@Param("page") InvCompanyReqVO invCompanyReqVO);
+
+    @Select({"<script> ", selectCompanyInvoiceQuotaSql, " limit #{page.pageNum},#{page.pageSize}", "</script>"})
+    List<InvCompanyResVO> gainPage(@Param("page") InvCompanyReqVO invCompanyReqVO);
+
+
 }

+ 12 - 0
src/main/java/com/ydtech/modules/inv/model/InvCompany.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -26,48 +27,57 @@ public class InvCompany implements Serializable {
     /**
      * 营业性质ID
      */
+    @ApiModelProperty(value = "营业性质ID")
     @TableField(value = "quality_id")
     private String qualityId;
 
     /**
      * 营业性质
      */
+    @ApiModelProperty(value = "营业性质")
     @TableField(value = "quality_name")
     private String qualityName;
 
     /**
      * 所属地
      */
+    @ApiModelProperty(value = "所属地")
     @TableField(value = "area_name")
     private String areaName;
 
     /**
      * 企业名称
      */
+    @ApiModelProperty(value = "企业名称")
     @TableField(value = "enterprise_name")
     private String enterpriseName;
 
     /**
      * 法人
      */
+    @ApiModelProperty(value = "法人")
     @TableField(value = "legal_person")
     private String legalPerson;
 
     /**
      * 税率
      */
+    @ApiModelProperty(value = "税率")
     @TableField(value = "tax_rate")
     private String taxRate;
 
     /**
      * 成立日期
      */
+    @ApiModelProperty(value = "成立日期")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @TableField(value = "found_date")
     private Date foundDate;
 
     /**
      * 管理员
      */
+    @ApiModelProperty(value = "管理员")
     @TableField(value = "admin")
     private String admin;
 
@@ -98,12 +108,14 @@ public class InvCompany implements Serializable {
     /**
      * 是否删除  -1:已删除  0:正常
      */
+    @ApiModelProperty(value = "是否删除 -1:已删除  0:正常")
     @TableField(value = "del_flag")
     private Integer delFlag;
 
     /**
      * 报税限额度(年)
      */
+    @ApiModelProperty(value = "报税限额度(年)")
     @TableField(value = "tax_limit")
     private String taxLimit;
 

+ 62 - 2
src/main/java/com/ydtech/modules/inv/model/InvInvoiceInfo.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.inv.model;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -9,6 +10,8 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 /**
@@ -28,138 +31,193 @@ public class InvInvoiceInfo implements Serializable {
     /**
      * 开票员
      */
+    @Excel(name = "开票员")
+    @ApiModelProperty(value = "开票员")
     @TableField(value = "invoice_clerk")
     private String invoiceClerk;
 
     /**
      * 开票科目ID
      */
+    @ApiModelProperty(value = "开票科目ID")
     @TableField(value = "subjects_id")
     private String subjectsId;
 
     /**
      * 开票科目
      */
+    @Excel(name = "开票科目")
+    @ApiModelProperty(value = "开票科目")
     @TableField(value = "subjects")
     private String subjects;
 
     /**
      * 开票方ID
      */
+    @ApiModelProperty(value = "开票方ID")
     @TableField(value = "inv_company_id")
     private String invCompanyId;
 
     /**
      * 开票方
      */
+    @Excel(name = "开票方")
+    @ApiModelProperty(value = "开票方")
     @TableField(value = "inv_company_name")
     private String invCompanyName;
 
     /**
      * 对方单位名称
      */
+    @Excel(name = "对方单位名称")
+    @ApiModelProperty(value = "对方单位名称")
     @TableField(value = "peer_company_name")
     private String peerCompanyName;
 
     /**
      * 发票号码
      */
+    @Excel(name = "发票号码")
+    @ApiModelProperty(value = "发票号码")
     @TableField(value = "invoice_num")
     private String invoiceNum;
 
     /**
      * 发票数
      */
+    @Excel(name = "发票数")
+    @ApiModelProperty(value = "发票数")
     @TableField(value = "invoice_quantity")
     private Integer invoiceQuantity;
 
     /**
      * 开票日期
      */
+    @Excel(name = "开票日期",exportFormat = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "开票日期")
     @TableField(value = "invoice_date")
     private Date invoiceDate;
 
     /**
      * 不含税金额
      */
+    @Excel(name = "不含税金额")
+    @ApiModelProperty(value = "不含税金额")
     @TableField(value = "tax_exclusive_price")
     private BigDecimal taxExclusivePrice;
 
     /**
      * 税率
      */
+    @Excel(name = "税率")
+    @ApiModelProperty(value = "税率")
     @TableField(value = "tax_rate")
     private String taxRate;
 
     /**
      * 税额
      */
+    @Excel(name = "税额")
+    @ApiModelProperty(value = "税额")
     @TableField(value = "tax_amounts")
     private BigDecimal taxAmounts;
 
     /**
      * 开票金额
      */
-    @TableField(value = "Invoice_amount")
+    @Excel(name = "开票金额")
+    @ApiModelProperty(value = "开票金额")
+    @TableField(value = "invoice_amount")
     private BigDecimal invoiceAmount;
 
     /**
      * 发票类型
      */
-    @TableField(value = "Invoice_type")
+    @Excel(name = "发票类型")
+    @ApiModelProperty(value = "发票类型")
+    @TableField(value = "invoice_type")
     private String invoiceType;
 
     /**
      * 进账日期
      */
+    @Excel(name = "进账日期",exportFormat = "yyyy-MM-dd")
+//    @Excel(name = "进账日期",importFormat = "yyyy/MM/dd",exportFormat = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "进账日期")
     @TableField(value = "income_date")
     private Date incomeDate;
 
     /**
      * 进账金额
      */
+    @Excel(name = "进账金额")
+    @ApiModelProperty(value = "进账金额")
     @TableField(value = "income_money")
     private BigDecimal incomeMoney;
 
     /**
      * 未进账金额
      */
+    @Excel(name = "未进账金额")
+    @ApiModelProperty(value = "未进账金额")
     @TableField(value = "not_income_money")
     private BigDecimal notIncomeMoney;
 
     /**
      * 出账日期
      */
+    @Excel(name = "出账日期",exportFormat = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "出账日期")
     @TableField(value = "out_income_date")
     private Date outIncomeDate;
 
     /**
      * 出账金额
      */
+    @Excel(name = "出账金额")
+    @ApiModelProperty(value = "出账金额")
     @TableField(value = "out_income_money")
     private BigDecimal outIncomeMoney;
 
     /**
      * 利润点
      */
+    @Excel(name = "利润点")
+    @ApiModelProperty(value = "利润点")
     @TableField(value = "profit_point")
     private String profitPoint;
 
     /**
      * 毛利润
      */
+    @Excel(name = "毛利润")
+    @ApiModelProperty(value = "毛利润")
     @TableField(value = "gross_profit")
     private String grossProfit;
 
     /**
      * 手续费
      */
+    @Excel(name = "手续费")
+    @ApiModelProperty(value = "手续费")
     @TableField(value = "procedure_fee")
     private String procedureFee;
 
+    /**
+     * 审批状态
+     * 审批状态   0 申请审核 1 审核通过 2 审核不通过 3 退回修改
+     */
+    @ApiModelProperty(value = "审批状态   0 申请审核 1 审核通过 2 审核不通过 3 退回修改")
+    @TableField(value = "approval_status")
+    private String approvalStatus;
+
     /**
      * 备注
      */
+    @ApiModelProperty(value = "备注")
     @TableField(value = "remark")
     private String remark;
 
@@ -172,6 +230,7 @@ public class InvInvoiceInfo implements Serializable {
     /**
      * 创建时间
      */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @TableField(value = "create_time")
     private Date createTime;
 
@@ -184,6 +243,7 @@ public class InvInvoiceInfo implements Serializable {
     /**
      * 更新时间
      */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     @TableField(value = "update_time")
     private Date updateTime;
 

+ 8 - 0
src/main/java/com/ydtech/modules/inv/service/InvCompanyService.java

@@ -1,7 +1,10 @@
 package com.ydtech.modules.inv.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.inv.model.InvCompany;
+import com.ydtech.modules.inv.vo.req.InvCompanyReqVO;
+import com.ydtech.modules.inv.vo.res.InvCompanyResVO;
 
 /**
 * @author Administrator
@@ -10,4 +13,9 @@ import com.ydtech.modules.inv.model.InvCompany;
 */
 public interface InvCompanyService extends IService<InvCompany> {
 
+
+    PageResult gainPage(InvCompanyReqVO invCompanyReqVO);
+
+    InvCompany gainIdByEnterpriseName(String enterpriseName);
+
 }

+ 14 - 0
src/main/java/com/ydtech/modules/inv/service/InvInvoiceInfoService.java

@@ -1,7 +1,14 @@
 package com.ydtech.modules.inv.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
+import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.inv.model.InvInvoiceInfo;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
 * @author Administrator
@@ -10,4 +17,11 @@ import com.ydtech.modules.inv.model.InvInvoiceInfo;
 */
 public interface InvInvoiceInfoService extends IService<InvInvoiceInfo> {
 
+
+    boolean approval(ApprovalStatusEnum approvalStatusEnum, List<String> ids);
+
+    HttpResult importData(MultipartFile file);
+
+    HttpResult exportData(List<String> ids, HttpServletRequest request, HttpServletResponse response);
+
 }

+ 41 - 0
src/main/java/com/ydtech/modules/inv/service/impl/InvCompanyServiceImpl.java

@@ -1,11 +1,17 @@
 package com.ydtech.modules.inv.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.core.page.PageResult;
 import com.ydtech.modules.inv.dao.InvCompanyMapper;
 import com.ydtech.modules.inv.model.InvCompany;
 import com.ydtech.modules.inv.service.InvCompanyService;
+import com.ydtech.modules.inv.vo.req.InvCompanyReqVO;
+import com.ydtech.modules.inv.vo.res.InvCompanyResVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
 * @author Administrator
 * @description 针对表【inv_company(开票公司)】的数据库操作Service实现
@@ -15,6 +21,41 @@ import org.springframework.stereotype.Service;
 public class InvCompanyServiceImpl extends ServiceImpl<InvCompanyMapper, InvCompany>
     implements InvCompanyService {
 
+
+
+    @Override
+    public PageResult gainPage(InvCompanyReqVO invCompanyReqVO) {
+        //获取总数量
+        int total = super.baseMapper.gainCount(invCompanyReqVO);
+        //计算mysql分页起索引
+        int firstIndex = invCompanyReqVO.getPageNum()==1?0:(invCompanyReqVO.getPageNum()-1) * invCompanyReqVO.getPageSize() +1;
+        //计算mysql分页总页数
+        int totalPages = total % invCompanyReqVO.getPageSize() == 0?total / invCompanyReqVO.getPageSize():total / invCompanyReqVO.getPageSize() +1;
+
+        PageResult pr = new PageResult();
+        pr.setPageNum(invCompanyReqVO.getPageNum());
+        pr.setPageSize(invCompanyReqVO.getPageSize());
+        pr.setTotalSize(total);
+        pr.setTotalPages(totalPages);
+
+        //请求替换分页开始索引
+        invCompanyReqVO.setPageNum(firstIndex);
+
+        List<InvCompanyResVO> resVOList =  super.baseMapper.gainPage(invCompanyReqVO);
+
+
+        pr.setContent(resVOList);
+
+
+        return pr;
+    }
+
+    @Override
+    public InvCompany gainIdByEnterpriseName(String enterpriseName) {
+        LambdaQueryWrapper<InvCompany> lqw = new LambdaQueryWrapper();
+        lqw.eq(InvCompany::getEnterpriseName,enterpriseName);
+        return getOne(lqw);
+    }
 }
 
 

+ 86 - 5
src/main/java/com/ydtech/modules/inv/service/impl/InvInvoiceInfoServiceImpl.java

@@ -1,19 +1,100 @@
 package com.ydtech.modules.inv.service.impl;
 
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.constants.enums.dict.ApprovalStatusEnum;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ins.utils.ExcelStyleUtil;
 import com.ydtech.modules.inv.dao.InvInvoiceInfoMapper;
+import com.ydtech.modules.inv.model.InvCompany;
 import com.ydtech.modules.inv.model.InvInvoiceInfo;
+import com.ydtech.modules.inv.service.InvCompanyService;
 import com.ydtech.modules.inv.service.InvInvoiceInfoService;
+import com.ydtech.modules.report.vo.PropertyInsuranceResVo;
+import com.ydtech.utils.StringUtils;
+import com.ydtech.utils.excel.ExcelUtils2;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
-* @author Administrator
-* @description 针对表【inv_invoice_info(发票表- 信息)】的数据库操作Service实现
-* @createDate 2023-05-15 14:22:55
-*/
+ * @author Administrator
+ * @description 针对表【inv_invoice_info(发票表- 信息)】的数据库操作Service实现
+ * @createDate 2023-05-15 14:22:55
+ */
 @Service
 public class InvInvoiceInfoServiceImpl extends ServiceImpl<InvInvoiceInfoMapper, InvInvoiceInfo>
-    implements InvInvoiceInfoService {
+        implements InvInvoiceInfoService {
+
+    @Autowired
+    private InvCompanyService invCompanyService;
+
+    @Override
+    public boolean approval(ApprovalStatusEnum approvalStatusEnum, List<String> ids) {
+        LambdaUpdateWrapper<InvInvoiceInfo> luw = new LambdaUpdateWrapper();
+        luw.set(InvInvoiceInfo::getApprovalStatus, approvalStatusEnum.getCode());
+        luw.in(InvInvoiceInfo::getId, ids);
+        return update(luw);
+    }
+
+    @Override
+    public HttpResult importData(MultipartFile file) {
+
+        List<InvInvoiceInfo> list = null;
+        try {
+            list = ExcelUtils2.importExcel(file, InvInvoiceInfo.class,null,null,null);
+        } catch (IOException e) {
+            return HttpResult.error("导入失败!" + e.getMessage());
+        }
+
+        list.remove(null);
+
+        List<InvInvoiceInfo> finalList = new ArrayList<>();
+        list.stream().forEach(a ->{
+            //获取ID
+            if(null != a && StringUtils.isNotEmpty(a.getInvCompanyName())){
+                InvCompany ic = invCompanyService.gainIdByEnterpriseName(a.getInvCompanyName());
+                if(null != ic){
+                    finalList.add(a);
+                }
+            }
+        });
+        saveBatch(finalList);
+
+        return HttpResult.ok("导入匹配[开票公司]的数据条数:" + finalList.size());
+    }
+
+    @Override
+    public HttpResult exportData(List<String> ids, HttpServletRequest request, HttpServletResponse response) {
+        List<InvInvoiceInfo> iiiList = listByIds(ids);
+
+        // 导出
+        ExportParams exportParams = new ExportParams(null, "Sheet1", ExcelType.HSSF);
+//        ExportParams exportParams = new ExportParams();
+        // 设置
+        exportParams.setStyle(ExcelStyleUtil.class);
+        try {
+            String fileName = URLEncoder.encode("发票信息表","UTF-8");
+            ExcelUtils2.exportExcel(iiiList, InvInvoiceInfo.class, fileName, exportParams, request, response);
+//            ExcelUtils2.exportExcel(iiiList, InvInvoiceInfo.class, "发票信息表", exportParams, request, response);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+        return HttpResult.ok("导出成功");
+    }
+
 
 }
 

+ 34 - 0
src/main/java/com/ydtech/modules/inv/vo/req/InvCompanyReqVO.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.inv.vo.req;
+
+import com.ydtech.core.page.BasePageVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 开票公司   请求
+ *
+ * @author: lig
+ * @date: 2023-05-16
+ */
+@Data
+@ApiModel
+public class InvCompanyReqVO extends BasePageVO {
+
+    @ApiModelProperty(value = "起开票日期")
+    private String startInvoiceDate;
+
+    @ApiModelProperty(value = "止开票日期")
+    private String endInvoiceDate;
+
+    @ApiModelProperty(value = "企业ID")
+    private String enterpriseId;
+
+//    @ApiModelProperty(value = "企业名称")
+//    private String enterpriseName;
+    @ApiModelProperty(value = "营业性质ID")
+    private String qualityId;
+
+
+
+}

+ 29 - 0
src/main/java/com/ydtech/modules/inv/vo/req/InvInvoiceInfoReqVO.java

@@ -0,0 +1,29 @@
+package com.ydtech.modules.inv.vo.req;
+
+import com.ydtech.core.page.BasePageVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *    请求
+ *
+ * @author: lig
+ * @date: 2023-05-16
+ */
+@Data
+@ApiModel
+public class InvInvoiceInfoReqVO extends BasePageVO {
+
+    @ApiModelProperty(value = "开票员")
+    private String invoiceClerk;
+
+    @ApiModelProperty(value = "审批状态   0 申请审核 1 审核通过 2 审核不通过 3 退回修改")
+    private String approvalStatus;
+
+    @ApiModelProperty(value = "开票方ID")
+    private String invCompanyId;
+
+
+
+}

+ 44 - 0
src/main/java/com/ydtech/modules/inv/vo/res/InvCompanyResVO.java

@@ -0,0 +1,44 @@
+package com.ydtech.modules.inv.vo.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 开票公司   响应
+ *
+ * @author: lig
+ * @date: 2023-05-16
+ */
+@Data
+@ApiModel
+public class InvCompanyResVO {
+
+
+    @ApiModelProperty(value = "发票公司ID")
+    private String id;
+    @ApiModelProperty(value = "营业性质")
+    private String qualityName;
+    @ApiModelProperty(value = "营业性质ID")
+    private String qualityId;
+    @ApiModelProperty(value = "所属地")
+    private String areaName;
+    @ApiModelProperty(value = "企业名称")
+    private String enterpriseName;
+    @ApiModelProperty(value = "法人")
+    private String legalPerson;
+    @ApiModelProperty(value = "税率")
+    private String taxRate;
+    @ApiModelProperty(value = "成立日期")
+    private String foundDate;
+    @ApiModelProperty(value = "开票员")
+    private String admin;
+    @ApiModelProperty(value = "总开票额")
+    private String taxLimit;
+    @ApiModelProperty(value = "已开票额")
+    private String invoicedMoney;
+    @ApiModelProperty(value = "未开票额")
+    private String notInvoicedMoney;
+
+
+}

+ 19 - 0
src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteVo.java

@@ -17,4 +17,23 @@ public class BaseQuoteVo<T> {
 
     @ApiModelProperty("扩展实体")
     private T accidentalDrivingVo;
+
+
+
+    //add 交强转保确认码  lig  2023-05-23
+    @ApiModelProperty("交强转保确认码")
+    private String renewalCodeJq;
+    //add 商业转保确认码 lig 2023-05-23
+    @ApiModelProperty("商业转保确认码")
+    private String renewalCodeSy;
+
+    //add 交强险查询码  lig  2023-05-23
+    @ApiModelProperty("交强险查询码")
+    private String cQryCdeJq;
+    //add 商业险查询码 lig  2023-05-23
+    @ApiModelProperty("商业险查询码")
+    private String cQryCdeSy;
+
+
+
 }

+ 2 - 2
src/main/java/com/ydtech/utils/DateUtil.java

@@ -245,12 +245,12 @@ public class DateUtil {
     }
 
     /**
-     *  获取现在日期月的第一天
+     *  获取指定日期月的第一天  默认当前日期
      *
      * @author: lig
      * @date: 2023年05月11日 0011
      */
-    public static String nowDateMonthFirstDay(LocalDate localDate){
+    public static String gainDateMonthFirstDay(LocalDate localDate){
         LocalDate firstDayOfThisMonth = null;
         if(null != localDate){
             firstDayOfThisMonth = localDate.with(TemporalAdjusters.firstDayOfMonth());

+ 111 - 3
src/main/java/com/ydtech/utils/excel/ExcelUtils.java

@@ -3,6 +3,7 @@ package com.ydtech.utils.excel;
 import com.alibaba.fastjson.JSON;
 
 import com.ydtech.modules.esm.vo.EsmSocialSecurityExcelVO;
+import com.ydtech.modules.inv.model.InvInvoiceInfo;
 import com.ydtech.nai.excelvo.OfflineExcelVO;
 import com.ydtech.nai.excelvo.SettlementVO;
 import com.ydtech.utils.StringUtils;
@@ -17,6 +18,7 @@ import java.io.InputStream;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
+import java.text.DateFormat;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -459,6 +461,105 @@ public class ExcelUtils {
         return list;
     }
 
+    /**
+     *  导入  转换excel中的 InvInvoiceInfo 数据
+     *
+     * @author: lig
+     * @date: 2023年05月17日 0017
+     */
+    public static List<InvInvoiceInfo> importInvInvoiceInfoExcel(MultipartFile multipartFile) throws Exception {
+        if (null == multipartFile) {
+            throw new NullPointerException("请选择文件");
+        }
+
+        log.info("文件名称:{}", multipartFile.getName());
+        log.info("文件类型:{}", multipartFile.getContentType());
+        String fileName = multipartFile.getOriginalFilename();
+        log.info("文件名:{}", fileName);
+        String lastType = fileName.substring(fileName.lastIndexOf(".") + 1);
+        // 返回数据
+        List<InvInvoiceInfo> list = new ArrayList<>();
+
+        InputStream inputStream = null;
+
+        inputStream = multipartFile.getInputStream();
+        Workbook wb = WorkbookFactory.create(inputStream);
+
+
+        // 读取第一个sheet
+        Sheet sheet = wb.getSheetAt(0);
+        // 获取最大行数(或者sheet.getLastRowNum())
+        int rownum = sheet.getPhysicalNumberOfRows();
+        // 获取第一行(表头)
+        Row row = sheet.getRow(0);
+        // 获取最大列数
+        int column = row.getPhysicalNumberOfCells();
+        for (int s = 0; s < column; s++) {
+            if ("xls".equals(lastType)) {
+                HSSFCell cell = (HSSFCell) row.getCell(s);
+                cell.setCellType(CellType.STRING);
+                // 遇到空列则结束
+                if (cell == null) {
+                    break;
+                }
+            } else if ("xlsx".equals(lastType)) {
+                XSSFCell cell = (XSSFCell) row.getCell(s);
+                cell.setCellType(CellType.STRING);
+                // 遇到空列则结束
+                if (cell == null) {
+                    break;
+                }
+            }
+        }
+
+        // 处理行数据
+        for (int i = 1; i < rownum; i++) {
+            row = sheet.getRow(i);
+            // 遇到空行则结束
+            if (row == null) {
+                break;
+            }
+            int c = row.getFirstCellNum();
+            Cell cell = row.getCell(c);
+            if (row.getCell(0) == null || row.getCell(0).getCellType() == CellType.BLANK) {
+                break;
+            }
+            if (cell != null && cell.getCellType() != CellType.BLANK
+            ) {
+                InvInvoiceInfo info = new InvInvoiceInfo();
+                //开票员	开票科目	开票方	对方单位名称	发票号码	发票数	开票日期	不含税金额	税率	税额	开票金额	发票类型	进账日期	进账金额	未进账金额	出账日期	出账金额	利润点	毛利润	手续费	备注
+                // 基础数据
+                info.setInvoiceClerk(getCellValue(row.getCell(0)));
+//                info.setSubjectsId(getCellValue(row.getCell(1)));
+                info.setSubjects(getCellValue(row.getCell(1)));
+                info.setInvCompanyName(getCellValue(row.getCell(2)));
+                info.setPeerCompanyName(getCellValue(row.getCell(3)));
+                info.setInvoiceNum(getCellValue(row.getCell(4)));
+                info.setInvoiceQuantity(StringUtils.toInt(getCellValue(row.getCell(5))));
+                info.setInvoiceDate(DateFormat.getDateInstance().parse(getCellValue(row.getCell(6))));
+                info.setTaxExclusivePrice(new BigDecimal(getCellValue(row.getCell(7))));
+                info.setTaxRate(getCellValue(row.getCell(8)));
+                info.setTaxAmounts(new BigDecimal(getCellValue(row.getCell(9))));
+                info.setInvoiceAmount(new BigDecimal(getCellValue(row.getCell(10))));
+                info.setInvoiceType(getCellValue(row.getCell(11)));
+                info.setIncomeDate(DateFormat.getDateInstance().parse(getCellValue(row.getCell(12))));
+                info.setIncomeMoney(new BigDecimal(getCellValue(row.getCell(13))));
+                info.setNotIncomeMoney(new BigDecimal(getCellValue(row.getCell(14))));
+                info.setOutIncomeDate(StringUtils.isNullOrEmpty(getCellValue(row.getCell(15)))?null:new Date(getCellValue(row.getCell(15))));
+//                info.setOutIncomeDate(DateFormat.getDateInstance().parse(getCellValue(row.getCell(15))));
+                info.setOutIncomeMoney(new BigDecimal(getCellValue(row.getCell(16))));
+                info.setProfitPoint(getCellValue(row.getCell(17)));
+                info.setGrossProfit(getCellValue(row.getCell(18)));
+                info.setProcedureFee(getCellValue(row.getCell(19)));
+
+                list.add(info);
+            }
+        }
+
+        log.info("获取到的条数" + list.size());
+        return list;
+    }
+
 
     /**
      * @author: shenweidong
@@ -480,8 +581,15 @@ public class ExcelUtils {
                 return result;
             }
         } else if (cellType == CellType.NUMERIC) {
-            DecimalFormat df = new DecimalFormat("0.00");
-            result = df.format(cell.getNumericCellValue());
+//            DecimalFormat df = new DecimalFormat("0.00");
+//            result = df.format(cell.getNumericCellValue());
+            if (DateUtil.isCellDateFormatted(cell)) {
+                Date tempValue = cell.getDateCellValue();
+                SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd");
+                result = simpleFormat.format(tempValue);
+            }else {
+                result = String.valueOf(cell.getNumericCellValue());
+            }
         } else if (cellType == CellType.BLANK) {
             result = null;
         } else {
@@ -493,4 +601,4 @@ public class ExcelUtils {
     public static void main(String[] args) {
         System.out.println((int) Double.parseDouble("2001.0"));
     }
-}
+}

+ 48 - 2
src/main/java/com/ydtech/utils/excel/ExcelUtils2.java

@@ -5,8 +5,7 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.afterturn.easypoi.excel.entity.ImportParams;
 import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
-import cn.afterturn.easypoi.excel.imports.ExcelImportService;
-import cn.afterturn.easypoi.util.PoiValidationUtil;
+import com.ydtech.modules.inv.model.InvInvoiceInfo;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.web.multipart.MultipartFile;
@@ -17,6 +16,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.net.URLEncoder;
 import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
@@ -125,6 +125,8 @@ public class ExcelUtils2 {
             response.reset();
             response.addHeader("content-type", "application/vnd.ms-excel;charset=UTF-8");
             response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");
+//            //2023-05-22 修改文件名中文问题
+//            response.setHeader("Content-Disposition", "attachment;filename*= UTF-8''"+ URLEncoder.encode(fileName,"UTF-8")+ ".xlsx");
             response.addHeader("Cache-Control", "no-cache");
             response.setHeader("Set-Cookie", "fileDownload=true; path=/");
             response.setHeader("Access-Control-Allow-Origin", "*");
@@ -140,6 +142,34 @@ public class ExcelUtils2 {
     }
 
 
+    /**
+     * excel 导入 重写
+     *
+     * @param file      excel文件
+     * @param pojoClass pojo类型
+     * @param titleRows 表格标题行数
+     * @param headRows 表头行数,默认1
+     * @param sheetNum 上传表格需要读取的sheet 数量,默认为1
+     * @return
+     */
+    public static <T> List<T> importExcel(MultipartFile file, Class<T> pojoClass,Integer titleRows,Integer headRows,Integer sheetNum) throws IOException {
+
+
+        ImportParams importParams = new ImportParams();
+        if(null != titleRows) importParams.setTitleRows(0);
+        if(null != headRows) importParams.setHeadRows(1);
+        if(null != sheetNum) importParams.setSheetNum(1);
+
+
+        try {
+            return ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, importParams);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+    }
+
+
     /**
      * excel 导入
      *
@@ -230,4 +260,20 @@ public class ExcelUtils2 {
             throw new IOException(e.getMessage());
         }
     }
+
+
+
+
+    public static void main(String[] args) {
+        File file = new File("E:\\123\\bbb.xlsx");
+        ImportParams importParams = new ImportParams();
+        importParams.setTitleRows(0);
+        importParams.setHeadRows(1);
+        importParams.setSheetNum(1);
+        List<InvInvoiceInfo> objList = ExcelImportUtil.importExcel(file, InvInvoiceInfo.class, importParams);
+
+        for (InvInvoiceInfo vo : objList) {
+            System.out.println(vo.getInvoiceDate()+ "---" + vo.getIncomeMoney());
+        }
+    }
 }

+ 12 - 14
src/main/resources/application-prod.yml

@@ -88,10 +88,7 @@ mybatis-plus:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 netUrl: http://baoxianzhanggui.com:8080/
 
-## 方法日志开关
-open:
-  method:
-    log: false
+
 pa:
   vin:
     search:
@@ -183,36 +180,37 @@ ya:
   userCode: 10061765
 yc:
   api:
+    #正式渠道信息(测试一下)
     agent:
       # 机构代码(dptCde)
-      dptCde: 14A4
+      dptCde: 14B8
       # 渠道编码(agentCode)
-      agentCode: 250000P00004
+      agentCode: 14B800P00008
       # 协议编码(conferCode)
-      conferCode: 250000P0000401
+      conferCode: 14B800P0000801
       # 渠道分类(agentType)
       agentType: 191010
       # 代理人名称(agentNme)
-      agentNme: 永鑫保险销售服务有限公司山西分公司
+      agentNme: 太原天勤保险代理有限公司
       # 代理人资格证号(qlftNo)
-      qlftNo: 2752454675645
+      qlftNo: 202930000000800
       # 录入人(operatorCode)
-      operatorCode: 100030057
+      operatorCode: 114000117
       # 业务员代码(salesmanNo)
-      salesmanNo: 100030057
+      salesmanNo: 11401714B
       # 新业务来源(CChaType)
       CChaType: 191010
       # 客户性质(custNature)
       custNature: 192099
       # 操作人员代码(cOprcde)
-      cOprcde: 100030057
+      cOprcde: 114000117
       # 业务来源(cBsnsTyp)
       cBsnsTyp: 19002
-    password: yc@20230202!
+    userName: tianqin
+    password: tianqin2023@
     pay:
       callBack: http://127.0.0.1:8080/api/yongCheng/callBack
     url: http://140.206.189.151:17000/
-    userName: yctest1
   audit:
     url: /yc/jiaofei
   domain: http://47.92.254.66:8088

+ 45 - 16
src/main/resources/application-test.yml

@@ -109,9 +109,6 @@ mybatis-plus:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
 ##测试地址
 netUrl: http://47.92.254.66:8080/
-open:
-  method:
-    log: true
 ##平安
 pa:
   vin:
@@ -233,40 +230,68 @@ ya:
 yc:
   #api方式
   api:
+    #正式渠道信息(测试一下)
     agent:
       # 机构代码(dptCde)
-      dptCde: 14A4
+      dptCde: 14B8
       # 渠道编码(agentCode)
-      agentCode: 250000P00004
+      agentCode: 14B800P00008
       # 协议编码(conferCode)
-      conferCode: 250000P0000401
+      conferCode: 14B800P0000801
       # 渠道分类(agentType)
       agentType: 191010
       # 代理人名称(agentNme)
-      agentNme: 永鑫保险销售服务有限公司山西分公司
+      agentNme: 太原天勤保险代理有限公司
       # 代理人资格证号(qlftNo)
-      qlftNo: 2752454675645
+      qlftNo: 202930000000800
       # 录入人(operatorCode)
-      operatorCode: 100030057
+      operatorCode: 114000117
       # 业务员代码(salesmanNo)
-      salesmanNo: 100030057
+      salesmanNo: 11401714B
       # 新业务来源(CChaType)
       CChaType: 191010
       # 客户性质(custNature)
       custNature: 192099
       # 操作人员代码(cOprcde)
-      cOprcde: 100030057
+      cOprcde: 114000117
       # 业务来源(cBsnsTyp)
       cBsnsTyp: 19002
-
-
     userName: tianqin
-    password: 123456
+    password: tianqin2023@
+#    agent:
+#      # 机构代码(dptCde)
+#      dptCde: 14A4
+#      # 渠道编码(agentCode)
+#      agentCode: 250000P00004
+#      # 协议编码(conferCode)
+#      conferCode: 250000P0000401
+#      # 渠道分类(agentType)
+#      agentType: 191010
+#      # 代理人名称(agentNme)
+#      agentNme: 永鑫保险销售服务有限公司山西分公司
+#      # 代理人资格证号(qlftNo)
+#      qlftNo: 2752454675645
+#      # 录入人(operatorCode)
+#      operatorCode: 100030057
+#      # 业务员代码(salesmanNo)
+#      salesmanNo: 100030057
+#      # 新业务来源(CChaType)
+#      CChaType: 191010
+#      # 客户性质(custNature)
+#      custNature: 192099
+#      # 操作人员代码(cOprcde)
+#      cOprcde: 100030057
+#      # 业务来源(cBsnsTyp)
+#      cBsnsTyp: 19002
+#    userName: tianqin
+#    password: 123456
     pay:
       # 回调地址
-      callBack: http://39.98.239.48/web-api/api/yongCheng/callBack
+      #      callBack: http://39.98.239.48/web-api/api/yongCheng/callBack
+      callBack: http://sxzgkj.baoxianzhanggui.com/web-api/api/yongCheng/callBack
     #      callBack: http://47.92.254.66:8080/api/yongCheng/callBack
-    url: http://140.206.189.151:17000/
+    url: http://www.yongcheng.com:17002/
+  #    url: http://140.206.189.151:17000/
   audit:
     url: /yc/jiaofei
   domain: http://47.92.254.66:8088
@@ -312,3 +337,7 @@ zm:
 
 logging:
   path: /ins/logs
+
+
+knife4j:
+  enable: true