Browse Source

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

FengChaoYu 8 months ago
parent
commit
8c2662b043

+ 4 - 1
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/workorder/OrderBaseCMapper.java

@@ -20,7 +20,10 @@ public interface OrderBaseCMapper {
                                                      @Param("adminWebsitIds") List<String> adminWebsitIds,
                                                      @Param("adminUserType") Integer adminUserType,
                                                      @Param("orderSmallType") String orderSmallType,
-                                                     @Param("orderSmallTypeText") String orderSmallTypeText);
+                                                     @Param("orderSmallTypeText") String orderSmallTypeText,
+                                                     @Param("startTime") String startTime,
+                                                     @Param("endTime") String endTime
+    );
 
     /**
      * 工单首页的统计

+ 25 - 2
mall-server-api/src/main/java/com/gree/mall/manager/controller/admin/AdminWebsitController.java

@@ -45,9 +45,32 @@ public class AdminWebsitController {
             @ApiParam(value = "A=平台 B=商户网点 C=普通网点") @RequestParam(required = false) String type,
             @RequestParam(required = false) Boolean isAll,
             @RequestParam(required = false) Boolean status,
-            @RequestParam(required = false) Boolean isIncre
+            @RequestParam(required = false) Boolean isIncre,
+            @RequestParam(required = false) String streetCode,
+            @RequestParam(required = false) String channelId,
+            @RequestParam(required = false) String categoryId,
+            @RequestParam(required = false) String orderSourceId,
+            @RequestParam(required = false) String orderSmallId
     ) {
-        List<AdminWebsit> list = adminWebsitLogic.list(type, isAll, isIncre, status);
+        List<AdminWebsit> list = adminWebsitLogic.list(type, isAll, isIncre, status,streetCode,channelId,categoryId,orderSmallId,orderSourceId);
+        return ResponseHelper.success(list);
+    }
+
+
+    @GetMapping("/websitList")
+    @ApiOperation("网点列表")
+    public ResponseHelper<List<AdminWebsit>> websitList(
+            @ApiParam(value = "A=平台 B=商户网点 C=普通网点") @RequestParam(required = false) String type,
+            @ApiParam(value = "当前权限网点") @RequestParam(required = false) Boolean isAll,
+            @ApiParam(value = "状态") @RequestParam(required = false) Boolean status,
+            @ApiParam(value = "是否增值网点") @RequestParam(required = false) Boolean isIncre,
+            @ApiParam(value = "街道id") @RequestParam(required = false) String streetCode,
+            @ApiParam(value = "渠道") @RequestParam(required = false) String channelId,
+            @ApiParam(value = "产品大类") @RequestParam(required = false) String categoryId,
+            @ApiParam(value = "工单来源") @RequestParam(required = false) String orderSource,
+            @ApiParam(value = "工单类型") @RequestParam(required = false) String orderSmallId
+    ) {
+        List<AdminWebsit> list = adminWebsitLogic.websitList(type, isAll, isIncre, status,streetCode,channelId,categoryId,orderSmallId,orderSource);
         return ResponseHelper.success(list);
     }
 

+ 3 - 1
mall-server-api/src/main/java/com/gree/mall/manager/controller/workerorder/OrderBaseController.java

@@ -95,10 +95,12 @@ public class OrderBaseController {
     @PostMapping("/status/count")
     @ApiOperation(value = "按工单状态统计")
     public ResponseHelper<List<Map<String,Object>>> countStatus(
+            @RequestParam(required = false) String startTime,
+            @RequestParam(required = false) String endTime,
             @RequestParam(required = false) String orderSmallType,
             @RequestParam(required = false) String orderSmallTypeText
     ) {
-        List<Map<String, Object>> maps = orderBaseLogic.countStatus(orderSmallType,orderSmallTypeText);
+        List<Map<String, Object>> maps = orderBaseLogic.countStatus(startTime,endTime,orderSmallType,orderSmallTypeText);
         return ResponseHelper.success(maps);
     }
 

+ 51 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminWebsitLogic.java

@@ -15,6 +15,7 @@ import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.logic.common.LbsAmapLogic;
 import com.gree.mall.manager.plus.entity.*;
 import com.gree.mall.manager.plus.service.*;
+import com.gree.mall.manager.utils.StringUtil;
 import com.gree.mall.manager.utils.excel.ExcelUtils;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
@@ -63,6 +64,9 @@ public class AdminWebsitLogic {
     AdminCompanyWechatPayConfigService adminCompanyWechatPayConfigService;
     @Resource
     WebsitUserService websitUserService;
+
+    @Autowired
+    WebsitDispatchService websitDispatchService;
 //    @Autowired
 //    EnterpriseWechatWorkerLogic enterpriseWechatWorkerLogic;
 
@@ -101,12 +105,27 @@ public class AdminWebsitLogic {
         return parentList;
     }
 
-
-    public List<AdminWebsit> list(String type, Boolean isAll, Boolean isIncre, Boolean status) {
+    public List<AdminWebsit> list(String type, Boolean isAll, Boolean isIncre, Boolean status,String streetCode, String channelId, String categoryId,
+                                  String orderSmallId, String orderSourceId) {
         AdminUserCom adminUser = commonLogic.getAdminUser();
 
+
+        List<String> websitIds = new ArrayList<>();
+        if (!StringUtil.isEmpty(streetCode)) {
+            websitIds = websitDispatchService.lambdaQuery()
+                    .eq(!StringUtil.isEmpty(adminUser.getCompanyWechatId()), WebsitDispatch::getCompanyWechatId, adminUser.getCompanyWechatId())
+                    .eq(!StringUtil.isEmpty(streetCode), WebsitDispatch::getStreetCode, streetCode)
+                    .eq(!StringUtil.isEmpty(channelId), WebsitDispatch::getDictCode, channelId)
+                    .eq(!StringUtil.isEmpty(categoryId), WebsitDispatch::getCategoryId, categoryId)
+                    .eq(!StringUtil.isEmpty(orderSmallId), WebsitDispatch::getOrderSmallId, orderSmallId)
+                    .eq(!StringUtil.isEmpty(orderSourceId), WebsitDispatch::getOrderSource, orderSourceId)
+                    .list().stream().map(WebsitDispatch::getWebsitId).collect(Collectors.toList());
+        }
+
+
         List<AdminWebsit> list = adminWebsitService.lambdaQuery()
                 .eq(StringUtils.isNotBlank(type), AdminWebsit::getType, type)
+                .in(StringUtils.isNotBlank(streetCode) && !CollectionUtils.isEmpty(websitIds), AdminWebsit::getWebsitId, websitIds)
                 .eq(isIncre != null, AdminWebsit::getIsIncre, isIncre)
                 .eq(status != null, AdminWebsit::getStatus, status)
                 .in(CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds()) && (isAll == null || !isAll), AdminWebsit::getWebsitId, adminUser.getAdminWebsitIds())
@@ -805,4 +824,34 @@ public class AdminWebsitLogic {
         excelData.setRows(rows);
         return excelData;
     }
+
+    public List<AdminWebsit> websitList(String type, Boolean isAll, Boolean isIncre, Boolean status, String streetCode, String channelId, String categoryId,
+                                        String orderSmallId, String orderSourceId) {
+
+            AdminUserCom adminUser = commonLogic.getAdminUser();
+
+
+            List<String> websitIds = new ArrayList<>();
+            if (!StringUtil.isEmpty(streetCode)) {
+                websitIds = websitDispatchService.lambdaQuery()
+                        .eq(!StringUtil.isEmpty(adminUser.getCompanyWechatId()), WebsitDispatch::getCompanyWechatId, adminUser.getCompanyWechatId())
+                        .eq(!StringUtil.isEmpty(streetCode), WebsitDispatch::getStreetCode, streetCode)
+                        .eq(!StringUtil.isEmpty(channelId), WebsitDispatch::getDictCode, channelId)
+                        .eq(!StringUtil.isEmpty(categoryId), WebsitDispatch::getCategoryId, categoryId)
+                        .eq(!StringUtil.isEmpty(orderSmallId), WebsitDispatch::getOrderSmallId, orderSmallId)
+                        .eq(!StringUtil.isEmpty(orderSourceId), WebsitDispatch::getOrderSource, orderSourceId)
+                        .list().stream().map(WebsitDispatch::getWebsitId).collect(Collectors.toList());
+            }
+
+
+            List<AdminWebsit> list = adminWebsitService.lambdaQuery()
+                    .eq(StringUtils.isNotBlank(type), AdminWebsit::getType, type)
+                    .in(StringUtils.isNotBlank(streetCode) && !CollectionUtils.isEmpty(websitIds), AdminWebsit::getWebsitId, websitIds)
+                    .eq(isIncre != null, AdminWebsit::getIsIncre, isIncre)
+                    .eq(status != null, AdminWebsit::getStatus, status)
+                    .in(CollectionUtils.isNotEmpty(adminUser.getAdminWebsitIds()) && (isAll == null || !isAll), AdminWebsit::getWebsitId, adminUser.getAdminWebsitIds())
+                    .in(CollectionUtils.isNotEmpty(adminUser.getCompanyWechatIds()), AdminWebsit::getCompanyWechatId, adminUser.getCompanyWechatIds())
+                    .list();
+            return list;
+    }
 }

+ 1 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/ChangeOrderLogic.java

@@ -133,6 +133,7 @@ public class ChangeOrderLogic {
         pgOrderOperatorLog.setType(OrderOperatorLogTypeEnum.GAIYUE.getRemark());
         pgOrderOperatorLog.setTypeText(OrderOperatorLogTypeEnum.GAIYUE.getRemark());
         pgOrderOperatorLog.setAppointmentTime(pgOrderBase.getAppointmentTime());
+        pgOrderOperatorLog.setAppointmentEndTime(pgOrderBase.getAppointmentEndTime());
         pgOrderOperatorLog.setContent(pgOrderBase.getChangeRemark());
         orderLogLogic.addLog(pgOrderOperatorLog);
     }

+ 5 - 5
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseExcelLogic.java

@@ -1315,24 +1315,24 @@ public class OrderBaseExcelLogic {
 
             }else {
                 Region province = regionService.lambdaQuery()
-                        .like(Region::getProvinceName, pgOrderBase.getProvince()).last("limit 1").one();
+                        .like(Region::getProvinceName,pgOrderBase.getProvince()).last("limit 1").one();
 
 
                 Region city = regionService.lambdaQuery()
-                        .like(Region::getProvinceName, pgOrderBase.getProvince())
+                        .like(Region::getProvinceName,pgOrderBase.getProvince())
                         .eq(Region::getCityName,pgOrderBase.getCity())
                         .last("limit 1").one();
 
 
                 Region area = regionService.lambdaQuery()
-                        .like(Region::getProvinceName, pgOrderBase.getProvince())
+                        .like(Region::getProvinceName,pgOrderBase.getProvince())
                         .eq(Region::getCityName,pgOrderBase.getCity())
                         .eq(Region::getAreaName,pgOrderBase.getArea())
                         .last("limit 1").one();
 
 
                 Region street = regionService.lambdaQuery()
-                        .like(Region::getProvinceName, pgOrderBase.getProvince())
+                        .like(Region::getProvinceName,pgOrderBase.getProvince())
                         .eq(Region::getCityName,pgOrderBase.getCity())
                         .eq(Region::getAreaName,pgOrderBase.getArea())
                         .eq(Region::getName,pgOrderBase.getStreet())
@@ -1413,7 +1413,7 @@ public class OrderBaseExcelLogic {
 
 
                 pgOrderBase.setProvinceId(province.getProvinceCode());
-                pgOrderBase.setCityId(province.getCityCode());
+                pgOrderBase.setCityId(city.getCityCode());
                 pgOrderBase.setAreaId(area.getAreaCode());
                 pgOrderBase.setStreetId(street.getId());
 

+ 4 - 3
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderBaseLogic.java

@@ -180,9 +180,10 @@ public class OrderBaseLogic {
      *
      * @return
      */
