Prechádzať zdrojové kódy

1. 添加订单回收站

785834757 9 mesiacov pred
rodič
commit
3abf2bfbef

+ 13 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -139,6 +139,19 @@ public class InsOrdersController extends BaseController {
         return HttpResult.ok("success", quoteResult);
     }
 
+    @PostMapping("/queryPageDeleteOrder")
+    @ApiOperation(value = "查询删除的订单")
+    public HttpResult<BasePageResult<InsOrders>> queryPageDeleteOrder(@RequestBody @Valid OrderQueryVo orderQueryVo) {
+        BasePageResult<InsOrders> quoteResult = this.insOrdersService.newQueryPageDeleteOrder(orderQueryVo);
+        return HttpResult.ok("success", quoteResult);
+    }
+
+    @PostMapping("/modifyDeleteOrderFlag")
+    @ApiOperation(value = "修改删除订单的标志")
+    public HttpResult modifyDeleteOrderFlag(@RequestSingleParam("orderNo") String orderNo){
+        return HttpResult.ok("success",this.insOrdersService.modifyDeleteOrderFlag(orderNo));
+    }
+
     @PostMapping("/orderExportExcel")
     @ApiOperation(value = "订单导出excel接口")
     public HttpResult<String> orderExportExcel(@RequestBody InsOrdersExcelVo insOrdersExcelVo) {

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

@@ -27,9 +27,16 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
     Long queryPageOrderCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo,
                              @Param("isTeamLeader") Boolean isTeamLeader, @Param("isCdy") Boolean isCdy, @Param("deptId") String deptId, @Param("isDxFlag") Boolean isDxFlag);
 
+    Long queryPageDeleteOrderCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo,
+                             @Param("isTeamLeader") Boolean isTeamLeader, @Param("isCdy") Boolean isCdy, @Param("deptId") String deptId, @Param("isDxFlag") Boolean isDxFlag);
+
     Page<InsOrders> queryPageOrder(@Param("page") Page page, @Param("orderQueryVo") OrderQueryVo orderQueryVo,
                                    @Param("isTeamLeader") Boolean isTeamLeader, @Param("isCdy") Boolean isCdy, @Param("deptId") String deptId, @Param("isDxFlag") Boolean isDxFlag);
 
+    Page<InsOrders> queryPageDeleteOrder(@Param("page") Page page, @Param("orderQueryVo") OrderQueryVo orderQueryVo,
+                                   @Param("isTeamLeader") Boolean isTeamLeader, @Param("isCdy") Boolean isCdy, @Param("deptId") String deptId, @Param("isDxFlag") Boolean isDxFlag);
+
+
     /**
      * @param insOrdersExcelVo 查询条件
      * @description: 查询承保导出数据
@@ -191,4 +198,6 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
      *  @Description: 更新空值
      */
     boolean updateWithNull(InsOrders insOrders);
+
+    boolean updateDelFlag(String orderNo);
 }

+ 4 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -78,6 +78,8 @@ public interface InsOrdersService extends IService<InsOrders> {
 
     BasePageResult<InsOrders> newQueryPageOrder(OrderQueryVo orderQueryVo);
 
+    BasePageResult<InsOrders> newQueryPageDeleteOrder(OrderQueryVo orderQueryVo);
+
     /**
      * 查询订单接口
      *
@@ -326,4 +328,6 @@ public interface InsOrdersService extends IService<InsOrders> {
      * @return 下载链接
      */
     String exportTaskPoolData(OrderQueryVo orderQueryVo, OrderLinkTypeConstants orderLinkTypeConstants);
+
+    boolean modifyDeleteOrderFlag(String orderNo);
 }

+ 84 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -858,6 +858,79 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 , orderVoPage.getRecords());
     }
 
