Răsfoiți Sursa

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

xucaiqin 2 ani în urmă
părinte
comite
cce877fe6e
44 a modificat fișierele cu 804 adăugiri și 97 ștergeri
  1. 2 1
      sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java
  2. 6 4
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/BannerDistrictEnum.java
  3. 70 4
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java
  4. 1 3
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java
  5. 32 0
      sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/enums/MessageEnum.java
  6. 5 7
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java
  7. 2 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java
  8. 2 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  9. 2 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckReportController.java
  10. 2 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java
  11. 19 6
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java
  12. 10 0
      sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml
  13. 23 9
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java
  14. 24 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/controller/KwoBannerController.java
  15. 5 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/entity/KwoBanner.java
  16. 4 2
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/req/BannerAddReqVo.java
  17. 32 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/req/BannerUpdateStatusReqVo.java
  18. 26 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/res/BannerCategoryResVo.java
  19. 5 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/res/BannerDetailResVo.java
  20. 5 0
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/res/BannerQueryResVo.java
  21. 45 2
      sckw-modules/sckw-operation/src/main/java/com/sckw/operation/service/BannerService.java
  22. 38 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderStatisticsController.java
  23. 11 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/dao/KwoTradeOrderMapper.java
  24. 55 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/WbTOrderExcelStsReqDTO.java
  25. 37 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/WbTOrderExcelStsResDTO.java
  26. 51 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/WbTOrderExcelStsParam.java
  27. 36 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/WbTOrderExcelStsResVO.java
  28. 16 1
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java
  29. 107 0
      sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderStatisticsService.java
  30. 34 7
      sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml
  31. 3 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java
  32. 1 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderStatisticsController.java
  33. 2 2
      sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/WbTOrderDataStsParam.java
  34. 26 27
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderStatisticsService.java
  35. 0 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsDeptController.java
  36. 9 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEnterpriseDao.java
  37. 2 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindManagePojo.java
  38. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindMenuTreePojo.java
  39. 14 7
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  40. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java
  41. 7 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java
  42. 28 3
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml
  43. 2 2
      sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuDao.xml
  44. 1 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsRoleDao.xml

+ 2 - 1
sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java

@@ -448,9 +448,10 @@ public class AuthServiceImpl implements IAuthService {
         loginRes.setRoleId(user.getRoleId());
         if (user.getSystemType().equals(SystemTypeEnum.MANAGE.getCode())) {
             loginRes.setValid(true);
+        } else {
+            loginRes.setValid(!Objects.isNull(enterprise) && enterprise.getValid());
         }
 
-        loginRes.setValid(Objects.isNull(enterprise) ? false : enterprise.getValid());
         return HttpResult.ok(loginRes);
     }
 

+ 6 - 4
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/bannerDistrictEnum.java → sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/BannerDistrictEnum.java

@@ -8,7 +8,7 @@ import lombok.Getter;
  * @date 2023/6/15
  */
 @Getter
