Преглед изворни кода

Merge remote-tracking branch 'origin/test' into test

haoyu пре 2 година
родитељ
комит
674999fdc4
24 измењених фајлова са 919 додато и 100 уклоњено
  1. 57 0
      src/main/java/com/ydtech/constants/enums/JingyouEnergyTypes.java
  2. 63 62
      src/main/java/com/ydtech/constants/enums/dict/insurance/TrafficManagementVehicleType.java
  3. 109 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserLinkAreaController.java
  4. 47 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserLinkAreaMapper.java
  5. 7 0
      src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java
  6. 6 0
      src/main/java/com/ydtech/modules/admin/model/SysArea.java
  7. 28 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkAreaDto.java
  8. 34 0
      src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkAreaListDto.java
  9. 83 0
      src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkArea.java
  10. 20 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysAreaVo.java
  11. 31 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaAddVo.java
  12. 24 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaIdsVo.java
  13. 35 0
      src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaVo.java
  14. 66 0
      src/main/java/com/ydtech/modules/admin/service/SysUserLinkAreaService.java
  15. 160 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkAreaServiceImpl.java
  16. 17 0
      src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java
  17. 3 2
      src/main/java/com/ydtech/modules/ins/model/vo/CustomerInfoVo.java
  18. 5 2
      src/main/java/com/ydtech/modules/ins/model/zm/ZmCarModel.java
  19. 2 1
      src/main/java/com/ydtech/modules/inv/controller/invAccountExcelController.java
  20. 0 26
      src/main/java/com/ydtech/modules/order/convert/CarModelDTOConvert.java
  21. 1 2
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
  22. 71 0
      src/main/resources/mapper/modules/admin/SysUserLinkAreaMapper.xml
  23. 40 1
      src/main/resources/mapper/modules/admin/SysUserMapper.xml
  24. 10 4
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

+ 57 - 0
src/main/java/com/ydtech/constants/enums/JingyouEnergyTypes.java

@@ -0,0 +1,57 @@
+package com.ydtech.constants.enums;
+
+
+import com.ydtech.constants.enums.dict.insurance.EnergyType;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Optional;
+
+
+/**
+ * @description: 精友能源种类
+ * @author: wenks
+ * @date: 2024/4/26 14:54
+ **/
+
+@Getter
+@AllArgsConstructor
+public enum JingyouEnergyTypes {
+
+    D1("D1", "汽油", EnergyType.ET_0.getCode()),
+    D2("D2", "柴油", EnergyType.ET_0.getCode()),
+    D3("D3", "天然气(NG/CNG/LNG)", EnergyType.ET_9.getCode()),
+    D4("D4", "液化石油气(LPG)", EnergyType.ET_9.getCode()),
+    D5("D5", "混合动力", EnergyType.ET_4.getCode()),
+    D6("D6", "电动", EnergyType.ET_1.getCode()),
+    D7("D7", "两用燃料", EnergyType.ET_9.getCode()),
+    D8("D8", "燃料电池", EnergyType.ET_2.getCode()),
+    D9("D9", "甲醇", EnergyType.ET_9.getCode()),
+    D10("D10", "乙醇", EnergyType.ET_9.getCode()),
+    D11("D11", "其它", EnergyType.ET_9.getCode()),
+    D12("D12", "插电式混合动力", EnergyType.ET_3.getCode()),
+    D13("D13", "混合油", EnergyType.ET_9.getCode()),
+    D14("D14", "太阳能", EnergyType.ET_9.getCode()),
+    D15("D15", "无", EnergyType.ET_9.getCode());
+
+    private final String code;
+
+    private final String desc;
+
+    private final String energyType;
+
+
+    /**
+     * 通过精友编码获取车型编码
+     * @param code
+     * @return
+     */
+    public static String getEnergyTypeByCode(String code) {
+        JingyouEnergyTypes jingyouEnergyTypes = valueOf(code);
+        return Optional
+                .of(jingyouEnergyTypes)
+                .map(JingyouEnergyTypes::getEnergyType)
+                .orElse(EnergyType.ET_0.getCode());
+    }
+
+}

+ 63 - 62
src/main/java/com/ydtech/constants/enums/dict/insurance/TrafficManagementVehicleType.java

