Просмотр исходного кода

[update] 统计逻辑修复, 查询补货数基于实际补货员查询, 司机在途核算记录明细查询逻辑加入区间id及司机id查询

miajio 2 недель назад
Родитель
Сommit
2922051612
12 измененных файлов с 161 добавлено и 58 удалено
  1. 0 5
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverRouteAccountRecordPageBo.java
  2. 34 0
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/RouteAccountRecordDetailBo.java
  3. 2 1
      warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteAccountRecordDetailMapper.java
  4. 24 13
      warehouse-admin-data/src/main/resources/mapper/driver/DriverOnRouteAccountRecordDetailMapper.xml
  5. 2 1
      warehouse-admin-data/src/main/resources/mapper/statistics/BillingQuantityStatisticsMapper.xml
  6. 3 2
      warehouse-admin-server/src/main/java/com/yr/warehouse/admin/service/driver/DriverOnRouteAccountRecordDetailService.java
  7. 3 3
      warehouse-admin-server/src/main/java/com/yr/warehouse/admin/service/driver/impl/DriverOnRouteAccountRecordDetailServiceImpl.java
  8. 47 28
      warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/controller/DriverIntervalCargoDamageController.java
  9. 2 0
      warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/mapstruct/DriverIntervalCargoDamageMapStruct.java
  10. 10 0
      warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/request/DriverDailyCargoDamagePageRequest.java
  11. 0 5
      warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/request/DriverRouteAccountRecordPageRequest.java
  12. 34 0
      warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/request/RouteAccountRecordDetailRequest.java

+ 0 - 5
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/DriverRouteAccountRecordPageBo.java

@@ -36,11 +36,6 @@ public class DriverRouteAccountRecordPageBo extends BasePageBo implements AreaSt
     private List<Long> areaStaffIds;
 
     /**
-     * 只查询当前司机在途
-     */
-    private Boolean onlySearchCurrentDriver;
-
-    /**
      * 统计开始时间
      */
     private LocalDate beginStatDate;

+ 34 - 0
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/bo/RouteAccountRecordDetailBo.java

@@ -0,0 +1,34 @@
+package com.yr.warehouse.admin.driver.bo;
+
+import com.yr.bluecat.common.entity.bo.BaseBo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+/**
+ * 查询司机在途核算记录明细查询bo
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class RouteAccountRecordDetailBo extends BaseBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机在途核算记录 - id
+
+     */
+    private Long routeAccountRecordMainId;
+
+    /**
+     * 区域员工 - id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 货损区间统计记录 - id
+     */
+    private Long goodsLossMonthlyMainId;
+}

+ 2 - 1
warehouse-admin-data/src/main/java/com/yr/warehouse/admin/driver/mapper/DriverOnRouteAccountRecordDetailMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.yr.warehouse.admin.common.bo.BaseIdBo;
 import com.yr.warehouse.admin.driver.bo.DriverIntervalRouteAccountRecordCreateBo;
 import com.yr.warehouse.admin.driver.bo.DriverIntervalRouteAccountRecordEditorBo;
+import com.yr.warehouse.admin.driver.bo.RouteAccountRecordDetailBo;
 import com.yr.warehouse.admin.driver.data.DriverOnRouteAccountRecordDetail;
 import com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordDetailVo;
 import org.apache.ibatis.annotations.Param;
@@ -31,7 +32,7 @@ public interface DriverOnRouteAccountRecordDetailMapper extends BaseMapper<Drive
      * @param bo 查询司机在途核算记录子表参数
      * @return 司机在途核算记录子表列表
      */