-    public List<Map<String, Object>> countStatus(String orderSmallType, String orderSmallTypeText) {
+    public List<Map<String, Object>> countStatus(String startTime,String endTime,String orderSmallType, String orderSmallTypeText) {
         AdminUserCom adminUser = commonLogic.getAdminUser();
-        List<Map<String, Object>> maps = orderBaseCMapper.countOrderStatus(adminUser.getCompanyWechatId(), adminUser.getAdminWebsitIds(), adminUser.getType(), orderSmallType, orderSmallTypeText);
+        List<Map<String, Object>> maps = orderBaseCMapper.countOrderStatus(adminUser.getCompanyWechatId(), adminUser.getAdminWebsitIds(),
+                adminUser.getType(), orderSmallType, orderSmallTypeText,startTime,endTime);
         return maps;
     }
 
@@ -1241,7 +1242,7 @@ public class OrderBaseLogic {
 
     public Region getRegion(String province, String city, String area, String street) {
         Region one = regionService.lambdaQuery()
-                .like(Region::getProvinceName, province).eq(Region::getCityName, city).eq(Region::getAreaName, area).eq(Region::getName, street).one();
+                .like(Region::getProvinceName,province).eq(Region::getCityName,city).eq(Region::getAreaName,area).eq(Region::getName,street).last("limit 1").one();
         return one;
     }
 

+ 2 - 1
mall-server-api/src/main/java/com/gree/mall/manager/logic/workorder/OrderLogLogic.java

@@ -86,7 +86,8 @@ public class OrderLogLogic {
     public void addLog(PgOrderOperatorLog pgOrderOperatorLog){
         PgOrderBase pgOrderBase = pgOrderBaseService.getById(pgOrderOperatorLog.getOrderBaseId());
         if(pgOrderOperatorLog.getType().equals(OrderOperatorLogTypeEnum.YUYUE.getKey())
-                ||pgOrderOperatorLog.getType().equals(OrderOperatorLogTypeEnum.GAIYUE.getKey())) {
+                ||pgOrderOperatorLog.getType().equals(OrderOperatorLogTypeEnum.GAIYUE.getKey())
+        || pgOrderOperatorLog.getType().equals(OrderOperatorLogTypeEnum.YUYUEY.getKey())) {
             //预约和改约需要记录操作明细,并变更工单预约时间
             pgOrderBaseService.lambdaUpdate()
                     .set(PgOrderBase::getAppointmentTime, pgOrderOperatorLog.getAppointmentTime())

+ 23 - 4
mall-server-api/src/main/resources/mapper/workorder/OrderBaseCMapper.xml

@@ -7,7 +7,7 @@
           count(distinct a.id) 'total',
           order_status 'orderStatus',
           order_status_text 'orderStatusText'
-        from pg_order_base a join pg_order_product b on a.id=b.order_base_id
+        from pg_order_base a
           where 1=1
           <include refid="orderBaseSqlWhere"></include>
         <if test="orderSmallType != null and orderSmallType != ''">
@@ -16,13 +16,17 @@
         <if test="orderSmallTypeText != null and orderSmallTypeText != ''">
             and a.order_small_type_text = #{orderSmallTypeText}
         </if>
+
+        <if test="startTime != null and startTime != ''">
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
         group by order_status_text
     union
         select
             count(distinct a.id)  'total',
             'YCD' as 'orderStatus',
             '异常待处理' as 'orderStatusText'
-        from pg_order_base a join pg_order_product b on a.id=b.order_base_id
+        from pg_order_base a
         where is_exception=1
         <include refid="orderBaseSqlWhere"></include>
         <if test="orderSmallType != null and orderSmallType != ''">
@@ -31,12 +35,15 @@
         <if test="orderSmallTypeText != null and orderSmallTypeText != ''">
             and a.order_small_type_text = #{orderSmallTypeText}
         </if>
+        <if test="startTime != null and startTime != ''">
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
     union
         select
             count(distinct a.id)  'total',
             'DYY' as 'orderStatus',
             '待预约' as 'orderStatusText'
-        from pg_order_base a join pg_order_product b on a.id=b.order_base_id
+        from pg_order_base a
         where appointment_time is null and a.order_status in('DYY','DSHPG','DWDPG','DJD')
         <include refid="orderBaseSqlWhere"></include>
         <if test="orderSmallType != null and orderSmallType != ''">
@@ -45,12 +52,15 @@
         <if test="orderSmallTypeText != null and orderSmallTypeText != ''">
             and a.order_small_type_text = #{orderSmallTypeText}
         </if>
+        <if test="startTime != null and startTime != ''">
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
     union
         select
         count(distinct a.id)  'total',
         'PJSQZ' AS 'orderStatus',
         '配件申请中' AS 'orderStatusText'
-        from pg_order_base a join websit_parts_apply b on a.id = b.order_base_id
+        from pg_order_base a  join websit_parts_apply b on a.id = b.order_base_id
         where b.status = 'ING'
         <include refid="orderBaseSqlWhere"></include>
         <if test="orderSmallType != null and orderSmallType != ''">
@@ -59,6 +69,9 @@
         <if test="orderSmallTypeText != null and orderSmallTypeText != ''">
             and a.order_small_type_text = #{orderSmallTypeText}
         </if>
+        <if test="startTime != null and startTime != ''">
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
     union
         select
         count(distinct a.id)  'total',
@@ -73,6 +86,9 @@
         <if test="orderSmallTypeText != null and orderSmallTypeText != ''">
             and a.order_small_type_text = #{orderSmallTypeText}
         </if>
+        <if test="startTime != null and startTime != ''">
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
     union
         select
         count(distinct a.id)  'total',
@@ -87,6 +103,9 @@
         <if test="orderSmallTypeText != null and orderSmallTypeText != ''">
             and a.order_small_type_text = #{orderSmallTypeText}
         </if>
+        <if test="startTime != null and startTime != ''">
+            and a.create_time between #{startTime} and #{endTime}
+        </if>
     </select>
 
     <select id="countOrderBaseIndex" resultType="com.gree.mall.manager.bean.workorder.OrderBaseCountBean">