@@ -16,44 +16,44 @@ import lombok.Getter;
 @DictEnum(key = "trafficManagementVehicleType", desc = "交管车辆类型")
 public enum TrafficManagementVehicleType implements IBaseEnum {
 
-    B11("B11", "重型普通半挂车", 0, 0),
-    B12("B12", "重型厢式半挂车", 1, 0),
-    B13("B13", "重型罐式半挂车", 2, 0),
-    B14("B14", "重型平板半挂车", 3, 0),
-    B15("B15", "重型集装箱半挂车", 4, 0),
-    B16("B16", "重型自卸半挂车", 5, 0),
-    B17("B17", "重型特殊结构半挂车", 6, 0),
-    B21("B21", "中型普通半挂车", 7, 0),
-    B22("B22", "中型厢式半挂车", 8, 0),
-    B23("B23", "中型罐式半挂车", 9, 0),
-    B24("B24", "中型平板半挂车", 10, 0),
-    B25("B25", "中型集装箱半挂车", 11, 0),
-    B26("B26", "中型自卸半挂车", 12, 0),
-    B27("B27", "中型特殊结构半挂车", 13, 0),
-    B31("B31", "轻型普通半挂车", 14, 0),
-    B32("B32", "轻型厢式半挂车", 15, 0),
-    B33("B33", "轻型罐式半挂车", 16, 0),
-    B34("B34", "轻型平板半挂车", 17, 0),
-    B35("B35", "轻型自卸半挂车", 18, 0),
-    D11("D11", "无轨电车", 19, 0),
-    D12("D12", "有轨电车", 20, 0),
-    G11("G11", "重型普通全挂车", 21, 0),
-    G12("G12", "重型厢式全挂车", 22, 0),
-    G13("G13", "重型罐式全挂车", 23, 0),
-    G14("G14", "重型平板全挂车", 24, 0),
-    G15("G15", "重型集装箱全挂车", 25, 0),
-    G16("G16", "重型自卸全挂车", 26, 0),
-    G21("G21", "中型普通全挂车", 27, 0),
-    G22("G22", "中型厢式全挂车", 28, 0),
-    G23("G23", "中型罐式全挂车", 29, 0),
-    G24("G24", "中型平板全挂车", 30, 0),
-    G25("G25", "中型集装箱全挂车", 31, 0),
-    G26("G26", "中型自卸全挂车", 32, 0),
-    G31("G31", "轻型普通全挂车", 33, 0),
-    G32("G32", "轻型厢式全挂车", 34, 0),
-    G33("G33", "轻型罐式全挂车", 35, 0),
-    G34("G34", "轻型平板全挂车", 36, 0),
-    G35("G35", "轻型自卸全挂车", 37, 0),
+//    B11("B11", "重型普通半挂车", 0, 0),
+//    B12("B12", "重型厢式半挂车", 1, 0),
+//    B13("B13", "重型罐式半挂车", 2, 0),
+//    B14("B14", "重型平板半挂车", 3, 0),
+//    B15("B15", "重型集装箱半挂车", 4, 0),
+//    B16("B16", "重型自卸半挂车", 5, 0),
+//    B17("B17", "重型特殊结构半挂车", 6, 0),
+//    B21("B21", "中型普通半挂车", 7, 0),
+//    B22("B22", "中型厢式半挂车", 8, 0),
+//    B23("B23", "中型罐式半挂车", 9, 0),
+//    B24("B24", "中型平板半挂车", 10, 0),
+//    B25("B25", "中型集装箱半挂车", 11, 0),
+//    B26("B26", "中型自卸半挂车", 12, 0),
+//    B27("B27", "中型特殊结构半挂车", 13, 0),
+//    B31("B31", "轻型普通半挂车", 14, 0),
+//    B32("B32", "轻型厢式半挂车", 15, 0),
+//    B33("B33", "轻型罐式半挂车", 16, 0),
+//    B34("B34", "轻型平板半挂车", 17, 0),
+//    B35("B35", "轻型自卸半挂车", 18, 0),
+//    D11("D11", "无轨电车", 19, 0),
+//    D12("D12", "有轨电车", 20, 0),
+//    G11("G11", "重型普通全挂车", 21, 0),
+//    G12("G12", "重型厢式全挂车", 22, 0),
+//    G13("G13", "重型罐式全挂车", 23, 0),
+//    G14("G14", "重型平板全挂车", 24, 0),
+//    G15("G15", "重型集装箱全挂车", 25, 0),
+//    G16("G16", "重型自卸全挂车", 26, 0),
+//    G21("G21", "中型普通全挂车", 27, 0),
+//    G22("G22", "中型厢式全挂车", 28, 0),
+//    G23("G23", "中型罐式全挂车", 29, 0),
+//    G24("G24", "中型平板全挂车", 30, 0),
+//    G25("G25", "中型集装箱全挂车", 31, 0),
+//    G26("G26", "中型自卸全挂车", 32, 0),
+//    G31("G31", "轻型普通全挂车", 33, 0),
+//    G32("G32", "轻型厢式全挂车", 34, 0),
+//    G33("G33", "轻型罐式全挂车", 35, 0),
+//    G34("G34", "轻型平板全挂车", 36, 0),
+//    G35("G35", "轻型自卸全挂车", 37, 0),
     H11("H11", "重型普通货车", 38, 0),
     H12("H12", "重型厢式货车", 39, 0),
     H13("H13", "重型封闭货车", 40, 0),
@@ -87,6 +87,7 @@ public enum TrafficManagementVehicleType implements IBaseEnum {
     H52("H52", "低速厢式货车", 68, 0),
     H53("H53", "罐式低速货车", 69, 0),
     H54("H54", "低速自卸货车", 70, 0),
+
     J11("J11", "轮式装载机械", 71, 0),
     J12("J12", "轮式挖掘机械", 72, 0),
     J13("J13", "轮式平地机械", 73, 0),
@@ -105,30 +106,30 @@ public enum TrafficManagementVehicleType implements IBaseEnum {
     K33("K33", "轿车", 86, 0),
     K41("K41", "微型普通客车", 87, 0),
     K42("K42", "微型越野客车", 88, 0),
-    K43("K43", "微型轿车", 89, 0),
-    M11("M11", "普通正三轮摩托车", 90, 0),
-    M12("M12", "轻便正三轮摩托车", 91, 0),
-    M13("M13", "正三轮载客摩托车", 92, 0),
-    M14("M14", "正三轮载货摩托车", 93, 0),
-    M15("M15", "侧三轮摩托车", 94, 0),
-    M21("M21", "普通二轮摩托车", 95, 0),
-    M22("M22", "轻便二轮摩托车", 96, 0),
-    N11("N11", "三轮农用运输车", 97, 0),
-    Q11("Q11", "重型半挂牵引车", 98, 0),
-    Q21("Q21", "中型半挂牵引车", 99, 0),
-    Q31("Q31", "轻型半挂牵引车", 100, 0),
-    S("S", "特种作业专用车", 101, 0),
-    T11("T11", "大型轮式拖拉机", 102, 0),
-    T21("T21", "中型轮式拖拉机", 103, 0),
-    T22("T22", "手扶拖拉机", 104, 0),
-    T23("T23", "手扶变形运输机", 105, 0),
-    X99("X99", "其它", 106, 0),
-    Z11("Z11", "大型专项作业车", 107, 0),
-    Z21("Z21", "中型专项作业车", 108, 0),
-    Z31("Z31", "小型专项作业车", 109, 0),
-    Z41("Z41", "微型专项作业车", 110, 0),
-    Z51("Z51", "重型专项作业车", 111, 0),
-    Z71("Z71", "轻型专项作业车", 112, 0);
+    K43("K43", "微型轿车", 89, 0);
+//    M11("M11", "普通正三轮摩托车", 90, 0),
+//    M12("M12", "轻便正三轮摩托车", 91, 0),
+//    M13("M13", "正三轮载客摩托车", 92, 0),
+//    M14("M14", "正三轮载货摩托车", 93, 0),
+//    M15("M15", "侧三轮摩托车", 94, 0),
+//    M21("M21", "普通二轮摩托车", 95, 0),
+//    M22("M22", "轻便二轮摩托车", 96, 0),
+//    N11("N11", "三轮农用运输车", 97, 0),
+//    Q11("Q11", "重型半挂牵引车", 98, 0),
+//    Q21("Q21", "中型半挂牵引车", 99, 0),
+//    Q31("Q31", "轻型半挂牵引车", 100, 0),
+//    S("S", "特种作业专用车", 101, 0),
+//    T11("T11", "大型轮式拖拉机", 102, 0),
+//    T21("T21", "中型轮式拖拉机", 103, 0),
+//    T22("T22", "手扶拖拉机", 104, 0),
+//    T23("T23", "手扶变形运输机", 105, 0),
+//    X99("X99", "其它", 106, 0),
+//    Z11("Z11", "大型专项作业车", 107, 0),
+//    Z21("Z21", "中型专项作业车", 108, 0),
+//    Z31("Z31", "小型专项作业车", 109, 0),
+//    Z41("Z41", "微型专项作业车", 110, 0),
+//    Z51("Z51", "重型专项作业车", 111, 0),
+//    Z71("Z71", "轻型专项作业车", 112, 0);
 
     // 编号
     private final String code;

+ 109 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserLinkAreaController.java

@@ -0,0 +1,109 @@
+package com.ydtech.modules.admin.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.vo.*;
+import com.ydtech.modules.admin.service.SysUserLinkAreaService;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.order.entity.BasePageResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 11:09
+ *  @Description:  后线人员区域配置
+ */
+@Api(tags = "后线人员关联区域")
+@RequestMapping("/sysUserLinkArea")
+@RestController
+public class SysUserLinkAreaController extends BaseController {
+
+
+    @Autowired
+    private SysUserLinkAreaService sysUserLinkAreaService;
+
+    @PostMapping("queryPage")
+    @ApiOperation(value = "后线人员关联区域分页")
+    public HttpResult<BasePageResult<SysUserLinkAreaDto>> queryPage(@RequestBody SysUserLinkAreaVo sysUserLinkAreaVo) {
+
+        try{
+            BasePageResult<SysUserLinkAreaDto> result = sysUserLinkAreaService.queryPage(sysUserLinkAreaVo);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+
+    @PostMapping("addOrUpdate")
+    @ApiOperation("后线人员关联区域添加修改")
+    public HttpResult<Object> addOrUpdate(@RequestBody SysUserLinkAreaAddVo sysUserLinkAreaAddVo) {
+        if(sysUserLinkAreaAddVo.getUserId()==null || "".equals(sysUserLinkAreaAddVo.getUserId())) {
+            return HttpResult.error("后线人员id不能为空");
+        }
+        if(sysUserLinkAreaAddVo.getAreaCodes()==null || sysUserLinkAreaAddVo.getAreaCodes().size()==0) {
+            return HttpResult.error("区域code集合不能为空");
+        }
+        try{
+            sysUserLinkAreaService.addOrUpdate(sysUserLinkAreaAddVo,getUser());
+            return HttpResult.ok("操作成功");
+        }catch (Exception e){
+            return HttpResult.error("操作失败"+e.getMessage());
+        }
+
+    }
+
+    @PostMapping("delete")
+    @ApiOperation("后线人员关联区域删除")
+    public HttpResult<Object> delete(@RequestBody SysUserLinkAreaIdsVo idsVo) {
+        if(idsVo.getIds()==null || idsVo.getIds().size()==0){
+            return HttpResult.error("后线人员关联ids不能为空");
+        }
+        try{
+            sysUserLinkAreaService.deleteByIds(idsVo.getIds());
+            return HttpResult.ok("删除成功");
+        }catch (Exception e){
+            return HttpResult.error("删除失败"+e.getMessage());
+        }
+    }
+    @GetMapping("/findAreaListByUserId/{userId}")
+    @ApiOperation(value = "后线人员关联区域列表(编辑使用)")
+    @ApiImplicitParam(name = "userId", value = "后线人员id", required = true)
+    public HttpResult<Object> findAreaListByUserId(@PathVariable("userId") String userId) {
+        if(userId==null || "".equals(userId)) {
+            return HttpResult.error("后线人员id不能为空");
+        }
+        try{
+           // SysUserLinkAreaListDto sysUserLinkAreaListDto= sysUserLinkAreaService.findAreaListByUserId(userId);
+            List<SysAreaVo> sysAreaVos = sysUserLinkAreaService.findAreaTreeByUserId(userId);
+            return HttpResult.ok(sysAreaVos);
+        }catch (Exception e){
+            return HttpResult.error("查询失败"+e.getMessage());
+        }
+
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:44
+     *  @Description: 查询所有的后线人员列表+分页
+     */
+    @PostMapping("findAllUserList")
+    @ApiOperation("查询所有的后线人员列表+分页+标红显示")
+    public HttpResult<BasePageResult<SysUserBaseVO>> findUserList(@RequestBody SysUserDto sysUserDto) {
+        try{
+            BasePageResult<SysUserBaseVO> result = sysUserLinkAreaService.findUserListByPage(sysUserDto);
+            return HttpResult.ok("查询数据成功", result);
+        }catch (Exception e){
+            return HttpResult.error("查询错误"+e.getMessage());
+        }
+    }
+}

+ 47 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserLinkAreaMapper.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.admin.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkArea;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 14:47
+ *  @Description: 用户关联区域表Dao
+ */
+@Mapper
+public interface SysUserLinkAreaMapper extends BaseMapper<SysUserLinkArea> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 16:08
+     *  @Description: 分页
+     */
+    Page<SysUserLinkAreaDto> queryPage(@Param("page") Page<SysUserLinkAreaDto> page, @Param("vo") SysUserLinkAreaVo sysUserLinkAreaVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:08
+     *  @Description: 通过用户id删除旧数据
+     */
+    void deleteByUserId(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 16:08
+     *  @Description:创建后线人员绑定的协议回显
+     */
+    List<SysArea> findAreaListByUserId(@Param("userId") String userId);
+
+
+
+}

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

@@ -250,6 +250,13 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      *  @Description: 通过当前的用户查询渠道下的团队长的的管理的部门ids
      */
     List<String> getDeptIdsByUserIds(@Param("userId") String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:25
+     *  @Description: 查询用户分页+区域标志显示
+     */
+    Page<SysUserBaseVO> findUserListByAreaPage(@Param("page") Page<SysUserBaseVO> page, @Param("user") SysUserDto sysUserDto);
 }
 
 

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/SysArea.java

@@ -53,6 +53,12 @@ public class SysArea implements Serializable {
     @TableField(value = "valid_status")
     private Integer validStatus;
 
+    /***
+     * 省市县全名称
+     */
+    @TableField(exist = false)
+    private String allName;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 

+ 28 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkAreaDto.java

@@ -0,0 +1,28 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 11:21
+ *  @Description:  后线人员关联区域对象返回前台对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaDto extends PageRequest {
+
+    @ApiModelProperty("后线人员关联区域id")
+    private Long id;
+
+    @ApiModelProperty("后线人员用户")
+    private SysUser sysUser;
+
+    @ApiModelProperty("区域信息")
+    private SysArea sysArea;
+}

+ 34 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserLinkAreaListDto.java

@@ -0,0 +1,34 @@
+package com.ydtech.modules.admin.model.dto;
+
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.SysUser;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 11:21
+ *  @Description:  后线人员关联区域对象返回前台对象
+ */
+@Data
+@ApiModel
+@NoArgsConstructor
+public class SysUserLinkAreaListDto {
+
+    @ApiModelProperty("后线人员用户")
+    private SysUser user;
+
+    @ApiModelProperty("区域集合信息")
+    private List<SysArea> areaList=new ArrayList<SysArea>();
+
+    public SysUserLinkAreaListDto(SysUser user, List<SysArea> areaList) {
+        this.user = user;
+        this.areaList = areaList;
+    }
+}

+ 83 - 0
src/main/java/com/ydtech/modules/admin/model/po/SysUserLinkArea.java

@@ -0,0 +1,83 @@
+package com.ydtech.modules.admin.model.po;
+
+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 lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:32
+ *  @Description: 后线人员关联协议表
+ */
+@TableName(value = "sys_user_link_area")
+@Data
+@NoArgsConstructor
+public class SysUserLinkArea implements Serializable {
+    /***
+     * 主键自增
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /***
+     * 后线用户ID
+     */
+    @TableField(value = "user_id")
+    private  String userId;
+    /***
+     * 区域编码
+     */
+    @TableField(value = "area_code")
+    private String areaCode;
+    /***
+     * 创建人
+     */
+    @TableField(value = "create_id")
+    private String createId;
+    /***
+     * 创建人名称
+     */
+    @TableField(value = "create_name")
+    private String createName;
+    /***
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "create_time")
+    private Date createTime;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "update_id")
+    private String updateId;
+    /***
+     * 修改人名称
+     */
+    @TableField(value = "update_name")
+    private String updateName;
+    /***
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField(value = "update_time")
+    private Date updateTime;
+
+
+    public SysUserLinkArea(String userId, String areaCode, String createId, String createName, Date createTime, String updateId, String updateName, Date updateTime) {
+        this.userId = userId;
+        this.areaCode = areaCode;
+        this.createId = createId;
+        this.createName = createName;
+        this.createTime = createTime;
+        this.updateId = updateId;
+        this.updateName = updateName;
+        this.updateTime = updateTime;
+    }
+}

+ 20 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysAreaVo.java

@@ -5,6 +5,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.List;
+import java.util.Map;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
@@ -18,4 +19,23 @@ public class SysAreaVo extends SysArea {
         super(sysArea);
     }
 
+    /***
+     * 添加回显状态
+     */
+    private Boolean flag;
+
+
+    public void setFlagByTree(SysAreaVo sysArea, Map<String,SysArea> map) {
+        sysArea.setFlag(false);
+        if (map.get(sysArea.getAreaCode())!=null) {
+            sysArea.setFlag(true);
+            return;
+        }
+        if(sysArea.getChild()==null || sysArea.getChild().size()==0){
+            return;
+        }
+        for (SysAreaVo child : sysArea.getChild()) {
+            setFlagByTree(child, map);
+        }
+    }
 }

+ 31 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaAddVo.java

@@ -0,0 +1,31 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 15:08
+ *  @Description: 后线人员关联区域数据
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaAddVo {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("后线用户ID")
+    private String userId;
+
+    /***
+     * 区域code集合
+     */
+    @ApiModelProperty("区域code集合")
+    private List<String> areaCodes = new ArrayList<String>();
+}

+ 24 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaIdsVo.java

@@ -0,0 +1,24 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:55
+ *  @Description: 关联区域ids
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaIdsVo implements Serializable {
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("关联区域ids")
+    private List<Long> ids;
+}

+ 35 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserLinkAreaVo.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.admin.model.vo;
+
+import com.ydtech.core.page.BasePageVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/15 14:55
+ *  @Description: 前台分页查询对象
+ */
+@Data
+@ApiModel
+public class SysUserLinkAreaVo extends BasePageVO {
+
+    /***
+     * 用户ID
+     */
+    @ApiModelProperty("后线用户ID")
+    private String userId;
+
+    /***
+     * 后线用户名称
+     */
+    @ApiModelProperty("后线用户名称")
+    private String userName;
+
+    /***
+     * 区域编码
+     */
+    @ApiModelProperty("区域编码")
+    private String areaCode;
+}

+ 66 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserLinkAreaService.java

@@ -0,0 +1,66 @@
+package com.ydtech.modules.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaListDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkArea;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaVo;
+import com.ydtech.modules.order.entity.BasePageResult;
+
+import java.util.List;
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 15:55
+ *  @Description: 后线人员关联区域的数据
+ */
+public interface SysUserLinkAreaService extends IService<SysUserLinkArea> {
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:11
+     *  @Description: 分页
+     */
+    BasePageResult<SysUserLinkAreaDto> queryPage(SysUserLinkAreaVo sysUserLinkAreaVo);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:12
+     *  @Description: 修改
+     */
+    void addOrUpdate(SysUserLinkAreaAddVo sysUserLinkAreaAddVo, SysUser user);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:23
+     *  @Description: 更具id删除数据
+     */
+    void deleteByIds(List<Long> ids);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:27
+     *  @Description: 查询后线人员关联的协议列表
+     */
+    SysUserLinkAreaListDto findAreaListByUserId(String userId);
+     /**
+      *  @version
+      *  @author: hxl
+      *  @Date: 2024/4/26 17:21
+      *  @Description:  后线人员绑定的区域的树回显
+      */
+    List<SysAreaVo> findAreaTreeByUserId(String userId);
+     /**
+      *  @version
+      *  @author: hxl
+      *  @Date: 2024/4/26 17:22
+      *  @Description: 查询用户分页
+      */
+    BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto);
+}

+ 160 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserLinkAreaServiceImpl.java

@@ -0,0 +1,160 @@
+package com.ydtech.modules.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
+import com.ydtech.modules.admin.dao.SysUserMapper;
+import com.ydtech.modules.admin.model.SysArea;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.admin.model.dto.SysUserDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto;
+import com.ydtech.modules.admin.model.dto.SysUserLinkAreaListDto;
+import com.ydtech.modules.admin.model.po.SysUserLinkArea;
+import com.ydtech.modules.admin.model.vo.SysAreaVo;
+import com.ydtech.modules.admin.model.vo.SysUserBaseVO;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaAddVo;
+import com.ydtech.modules.admin.model.vo.SysUserLinkAreaVo;
+import com.ydtech.modules.admin.service.SysAreaService;
+import com.ydtech.modules.admin.service.SysUserLinkAreaService;
+import com.ydtech.modules.order.entity.BasePageResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+/**
+ *  @version
+ *  @author: hxl
+ *  @Date: 2024/4/26 14:52
+ *  @Description: 用户关联协议表
+ */
+@Service
+public class SysUserLinkAreaServiceImpl extends ServiceImpl<SysUserLinkAreaMapper, SysUserLinkArea> implements SysUserLinkAreaService {
+
+
+    @Autowired
+    private SysUserLinkAreaMapper sysUserLinkAreaMapper;
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
+    @Autowired
+    private  SysAreaService sysAreaService;
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:13
+     *  @Description:  分页
+     */
+    @Override
+    public BasePageResult<SysUserLinkAreaDto> queryPage(SysUserLinkAreaVo sysUserLinkAreaVo) {
+        Page<SysUserLinkAreaDto> page = new Page<>(sysUserLinkAreaVo.getPageNum(),
+                sysUserLinkAreaVo.getPageSize());
+        Page<SysUserLinkAreaDto> sysUserLinkAreaDtoBasePageResult = sysUserLinkAreaMapper.queryPage(page, sysUserLinkAreaVo);
+        return  new BasePageResult<>(sysUserLinkAreaVo.getPageNum(), page.getSize(), sysUserLinkAreaDtoBasePageResult.getTotal(), page.getPages(),
+                sysUserLinkAreaDtoBasePageResult.getRecords());
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:13
+     *  @Description: 添加修改
+     */
+    @Override
+    public void addOrUpdate(SysUserLinkAreaAddVo sysUserLinkAreaAddVo, SysUser user) {
+        String userId = sysUserLinkAreaAddVo.getUserId();
+        List<String> areaCodes = sysUserLinkAreaAddVo.getAreaCodes();
+        //删除数据重新添加
+        sysUserLinkAreaMapper.deleteByUserId(userId);
+        List<SysUserLinkArea> addList=new ArrayList<SysUserLinkArea>();
+        //重新添加
+        if(areaCodes!=null && areaCodes.size()>0){
+            for (String areaCode : areaCodes) {
+                SysUserLinkArea add=new SysUserLinkArea(userId,areaCode,user.getId(),user.getName(),new Date(),user.getId(),user.getName(),new Date());
+                addList.add(add);
+            }
+        }
+        this.saveBatch(addList);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:53
+     *  @Description:  通过id删除数据
+     */
+    @Override
+    public void deleteByIds(List<Long> ids) {
+        sysUserLinkAreaMapper.deleteBatchIds(ids);
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:22
+     *  @Description: 通过用户查询关联的区域ids回显使用
+     */
+    @Override
+    public SysUserLinkAreaListDto findAreaListByUserId(String userId) {
+        //查询用户绑定的区域
+        List<SysArea> list = sysUserLinkAreaMapper.findAreaListByUserId(userId);
+        SysUser sysUser = sysUserMapper.selectById(userId);
+        SysUserLinkAreaListDto SysUserLinkAreaListDto =new SysUserLinkAreaListDto(sysUser,list);
+        return  SysUserLinkAreaListDto;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 15:23
+     *  @Description:  通过用户查询关联的区域树回显使用
+     */
+    @Override
+    public List<SysAreaVo> findAreaTreeByUserId(String userId) {
+        //查询所有的区域树
+        List<SysAreaVo> sysAreaVos = sysAreaService.querySysArea();
+        Map<String,SysArea> map=new HashMap<String,SysArea>();
+        //查询用户绑定的区域
+        List<SysArea> list = sysUserLinkAreaMapper.findAreaListByUserId(userId);
+        if(list!=null && list.size()>0){
+            for (SysArea sysArea : list) {
+                map.put(sysArea.getAreaCode(),sysArea);
+            }
+        }
+        //递归赋值
+        if(sysAreaVos!=null && sysAreaVos.size()>0){
+            for (SysAreaVo sysAreaVo : sysAreaVos) {
+                sysAreaVo= setFlagByTree(sysAreaVo,map);
+            }
+        }
+        return sysAreaVos;
+    }
+
+
+    public SysAreaVo setFlagByTree(SysAreaVo sysArea, Map<String,SysArea> map) {
+        sysArea.setFlag(false);
+        if (map.get(sysArea.getAreaCode())!=null) {
+            sysArea.setFlag(true);
+        }
+        if(sysArea.getChild()==null || sysArea.getChild().size()==0){
+        }
+        for (SysAreaVo child : sysArea.getChild()) {
+            setFlagByTree(child, map);
+        }
+        return sysArea;
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/4/26 17:23
+     *  @Description:  查询用户分页
+     */
+    @Override
+    public BasePageResult<SysUserBaseVO> findUserListByPage(SysUserDto sysUserDto) {
+        Page<SysUserBaseVO> page = new Page<>(sysUserDto.getPageNum(),
+                sysUserDto.getPageSize());
+        Page<SysUserBaseVO> userPageResult = sysUserMapper.findUserListByAreaPage(page, sysUserDto);
+        return  new BasePageResult<>(sysUserDto.getPageNum(), page.getSize(), userPageResult.getTotal(), page.getPages(),
+                userPageResult.getRecords());
+    }
+}

+ 17 - 0
src/main/java/com/ydtech/modules/ins/model/vo/CarInfoVo.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.ins.model.vo;
 
 import com.ydtech.constants.enums.dict.insurance.EnergyType;
+import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.validation.annotation.CheckDateTime;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -166,6 +167,7 @@ public class CarInfoVo {
 
     /**
      * 所属性质
+     *
      * @see com.ydtech.constants.enums.dict.insurance.Property
      */
     @ApiModelProperty(value = "所属性质(1个人 2企业 3机关)")
@@ -180,4 +182,19 @@ public class CarInfoVo {
     }
 
 
+    public CarModelDTO toCarModelDTO() {
+        CarModelDTO carModelDTO = new CarModelDTO();
+        carModelDTO.setModelCode(this.modelCode);
+        carModelDTO.setModelName(this.brandName);
+        carModelDTO.setSeries(this.familyName);
+        carModelDTO.setRatedPassengerCapacity(this.seatCount);
+        carModelDTO.setDisplacement(this.enginedesc);
+        carModelDTO.setMarketYear(this.caryear);
+        carModelDTO.setReplacementValue(this.purchasePrice);
+        carModelDTO.setFuelType(this.powertype);
+        carModelDTO.setEnergyTypes(this.energyType);
+        carModelDTO.setFuelTypeCode(this.energyType);
+        return carModelDTO;
+    }
+
 }

+ 3 - 2
src/main/java/com/ydtech/modules/ins/model/vo/CustomerInfoVo.java

@@ -8,8 +8,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import java.util.ArrayList;
-import java.util.List;
+import javax.validation.constraints.NotBlank;
 
 /**
  * @author qinfenglong
@@ -50,10 +49,12 @@ public class CustomerInfoVo {
 
     @ApiModelProperty(value = "有效时间开始")
     @CheckDateTime(format = "yyyy-MM-dd", message = "请检查身份证的开始有效时间")
+    @NotBlank(message = "请检车有效时间开始是否填写")
     private String identifyValidDate;
 
     @ApiModelProperty(value = "有效时间结束")
     @CheckDateTime(format = "yyyy-MM-dd", message = "请检查身份证的结束有效时间")
+    @NotBlank(message = "请检车有效时间结束是否填写")
     private String identifyValidEndDate;
 
     @ApiModelProperty(value = "同车主")

+ 5 - 2
src/main/java/com/ydtech/modules/ins/model/zm/ZmCarModel.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.ins.model.zm;
 
+import com.ydtech.constants.enums.JingyouEnergyTypes;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import lombok.Data;
 
@@ -72,8 +73,10 @@ public class ZmCarModel {
         carModelDTO.setReplacementValue(zmCarModel.getOriginalPurchasePrice());
         carModelDTO.setRemark(zmCarModel.getRemark());
         carModelDTO.setFuelType(zmCarModel.getFuelType());
-        carModelDTO.setFuelTypeCode(zmCarModel.getFuelTypeCode());
-        carModelDTO.setEnergyTypes(zmCarModel.getFuelTypeCode());
+
+        String energyTypeByCode = JingyouEnergyTypes.getEnergyTypeByCode(zmCarModel.getFuelTypeCode());
+        carModelDTO.setFuelTypeCode(energyTypeByCode);
+        carModelDTO.setEnergyTypes(energyTypeByCode);
         carModelDTO.setPowerScale(zmCarModel.getPower());
         carModelDTO.setVehicleSeatMax(zmCarModel.getVehicleSeatMax());
         carModelDTO.setVehicleSeatMin(zmCarModel.getVehicleSeatMin());

+ 2 - 1
src/main/java/com/ydtech/modules/inv/controller/invAccountExcelController.java

@@ -90,7 +90,7 @@ public class invAccountExcelController {
         if (invAccountExcel.getEnterCardNum().equals(invAccountExcel.getOutCardNum())) {
             throw new SystemException("无法转账给本公司");
         }
-
+        invAccountExcel.setTransferFlag("1"); //默认新增时未转帐状态
         invAccountExcel.setExcelAccountOperateId(String.valueOf(new Date().getTime()));
 
         if (invAccountExcelService.save(invAccountExcel)) {
@@ -116,6 +116,7 @@ public class invAccountExcelController {
                 BaseController baseController = new BaseController();
                 invAccountExcel.setUpdateBy(baseController.getUserName());
                 invAccountExcel.setUpdateTime(new Date());
+                invAccountExcel.setTransferFlag("1");
                 return HttpResult.ok("", invAccountExcelService.updateById(invAccountExcel));
             } else {
                 return HttpResult.error("已转账无法修改");

+ 0 - 26
src/main/java/com/ydtech/modules/order/convert/CarModelDTOConvert.java

@@ -1,26 +0,0 @@
-package com.ydtech.modules.order.convert;
-
-
-import com.ydtech.modules.ins.model.vo.CarInfoVo;
-import com.ydtech.modules.ins.model.ya.CarModelDTO;
-import org.mapstruct.Mapper;
-import org.mapstruct.Mapping;
-import org.mapstruct.factory.Mappers;
-
-@Mapper
-public interface CarModelDTOConvert {
-
-    CarModelDTOConvert INSTANCE = Mappers.getMapper(CarModelDTOConvert.class);
-
-    @Mapping(source = "modelCode", target = "modelCode")
-    @Mapping(source = "brandName", target = "modelName")
-    @Mapping(source = "familyName", target = "series")
-    @Mapping(source = "seatCount", target = "ratedPassengerCapacity")
-    @Mapping(source = "enginedesc", target = "displacement")
-    @Mapping(source = "caryear", target = "marketYear")
-    @Mapping(source = "purchasePrice", target = "replacementValue")
-    @Mapping(source = "powertype", target = "fuelType")
-    @Mapping(source = "energyType", target = "energyTypes")
-    CarModelDTO CarInfoVotoCarModelDTO(CarInfoVo carInfoVo);
-
-}

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

@@ -40,7 +40,6 @@ import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.ins.model.ya.ExtendInfoDto;
 import com.ydtech.modules.ins.model.ya.ResponseDataC2;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
-import com.ydtech.modules.order.convert.CarModelDTOConvert;
 import com.ydtech.modules.order.convert.MapToYaExtendInfoDto;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
 import com.ydtech.modules.order.entity.BasePageResult;
@@ -210,7 +209,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (!ObjectUtils.isEmpty(insOrders)) {
             JSONObject carinfo = insOrders.getCarinfo();
             CarInfoVo carInfoVo = JSON.parseObject(carinfo.toJSONString(), CarInfoVo.class);
-            CarModelDTO carModelDTO = CarModelDTOConvert.INSTANCE.CarInfoVotoCarModelDTO(carInfoVo);
+            CarModelDTO carModelDTO = carInfoVo.toCarModelDTO();
             return Collections.singletonList(carModelDTO);
         }
         return Collections.emptyList();

+ 71 - 0
src/main/resources/mapper/modules/admin/SysUserLinkAreaMapper.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.admin.dao.SysUserLinkAreaMapper">
+    <sql id="Base_Column_List">
+            link.id as id,
+            user.id as "sysUser.id",
+            user.name as "sysUser.name",
+            t2.id AS "sysUser.deptId",
+            t2.`name` AS "sysUser.deptName",
+            area.id as  "area.id",
+            area.area_code as  "area.areaCode",
+            area.area_cname AS "area.areaCname",
+	        CONCAT(IFNULL(ppArea.area_cname,"") , IFNULL(pArea.area_cname,""),IFNULL(area.area_cname,"")) as "area.allName"
+    </sql>
+
+    <select id="queryPage"  resultType="com.ydtech.modules.admin.model.dto.SysUserLinkAreaDto">
+        SELECT
+          <include refid="Base_Column_List"/>
+        FROM
+        sys_user_link_area link
+        LEFT JOIN sys_user USER ON link.user_id = USER.id
+        LEFT JOIN sys_dept t2 ON USER.dept_id = t2.id
+        LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+        LEFT JOIN sys_area area ON link.area_code = area.area_code
+        LEFT JOIN sys_area pArea ON pArea.area_code = area.upper_code
+        LEFT JOIN sys_area ppArea ON ppArea.area_code = pArea.upper_code
+        <where>
+            <if test="vo.userId != null and vo.userId != ''">
+                and  link.user_id =  #{vo.userId}
+            </if>
+            <if test="vo.userName != null and vo.userName != ''">
+                and  USER.name  like CONCAT('%', #{vo.userName}, '%')
+            </if>
+            <if test="vo.areaCode != null and vo.areaCode != ''">
+                and   EXISTS (
+                    SELECT
+                    area_code
+                    FROM
+                    ( SELECT * FROM sys_area area WHERE upper_code = #{vo.areaCode} OR area_code = #{vo.areaCode} ) areaAll
+                    WHERE
+                    areaAll.area_code = link.area_code
+                )
+            </if>
+        </where>
+        order by area.area_code
+    </select>
+
+    <delete id="deleteByUserId">
+       delete  from     sys_user_link_area
+       where   user_id=#{userId}
+    </delete>
+
+    <select id="findAreaListByUserId"  resultType="com.ydtech.modules.admin.model.SysArea">
+        SELECT
+            area.id as id,
+            area.area_code as  areaCode,
+            area.area_cname as  areaCname,
+            area.upper_code as upperCode
+        FROM
+        sys_user_link_area link
+        LEFT JOIN sys_area area ON link.area_code = area.area_code
+        <where>
+            <if test="userId != null and userId != ''">
+                and  link.user_id =  #{userId}
+            </if>
+        </where>
+        order by area.area_code
+    </select>
+</mapper>

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

@@ -576,7 +576,7 @@
                 and t2.id like CONCAT('', #{user.deptId}, '%')
             </if>
         </if>
-        order by flag
+        order by flag desc
     </select>
 
     <select id="getDeptIdsByUserIds" resultType="String">
@@ -615,4 +615,43 @@
         GROUP BY
         t2.id
     </select>
+
+
+    <select id="findUserListByAreaPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
+        SELECT
+        t1.id AS userId,
+        t1.NAME AS NAME,
+        t1.mobile AS mobile,
+        t1.`status` AS `status`,
+        t2.id AS deptId,
+        t2.`name` AS deptName,
+        sd2.id AS pDeptId,
+        sd2.`name` AS pDeptName,
+        CASE
+        WHEN ( SELECT count( 0 ) FROM sys_user_link_area link WHERE link.user_id = t1.id) > 0 THEN
+        true ELSE false
+        END AS flag
+        FROM
+        sys_user t1
+        LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
+        LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
+        WHERE
+        t1.`status` = 1
+        AND t1.id NOT LIKE '%M%'
+        <if test='user !=null  '>
+            <if test='user.name !=null and user.name!="" '>
+                and t1.name like CONCAT('%', #{user.name}, '%')
+            </if>
+            <if test='user.userId !=null and user.userId!="" '>
+                and t1.id = #{user.userId}
+            </if>
+            <if test='user.mobile !=null and user.mobile!=""  '>
+                and t1.mobile = #{user.mobile}
+            </if>
+            <if test='user.deptId !=null and user.deptId!=""  '>
+                and t2.id like CONCAT('', #{user.deptId}, '%')
+            </if>
+        </if>
+        order by flag desc
+    </select>
 </mapper>

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

@@ -158,8 +158,11 @@
         <if test="params.frameNo != null and params.frameNo != ''">
             AND frameno = #{params.frameNo}
         </if>
-        <if test="params.insuredname != null and params.insuredname != ''">
-            AND insuredname = #{params.insuredname}
+        <if test="params.insuredName != null and params.insuredName != ''">
+            AND insuredname = #{params.insuredName}
+        </if>
+        <if test="params.companyId != null and params.companyId != ''">
+            AND company_id = #{params.companyId}
         </if>
         <if test="params.startDateStr != null and params.startDateStr != ''">
             AND createtime BETWEEN #{params.startDateStr} and #{params.endDateStr}
@@ -320,8 +323,11 @@
         <if test="params.frameNo != null and params.frameNo != ''">
             AND frameno = #{params.frameNo}
         </if>
-        <if test="params.insuredname != null and params.insuredname != ''">
-            AND insuredname = #{params.insuredname}
+        <if test="params.insuredName != null and params.insuredName != ''">
+            AND insuredname = #{params.insuredName}
+        </if>
+        <if test="params.companyId != null and params.companyId != ''">
+            AND company_id = #{params.companyId}
         </if>
         <if test="params.startDateStr != null and params.startDateStr != ''">
             AND createtime BETWEEN #{params.startDateStr} and #{params.endDateStr}