-    List<DriverRouteAccountRecordDetailVo> searchByRouteAccountRecordMainId(@Param("bo") BaseIdBo bo);
+    List<DriverRouteAccountRecordDetailVo> searchByParam(@Param("bo") RouteAccountRecordDetailBo bo);
 
     /**
      * 根据司机在途核算记录主表ID删除司机在途核算记录子表

+ 24 - 13
warehouse-admin-data/src/main/resources/mapper/driver/DriverOnRouteAccountRecordDetailMapper.xml

@@ -42,20 +42,31 @@
         delete from yr_driver_on_route_account_record_detail
         where routeAccountRecordMainId = #{routeAccountRecordMainId}
     </delete>
-    <select id="searchByRouteAccountRecordMainId"
-            resultType="com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordDetailVo"
-            parameterType="com.yr.warehouse.admin.common.bo.BaseIdBo">
-        select dorard.id            as id,
-               dorard.goodsId       as goodsId,
-               pd.code              as goodsCode,
-               ypii.product_img_url as goodsImg,
-               pd.display_name      as goodsName,
-               dorard.inventory     as inventory
+    <select id="searchByParam"
+            resultType="com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordDetailVo">
+        select dorard.id as id,
+        dorard.goodsId as goodsId,
+        pd.code as goodsCode,
+        ypii.product_img_url as goodsImg,
+        pd.display_name as goodsName,
+        dorard.inventory as inventory
         from yr_driver_on_route_account_record_detail as dorard
-                 left join yr_product_detail as pd on pd.id = dorard.goodsId
-                 left join yr_product_img_info as ypii
-                           on pd.id = ypii.product_spec_id and ypii.product_img_type = 'PRODUCT_MAIN_IMAGE'
-        where dorard.routeAccountRecordMainId = #{bo.id}
+        left join yr_driver_on_route_account_record_main as dorarm on dorarm.id = dorard.routeAccountRecordMainId
+        left join yr_product_detail as pd on pd.id = dorard.goodsId
+        left join yr_product_img_info as ypii
+        on pd.id = ypii.product_spec_id and ypii.product_img_type = 'PRODUCT_MAIN_IMAGE'
+        <where>
+            <if test="bo.routeAccountRecordMainId != null and bo.routeAccountRecordMainId > 0">
+                and dorard.routeAccountRecordMainId = #{bo.routeAccountRecordMainId}
+            </if>
+            <if test="bo.areaStaffId != null and bo.areaStaffId > 0">
+                and dorarm.areaStaffId = #{bo.areaStaffId}
+            </if>
+            <if test="bo.goodsLossMonthlyMainId != null and bo.goodsLossMonthlyMainId > 0">
+                and dorarm.goodsLossMonthlyMainId = #{bo.goodsLossMonthlyMainId}
+            </if>
+        </where>
+        order by dorard.id desc
     </select>
 
 </mapper>

+ 2 - 1
warehouse-admin-data/src/main/resources/mapper/statistics/BillingQuantityStatisticsMapper.xml

@@ -72,9 +72,10 @@
     </select>
 
     <select id="queryDriverReplenishNum" resultType="com.yr.warehouse.admin.replenish.vo.DriverGoodsOrderNumVo">
-        select roi.area_staff_id as areaStaffId, rod.goods_id as goodsId, sum(rod.real_picking_number) as totalNum
+        select IFNULL(oas.id, roi.area_staff_id) as areaStaffId, rod.goods_id as goodsId, sum(rod.real_picking_number) as totalNum
         from yr_replenish_order_detail as rod
                  left join yr_replenish_order_info as roi on rod.order_number = roi.order_number
+        left join yr_operators_area_staff as oas on roi.replenish_user_id = oas.accountId
         where roi.replenish_time between #{beginTime} and #{endTime}
           and roi.replenish_status = 2
         group by roi.area_staff_id, rod.goods_id

+ 3 - 2
warehouse-admin-server/src/main/java/com/yr/warehouse/admin/service/driver/DriverOnRouteAccountRecordDetailService.java

@@ -2,6 +2,7 @@ package com.yr.warehouse.admin.service.driver;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yr.warehouse.admin.common.bo.BaseIdBo;
+import com.yr.warehouse.admin.driver.bo.RouteAccountRecordDetailBo;
 import com.yr.warehouse.admin.driver.data.DriverOnRouteAccountRecordDetail;
 import com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordDetailVo;
 
@@ -19,8 +20,8 @@ public interface DriverOnRouteAccountRecordDetailService extends IService<Driver
 
     /**
      * 根据司机在途核算记录主表ID查询
-     * @param bo id
+     * @param bo 查询条件
      * @return 列表
      */
-    List<DriverRouteAccountRecordDetailVo> searchByRouteAccountRecordMainId(BaseIdBo bo);
+    List<DriverRouteAccountRecordDetailVo> searchByParam(RouteAccountRecordDetailBo bo);
 }

+ 3 - 3
warehouse-admin-server/src/main/java/com/yr/warehouse/admin/service/driver/impl/DriverOnRouteAccountRecordDetailServiceImpl.java

@@ -1,7 +1,7 @@
 package com.yr.warehouse.admin.service.driver.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yr.warehouse.admin.common.bo.BaseIdBo;
+import com.yr.warehouse.admin.driver.bo.RouteAccountRecordDetailBo;
 import com.yr.warehouse.admin.driver.data.DriverOnRouteAccountRecordDetail;
 import com.yr.warehouse.admin.driver.mapper.DriverOnRouteAccountRecordDetailMapper;
 import com.yr.warehouse.admin.driver.vo.DriverRouteAccountRecordDetailVo;