+    @Override
+    public BasePageResult<InsOrders> newQueryPageDeleteOrder(OrderQueryVo orderQueryVo) {
+        Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
+        page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
+        boolean adminFalg = false;
+        //修改逻辑   add by  hxl   修改查询当前登陆人的订单   admin 可以查看所有
+        String userId = BaseController.getUserId();
+        if ("admin".equals(userId)) {
+            adminFalg = true;
+        }
+        /**
+         // 领导标志
+         boolean isTeamLeader = false;
+         //是否出单员标志
+         boolean isCdy = false;
+         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
+         SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
+         if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
+         //团队长可查询下面所有人员订单
+         isTeamLeader = true;
+         }
+         if (19 == userRole.getRoleId()) {
+         isCdy = true;
+         }
+         }
+         orderQueryVo.setEndDate(orderQueryVo.getEndDatePlusOneDay());
+         **/
+        //添加渠道团队长可以查看下级  add by hxl   2024-07-12
+        SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
+        SysUser user = sysUserService.getById(orderQueryVo.getUserId());
+        SysDept dept = sysDeptService.getById(user.getDeptId());
+        String deptId = "";
+        boolean isCdy = false;
+        boolean isDxFlag = false;
+        //机构类型为1  角色id=21是渠道团队长
+        if (dept != null && "1".equals(dept.getManagementSource()) && userRole != null && userRole.getRoleId() == 21) {
+            deptId = dept.getId();
+            isCdy = true;
+        }
+        //车险查询添加电销组长可以查询电销下的数据   电销组长 72
+        if (dept != null && "3".equals(dept.getManagementSource()) && userRole != null && userRole.getRoleId() == 72) {
+            //  add  by hxl  去除机构查询
+            //deptId = dept.getId();
+            orderQueryVo.setDeptId(null);
+            isDxFlag = true;
+        }
+        Page<InsOrders> orderVoPage = baseMapper.queryPageDeleteOrder(page, orderQueryVo, adminFalg, isCdy, deptId, isDxFlag);
+        Long total = baseMapper.queryPageDeleteOrderCount(orderQueryVo, adminFalg, isCdy, deptId, isDxFlag);
+        orderVoPage.setTotal(total);
+
+        List<InsOrders> records = orderVoPage.getRecords();
+        if (!records.isEmpty()) {
+            List<String> collect = records.stream().map(InsOrders::getOrderno).collect(Collectors.toList());
+            Map<String, String> subOrderCountDTO = insAreaCompanyService.getSubOrderCountDTO(collect);
+
+            records.forEach(x -> {
+
+                if (!InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(x.getOrderstatus())) {
+                    JSONArray risk = x.getRisk();
+                    List<RiskInfoVo> javaList = risk.toJavaList(RiskInfoVo.class);
+                    javaList.forEach(RiskInfoVo::expirationTime);
+                    JSONArray objects = JSON.parseArray(JSON.toJSONString(javaList));
+                    x.setRisk(objects);
+                }
+
+                x.setSubOrderStatus(subOrderCountDTO);
+            });
+        }
+        return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
+                orderVoPage.getPages()
+                , orderVoPage.getRecords());
+    }
+
 
     @Override
     public BasePageResult<InsOrders> queryPageOrder(OrderQueryVo orderQueryVo) {
@@ -2846,6 +2919,17 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         throw new SystemException("文件导出失败");
     }
 
+    @Override
+    public boolean modifyDeleteOrderFlag(String orderNo) {
+        InsOrders insOrders = baseMapper.selectOne(new LambdaQueryWrapper<InsOrders>()
+                .eq(InsOrders::getOrderno, orderNo));
+        if(Objects.isNull(insOrders)){
+            throw new SystemException("订单不存在");
+        }
+        baseMapper.updateDelFlag(orderNo);
+        return true;
+    }
+
     private String getTimeDate(String startDateStr, String endDateStr, int day) {
         DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd");
         LocalDate startDate = LocalDate.parse(startDateStr, pattern);

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

@@ -370,6 +370,73 @@
         ) as s
     </select>
 
+
+    <select id="queryPageDeleteOrderCount" resultType="Long">
+        select
+        count(1)
+        from (
+        select
+        io.orderno
+        from
+        ins_orders io
+        <!--如果存在 公司查询则进行连表 -->
+        <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+            left JOIN
+            ins_area_company iac on iac.orderno = io.orderno
+        </if>
+        where
+            io.del_flag = 1)
+            <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
+                and io.orderno = #{orderQueryVo.orderNo}
+            </if>
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
+                and io.deptid like "${orderQueryVo.deptId}%"
+            </if>
+            <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
+                and io.orderstatus = #{orderQueryVo.orderStatus}
+            </if>
+            <if test="orderQueryVo.frameNo != null and orderQueryVo.frameNo != ''">
+                and io.frameno = #{orderQueryVo.frameNo}
+            </if>
+            <if test="orderQueryVo.licenseNo != null and orderQueryVo.licenseNo != ''">
+                and io.licenseno = #{orderQueryVo.licenseNo}
+            </if>
+            <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
+                and io.insuredname = #{orderQueryVo.insuredName}
+            </if>
+            <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
+                and DATE_FORMAT(io.createtime, '%Y-%m-%d') between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+            </if>
+            <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+                and iac.company_id = #{orderQueryVo.companyId}
+            </if>
+            <!--
+           <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">
+                and io.operatorid = #{orderQueryVo.userId}
+          </if>
+           -->
+            <choose>
+                <when test="isCdy">
+                    <if test="deptId != null and deptId != '' ">
+                        and io.deptid like "${deptId}%"
+                    </if>
+                </when>
+                <when test="isDxFlag">
+                    <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' ">
+                        and io.userid in ( select id from sys_user where manager_id = #{orderQueryVo.userId} or id =
+                        #{orderQueryVo.userId} )
+                    </if>
+                </when>
+                <otherwise>
+                    <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and !isTeamLeader">
+                        and io.userid = #{orderQueryVo.userId}
+                    </if>
+                </otherwise>
+            </choose>
+        group by io.orderno
+        ) as s
+    </select>
+
     <select id="queryPageOrder" resultMap="BaseResultMap">
         select
         io.*