-public enum bannerDistrictEnum {
+public enum BannerDistrictEnum {
 
     //首页
     BANNER_ZERO(0, "首页"),
@@ -29,17 +29,19 @@ public enum bannerDistrictEnum {
 
 
 
+    
+
     private final int code;
 
     private final String name;
 
-    bannerDistrictEnum(int code, String name){
+    BannerDistrictEnum(int code, String name){
         this.code = code;
         this.name = name;
     }
 
-    public static bannerDistrictEnum getName(int code){
-        for (bannerDistrictEnum addressDefaultTypeEnum : values()) {
+    public static BannerDistrictEnum getName(int code){
+        for (BannerDistrictEnum addressDefaultTypeEnum : values()) {
             if (addressDefaultTypeEnum.getCode() == code) {
                 return addressDefaultTypeEnum;
             }

+ 70 - 4
sckw-common/sckw-common-core/src/main/java/com/sckw/core/utils/DateUtils.java

@@ -1,11 +1,13 @@
 package com.sckw.core.utils;
 
 import cn.hutool.core.date.DateUtil;
+import com.sckw.core.exception.BusinessException;
 
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.*;
+import java.time.format.DateTimeFormatter;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Objects;
@@ -607,7 +609,7 @@ public class DateUtils extends DateUtil {
     }
 
     /**
-     * @desc: 获取指定时间的周/月开始时间
+     * @desc: 获取指定时间的1日/2周/3/4年开始时间
      * @author: yzc
      * @date: 2023-09-12 10:20
      * @Param dateType:
@@ -617,15 +619,19 @@ public class DateUtils extends DateUtil {
     public static Date getStartTime(Integer dateType, LocalDateTime time) {
         LocalDateTime startTime;
         if (Objects.equals(dateType, 1)) {
+            startTime = LocalDateTime.of(time.toLocalDate(), LocalTime.MIN);
+        } else if (Objects.equals(dateType, 2)) {
             startTime = LocalDateTime.of(time.toLocalDate().minusDays(6), LocalTime.MIN);
-        } else {
+        } else if (Objects.equals(dateType, 3)) {
             startTime = LocalDateTime.of(time.toLocalDate().minusMonths(1).plusDays(1), LocalTime.MIN);
+        } else {
+            startTime = LocalDateTime.of(time.toLocalDate().minusYears(1).plusDays(1), LocalTime.MIN);
         }
         return formatDate(startTime);
     }
 
     /**
-     * @desc: 获取上周/月结束时间
+     * @desc: 获取上1日/2周/3/4年结束时间
      * @author: yzc
      * @date: 2023-09-12 10:21
      * @Param dateType:
@@ -634,13 +640,49 @@ public class DateUtils extends DateUtil {
     public static Date getLastEndTime(Integer dateType) {
         LocalDateTime endTime;
         if (Objects.equals(dateType, 1)) {
+            endTime = LocalDateTime.of(LocalDate.now().minusDays(1), LocalTime.MAX);
+        } else if (Objects.equals(dateType, 2)) {
             endTime = LocalDateTime.of(LocalDate.now().minusDays(7), LocalTime.MAX);
-        } else {
+        } else if (Objects.equals(dateType, 3)) {
             endTime = LocalDateTime.of(LocalDate.now().minusMonths(1), LocalTime.MAX);
+        } else {
+            endTime = LocalDateTime.of(LocalDate.now().minusYears(1), LocalTime.MAX);
         }
         return formatDate(endTime);
     }
 
+    /**
+     * @desc: 获取当前时间倒推一年开始时间
+     * @author: yzc
+     * @date: 2023-09-13 10:29
+     * @return: java.util.Date
+     */
+    public static Date getYearStartTime() {
+        //当前时间减去11个月
+        LocalDate localDate = LocalDate.now().minusMonths(11);
+        //获取localDate当月第一天
+        LocalDate date = LocalDate.of(localDate.getYear(), localDate.getMonth(), 1);
+        return formatDate(date.atStartOfDay());
+    }
+
+    /**
+     * @desc: 获取日期转换格式
+     * @author: yzc
+     * @date: 2023-09-13 9:32
+     * @Param dateType:  1日/3月/4年
+     * @return: java.lang.String
+     */
+    public static String getDateFormat(Integer dateType) {
+        String dateFormat;
+        switch (dateType) {
+            case 1 -> dateFormat = "%Y-%m-%d";
+            case 3 -> dateFormat = "%Y-%m";
+            case 4 -> dateFormat = "%Y";
+            default -> throw new BusinessException("Invalid dateType");
+        }
+        return dateFormat;
+    }
+
     /**
      * @desc: LocalDateTime转换为Date
      * @author: yzc
@@ -651,4 +693,28 @@ public class DateUtils extends DateUtil {
     public static Date formatDate(LocalDateTime time) {
         return Date.from(time.atZone(ZoneId.systemDefault()).toInstant());
     }
+
+    /**
+     * @desc: date转换为LocalDate
+     * @author: yzc
+     * @date: 2023-09-13 15:14
+     * @Param date:
+     * @return: java.time.LocalDate
+     */
+    public static LocalDate dateToLocalDate(Date date) {
+        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+    }
+
+    /**
+     * @desc: localDate转换为String
+     * @author: yzc
+     * @date: 2023-09-13 15:21
+     * @Param date:
+     * @Param pattern:
+     * @return: java.lang.String
+     */
+    public static String localDateToString(LocalDate date, String pattern) {
+        DateTimeFormatter fmt = DateTimeFormatter.ofPattern(pattern);
+        return date.format(fmt);
+    }
 }

+ 1 - 3
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/constant/HttpStatus.java

@@ -183,11 +183,9 @@ public class HttpStatus {
     public static final String MSG_029 = "合同编号超长!";
     public static final String MSG_030 = "合同名称超长!";
     public static final String MSG_031 = "您与所选企业存在未完结销售订单,当前无法删除!";
-
     public static final String MSG_032 = "您与所选企业存在未完结托运承运订单,当前无法删除!";
-
     public static final String MSG_033 = "当前企业资质在审核中,无法删除!";
-
     public static final String MSG_034 = "您与所选企业存在未完结对账单,当前无法删除!";
+    public static final String MSG_035 = "地址信息已存在";
 
 }

+ 32 - 0
sckw-common/sckw-common-stream/src/main/java/com/sckw/stream/enums/MessageEnum.java

@@ -294,8 +294,40 @@ public enum MessageEnum {
             "【${company}】发起了对贵司的付款操作,请及时联系付款方进行确认;结算单号:${number}", "terminal,ios,android",""),
     SETTLEMENT_START_SHIPPER("BUSINESS", "SETTLEMENT_START_SHIPPER", "发起托运付款",
             "贵司已发起了对【${company}】的付款操作,请及时确认并联系收款单位;结算单号:${number}", "terminal,ios,android",""),
+
+    /**
+     * 合同-销售合同、托运合同
+     */
+    SAELCONTRACT_SUBMIT_DATA("BUSINESS", "SAELCONTRACT_SUBMIT_DATA", "发起补充合同签约",
+            "贵司新建了补充合同并发起与【${entName}】的合同签约流程,请留意电话短信;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+
+    SAELCONTRACT_COMPLETE_CONTRACT("BUSINESS", "SAELCONTRACT_COMPLETE_CONTRACT", "完结合同",
+            "贵司已完结了与【${entName}】间的签约合同,请及时通知合作单位;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+
+    SAELCONTRACT_SEND_CONTRACT("BUSINESS", "SAELCONTRACT_SEND_CONTRACT", "发起合同签约",
+            "贵司新建了合同并发起与【${entName}】的合同签约流程,请留意电话短信;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+    SAELCONTRACT_SUCCESS_CONTRACT("BUSINESS", "SAELCONTRACT_SUCCESS_CONTRACT", "合同签约成功",
+            "贵司已成功与【${entName}】签约合同;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+    /**
+     * 合同-采购合同、承运合同
+     */
+    BUYCONTRACT_PROCESS_SEND("BUSINESS", "SAELCONTRACT_SUBMIT_DATA", "合同签约流程已发起",
+            "【${entName}】新建合同并发起签约流程,请留意电话短信;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+    BUYCONTRACT_SUPPLYPROCESS_SEND("BUSINESS", "BUYCONTRACT_SUPPLYPROCESS_SEND", "补充合同签约流程已发起",
+            "【${entName}】新建补充合同并发起签约流程,请留意电话短信;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+    BUYCONTRACT_SUCCESS_CONTRACT("BUSINESS", "BUYCONTRACT_SUCCESS_CONTRACT", "合同签约成功",
+            "贵司已成功与【${entName}】签约合同;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+    BUYCONTRACT_COMPLETE_CONTRACT("BUSINESS", "BUYCONTRACT_COMPLETE_CONTRACT", "合同被完结",
+            "【${entName}】完结了与贵司签约的合同,请及时联系确认;;合同编号:${contract_no},合同名称:${name}", "terminal,ios,android", ""),
+
+
+
     ;
 
+
+
+
+
     /**
      * 消息分类:BUSINESS业务消息,SYSTEM系统消息
      */

+ 5 - 7
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfDriverController.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.StringUtils;
@@ -87,7 +88,6 @@ public class KwfDriverController {
      **/
     @PostMapping("/statistics")
     public HttpResult statistics(@RequestBody Map<String, Object> params) throws SystemException {
-        params.put("entId", LoginUserHolder.getEntId());
         Map countMaps = driverService.statistics(params);
         return HttpResult.ok(countMaps);
     }
@@ -100,7 +100,6 @@ public class KwfDriverController {
      **/
     @PostMapping("/select")
     public HttpResult findPage(@RequestBody Map<String, Object> params) throws SystemException {
-        params.put("entId", LoginUserHolder.getEntId());
         // 设置分页参数
         PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
         List<KwfDriverVo> list = driverService.findPage(params);
@@ -127,17 +126,16 @@ public class KwfDriverController {
      * @date 2023/07/11
      **/
     @PostMapping("/export")
-    public HttpResult export(@RequestBody Map<String, Object> params) {
-        params.put("entId", LoginUserHolder.getEntId());
+    public void export(@RequestBody Map<String, Object> params) {
         /**分页数据**/
         List<KwfDriverVo> drivers = driverService.findPage(params);
 
         if (!CollectionUtils.isEmpty(drivers)) {
             HttpServletResponse response = RequestHolder.getResponse();
-            ExcelUtil.download(response, KwfDriverVo.class, drivers);
-            return null;
+            ExcelUtil.downData(response, KwfDriverVo.class, drivers);
+            //return null;
         }
-        return HttpResult.error("无数据!");
+        //return HttpResult.error("无数据!");
     }
 
     /**

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfFleetController.java

@@ -3,6 +3,7 @@ package com.sckw.fleet.controller;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -85,7 +86,7 @@ public class KwfFleetController {
 
         if (!CollectionUtils.isEmpty(fleets)) {
             HttpServletResponse response = RequestHolder.getResponse();
-            ExcelUtil.download(response, KwfFleetVo.class, fleets);
+            ExcelUtil.downData(response, KwfFleetVo.class, fleets);
             return null;
         }
         return HttpResult.error("无数据!");

+ 2 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
@@ -98,7 +99,6 @@ public class KwfTruckController {
      **/
     @PostMapping("/statistics")
     public HttpResult statistics(@RequestBody Map<String, Object> params) throws SystemException {
-        params.put("entId", LoginUserHolder.getEntId());
         Map countMaps = truckService.statistics(params);
         return HttpResult.ok(countMaps);
     }
@@ -111,7 +111,6 @@ public class KwfTruckController {
      **/
     @PostMapping("/select")
     public HttpResult findPage(@RequestBody Map<String, Object> params) throws SystemException {
-        params.put("entId", LoginUserHolder.getEntId());
         // 设置分页参数
         PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
         List<KwfTruckVo> list = truckService.findPage(params);
@@ -139,13 +138,12 @@ public class KwfTruckController {
      **/
     @PostMapping("/export")
     public HttpResult export(@RequestBody Map<String, Object> params) {
-        params.put("entId", LoginUserHolder.getEntId());
         /**查询数据**/
         List<KwfTruckVo> trucks = truckService.findPage(params);
 
         if (!CollectionUtils.isEmpty(trucks)) {
             HttpServletResponse response = RequestHolder.getResponse();
-            ExcelUtil.download(response, KwfTruckVo.class, trucks);
+            ExcelUtil.downData(response, KwfTruckVo.class, trucks);
             return null;
         }
         return HttpResult.error("无数据!");

+ 2 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckReportController.java

@@ -3,6 +3,7 @@ package com.sckw.fleet.controller;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -78,7 +79,7 @@ public class KwfTruckReportController {
 
         if (!CollectionUtils.isEmpty(trucks)) {
             HttpServletResponse response = RequestHolder.getResponse();
-            ExcelUtil.download(response, KwfTruckReportVo.class, trucks);
+            ExcelUtil.downData(response, KwfTruckReportVo.class, trucks);
             return null;
         }
         return HttpResult.error("无数据!");

+ 2 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -197,6 +197,7 @@ public class KwfDriverService {
             List<KwfTableTopCount> counts = driverDao.statisticsAll(params);
             return counts;
         } else {
+            params.put("entId", LoginUserHolder.getEntId());
             List<KwfTableTopCount> counts = driverDao.statistics(params);
             return counts;
         }
@@ -258,6 +259,7 @@ public class KwfDriverService {
             List<KwfDriverVo> drivers = driverDao.findPageAll(params);
             return drivers;
         } else {
+            params.put("entId", LoginUserHolder.getEntId());
             List<KwfDriverVo> drivers = driverDao.findPage(params);
             return drivers;
         }

+ 19 - 6
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -31,6 +31,7 @@ import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.transport.api.dubbo.TransportDubboService;
 import com.sckw.transport.api.model.dto.RWaybillOrderDto;
 import com.sckw.transport.api.model.vo.RWaybillOrderVo;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -47,6 +48,7 @@ import java.util.stream.Collectors;
  * @desc 车辆
  * @date 2023/7/6 0006
  */
+@Slf4j
 @Service
 @SuppressWarnings("all")
 @Transactional(rollbackFor = Exception.class)
@@ -126,7 +128,7 @@ public class KwfTruckService {
      **/
     public Map statistics(Map<String, Object> params) {
         /**统计数据**/
-        List<KwfTableTopCount> counts = truckDao.statistics(params);
+        List<KwfTableTopCount> counts = statisticsHandle(params);
         long tatol = 0;
         for (KwfTableTopCount topCount:counts) {
             tatol += topCount.getTotal();
@@ -174,6 +176,7 @@ public class KwfTruckService {
             List<KwfTableTopCount> counts = truckDao.statisticsAll(params);
             return counts;
         } else {
+            params.put("entId", LoginUserHolder.getEntId());
             List<KwfTableTopCount> counts = truckDao.statistics(params);
             return counts;
         }
@@ -187,7 +190,7 @@ public class KwfTruckService {
      **/
     public List<KwfTruckVo> findPage(Map<String, Object> params) {
         /**查询分页数据**/
-        List<KwfTruckVo> trucks = truckDao.findPage(params);
+        List<KwfTruckVo> trucks = findPageHandle(params);
         if (CollectionUtils.isEmpty(trucks)) {
             return trucks;
         }
@@ -246,6 +249,7 @@ public class KwfTruckService {
             List<KwfTruckVo> counts = truckDao.findPageAll(params);
             return counts;
         } else {
+            params.put("entId", LoginUserHolder.getEntId());
             List<KwfTruckVo> counts = truckDao.findPage(params);
             return counts;
         }
@@ -636,6 +640,7 @@ public class KwfTruckService {
      * @date 2023/9/5
      **/
     public List<KwfTruckMonitorVo> findTruck(Map params){
+        long begTime = System.currentTimeMillis();
         /**车辆查询**/
         Map queryParams = new HashMap<>(Global.NUMERICAL_SIXTEEN){{ put("truckNo", params.get("truckNo"));}};
         List<KwfTruckMonitorVo> truckList = findTruckMonitor(queryParams);
@@ -650,12 +655,15 @@ public class KwfTruckService {
             entIds.add(truck.getEntId());
             truckNos.add(truck.getTruckNo());
         }
-
+        long begTime1 = System.currentTimeMillis();
+        log.info("获取数据="+(begTime1 - begTime));
         //企业数据集
         entIds = entIds.stream().distinct().collect(Collectors.toList());
         Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
         //车辆定位数据集
         Map<String, KwfTruckGpsVo> truckGpsMap = findTruckLocateHandle(truckNos);
+        long begTime2 = System.currentTimeMillis();
+        log.info("获取GPS="+(begTime2 - begTime1));
 
         /**数据组装**/
         for (KwfTruckMonitorVo truck:truckList) {
@@ -664,7 +672,8 @@ public class KwfTruckService {
             truck.setFirmName(ent != null ? ent.getFirmName() : null);
             truck.setRunStatus(truckGps != null ? truckGps.getRunStatus() : null);
         }
-
+        long begTime3 = System.currentTimeMillis();
+        log.info("数据组装="+(begTime3 - begTime2));
         return truckList;
     }
 
@@ -903,7 +912,7 @@ public class KwfTruckService {
      **/
     public Map<String, KwfTruckGpsVo> findTruckLocateHandle(List<String> truckNos){
         /**车牌号超过100则分批次请求数据**/
-        int maxLimit = 100;
+        int maxLimit = 500;
         List<List<String>> truckNoList = new ArrayList<List<String>>();
         List<String> findTruckSon = null;
         for (int i = 0; i < truckNos.size(); i++) {
@@ -962,7 +971,11 @@ public class KwfTruckService {
             Map<String, Object> params = new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                 put("vehicleNoList", truckNos);
             }};
+
+            long begTime = System.currentTimeMillis();
             String httpResult = HttpClientUtil.post(queryLocate, JSON.toJSONString(params));
+            System.out.println(httpResult);
+            long entTime = System.currentTimeMillis();
             if (StringUtils.isNotBlank(httpResult)) {
                 JSONObject result = JSONObject.parseObject(httpResult);
                 if (result.getInteger("code") != null && result.getInteger("code") != 200) {
@@ -971,7 +984,7 @@ public class KwfTruckService {
 
                 }
                 JSONArray trucks = result.getJSONArray("data");
-                System.out.println((trucks != null ? trucks.size() : 0) + "==="+ truckNos.size() + "===" + truckNos);
+                log.info("车牌号数量="+ truckNos.size() + " GPS数量=" + (trucks != null ? trucks.size() : 0) + " 响应时间="+(entTime - begTime));
                 for (int i=0; trucks != null && i < trucks.size(); i++) {
                     JSONObject truck = trucks.getJSONObject(i);
                     JSONObject locateInfo = truck.getJSONObject("locateInfo");

+ 10 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml

@@ -78,6 +78,11 @@
         <if test="endTime != null and endTime != '' " >
             and DATE( dr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
         </if>
+        <if test="noReport != null and noReport != ''">
+            and dr.id not in (
+            select driver_id from kwf_truck_report where del_flag = 0 and ent_id = #{entId, jdbcType=VARCHAR}
+            )
+        </if>
         <if test="keywords != null and keywords != ''">
             and (
             dr.name like concat('%',#{keywords},'%')
@@ -189,6 +194,11 @@
         <if test="endTime != null and endTime != '' " >
             and DATE( dr.create_time ) <![CDATA[ <= ]]> #{endTime,jdbcType=TIMESTAMP}
         </if>
+        <if test="noReport != null and noReport != ''">
+            and dr.id not in (
+            select driver_id from kwf_truck_report where del_flag = 0 and ent_id = #{entId, jdbcType=VARCHAR}
+            )
+        </if>
         <choose>
             <when test="ids != null and ids != '' ">
                 and dr.id in

+ 23 - 9
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java

@@ -270,6 +270,8 @@ public class KwmAddressService {
             throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.ADDRESS_NOT_EXISTS);
         }
 
+        checkAddressRepeat(reqVo.getName(), reqVo.getDetailAddress(), kwmAddress.getId());
+
         BeanUtils.copyProperties(reqVo, kwmAddress);
         if (kwmAddressMapper.updateById(kwmAddress) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
@@ -286,15 +288,7 @@ public class KwmAddressService {
      */
     @Transactional(rollbackFor = {})
     public void add(AddressAddReqVo reqVo) {
-        LambdaQueryWrapper<KwmAddress> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwmAddress::getName, reqVo.getName()).
-                eq(KwmAddress::getDelFlag, Global.NO).
-                eq(KwmAddress::getStatus, Global.NO).
-                eq(KwmAddress::getEntId, LoginUserHolder.getEntId());
-        if (kwmAddressMapper.selectCount(wrapper).compareTo((long) Global.NUMERICAL_ZERO) > 0) {
-            throw new SystemException(HttpStatus.PARAMETERS_MISSING_CODE, HttpStatus.ADDRESS_EXISTS);
-        }
-
+        checkAddressRepeat(reqVo.getName(), reqVo.getDetailAddress(), null);
         KwmAddress kwmAddress = new KwmAddress();
         BeanUtils.copyProperties(reqVo, kwmAddress);
         Long userId = LoginUserHolder.getUserId();
@@ -313,6 +307,26 @@ public class KwmAddressService {
         }
     }
 
+    private void checkAddressRepeat(String name, String detailAddress, Long id) {
+        LambdaQueryWrapper<KwmAddress> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwmAddress::getDelFlag, Global.NO).
+                eq(KwmAddress::getStatus, Global.NO).
+                eq(KwmAddress::getEntId, LoginUserHolder.getEntId()).and(
+                        wp -> wp.eq(KwmAddress::getName, name).or().eq(KwmAddress::getDetailAddress, detailAddress)
+                );
+        List<KwmAddress> kwmAddressList = kwmAddressMapper.selectList(wrapper);
+        if (CollectionUtils.isNotEmpty(kwmAddressList) && Objects.isNull(id)) {
+            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_035);
+        }
+
+        if (CollectionUtils.isNotEmpty(kwmAddressList) && Objects.nonNull(id)) {
+            List<KwmAddress> kwmAddressList1 = kwmAddressList.stream().filter(item -> !item.getId().equals(id)).toList();
+            if (CollectionUtils.isNotEmpty(kwmAddressList1)) {
+                throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_035);
+            }
+        }
+    }
+
 
     /**
      * @param ids 主键

+ 24 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/controller/KwoBannerController.java

@@ -86,6 +86,30 @@ public class KwoBannerController {
     public HttpResult detail(@RequestBody IdsReqVo reqVo) throws SystemException {
         return HttpResult.ok(bannerService.detailServer(reqVo.getId()));
     }
+    /**
+     * @return HttpResult
+     * @desc: 获取分类
+     * @author: sky
+     * @date: 2023/9/12
+     */
+    @PostMapping("/getCategory")
+    public HttpResult getCategory() throws SystemException {
+        return HttpResult.ok(bannerService.getCategory());
+    }
+
+    /**
+     * @param reqVo 上架下架
+     * @return HttpResult
+     * @desc: 上架下架
+     * @author: sky
+     * @date: 2023/8/28
+     */
+    @PostMapping("/updateStatus")
+    public HttpResult updateStatus(@Valid @RequestBody BannerUpdateStatusReqVo reqVo) throws SystemException {
+        bannerService.updateStatusServer(reqVo);
+        return HttpResult.ok(HttpStatus.MSG_005);
+    }
+
 
 
 

+ 5 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/entity/KwoBanner.java

@@ -20,6 +20,11 @@ public class KwoBanner implements Serializable {
     @TableId
     private Long id;
 
+    /**
+     * 名称
+     */
+    private String name;
+
     /**
      * 展示图片
      */

+ 4 - 2
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/req/BannerAddReqVo.java

@@ -24,6 +24,10 @@ public class BannerAddReqVo extends PageRequest implements Serializable {
     private static final long serialVersionUID = 5677297006062954377L;
 
     private Long id;
+
+    @NotBlank(message = "名称不能为空")
+    @Size(max = 40, message = "名称内容超长")
+    private String name;
     /**
      * 展示图片
      */
@@ -33,7 +37,6 @@ public class BannerAddReqVo extends PageRequest implements Serializable {
     /**
      * 跳转地址
      */
-    @NotBlank(message = "跳转地址不能为空")
     @Size(max = 100, message = "跳转地址超长")
     private String jumpUrl;
 
@@ -56,7 +59,6 @@ public class BannerAddReqVo extends PageRequest implements Serializable {
      */
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @NotNull(message = "结束时间不能为空")
     private Date endTime;
 
     /**

+ 32 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/req/BannerUpdateStatusReqVo.java

@@ -0,0 +1,32 @@
+package com.sckw.operation.model.vo.req;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.core.model.page.PageRequest;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author sky
+ * @desc 上架下架
+ * @date 2023/7/10
+ */
+@Data
+public class BannerUpdateStatusReqVo extends PageRequest implements Serializable {
+    private Long id;
+
+
+    /**
+     * 状态(0 草稿 1已发布 2取消发布)
+     */
+    @NotNull(message = "状态不能为空")
+    private Integer status;
+
+
+}

+ 26 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/res/BannerCategoryResVo.java

@@ -0,0 +1,26 @@
+package com.sckw.operation.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author sky
+ * @desc 查询返参
+ * @date 2023/7/12
+ */
+@Data
+public class BannerCategoryResVo implements Serializable {
+    /**
+     * 主键
+     */
+    private Integer code;
+
+    private String name;
+
+}

+ 5 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/res/BannerDetailResVo.java

@@ -25,6 +25,11 @@ public class BannerDetailResVo extends PageRequest implements Serializable {
      */
     private Long id;
 
+    /**
+     * 名称
+     */
+    private String name;
+
     /**
      * 展示图片
      */

+ 5 - 0
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/model/vo/res/BannerQueryResVo.java

@@ -24,6 +24,11 @@ public class BannerQueryResVo implements Serializable {
     @JsonSerialize(using = LongToStringUtils.class)
     private Long id;
 
+    /**
+     * 名字
+     */
+    private String name;
+
     /**
      * 展示图片
      */

+ 45 - 2
sckw-modules/sckw-operation/src/main/java/com/sckw/operation/service/BannerService.java

@@ -10,6 +10,7 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.AddressDefaultTypeEnum;
+import com.sckw.core.model.enums.ContractStatusEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
@@ -19,6 +20,7 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.operation.model.vo.req.BannerAddReqVo;
+import com.sckw.operation.model.vo.req.BannerUpdateStatusReqVo;
 import com.sckw.operation.model.vo.res.*;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import com.sckw.operation.dao.KwoBannerMapper;
@@ -28,7 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import com.sckw.operation.model.entity.KwoBanner;
-import com.sckw.core.model.enums.bannerDistrictEnum;
+import com.sckw.core.model.enums.BannerDistrictEnum;
 
 /**
  * @author sky
@@ -119,7 +121,7 @@ public class BannerService {
             }
 
             if (Objects.nonNull(item.getDistrict())) {
-                bannerQueryResVo.setDistrictName(bannerDistrictEnum.getName(item.getDistrict()).getName());
+                bannerQueryResVo.setDistrictName(BannerDistrictEnum.getName(item.getDistrict()).getName());
             }
 
             list.add(bannerQueryResVo);
@@ -218,4 +220,45 @@ public class BannerService {
         return bannerDetailResVo;
     }
 
+    /**
+     * @return HttpResult
+     * @desc: 获取分类
+     * @author: sky
+     * @date: 2023/7/12
+     */
+    public List<BannerCategoryResVo> getCategory() {
+        BannerDistrictEnum[] values =  BannerDistrictEnum.values();
+        List<BannerCategoryResVo> list = new ArrayList<>();
+        for (BannerDistrictEnum bannerDistrictEnum : values) {
+            BannerCategoryResVo bannerCategoryResVo = new BannerCategoryResVo();
+            bannerCategoryResVo.setCode(bannerDistrictEnum.getCode());
+            bannerCategoryResVo.setName(bannerDistrictEnum.getName());
+            list.add(bannerCategoryResVo);
+        }
+        return list;
+    }
+
+    /**
+     * @param reqVo 上架下架入参
+     * @desc: 更新banner
+     * @author: sky
+     * @date: 2023/8/29
+     */
+    @Transactional(rollbackFor = {})
+    public void updateStatusServer(BannerUpdateStatusReqVo reqVo) {
+        KwoBanner kwobanner = kwoBannerMapper.selectById(reqVo.getId());
+        if (Objects.isNull(kwobanner)) {
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.BANNER_NOT_EXISTS);
+        }
+        //BeanUtils.copyProperties(reqVo, kwobanner);
+        Date date = new Date();
+        Long userId = LoginUserHolder.getUserId();
+        kwobanner.setUpdateTime(date);
+        kwobanner.setUpdateBy(userId);
+        kwobanner.setStatus(reqVo.getStatus());
+        if (kwoBannerMapper.updateById(kwobanner) <= 0) {
+            throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+        }
+    }
+
 }

+ 38 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderStatisticsController.java

@@ -0,0 +1,38 @@
+package com.sckw.order.controller;
+
+import com.sckw.core.web.response.HttpResult;
+import com.sckw.order.model.vo.req.WbTOrderExcelStsParam;
+import com.sckw.order.serivce.KwoTradeOrderStatisticsService;
+import lombok.AllArgsConstructor;
+import org.springframework.http.MediaType;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @desc: 订单统计相关接口
+ * @author: yzc
+ * @date: 2023-09-13 8:34
+ */
+@AllArgsConstructor
+@RestController
+@RequestMapping("/kwoTradeOrderStatistics")
+public class KwoTradeOrderStatisticsController {
+
+    private final KwoTradeOrderStatisticsService kwoTradeOrderStatisticsService;
+
+
+    /**
+     * @desc: 工作台贸易订单表格统计
+     * @author: yzc
+     * @date: 2023-09-12 16:38
+     * @Param params:
+     * @return: com.sckw.core.web.response.HttpResult
+     */
+    @PostMapping(value = "/workbenchExcel", produces = MediaType.APPLICATION_JSON_VALUE)
+    public HttpResult workbenchExcel(@RequestBody @Validated WbTOrderExcelStsParam params) {
+        return HttpResult.ok(kwoTradeOrderStatisticsService.workbenchExcel(params));
+    }
+}

+ 11 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/dao/KwoTradeOrderMapper.java

@@ -3,6 +3,8 @@ package com.sckw.order.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
 import com.sckw.order.model.KwoTradeOrder;
+import com.sckw.order.model.dto.WbTOrderExcelStsReqDTO;
+import com.sckw.order.model.dto.WbTOrderExcelStsResDTO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -34,4 +36,13 @@ public interface KwoTradeOrderMapper extends BaseMapper<KwoTradeOrder> {
      * @return: java.util.List<com.sckw.order.api.model.TradeOrderCountStatisticsDTO>
      */
     List<TradeOrderCountStatisticsDTO> getOrderNumByTopEntId(@Param("topEntId") Long topEntId);
+
+    /**
+     * @desc: 工作台贸易订单表格统计
+     * @author: yzc
+     * @date: 2023-09-13 15:46
+     * @Param item:
+     * @return: java.util.List<com.sckw.order.model.dto.WbTOrderExcelStsResDTO>
+     */
+    List<WbTOrderExcelStsResDTO> workbenchExcel(@Param("item") WbTOrderExcelStsReqDTO item);
 }

+ 55 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/WbTOrderExcelStsReqDTO.java

@@ -0,0 +1,55 @@
+package com.sckw.order.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @desc: 工作台表格统计请求dto
+ * @author: yzc
+ * @date: 2023-09-12 17:32
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class WbTOrderExcelStsReqDTO implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 443735882514444569L;
+
+    /**
+     * 分组日期格式函数
+     */
+    private String dateFormat;
+
+    /**
+     * 订单类型(1采购订单、2销售订单)
+     */
+    private String unitType;
+
+    /**
+     * 一级企业id
+     */
+    private Long topEntId;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 统计因子1
+     */
+    private Integer stsFactorsOne;
+
+    /**
+     * 统计因子2
+     */
+    private Integer stsFactorsTwo;
+
+}

+ 37 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/dto/WbTOrderExcelStsResDTO.java

@@ -0,0 +1,37 @@
+package com.sckw.order.model.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @desc: 工作台表格统计响应dto
+ * @author: yzc
+ * @date: 2023-09-12 17:32
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class WbTOrderExcelStsResDTO implements Serializable {
+    public WbTOrderExcelStsResDTO() {
+        this.stsFactorsOneValue = BigDecimal.ZERO;
+        this.stsFactorsTwoValue = BigDecimal.ZERO;
+    }
+
+
+    @Serial
+    private static final long serialVersionUID = 2911684774740265571L;
+
+    private String formatDate;
+
+    private BigDecimal stsFactorsOneValue;
+
+    private BigDecimal stsFactorsTwoValue;
+
+}

+ 51 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/req/WbTOrderExcelStsParam.java

@@ -0,0 +1,51 @@
+package com.sckw.order.model.vo.req;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.Range;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @desc: 工作台贸易订单数据统计请求参数
+ * @author: yzc
+ * @date: 2023-09-11 14:42
+ */
+@Getter
+@Setter
+@ToString
+public class WbTOrderExcelStsParam implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 4503103839537525731L;
+
+
+    /**
+     * 订单类型(1采购订单、2销售订单)
+     */
+    @Range(min = 1, max = 2, message = "非法订单类型")
+    @NotNull(message = "订单类型不能为空")
+    private Integer orderType;
+    /**
+     * 统计因子1
+     */
+    @Range(min = 1, max = 2, message = "非法统计因子")
+    @NotNull(message = "统计因子不能为空")
+    private Integer stsFactorsOne;
+
+    /**
+     * 统计因子2
+     */
+    @Range(min = 1, max = 2, message = "非法统计因子")
+    @NotNull(message = "统计因子不能为空")
+    private Integer stsFactorsTwo;
+    /**
+     * 统计日期类型(1日、3月)
+     */
+    @Range(min = 1, max = 3, message = "非法日期类型")
+    @NotNull(message = "日期类型不能为空")
+    private Integer dateType;
+
+}

+ 36 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/vo/res/WbTOrderExcelStsResVO.java

@@ -0,0 +1,36 @@
+package com.sckw.order.model.vo.res;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @desc: 工作台表格统计响应vo
+ * @author: yzc
+ * @date: 2023-09-13 14:55
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class WbTOrderExcelStsResVO implements Serializable {
+    public WbTOrderExcelStsResVO() {
+        this.stsFactorsOneValue = BigDecimal.ZERO;
+        this.stsFactorsTwoValue = BigDecimal.ZERO;
+    }
+
+    @Serial
+    private static final long serialVersionUID = 5199453430808720945L;
+
+    private String formatDate;
+
+    private BigDecimal stsFactorsOneValue;
+
+    private BigDecimal stsFactorsTwoValue;
+
+}

+ 16 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -25,6 +25,8 @@ import com.sckw.order.api.model.TradeOrderCountStatisticsDTO;
 import com.sckw.order.dao.KwoTradeOrderMapper;
 import com.sckw.order.model.*;
 import com.sckw.order.model.dto.OrderCheckDTO;
+import com.sckw.order.model.dto.WbTOrderExcelStsReqDTO;
+import com.sckw.order.model.dto.WbTOrderExcelStsResDTO;
 import com.sckw.order.model.vo.req.*;
 import com.sckw.order.model.vo.res.*;
 import com.sckw.payment.api.dubbo.PayCenterDubboService;
@@ -885,7 +887,7 @@ public class KwoTradeOrderService {
         }
         kwoTradeOrderMapper.updateById(order);
         //更新商品价格
-        kwoTradeOrderGoodsService.updateUnitPrice(param.getId(),param.getUnitPrice());
+        kwoTradeOrderGoodsService.updateUnitPrice(param.getId(), param.getUnitPrice());
         //保存合同信息
         KwoTradeOrderContract tradeOrderContract = BeanUtils.copyProperties(contractInfo, KwoTradeOrderContract.class);
         tradeOrderContract.setTOrderId(order.getId()).setTOrderNo(order.getTOrderNo());
@@ -1227,4 +1229,17 @@ public class KwoTradeOrderService {
     public List<TradeOrderCountStatisticsDTO> getOrderNumByTopEntId(Long topEntId) {
         return kwoTradeOrderMapper.getOrderNumByTopEntId(topEntId);
     }
+
+    /**
+     * @desc: 工作台贸易订单表格统计
+     * @author: yzc
+     * @date: 2023-09-13 15:46
+     * @Param reqDTO:
+     * @return: java.util.List<com.sckw.order.model.dto.WbTOrderExcelStsResDTO>
+     */
+    public List<WbTOrderExcelStsResDTO> workbenchExcel(WbTOrderExcelStsReqDTO reqDTO) {
+        List<WbTOrderExcelStsResDTO> list = kwoTradeOrderMapper.workbenchExcel(reqDTO);
+        return CollectionUtils.emptyIfNull(list);
+    }
+
 }

+ 107 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderStatisticsService.java

@@ -0,0 +1,107 @@
+package com.sckw.order.serivce;
+
+import com.sckw.core.exception.BusinessException;
+import com.sckw.core.utils.DateUtils;
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.order.model.dto.WbTOrderExcelStsReqDTO;
+import com.sckw.order.model.dto.WbTOrderExcelStsResDTO;
+import com.sckw.order.model.vo.req.WbTOrderExcelStsParam;
+import com.sckw.order.model.vo.res.WbTOrderExcelStsResVO;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @desc: 贸易订单统计service
+ * @author: yzc
+ * @date: 2023-09-13 8:36
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class KwoTradeOrderStatisticsService {
+
+    private final KwoTradeOrderService kwoTradeOrderService;
+
+    /**
+     * @desc: 工作台贸易订单表格统计
+     * @author: yzc
+     * @date: 2023-09-13 15:46
+     * @Param params:
+     * @return: java.util.List<com.sckw.order.model.vo.res.WbTOrderExcelStsResVO>
+     */
+    public List<WbTOrderExcelStsResVO> workbenchExcel(WbTOrderExcelStsParam params) {
+        Integer dateType = params.getDateType();
+        Date startTime;
+        if (Objects.equals(1, dateType)) {
+            startTime = DateUtils.getStartTime(3, LocalDateTime.now());
+        } else if (Objects.equals(3, dateType)) {
+            startTime = DateUtils.getYearStartTime();
+        } else {
+            throw new BusinessException("Invalid date type");
+        }
+        List<WbTOrderExcelStsResVO> res = buildFormatDate(dateType, startTime);
+        WbTOrderExcelStsReqDTO reqDTO = new WbTOrderExcelStsReqDTO();
+        reqDTO.setUnitType(String.valueOf(params.getOrderType()))
+                .setDateFormat(DateUtils.getDateFormat(dateType))
+                .setStartTime(startTime)
+                .setTopEntId(LoginUserHolder.getEntId())
+                .setStsFactorsOne(params.getStsFactorsOne())
+                .setStsFactorsTwo(params.getStsFactorsTwo());
+        Map<String, WbTOrderExcelStsResDTO> map = kwoTradeOrderService.workbenchExcel(reqDTO).stream()
+                .collect(Collectors.toMap(WbTOrderExcelStsResDTO::getFormatDate, e -> e, (k1, k2) -> k1));
+        res.forEach(e->{
+            WbTOrderExcelStsResDTO dto = map.get(e.getFormatDate());
+            if (Objects.nonNull(dto)) {
+                e.setStsFactorsOneValue(dto.getStsFactorsOneValue());
+                e.setStsFactorsTwoValue(dto.getStsFactorsTwoValue());
+            }
+        });
+        return res;
+    }
+
+    /**
+     * @desc: 构建时间转换格式
+     * @author: yzc
+     * @date: 2023-09-13 15:45
+     * @Param dateType:
+     * @Param startTime:
+     * @return: java.util.List<com.sckw.order.model.vo.res.WbTOrderExcelStsResVO>
+     */
+    private List<WbTOrderExcelStsResVO> buildFormatDate(Integer dateType, Date startTime) {
+        LocalDate start = DateUtils.dateToLocalDate(startTime);
+        LocalDate end = LocalDate.now();
+        List<WbTOrderExcelStsResVO> res = new ArrayList<>();
+        if (dateType == 1) {
+            while (start.isBefore(end)) {
+                WbTOrderExcelStsResVO vo = new WbTOrderExcelStsResVO();
+                vo.setFormatDate(start.toString());
+                start = start.plusDays(1);
+                res.add(vo);
+            }
+            WbTOrderExcelStsResVO vo = new WbTOrderExcelStsResVO();
+            vo.setFormatDate(end.toString());
+            res.add(vo);
+        } else {
+            //当月第一天
+            end = end.with(TemporalAdjusters.firstDayOfMonth());
+            while (start.isBefore(end)) {
+                WbTOrderExcelStsResVO vo = new WbTOrderExcelStsResVO();
+                vo.setFormatDate(DateUtils.localDateToString(start, "yyyy-MM"));
+                start = start.plusMonths(1);
+                res.add(vo);
+            }
+            WbTOrderExcelStsResVO vo = new WbTOrderExcelStsResVO();
+            vo.setFormatDate(DateUtils.localDateToString(end, "yyyy-MM"));
+            res.add(vo);
+        }
+        return res;
+    }
+}
+

+ 34 - 7
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -4,17 +4,44 @@
 
 
     <select id="getMaxOrderNoByDate" resultType="java.lang.String">
-        SELECT MAX(t_order_no) FROM kwo_trade_order WHERE create_time &gt;= #{date};
+        SELECT MAX(t_order_no)
+        FROM kwo_trade_order
+        WHERE create_time &gt;= #{date};
     </select>
 
     <select id="getOrderNumByTopEntId" resultType="com.sckw.order.api.model.TradeOrderCountStatisticsDTO">
-        SELECT
-            u.unit_type AS orderType,
-            COUNT(*) AS num
+        SELECT u.unit_type AS orderType,
+               COUNT(*)    AS num
         FROM kwo_trade_order o
-        LEFT JOIN kwo_trade_order_unit u
-        ON o.id = u.t_order_id
-        WHERE o.del_flag =0 AND o.status != 0 and u.del_flag = 0 AND u.top_ent_id = #{topEntId}
+                 LEFT JOIN kwo_trade_order_unit u
+                           ON o.id = u.t_order_id
+        WHERE o.del_flag = 0
+          AND o.status != 0 and u.del_flag = 0 AND u.top_ent_id = #{topEntId}
         GROUP BY u.unit_type
     </select>
+
+    <select id="workbenchExcel" resultType="com.sckw.order.model.dto.WbTOrderExcelStsResDTO">
+        SELECT DATE_FORMAT(create_time, #{item.dateFormat}) AS formatDate,
+               SUM(CASE
+                       WHEN #{item.stsFactorsOne} = 1 THEN amount
+                       WHEN #{item.stsFactorsOne} = 2 THEN 1
+                       ELSE 0
+                   END)                                     AS stsFactorsOneValue,
+               SUM(CASE
+                       WHEN #{item.stsFactorsTwo} = 1 THEN amount
+                       WHEN #{item.stsFactorsTwo} = 2 THEN 1
+                       ELSE 0
+                   END)                                     AS stsFactorsTwoValue
+        FROM kwo_trade_order
+        WHERE
+          id IN (SELECT t_order_id
+                FROM kwo_trade_order_unit
+                WHERE del_flag = 0
+                AND unit_type = #{item.unitType}
+                AND top_ent_id = #{item.topEntId})
+          AND create_time >= #{item.startTime}
+          AND status NOT IN (0, 2)
+          AND del_flag = 0
+        GROUP BY DATE_FORMAT(create_time, #{item.dateFormat});
+    </select>
 </mapper>

+ 3 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/KwpGoodsService.java

@@ -670,6 +670,9 @@ public class KwpGoodsService {
         if (Objects.equals(GoodsStatusEnum.PUT_ON_SHELVES.getCode(), goods.getStatus())) {
             throw new BusinessException("上架操作仅针对“已下架”“草稿”状态的单据!");
         }
+        if (goods.getAmount().compareTo(BigDecimal.ZERO) <= 0) {
+            throw new BusinessException("商品上架必须库存大于零!");
+        }
         if (Objects.equals(GoodsStatusEnum.SAVED.getCode(), goods.getStatus())) {
             UpdateGoodsParam updateParam = BeanUtils.copyProperties(goods, UpdateGoodsParam.class);
             updateParam.setAttributes(BeanUtils.copyToList(kwpGoodsAttributeService.getByGoodsId(id), GoodsAttributes.class));

+ 1 - 1
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderStatisticsController.java

@@ -31,7 +31,7 @@ public class KwOrderStatisticsController {
      * @return: com.sckw.core.web.response.HttpResult
      */
     @PostMapping(value = "/workbenchData", produces = MediaType.APPLICATION_JSON_VALUE)
-    public HttpResult select(@RequestBody @Validated WbTOrderDataStsParam params) {
+    public HttpResult workbenchData(@RequestBody @Validated WbTOrderDataStsParam params) {
         return HttpResult.ok(kwOrderStatisticsService.workbenchData(params));
     }
 

+ 2 - 2
sckw-modules/sckw-report/src/main/java/com/sckw/report/model/vo/WbTOrderDataStsParam.java

@@ -33,9 +33,9 @@ public class WbTOrderDataStsParam implements Serializable {
      */
     private String unit;
     /**
-     * 统计日期类型(1周、2月)
+     * 统计日期类型(2周、3月)
      */
-    @Range(min = 1, max = 2, message = "非法日期类型")
+    @Range(min = 2, max = 3, message = "非法日期类型")
     @NotNull(message = "日期类型不能为空")
     private Integer dateType;
 

+ 26 - 27
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderStatisticsService.java

@@ -6,6 +6,8 @@ import com.sckw.core.utils.DateUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.mongo.model.SckwTradeOrder;
+import com.sckw.payment.api.dubbo.PaymentDubboService;
+import com.sckw.payment.api.model.dto.SettlementMoney;
 import com.sckw.product.api.dubbo.GoodsStatisticsService;
 import com.sckw.product.api.model.GoodsNumStsParam;
 import com.sckw.report.model.dto.WorkbenchOrderStsDTO;
@@ -43,6 +45,8 @@ public class KwOrderStatisticsService {
 
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private GoodsStatisticsService goodsStatisticsService;
+    @DubboReference(version = "1.0.0", group = "design", check = false)
+    private PaymentDubboService paymentDubboService;
 
 
     /**
@@ -68,6 +72,9 @@ public class KwOrderStatisticsService {
         GoodsNumStsParam goodsNumStsParam = new GoodsNumStsParam();
         goodsNumStsParam.setTopEntId(entId).setUnit(unit);
         Long currentGoodsNum = goodsStatisticsService.getOnShelfGoodsNum(goodsNumStsParam);
+        //待付款金额
+        SettlementMoney settlement = Objects.equals(orderType, 1) ?
+                paymentDubboService.countPurchase(entId, dateType) : paymentDubboService.countSell(entId, dateType);
         //订单统计
         WorkbenchOrderStsDTO currentOrderSts = getOrderStsInfo(orderType, unit, currentStart, null);
         BigDecimal currentAmount = BigDecimal.valueOf(currentOrderSts.getOrderAmount());
@@ -76,8 +83,8 @@ public class KwOrderStatisticsService {
                 .setGoodsNum(currentGoodsNum)
                 .setOrderAmount(currentAmount)
                 .setOrderPrice(currentPrice)
+                .setWaitCollectedPrice(new BigDecimal(settlement.getCurrent()))
                 .setNotArrivedAmount(currentAmount.subtract(BigDecimal.valueOf(currentOrderSts.getOrderActualAmount())));
-        //todo 待付款金额
         list.add(currentDataSts);
 
         //上周/上月数据
@@ -93,45 +100,27 @@ public class KwOrderStatisticsService {
                 .setGoodsNum(lastGoodsNum)
                 .setOrderAmount(lastAmount)
                 .setOrderPrice(lastPrice)
+                .setWaitCollectedPrice(new BigDecimal(settlement.getBefore()))
                 .setNotArrivedAmount(lastAmount.subtract(BigDecimal.valueOf(lastOrderSts.getOrderActualAmount())));
-        //todo 待付款金额
         list.add(lastDataSts);
         res.setTOrderDataStsList(list);
-        //环比数据
         //商品数量环比
-        BigDecimal goodsNumRingRate = Objects.isNull(lastGoodsNum) || lastGoodsNum == 0L ? NumberConstant.ONE_HUNDRED :
-                new BigDecimal((currentGoodsNum - lastGoodsNum)).multiply(NumberConstant.ONE_HUNDRED)
-                        .divide(new BigDecimal(lastGoodsNum), 2, RoundingMode.HALF_UP);
+        BigDecimal goodsNumRingRate = getRingRate(new BigDecimal(currentGoodsNum), new BigDecimal(lastGoodsNum));
         boolean goodsNumFlag = goodsNumRingRate.compareTo(BigDecimal.ZERO) >= 0;
         goodsNumRingRate = goodsNumRingRate.abs();
         //订单总量环比
-        BigDecimal orderAmountRingRate = lastAmount.compareTo(BigDecimal.ZERO) == 0 ? NumberConstant.ONE_HUNDRED :
-                (currentAmount.subtract(lastAmount)).multiply(NumberConstant.ONE_HUNDRED)
-                        .divide(lastAmount, 2, RoundingMode.HALF_UP);
+        BigDecimal orderAmountRingRate = getRingRate(currentAmount, lastAmount);
         boolean orderAmountFlag = orderAmountRingRate.compareTo(BigDecimal.ZERO) >= 0;
         orderAmountRingRate = orderAmountRingRate.abs();
         //订单总金额环比
-        BigDecimal orderPriceRingRate = lastPrice.compareTo(BigDecimal.ZERO) == 0 ? NumberConstant.ONE_HUNDRED :
-                (currentPrice.subtract(lastPrice)).multiply(NumberConstant.ONE_HUNDRED)
-                        .divide(lastPrice, 2, RoundingMode.HALF_UP);
+        BigDecimal orderPriceRingRate = getRingRate(currentPrice, lastPrice);
         boolean orderPriceFlag = orderPriceRingRate.compareTo(BigDecimal.ZERO) >= 0;
         orderPriceRingRate = orderPriceRingRate.abs();
         //未到货量环比
-        BigDecimal currentNotArrived = currentDataSts.getNotArrivedAmount();
-        BigDecimal lastNotArrived = lastDataSts.getNotArrivedAmount();
-        BigDecimal notArrivedAmountRingRate = lastNotArrived.compareTo(BigDecimal.ZERO) == 0 ? NumberConstant.ONE_HUNDRED :
-                (currentNotArrived.subtract(lastNotArrived)).multiply(NumberConstant.ONE_HUNDRED)
-                        .divide(lastNotArrived, 2, RoundingMode.HALF_UP);
+        BigDecimal notArrivedAmountRingRate = getRingRate(currentDataSts.getNotArrivedAmount(), lastDataSts.getNotArrivedAmount());
         boolean notArrivedAmountFlag = notArrivedAmountRingRate.compareTo(BigDecimal.ZERO) >= 0;
         notArrivedAmountRingRate = notArrivedAmountRingRate.abs();
-        //待付款金额环比
-        BigDecimal currentWaitPrice = currentDataSts.getWaitCollectedPrice();
-        BigDecimal lastWaitPrice = lastDataSts.getWaitCollectedPrice();
-        BigDecimal waitCollectedPriceRingRate = lastWaitPrice.compareTo(BigDecimal.ZERO) == 0 ? NumberConstant.ONE_HUNDRED :
-                (currentWaitPrice.subtract(lastWaitPrice)).multiply(NumberConstant.ONE_HUNDRED)
-                        .divide(lastWaitPrice, 2, RoundingMode.HALF_UP);
-        boolean waitCollectedPriceFlag = waitCollectedPriceRingRate.compareTo(BigDecimal.ZERO) >= 0;
-        waitCollectedPriceRingRate = waitCollectedPriceRingRate.abs();
+
         res.setGoodsNumRingRate(goodsNumRingRate)
                 .setGoodsNumFlag(goodsNumFlag)
                 .setOrderAmountRingRate(orderAmountRingRate)
@@ -140,8 +129,18 @@ public class KwOrderStatisticsService {
                 .setOrderPriceFlag(orderPriceFlag)
                 .setNotArrivedAmountRingRate(notArrivedAmountRingRate)
                 .setNotArrivedAmountFlag(notArrivedAmountFlag)
-                .setWaitCollectedPriceRingRate(waitCollectedPriceRingRate)
-                .setWaitCollectedPriceFlag(waitCollectedPriceFlag);
+                .setWaitCollectedPriceRingRate(new BigDecimal(settlement.getPercent().replace("%", "")))
+                .setWaitCollectedPriceFlag(Objects.equals(settlement.getFlag(), 1));
+        return res;
+    }
+
+    private BigDecimal getRingRate(BigDecimal current, BigDecimal last) {
+        BigDecimal res;
+        if (last.compareTo(BigDecimal.ZERO) == 0) {
+            res = (current.subtract(last)).compareTo(BigDecimal.ZERO) != 0 ? NumberConstant.ONE_HUNDRED : BigDecimal.ZERO;
+        } else {
+            res = (current.subtract(last)).multiply(NumberConstant.ONE_HUNDRED).divide(last, 2, RoundingMode.HALF_UP);
+        }
         return res;
     }
 

+ 0 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsDeptController.java

@@ -30,7 +30,6 @@ public class KwsDeptController {
      **/
     @GetMapping("/detail")
     public HttpResult selectByKey(@RequestParam Long id) {
-        int i = 1 / 0;
         KwsDept sysDict = kwsDeptService.selectByKey(id);
         return HttpResult.ok(sysDict);
     }

+ 9 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEnterpriseDao.java

@@ -115,6 +115,15 @@ public interface KwsEnterpriseDao {
      */
     FindManagePojo findManageInfoByEntId(Long entId);
 
+    /**
+     * @param entId 企业id
+     * @return FindManagePojo
+     * @desc: 查企业的管理员
+     * @author: czh
+     * @date: 2023/6/29
+     */
+    List<FindManagePojo> findManageInfoByEntIds(@Param(value = "list") List<Long> entId);
+
     /**
      * @param entId 企业id
      * @return FindManagePojo

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindManagePojo.java

@@ -22,4 +22,6 @@ public class FindManagePojo implements Serializable {
 
     private Long roleId;
 
+    private Long entId;
+
 }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindMenuTreePojo.java

@@ -15,7 +15,7 @@ public class FindMenuTreePojo {
     /**
      * 客户端类型
      */
-    private String clientType;
+    private Integer clientType;
 
     /**
      * 菜单名

+ 14 - 7
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -910,13 +911,16 @@ public class KwsEnterpriseService {
             collect = kwsEntTypeList.stream().collect(Collectors.groupingBy(KwsEntType::getEntId));
         }
 
-        List<Long> managers = kwsEnterprises.stream().map(KwsEnterprise::getManager).toList();
+        List<FindManagePojo> manageInfoByEntIds = kwsEnterpriseDao.findManageInfoByEntIds(kwsEnterprises.stream().map(KwsEnterprise::getId).toList());
         Map<Long, KwsUser> userCollect = new HashMap<>(Global.NUMERICAL_SIXTEEN);
-        if (CollectionUtils.isNotEmpty(managers)) {
-            List<KwsUser> kwsUsers = kwsUserService.selectByKeys(managers);
+        Map<Long, FindManagePojo> manageInfoCollect = new HashMap<>(Global.NUMERICAL_SIXTEEN);
+        if (CollectionUtils.isNotEmpty(manageInfoByEntIds)) {
+            List<KwsUser> kwsUsers = kwsUserService.selectByKeys(manageInfoByEntIds.stream().map(FindManagePojo::getUserId).toList());
             if (CollectionUtils.isNotEmpty(kwsUsers)) {
                 userCollect = kwsUsers.stream().collect(Collectors.toMap(KwsUser::getId, e -> e, (n, o) -> n));
             }
+
+            manageInfoCollect = manageInfoByEntIds.stream().collect(Collectors.toMap(FindManagePojo::getEntId, Function.identity()));
         }
 
 
@@ -925,14 +929,17 @@ public class KwsEnterpriseService {
             QueryCurrentOrganizationResVo queryCurrentOrganizationResVo = new QueryCurrentOrganizationResVo();
             List<KwsEntType> kwsEntTypeList1 = collect.get(kwsEnterprise.getId());
             queryCurrentOrganizationResVo.setEntTypes(CollectionUtils.isEmpty(kwsEntTypeList1) ? null : String.join(Global.COMMA, kwsEntTypeList1.stream().map(KwsEntType::getType).map(String::valueOf).toList()));
-            Long manager = kwsEnterprise.getManager();
-            if (Objects.nonNull(manager)) {
-                queryCurrentOrganizationResVo.setContactsId(manager);
-                KwsUser kwsUser = userCollect.get(manager);
+            FindManagePojo findManagePojo = manageInfoCollect.get(kwsEnterprise.getId());
+            if (Objects.nonNull(findManagePojo)) {
+                queryCurrentOrganizationResVo.setContactsId(findManagePojo.getUserId());
+                KwsUser kwsUser = userCollect.get(findManagePojo.getUserId());
                 if (Objects.nonNull(kwsUser)) {
                     queryCurrentOrganizationResVo.setContacts(kwsUser.getName());
                     queryCurrentOrganizationResVo.setPhone(kwsUser.getPhone());
                 }
+            } else {
+                queryCurrentOrganizationResVo.setContacts(kwsEnterprise.getContacts());
+                queryCurrentOrganizationResVo.setPhone(kwsEnterprise.getPhone());
             }
             queryCurrentOrganizationResVo.setCityName(kwsEnterprise.getCityName());
             queryCurrentOrganizationResVo.setBusiness(kwsEnterprise.getBusiness());

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

@@ -336,7 +336,7 @@ public class KwsMenuService {
             throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.ROLE_NOT_EXISTS);
         }
         //特殊处理,员工账号先查pc端的菜单,后面会做菜单关联
-        findMenuTreePojo.setClientType(String.valueOf(SystemTypeEnum.COMPANY.getCode()));
+        findMenuTreePojo.setClientType(SystemTypeEnum.COMPANY.getCode());
         findMenuTreePojo.setRoleIds(allByUserId.stream().map(KwsUserRole::getRoleId).toList());
     }
 

+ 7 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java

@@ -7,6 +7,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.BeanUtils;
@@ -19,6 +20,7 @@ import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.system.dao.*;
 import com.sckw.system.model.*;
+import com.sckw.system.model.pojo.FindManagePojo;
 import com.sckw.system.model.pojo.FindMenuTreePojo;
 import com.sckw.system.model.vo.req.EditRoleReqVo;
 import com.sckw.system.model.vo.req.RoleBindMenuReqVo;
@@ -60,6 +62,9 @@ public class KwsRoleService {
     @Autowired
     KwsDeptDao kwsDeptDao;
 
+    @Autowired
+    KwsEnterpriseDao kwsEnterpriseDao;
+
     @Autowired
     KwsMenuService kwsMenuService;
 
@@ -335,7 +340,9 @@ public class KwsRoleService {
      */
     public PageResult findPage(Map<String, Object> params) {
         PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
+        FindManagePojo manageInfoByEntId = kwsEnterpriseDao.findManageInfoByEntId(LoginUserHolder.getEntId());
         params.put("entId", LoginUserHolder.getEntId());
+        params.put("manageRoleId", manageInfoByEntId.getRoleId());
         List<RoleResVo> roleResVos = kwsRoleDao.findPage(params);
         if (CollectionUtils.isEmpty(roleResVos)) {
             return PageHelperUtil.getPageResult(new PageInfo<>(roleResVos));

+ 28 - 3
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -236,7 +236,8 @@
   <select id="findManageInfoByEntId" resultType="com.sckw.system.model.pojo.FindManagePojo">
     select distinct d.id userId,
            b.id deptId,
-           f.id roleId
+           f.id roleId,
+           a.id entId
       from kws_enterprise a
       left join kws_dept b on a.id = b.ent_id
       left join kws_user_dept c on b.id = c.dept_id
@@ -250,7 +251,6 @@
        and e.del_flag = 0
        and f.del_flag = 0
        and d.is_main = 1
-       and d.system_type = 2
        and a.id = #{entId}
   </select>
 
@@ -326,7 +326,32 @@
                     )
     </select>
 
-    <insert id="insert" parameterType="com.sckw.system.model.KwsEnterprise">
+  <select id="findManageInfoByEntIds" resultType="com.sckw.system.model.pojo.FindManagePojo">
+    select distinct d.id userId,
+                    b.id deptId,
+                    f.id roleId,
+                    a.id entId
+      from kws_enterprise a
+             left join kws_dept b on a.id = b.ent_id
+             left join kws_user_dept c on b.id = c.dept_id
+             left join kws_user d on c.user_id = d.id
+             left join kws_user_role e on d.id = e.user_id
+             left join kws_role f on e.role_id = f.id
+      where a.del_flag = 0
+        and b.del_flag = 0
+        and c.del_flag = 0
+        and d.del_flag = 0
+        and e.del_flag = 0
+        and f.del_flag = 0
+        and d.is_main = 1
+        and d.system_type = 2
+        and a.id in
+      <foreach collection="list" separator="," open="(" close=")" item="item">
+        #{item}
+      </foreach>
+  </select>
+
+  <insert id="insert" parameterType="com.sckw.system.model.KwsEnterprise">
     insert into kws_enterprise
     <trim prefix="(" suffix=")" suffixOverrides=",">
       <if test="id != null">

+ 2 - 2
sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuDao.xml

@@ -270,8 +270,8 @@
     from kws_menu sm
     left join kws_menu_rights smr on sm.id = smr.menu_id
     where sm.del_flag = 0
-    <if test="clientType != null and clientType != ''">
-      and sm.client_type = #{clientType, jdbcType=VARCHAR}
+    <if test="clientType != null">
+      and sm.client_type = #{clientType}
     </if>
     <if test="name != null and name != ''">
       and sm.name = #{name, jdbcType=VARCHAR}

+ 1 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsRoleDao.xml

@@ -145,6 +145,7 @@
     left join kws_dept d on sr.dept_id = d.id
     where sr.del_flag = 0
       and su.del_flag = 0
+      and sr.id != #{manageRoleId}
     <if test="name != null and name != ''">
       and sr.name like concat('%', #{name, jdbcType=VARCHAR}, '%')
     </if>