@@ -22,7 +22,7 @@ import java.util.List;
 public class DriverOnRouteAccountRecordDetailServiceImpl extends ServiceImpl<DriverOnRouteAccountRecordDetailMapper, DriverOnRouteAccountRecordDetail> implements DriverOnRouteAccountRecordDetailService {
 
     @Override
-    public List<DriverRouteAccountRecordDetailVo> searchByRouteAccountRecordMainId(BaseIdBo bo) {
-        return baseMapper.searchByRouteAccountRecordMainId(bo);
+    public List<DriverRouteAccountRecordDetailVo> searchByParam(RouteAccountRecordDetailBo bo) {
+        return baseMapper.searchByParam(bo);
     }
 }

+ 47 - 28
warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/controller/DriverIntervalCargoDamageController.java

@@ -281,23 +281,6 @@ public class DriverIntervalCargoDamageController extends BaseController {
     }
 
     /**
-     * 查询司机在途核算记录明细
-     */
-    @GetMapping("/routeAccountRecord/detail/{routeAccountRecordMainId}")
-    @ResponseBody
-    public Result<List<DriverRouteAccountRecordDetailResponse>> routeAccountRecordDetail(@PathVariable("routeAccountRecordMainId") Long routeAccountId, AdminUserInfo adminUserInfo) {
-        BaseIdBo bo = new BaseIdBo();
-        bo.setId(routeAccountId);
-        buildUserInfo(bo, adminUserInfo);
-        List<DriverRouteAccountRecordDetailVo> driverRouteDetailVos = driverOnRouteAccountRecordDetailService.searchByRouteAccountRecordMainId(bo);
-        if (null == driverRouteDetailVos || driverRouteDetailVos.isEmpty()) {
-            return Result.success(new ArrayList<>());
-        }
-        List<DriverRouteAccountRecordDetailResponse> driverRouteDetailResponses = DriverIntervalCargoDamageMapStruct.MAPSTRUCT.routeAccountRecordDetailVoToResponse(driverRouteDetailVos);
-        return Result.success(driverRouteDetailResponses);
-    }
-
-    /**
      * 编辑司机在途明细
      */
     @PostMapping("/routeAccountRecord/detail/edit")
@@ -310,21 +293,57 @@ public class DriverIntervalCargoDamageController extends BaseController {
     }
 
     /**
+     * 查询司机在途核算记录明细
+     * 参数二选一:
+     * 1、填写司机在途核算记录id
+     * 2、填写区域员工id和货损区间记录id
+     */
+    @GetMapping("/routeAccountRecord/detail")
+    @ResponseBody
+    public Result<List<DriverRouteAccountRecordDetailResponse>> routeAccountRecordDetail(@RequestBody RouteAccountRecordDetailRequest request, AdminUserInfo adminUserInfo) {
+        RouteAccountRecordDetailBo bo = DriverIntervalCargoDamageMapStruct.MAPSTRUCT.routeAccountRecordDetailRequestToBo(request);
+
+        if ((null != request.getRouteAccountRecordMainId() && request.getRouteAccountRecordMainId() > 0)
+                || (null != request.getAreaStaffId() && request.getAreaStaffId() > 0
+                && null != request.getGoodsLossMonthlyMainId() && request.getGoodsLossMonthlyMainId() > 0)) {
+            buildUserInfo(bo, adminUserInfo);
+            List<DriverRouteAccountRecordDetailVo> driverRouteDetailVos = driverOnRouteAccountRecordDetailService.searchByParam(bo);
+
+            if (null == driverRouteDetailVos || driverRouteDetailVos.isEmpty()) {
+                return Result.success(new ArrayList<>());
+            }
+            List<DriverRouteAccountRecordDetailResponse> driverRouteDetailResponses = DriverIntervalCargoDamageMapStruct.MAPSTRUCT.routeAccountRecordDetailVoToResponse(driverRouteDetailVos);
+            return Result.success(driverRouteDetailResponses);
+        } else {
+            throw new MessageException("参数错误, 请填写司机在途核算记录id或员工id与货损区间记录id");
+        }
+    }
+
+    /**
      * 导出司机在途明细
+     * 参数二选一:
+     * 1、填写司机在途核算记录id
+     * 2、填写区域员工id和货损区间记录id
      */
-    @GetMapping("/routeAccountRecord/detail/export/{routeAccountRecordMainId}")
+    @GetMapping("/routeAccountRecord/detail/export")
     @ResponseBody
-    public Result<String> exportRouteAccountRecordDetail(@PathVariable("routeAccountRecordMainId") Long routeAccountRecordMainId, AdminUserInfo adminUserInfo) {
-        BaseIdBo bo = new BaseIdBo();
-        bo.setId(routeAccountRecordMainId);
-        buildUserInfo(bo, adminUserInfo);
-        List<DriverRouteAccountRecordDetailVo> driverRouteDetailVos = driverOnRouteAccountRecordDetailService.searchByRouteAccountRecordMainId(bo);
-        if (null == driverRouteDetailVos || driverRouteDetailVos.isEmpty()) {
-            return Result.fail("没有可导出的数据");
+    public Result<String> exportRouteAccountRecordDetail(@RequestBody RouteAccountRecordDetailRequest request, AdminUserInfo adminUserInfo) {
+        RouteAccountRecordDetailBo bo = DriverIntervalCargoDamageMapStruct.MAPSTRUCT.routeAccountRecordDetailRequestToBo(request);
+        if ((null != request.getRouteAccountRecordMainId() && request.getRouteAccountRecordMainId() > 0)
+                || (null != request.getAreaStaffId() && request.getAreaStaffId() > 0
+                && null != request.getGoodsLossMonthlyMainId() && request.getGoodsLossMonthlyMainId() > 0)) {
+            buildUserInfo(bo, adminUserInfo);
+            List<DriverRouteAccountRecordDetailVo> driverRouteDetailVos = driverOnRouteAccountRecordDetailService.searchByParam(bo);
+
+            if (null == driverRouteDetailVos || driverRouteDetailVos.isEmpty()) {
+                return Result.fail("没有可导出的数据");
+            }
+            List<DriverRouteAccountRecordDetailExport> exports = DriverIntervalCargoDamageMapStruct.MAPSTRUCT.routeAccountRecordDetailVoToExport(driverRouteDetailVos);
+            String uri = exportClient.export(exports, "export/driver/interval/routeAccountRecordDetail", "司机在途核算明细" + System.currentTimeMillis());
+            return Result.success(uri);
+        } else {
+            throw new MessageException("参数错误, 请填写司机在途核算记录id或员工id与货损区间记录id");
         }
-        List<DriverRouteAccountRecordDetailExport> exports = DriverIntervalCargoDamageMapStruct.MAPSTRUCT.routeAccountRecordDetailVoToExport(driverRouteDetailVos);
-        String uri = exportClient.export(exports, "export/driver/interval/routeAccountRecordDetail", "司机在途核算明细" + System.currentTimeMillis());
-        return Result.success(uri);
     }
 
 

+ 2 - 0
warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/mapstruct/DriverIntervalCargoDamageMapStruct.java

@@ -58,4 +58,6 @@ public interface DriverIntervalCargoDamageMapStruct {
     List<DriverRouteAccountRecordDetailExport> routeAccountRecordDetailVoToExport(List<DriverRouteAccountRecordDetailVo> driverRouteDetailVos);
 
     DriverIntervalCargoDamageGeneratorBo inventoryRequestToBo(DriverCargoDamageInventoryRequest request, AdminUserRequest adminUserRequest);
+
+    RouteAccountRecordDetailBo routeAccountRecordDetailRequestToBo(RouteAccountRecordDetailRequest request);
 }

+ 10 - 0
warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/request/DriverDailyCargoDamagePageRequest.java

@@ -35,6 +35,16 @@ public class DriverDailyCargoDamagePageRequest extends PageRequest implements Se
     private String areaStaffName;
 
     /**
+     * 区间货损统计id
+     */
+    private Long goodsLossMonthlyMainId;
+
+    /**
+     * 区域员工id
+     */
+    private Long areaStaffId;
+
+    /**
      * 统计日期
      */
     @NotNull(message = "统计日期不能为空")

+ 0 - 5
warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/request/DriverRouteAccountRecordPageRequest.java

@@ -29,11 +29,6 @@ public class DriverRouteAccountRecordPageRequest extends PageRequest implements
     private String areaStaffName;
 
     /**
-     * 只查询当前司机在途
-     */
-    private Boolean onlySearchCurrentDriver;
-
-    /**
      * 统计开始时间
      */
     private LocalDate beginStatDate;

+ 34 - 0
warehouse-admin-web/src/main/java/com/yr/warehouse/admin/web/driver/request/RouteAccountRecordDetailRequest.java

@@ -0,0 +1,34 @@
+package com.yr.warehouse.admin.web.driver.request;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 查询司机在途核算记录明细查询请求参数
+ */
+@Data
+public class RouteAccountRecordDetailRequest implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 司机在途核算记录 - id
+
+     */
+    private Long routeAccountRecordMainId;
+
+    /**
+     * 区域员工 - id
+     */
+    private Long areaStaffId;
+
+    /**
+     * 货损区间统计记录 - id
+     */
+    private Long goodsLossMonthlyMainId;
+
+
+}