@@ -444,6 +511,78 @@
     </select>
 
 
+    <select id="queryPageDeleteOrder" resultMap="BaseResultMap">
+        select
+        io.*
+        from
+        ins_orders io
+        <!--如果存在 公司查询则进行连表 -->
+        <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+            left JOIN
+            ins_area_company iac on iac.orderno = io.orderno
+        </if>
+        where
+            io.del_flag = 1
+            <if test="orderQueryVo.orderNo != null and orderQueryVo.orderNo != ''">
+                and io.orderno = #{orderQueryVo.orderNo}
+            </if>
+            <if test="orderQueryVo.deptId != null and orderQueryVo.deptId != ''">
+                and io.deptid like "${orderQueryVo.deptId}%"
+            </if>
+            <if test="orderQueryVo.orderStatus != null and orderQueryVo.orderStatus != ''">
+                and io.orderstatus = #{orderQueryVo.orderStatus}
+            </if>
+            <if test="orderQueryVo.frameNo != null and orderQueryVo.frameNo != ''">
+                and io.frameno = #{orderQueryVo.frameNo}
+            </if>
+            <if test="orderQueryVo.licenseNo != null and orderQueryVo.licenseNo != ''">
+                and io.licenseno = #{orderQueryVo.licenseNo}
+            </if>
+            <if test="orderQueryVo.insuredName != null and orderQueryVo.insuredName != ''">
+                and io.insuredname = #{orderQueryVo.insuredName}
+            </if>
+            <if test="orderQueryVo.startDate != null and orderQueryVo.endDate != null">
+                and DATE_FORMAT(io.createtime, '%Y-%m-%d') between #{orderQueryVo.startDate} AND #{orderQueryVo.endDate}
+            </if>
+            <if test="orderQueryVo.companyId != null and orderQueryVo.companyId != ''">
+                and iac.company_id = #{orderQueryVo.companyId}
+            </if>
+            <if test="orderQueryVo.product != null and orderQueryVo.product != ''">
+                and io.product = #{orderQueryVo.product}
+            </if>
+            <if test="orderQueryVo.productid != null and orderQueryVo.productid != ''">
+                and io.productid = #{orderQueryVo.productid}
+            </if>
+
+            <!--
+           <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and isCdy">
+               and io.operatorid = #{orderQueryVo.userId}
+           </if>
+            -->
+            <choose>
+                <when test="isCdy">
+                    <if test="deptId != null and deptId != '' ">
+                        and io.deptid like "${deptId}%"
+                    </if>
+                </when>
+                <when test="isDxFlag">
+                    <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' ">
+                        and io.userid in ( select id from sys_user where manager_id = #{orderQueryVo.userId} or id =
+                        #{orderQueryVo.userId} )
+                    </if>
+                </when>
+                <otherwise>
+                    <if test="orderQueryVo.userId != null and orderQueryVo.userId != '' and !isTeamLeader">
+                        and io.userid = #{orderQueryVo.userId}
+                    </if>
+                </otherwise>
+            </choose>
+        group by
+        orderno, io.createtime
+        order by io.createtime desc
+    </select>
+
+
     <select id="queryOrderList" parameterType="com.ydtech.modules.ins.model.InsOrdersExcelVo" resultMap="OrderExcelResultMap">
         select
         a.orderno,
@@ -2086,4 +2225,8 @@
         order by io.createtime desc
     </select>
 
+    <update id="updateDelFlag">
+        update ins_orders set del_flag = NULL where orderno = #{orderNo}
+    </update>
+
 </mapper>