Selaa lähdekoodia

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

zk 2 vuotta sitten
vanhempi
commit
6e98c8effc
39 muutettua tiedostoa jossa 924 lisäystä ja 189 poistoa
  1. 2 2
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java
  2. 3 0
      sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java
  3. 3 3
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCarrierController.java
  4. 3 3
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java
  5. 6 3
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractSaleController.java
  6. 5 3
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcPurchaseController.java
  7. 19 14
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java
  8. 22 14
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeService.java
  9. 3 0
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml
  10. 5 3
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmAddressController.java
  11. 5 3
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java
  12. 5 3
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java
  13. 73 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/AddressQueryExport.java
  14. 59 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/CooperateManageExport.java
  15. 1 1
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressQueryReqVo.java
  16. 10 13
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java
  17. 35 11
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java
  18. 31 11
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  19. 3 2
      sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/operation/GoodsManagerController.java
  20. 97 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/OperationGoodsListExport.java
  21. 168 0
      sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/OperationGoodsList.java
  22. 23 51
      sckw-modules/sckw-product/src/main/java/com/sckw/product/service/operation/GoodsManagerService.java
  23. 4 0
      sckw-modules/sckw-system/pom.xml
  24. 12 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java
  25. 8 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsRoleController.java
  26. 16 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java
  27. 3 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java
  28. 11 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindEntListPojo.java
  29. 40 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/report/KwsRoleExcel.java
  30. 51 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/report/KwsUserExcel.java
  31. 20 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/EntFindPageResVo.java
  32. 2 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/KwsUserResVo.java
  33. 34 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/QueryCustomerResVo.java
  34. 43 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  35. 16 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsRoleService.java
  36. 27 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  37. 45 42
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml
  38. 5 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsRoleDao.xml
  39. 6 0
      sckw-modules/sckw-system/src/main/resources/mapper/KwsUserDao.xml

+ 2 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CooperateStatusEnum.java

@@ -32,10 +32,10 @@ public enum CooperateStatusEnum {
         this.name = name;
     }
 
-    public static CooperateStatusEnum getName(int code) {
+    public static String getName(int code) {
         for (CooperateStatusEnum cooperateStatusEnum : values()) {
             if (cooperateStatusEnum.getCode() == code) {
-                return cooperateStatusEnum;
+                return cooperateStatusEnum.getName();
             }
         }
         return null;

+ 3 - 0
sckw-common/sckw-common-excel/src/main/java/com/sckw/excel/utils/ExcelUtil.java

@@ -5,6 +5,7 @@ import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.model.constant.Global;
@@ -29,6 +30,7 @@ import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 
 
 /**
@@ -248,4 +250,5 @@ public class ExcelUtil {
 
         return selectedMap;
     }
+
 }

+ 3 - 3
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCarrierController.java

@@ -3,9 +3,9 @@ package com.sckw.contract.controller;
 import com.sckw.contract.model.vo.req.IdReqVo;
 import com.sckw.contract.model.vo.req.QueryListReqVo;
 import com.sckw.contract.service.KwcContractLogisticsService;
-import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.web.response.HttpResult;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -57,9 +57,9 @@ public class KwcCarrierController {
      * @date 2023/7/17
      */
     @PostMapping("export")
-    public void export(@Valid @RequestBody QueryListReqVo reqVo) {
+    public void export(@Valid @RequestBody QueryListReqVo reqVo, HttpServletResponse response) {
         reqVo.setEntType(EntTypeEnum.LOGISTICS4.getCode());
-        kwcContractLogisticsService.export(reqVo);
+        kwcContractLogisticsService.export(reqVo, response);
     }
 
 

+ 3 - 3
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java

@@ -142,10 +142,10 @@ public class KwcCheckedController {
      * @author: czh
      * @date 2023/7/17
      */
-    @PostMapping("export")
-    public void export(@Valid @RequestBody QueryListReqVo reqVo) {
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@Valid @RequestBody QueryListReqVo reqVo, HttpServletResponse response) {
         reqVo.setEntType(EntTypeEnum.LOGISTICS3.getCode());
-        kwcContractLogisticsService.export(reqVo);
+        kwcContractLogisticsService.export(reqVo, response);
     }
 
 

+ 6 - 3
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcContractSaleController.java

@@ -1,5 +1,6 @@
 package com.sckw.contract.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.sckw.contract.model.vo.req.*;
 import com.sckw.contract.service.KwcContractTradeService;
 import com.sckw.core.exception.SystemException;
@@ -15,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Properties;
+
 
 /**
  * @author czh
@@ -139,10 +142,10 @@ public class KwcContractSaleController {
      * @author: czh
      * @date 2023/7/17
      */
-    @PostMapping("export")
-    public void export(@Valid @RequestBody QueryListReqVo reqVo) {
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@Valid @RequestBody QueryListReqVo reqVo, HttpServletResponse response) {
         reqVo.setEntType(EntTypeEnum.SUPPLIER.getCode());
-        kwcContractTradeService.export(reqVo);
+        kwcContractTradeService.export(reqVo, response);
     }
 
     /**

+ 5 - 3
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcPurchaseController.java

@@ -6,8 +6,10 @@ import com.sckw.contract.service.KwcContractTradeService;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.web.response.HttpResult;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -57,10 +59,10 @@ public class KwcPurchaseController {
      * @author: czh
      * @date 2023/7/17
      */
-    @PostMapping("export")
-    public void export(@Valid @RequestBody QueryListReqVo reqVo) {
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@Valid @RequestBody QueryListReqVo reqVo, HttpServletResponse response) {
         reqVo.setEntType(EntTypeEnum.PURCHASER.getCode());
-        kwcContractTradeService.export(reqVo);
+        kwcContractTradeService.export(reqVo, response);
     }
 
     /**

+ 19 - 14
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -607,27 +607,32 @@ public class KwcContractLogisticsService {
         return list;
     }
 
-    public void export(QueryListReqVo reqVo) {
+    public void export(QueryListReqVo reqVo, HttpServletResponse response) {
         QueryListReqDto queryListReqDto = new QueryListReqDto();
         BeanUtils.copyProperties(reqVo, queryListReqDto);
-        queryListReqDto.setEntId(LoginUserHolder.getEntId());
-        if (StringUtils.isNotBlank(reqVo.getIds())) {
-            List<Long> idList = Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList();
-            queryListReqDto.setIdList(idList);
+        List<Long> allEnt = new ArrayList<>();
+        if (Objects.isNull(reqVo.getEntId())) {
+            queryListReqDto.setEntId(LoginUserHolder.getEntId());
         }
+        allEnt.add(queryListReqDto.getEntId());
 
-        List<QueryListResVo> queryListResVos = new ArrayList<>();
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(queryListReqDto.getEntId());
+        if (Objects.nonNull(entCacheResDto)) {
+            EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
+            List<EntCacheResDto> child = entCacheResDto1.getChild();
+            if (CollectionUtils.isNotEmpty(child)) {
+                allEnt.addAll(child.stream().map(EntCacheResDto::getId).toList());
+            }
+        }
+        queryListReqDto.setAllEnt(allEnt);
         List<QueryListResDto> queryListResDtos = kwcContractLogisticsMapper.queryList(queryListReqDto);
-        if (CollectionUtils.isNotEmpty(queryListResDtos)) {
-            queryListResVos = getQueryListResVos(queryListResDtos);
+        if (CollectionUtils.isEmpty(queryListResDtos)) {
+            throw new SystemException("导出数据为空");
         }
 
-        try {
-            EasyExcelUtil.writeSingleExcel("物流合同.xlsx", "sheet1", queryListResVos, QueryListResVo.class);
-        } catch (IOException e) {
-//            log.error("导出失败:", e);
-            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
-        }
+        List<QueryListResVo> list = getQueryListResVos(queryListResDtos);
+        List<LogisticsListExport> dataList = BeanUtils.copyToList(list, LogisticsListExport.class);
+        ExcelUtil.downData(response, LogisticsListExport.class, dataList);
     }
 
 

+ 22 - 14
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractTradeService.java

@@ -3,12 +3,14 @@ package com.sckw.contract.service;
 import java.io.IOException;
 import java.util.Date;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.contract.model.dto.req.QueryListReqDto;
 import com.sckw.contract.model.dto.res.QueryListResDto;
 import com.sckw.contract.model.entity.*;
+import com.sckw.contract.model.report.LogisticsListExport;
 import com.sckw.contract.model.report.TradeListExport;
 import com.sckw.contract.model.vo.req.*;
 
@@ -606,26 +608,32 @@ public class KwcContractTradeService {
      * @author: czh
      * @date 2023/7/17
      */
-    public void export(QueryListReqVo reqVo) {
+    public void export(QueryListReqVo reqVo, HttpServletResponse response) {
         QueryListReqDto queryListReqDto = new QueryListReqDto();
         BeanUtils.copyProperties(reqVo, queryListReqDto);
-        queryListReqDto.setEntId(LoginUserHolder.getEntId());
-        if (StringUtils.isNotBlank(reqVo.getIds())) {
-            List<Long> idList = Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList();
-            queryListReqDto.setIdList(idList);
+        List<Long> allEnt = new ArrayList<>();
+        if (Objects.isNull(reqVo.getEntId())) {
+            queryListReqDto.setEntId(LoginUserHolder.getEntId());
         }
+        allEnt.add(queryListReqDto.getEntId());
 
-        List<QueryListResVo> queryListResVos = new ArrayList<>();
-        List<QueryListResDto> queryListResDtos = kwcContractTradeMapper.queryList(queryListReqDto);
-        if (CollectionUtils.isNotEmpty(queryListResDtos)) {
-            queryListResVos = getQueryListResVos(queryListResDtos);
+        EntCacheResDto entCacheResDto = remoteSystemService.queryEntTreeById(queryListReqDto.getEntId());
+        if (Objects.nonNull(entCacheResDto)) {
+            EntCacheResDto entCacheResDto1 = remoteSystemService.queryEntTreeById(entCacheResDto.getId());
+            List<EntCacheResDto> child = entCacheResDto1.getChild();
+            if (CollectionUtils.isNotEmpty(child)) {
+                allEnt.addAll(child.stream().map(EntCacheResDto::getId).toList());
+            }
         }
-        try {
-            EasyExcelUtil.writeSingleExcel("贸易合同.xlsx", "sheet1", queryListResVos, QueryListResVo.class);
-        } catch (IOException e) {
-            log.error("导出失败:", e);
-            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
+        queryListReqDto.setAllEnt(allEnt);
+        List<QueryListResDto> queryListResDtos = kwcContractTradeMapper.queryList(queryListReqDto);
+        if (CollectionUtils.isEmpty(queryListResDtos)) {
+            throw new SystemException("导出数据为空");
         }
+
+        List<QueryListResVo> list = getQueryListResVos(queryListResDtos);
+        List<LogisticsListExport> dataList = BeanUtils.copyToList(list, LogisticsListExport.class);
+        ExcelUtil.downData(response, LogisticsListExport.class, dataList);
     }
 
     /**

+ 3 - 0
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml

@@ -119,6 +119,9 @@
         <if test="signingWay != null">
             and a.signing_way = #{signingWay}
         </if>
+        <if test="charging != null">
+            and a.charging = #{charging}
+        </if>
         <if test="keywords != null and keywords != ''">
             and (b.firm_name like concat('%', #{keywords}, '%') or
                  e.firm_name like concat('%', #{keywords}, '%') or

+ 5 - 3
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmAddressController.java

@@ -4,8 +4,10 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.manage.model.vo.req.*;
 import com.sckw.manage.service.KwmAddressService;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -95,9 +97,9 @@ public class KwmAddressController {
      * @author: czh
      * @date: 2023/7/12
      */
-    @PostMapping("/export")
-    public void export(@Valid @RequestBody AddressQueryReqVo reqVo) {
-        kwmAddressService.export(reqVo);
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@Valid @RequestBody AddressQueryReqVo reqVo, HttpServletResponse response) {
+        kwmAddressService.export(reqVo, response);
     }
 
     /**

+ 5 - 3
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateApplyController.java

@@ -7,8 +7,10 @@ import com.sckw.manage.model.vo.req.CooperateApproveReqVo;
 import com.sckw.manage.model.vo.req.IdsReqVo;
 import com.sckw.manage.model.vo.req.InitiateReqVo;
 import com.sckw.manage.service.KwmCooperateApplyService;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -83,9 +85,9 @@ public class KwmCooperateApplyController {
      * @author: czh
      * @date: 2023/7/11
      */
-    @PostMapping("/export")
-    public void export(@Valid @RequestBody CooperateApplyQueryReqVo reqVo) {
-        kwmCooperateApplyService.export(reqVo);
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@Valid @RequestBody CooperateApplyQueryReqVo reqVo, HttpServletResponse response) {
+        kwmCooperateApplyService.export(reqVo, response);
     }
 
 

+ 5 - 3
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/controller/KwmCooperateManageController.java

@@ -5,8 +5,10 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.manage.model.vo.req.*;
 import com.sckw.manage.service.KwmCooperateManageService;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -107,9 +109,9 @@ public class KwmCooperateManageController {
      * @author: czh
      * @date: 2023/7/11
      */
-    @PostMapping("export")
-    public void export(@Valid @RequestBody CooperateManageQueryReqVo reqVo) {
-        kwmCooperateManageService.export(reqVo);
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@Valid @RequestBody CooperateManageQueryReqVo reqVo, HttpServletResponse response) {
+        kwmCooperateManageService.export(reqVo, response);
     }
 
     /**

+ 73 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/AddressQueryExport.java

@@ -0,0 +1,73 @@
+package com.sckw.manage.model.report;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 地点档案列表信息
+ * @date 2023/9/14
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "地点档案列表信息", sheetName = "地点档案列表信息")
+public class AddressQueryExport implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 9153289220823593050L;
+
+    @ExcelProperty(value = "地址名称")
+    private String name;
+
+    @ExcelProperty(value = "地址类型")
+    private String typeName;
+
+    @ExcelProperty(value = "电子围栏")
+    private String fence;
+
+    @ExcelProperty(value = "默认类型")
+    private String defaultTypeName;
+
+    @ExcelProperty(value = "联系人")
+    private String contacts;
+
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    @ExcelProperty(value = "所属区域")
+    private String cityName;
+
+    @ExcelProperty(value = "详细地址")
+    private String detailAddress;
+
+    @ExcelProperty(value = "经度")
+    private String lng;
+
+    @ExcelProperty(value = "纬度")
+    private String lat;
+
+    @ExcelProperty(value = "创建人")
+    private String createByName;
+
+    @ExcelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @ExcelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+}

+ 59 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/report/CooperateManageExport.java

@@ -0,0 +1,59 @@
+package com.sckw.manage.model.report;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 合作信息
+ * @date 2023/9/14
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "合作信息", sheetName = "合作信息")
+public class CooperateManageExport implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -5491364851093075646L;
+
+    @ExcelProperty(value = "申请类型")
+    private String applyType;
+
+    @ExcelProperty(value = "合作状态")
+    private String status;
+
+    @ExcelProperty(value = "合作单位名称")
+    private String targetEntName;
+
+    @ExcelProperty(value = "我方单位名称")
+    private String entName;
+
+    @ExcelProperty(value = "供应单位")
+    private String ent1;
+
+    @ExcelProperty(value = "采购单位")
+    private String ent2;
+
+    @ExcelProperty(value = "托运单位")
+    private String ent3;
+
+    @ExcelProperty(value = "承运单位")
+    private String ent4;
+
+    @ExcelProperty(value = "合作单位联系人")
+    private String contacts;
+
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    @ExcelProperty(value = "我方联系人")
+    private String manager;
+
+    @ExcelProperty(value = "联系电话")
+    private String managerPhone;
+}

+ 1 - 1
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/AddressQueryReqVo.java

@@ -54,6 +54,6 @@ public class AddressQueryReqVo extends PageRequest implements Serializable {
     /**
      * 主键
      */
-    private String ids;
+    private List<Long> ids;
 
 }

+ 10 - 13
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmAddressService.java

@@ -20,10 +20,12 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.EasyExcelUtil;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.manage.api.model.dto.res.EntAddressResDto;
 import com.sckw.manage.dao.KwmAddressMapper;
 import com.sckw.manage.dubbo.RemoteManageServiceImpl;
 import com.sckw.manage.model.entity.KwmAddress;
+import com.sckw.manage.model.report.AddressQueryExport;
 import com.sckw.manage.model.vo.req.*;
 import com.sckw.manage.model.vo.res.AddressDetailResVo;
 import com.sckw.manage.model.vo.res.AddressQueryResVo;
@@ -34,6 +36,7 @@ import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -108,8 +111,8 @@ public class KwmAddressService {
             wrapper.lt(KwmAddress::getCreateTime, DateUtil.offsetDay(reqVo.getEndTime(), 1));
         }
 
-        if (StringUtils.isNotBlank(reqVo.getIds())) {
-            wrapper.in(KwmAddress::getId, Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList());
+        if (CollectionUtils.isNotEmpty(reqVo.getIds())) {
+            wrapper.in(KwmAddress::getId, reqVo.getIds());
         }
         return kwmAddressMapper.selectList(wrapper);
     }
@@ -362,19 +365,13 @@ public class KwmAddressService {
      * @author: czh
      * @date: 2023/7/12
      */
-    public void export(AddressQueryReqVo reqVo) {
+    public void export(AddressQueryReqVo reqVo, HttpServletResponse response) {
         List<KwmAddress> kwmAddressList = findList(reqVo);
-        List<AddressQueryResVo> list = new ArrayList<>();
-        if (CollectionUtils.isNotEmpty(kwmAddressList)) {
-            list = getAddressQueryResVo(kwmAddressList);
-        }
-
-        try {
-            EasyExcelUtil.writeSingleExcel("地址管理.xlsx", "sheet1", list, AddressQueryResVo.class);
-        } catch (IOException e) {
-            log.error("导出失败:", e);
-            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
+        if (CollectionUtils.isEmpty(kwmAddressList)) {
+            throw new SystemException("导出数据为空");
         }
+        List<AddressQueryResVo> list = getAddressQueryResVo(kwmAddressList);
+        ExcelUtil.downData(response, AddressQueryExport.class, BeanUtils.copyToList(list, AddressQueryExport.class));
     }
 
     /**

+ 35 - 11
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateApplyService.java

@@ -9,12 +9,14 @@ import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.CooperateStatusEnum;
+import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.excel.utils.EasyExcelUtil;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.manage.dao.KwmCooperateMapper;
 import com.sckw.manage.dao.KwmCooperateTypeMapper;
 import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
@@ -22,6 +24,8 @@ import com.sckw.manage.model.dto.res.CooperateManageQueryResDto;
 import com.sckw.manage.model.dto.res.CooperateQueryDto;
 import com.sckw.manage.model.entity.KwmCooperate;
 import com.sckw.manage.model.entity.KwmCooperateType;
+import com.sckw.manage.model.report.AddressQueryExport;
+import com.sckw.manage.model.report.CooperateManageExport;
 import com.sckw.manage.model.vo.req.CooperateApplyQueryReqVo;
 import com.sckw.manage.model.vo.req.CooperateApproveReqVo;
 import com.sckw.manage.model.vo.req.IdsReqVo;
@@ -33,6 +37,7 @@ import com.sckw.stream.model.UserInfo;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -550,22 +555,41 @@ public class KwmCooperateApplyService {
      * @author: czh
      * @date: 2023/7/11
      */
-    public void export(CooperateApplyQueryReqVo reqVo) {
+    public void export(CooperateApplyQueryReqVo reqVo, HttpServletResponse response) {
         CooperateManageQueryReqDto reqDto = buildQueryParam(reqVo);
         List<CooperateManageQueryResDto> list = kwmCooperateMapper.findList(reqDto);
         if (CollectionUtils.isEmpty(list)) {
-            return;
+            throw new SystemException("导出数据为空");
         }
+
         List<CooperateManageQueryResVo> cooperateManageQueryResVos = getCooperateManageQueryResVos(list);
-        if (CollectionUtils.isEmpty(cooperateManageQueryResVos)) {
-            return;
-        }
-        try {
-            EasyExcelUtil.writeSingleExcel("合作申请.xlsx", "sheet1", cooperateManageQueryResVos, CooperateManageQueryResVo.class);
-        } catch (IOException e) {
-            log.error("导出失败:", e);
-            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
-        }
+        List<CooperateManageExport> result = new ArrayList<>();
+        cooperateManageQueryResVos.forEach(item -> {
+            CooperateManageExport cooperateManageExport = new CooperateManageExport();
+            BeanUtils.copyProperties(item, cooperateManageExport);
+            cooperateManageExport.setStatus(CooperateStatusEnum.getName(item.getStatus()));
+            cooperateManageExport.setApplyType(item.getApplyTypeCode().equals(1) ? "我方发起" : "对方发起");
+
+            String cooperateTypes = item.getCooperateTypes();
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.SUPPLIER.getCode()))) {
+                cooperateManageExport.setEnt1("是");
+            }
+
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.PURCHASER.getCode()))) {
+                cooperateManageExport.setEnt2("是");
+            }
+
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.CONSIGN.getCode()))) {
+                cooperateManageExport.setEnt3("是");
+            }
+
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.CARRIAGE.getCode()))) {
+                cooperateManageExport.setEnt4("是");
+            }
+            result.add(cooperateManageExport);
+        });
+
+        ExcelUtil.downData(response, CooperateManageExport.class, result);
     }
 
 

+ 31 - 11
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -9,6 +9,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.CooperateStatusEnum;
+import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
@@ -19,12 +20,14 @@ import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.EasyExcelUtil;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.manage.dao.KwmCooperateMapper;
 import com.sckw.manage.dao.KwmCooperateTypeMapper;
 import com.sckw.manage.model.dto.req.CooperateManageQueryReqDto;
 import com.sckw.manage.model.dto.res.CooperateManageQueryResDto;
 import com.sckw.manage.model.entity.KwmCooperate;
 import com.sckw.manage.model.entity.KwmCooperateType;
+import com.sckw.manage.model.report.CooperateManageExport;
 import com.sckw.manage.model.vo.req.BindManagerReqVo;
 import com.sckw.manage.model.vo.req.CooperateManageQueryReqVo;
 import com.sckw.manage.model.vo.req.FindCooperateByEntReqVo;
@@ -38,6 +41,7 @@ import com.sckw.order.api.dubbo.TradeOrderInfoService;
 import com.sckw.transport.api.dubbo.TransportDubboService;
 import com.sckw.payment.api.dubbo.PaymentDubboService;
 import com.sckw.system.api.model.dto.res.EntCacheResDto;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -339,23 +343,39 @@ public class KwmCooperateManageService {
      * @author: czh
      * @date: 2023/7/11
      */
-    public void export(CooperateManageQueryReqVo reqVo) {
+    public void export(CooperateManageQueryReqVo reqVo, HttpServletResponse response) {
         CooperateManageQueryReqDto reqDto = buildQueryParam(reqVo);
         List<CooperateManageQueryResDto> list = kwmCooperateMapper.findManageList(reqDto);
         if (CollectionUtils.isEmpty(list)) {
-            return;
+            throw new SystemException("导出数据为空");
         }
         List<CooperateManageQueryResVo> cooperateManageQueryResVos = commonBusinessService.getCooperateManageQueryResVos(list);
-        if (CollectionUtils.isEmpty(cooperateManageQueryResVos)) {
-            return;
-        }
+        List<CooperateManageExport> result = new ArrayList<>();
+        cooperateManageQueryResVos.forEach(item -> {
+            CooperateManageExport cooperateManageExport = new CooperateManageExport();
+            BeanUtils.copyProperties(item, cooperateManageExport);
+            cooperateManageExport.setStatus(CooperateStatusEnum.getName(item.getStatus()));
+            cooperateManageExport.setApplyType(item.getApplyTypeCode().equals(1) ? "我方发起" : "对方发起");
+            String cooperateTypes = item.getCooperateTypes();
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.SUPPLIER.getCode()))) {
+                cooperateManageExport.setEnt1("是");
+            }
 
-        try {
-            EasyExcelUtil.writeSingleExcel("合作管理.xlsx", "sheet1", cooperateManageQueryResVos, CooperateManageQueryResVo.class);
-        } catch (IOException e) {
-            log.error("导出失败:", e);
-            throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
-        }
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.PURCHASER.getCode()))) {
+                cooperateManageExport.setEnt2("是");
+            }
+
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.CONSIGN.getCode()))) {
+                cooperateManageExport.setEnt3("是");
+            }
+
+            if (cooperateTypes.contains(String.valueOf(CooperateTypeEnum.CARRIAGE.getCode()))) {
+                cooperateManageExport.setEnt4("是");
+            }
+
+            result.add(cooperateManageExport);
+        });
+        ExcelUtil.downData(response, CooperateManageExport.class, result);
     }
 
     /**

+ 3 - 2
sckw-modules/sckw-product/src/main/java/com/sckw/product/controller/operation/GoodsManagerController.java

@@ -5,6 +5,7 @@ import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.product.model.GoodsListExport;
+import com.sckw.product.model.OperationGoodsListExport;
 import com.sckw.product.model.vo.req.ExportStatisticGoodsListParam;
 import com.sckw.product.model.vo.req.SelectGoodsListParam;
 import com.sckw.product.model.vo.req.SelectOperationGoodsListParam;
@@ -78,10 +79,10 @@ public class GoodsManagerController {
      */
     @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
     public void export(@RequestBody ExportStatisticGoodsListParam params, HttpServletResponse response) {
-        List<GoodsListExport> list = goodsManagerService.export(params);
+        List<OperationGoodsListExport> list = goodsManagerService.export(params);
         if (CollectionUtils.isEmpty(list)) {
             throw new BusinessException("导出数据为空!");
         }
-        ExcelUtil.downData(response, GoodsListExport.class, list);
+        ExcelUtil.downData(response, OperationGoodsListExport.class, list);
     }
 }

+ 97 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/OperationGoodsListExport.java

@@ -0,0 +1,97 @@
+package com.sckw.product.model;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.sckw.excel.annotation.ExcelContext;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @desc: 商品列表导出对象
+ * @author: yzc
+ * @date: 2023-07-06 9:15
+ */
+@Data
+@Accessors(chain = true)
+@ExcelContext(fileName = "商品列表信息", sheetName = "商品列表信息")
+public class OperationGoodsListExport{
+
+    @Serial
+    private static final long serialVersionUID = 6833195135537265912L;
+
+    @ExcelProperty(value = "序号" )
+    private String serialNumber;
+
+    @ExcelProperty(value = "上架状态")
+    private String statusLabel;
+
+    @ExcelProperty(value = "商品编号")
+    private String code;
+
+    @ExcelProperty(value = "商品名称")
+    private String name;
+
+    @ExcelProperty(value = "商品类别")
+    private String goodsTypeLabel;
+
+    @ExcelProperty(value = "计量单位")
+    private String unitLabel;
+
+    @ExcelProperty(value = "规格尺寸")
+    private String spec;
+
+    @ExcelProperty(value = "发票税率")
+    private String taxRateLabel;
+
+    @ExcelProperty(value = "库存数量")
+    private String amount;
+
+    @ExcelProperty(value = "是否预付限额")
+    private String prepaidLimitLabel;
+
+    @ExcelProperty(value = "预付款最低限额")
+    private String advancePrice;
+
+    @ExcelProperty(value = "最低单价")
+    private String highestPrice;
+
+    @ExcelProperty(value = "最高单价")
+    private String lowestPrice;
+
+    @ExcelProperty(value = "仓储地址")
+    private String address;
+
+    @ExcelProperty(value = "客户经理")
+    private String manageName;
+
+    @ExcelProperty(value = "联系电话")
+    private String phone;
+
+    @ExcelProperty(value = "上架时间")
+    private String addedTime;
+
+    @ExcelProperty(value = "下架时间")
+    private String shelfTime;
+
+    @ExcelProperty(value = "供应企业")
+    private String supplyEnt;
+
+    @ExcelProperty(value = "创建人")
+    private String createByName;
+
+    @ExcelProperty(value = "创建时间")
+    private String createTime;
+
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+
+
+
+
+
+
+}

+ 168 - 0
sckw-modules/sckw-product/src/main/java/com/sckw/product/model/vo/res/OperationGoodsList.java

@@ -0,0 +1,168 @@
+package com.sckw.product.model.vo.res;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @desc: 运营端商品列表
+ * @author: lt
+ * @date: 2023-09-14 11:54
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+public class OperationGoodsList{
+
+    /**
+     * 商品id
+     */
+    private Long id;
+
+    /**
+     * 商品编号
+     */
+    private Long code;
+
+
+    /**
+     * 状态:0草稿/1上架/2下架
+     */
+    private Integer status;
+
+    /**
+     * 状态label
+     */
+    private String statusLabel;
+
+    /**
+     * 商品名称
+     */
+    private String name;
+
+    /**
+     * 商品缩略图
+     */
+    private String thumb;
+
+    /**
+     * 商品类型
+     */
+    private String goodsType;
+
+    /**
+     * 商品类型Label
+     */
+    private String goodsTypeLabel;
+
+    /**
+     * 计量单位(吨、方、件、箱、其他)
+     */
+    private String unit;
+
+    /**
+     * 计量单位lab
+     */
+    private String unitLabel;
+
+    /**
+     * 尺寸大小
+     */
+    private String spec;
+
+    /**
+     * 发票税率(%)
+     */
+    private String taxRate;
+
+    /**
+     * 发票税率label
+     */
+    private String taxRateLabel;
+
+    /**
+     * 库存数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 是否设置预付限额0否1是
+     */
+    private Integer prepaidLimit;
+
+    /**
+     * 是否设置预付限额label
+     */
+    private String prepaidLimitLabel;
+
+    /**
+     * 预付款最低限额
+     */
+    private BigDecimal advancePrice;
+
+    /**
+     * 最高单价
+     */
+    private BigDecimal highestPrice;
+
+    /**
+     * 最低单价
+     */
+    private BigDecimal lowestPrice;
+
+    /**
+     * 仓储地址
+     */
+    private String address;
+
+    /**
+     * 客户经理
+     */
+    private String manageName;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 上架时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date addedTime;
+
+    /**
+     * 下架时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date shelfTime;
+
+    /**
+     * 供应企业
+     */
+    private String supplyEnt;
+
+    /**
+     * 创建人
+     */
+    private String createByName;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 23 - 51
sckw-modules/sckw-product/src/main/java/com/sckw/product/service/operation/GoodsManagerService.java

@@ -76,7 +76,7 @@ public class GoodsManagerService {
         if (CollectionUtils.isEmpty(list)) {
             return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), Collections.emptyList());
         }
-        List<GoodsList> result = buildGoodLists(list);
+        List<OperationGoodsList> result = buildGoodLists(list);
         return PageResult.build(params.getPage(), params.getPageSize(), goodsIpage.getTotal(), result);
     }
 
@@ -100,6 +100,8 @@ public class GoodsManagerService {
             if (Objects.nonNull(params.getEndCreateTime())) {
                 wrapper.le(KwpGoods::getCreateTime, params.getEndCreateTime());
             }
+            //运营端不需要显示草稿数据
+            wrapper.ne(KwpGoods::getStatus, 0);
             wrapper.eq(Objects.nonNull(params.getSupplyEntId()), KwpGoods::getSupplyEntId, params.getSupplyEntId())
                     .eq(Objects.nonNull(params.getPrepaidLimit()), KwpGoods::getPrepaidLimit, params.getPrepaidLimit())
                     .eq(Objects.nonNull(params.getStatus()), KwpGoods::getStatus, params.getStatus());
@@ -134,8 +136,8 @@ public class GoodsManagerService {
      * @Param list:
      * @return: java.util.List<com.sckw.product.model.vo.res.GoodsList>
      */
-    private List<GoodsList> buildGoodLists(List<KwpGoods> list) {
-        List<GoodsList> result = new ArrayList<>(list.size());
+    private List<OperationGoodsList> buildGoodLists(List<KwpGoods> list) {
+        List<OperationGoodsList> result = new ArrayList<>(list.size());
         List<Long> goodsIds = new ArrayList<>(list.size());
         List<Long> supplyEntIds = new ArrayList<>(list.size());
         List<Long> userIds = new ArrayList<>();
@@ -167,13 +169,13 @@ public class GoodsManagerService {
         Map<Long, String> entMap = entList.stream().collect(Collectors.toMap(EntCacheResDto::getId, EntCacheResDto::getFirmName, (k1, k2) -> k1));
         list.forEach(e -> {
             Long id = e.getId();
-            GoodsList goodsList = BeanUtils.copyProperties(e, GoodsList.class);
+            OperationGoodsList operationGoodsList = BeanUtils.copyProperties(e, OperationGoodsList.class);
             UserCacheResDto manager = userMap.get(e.getManager());
             UserCacheResDto createUser = userMap.get(e.getCreateBy());
-            goodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(goodsList.getStatus())))
-                    .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), goodsList.getGoodsType()))
-                    .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), goodsList.getUnit()))
-                    .setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), goodsList.getTaxRate()))
+            operationGoodsList.setStatusLabel(DictEnum.getLabel(DictTypeEnum.GOODS_STATUS.getType(), String.valueOf(operationGoodsList.getStatus())))
+                    .setGoodsTypeLabel(DictEnum.getLabel(DictTypeEnum.PRODUCT_NAME_TYPE.getType(), operationGoodsList.getGoodsType()))
+                    .setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), operationGoodsList.getUnit()))
+                    .setTaxRateLabel(DictEnum.getLabel(DictTypeEnum.TAX_RATE.getType(), operationGoodsList.getTaxRate()))
                     .setPrepaidLimitLabel(Objects.equals(e.getPrepaidLimit(), 1) ? "是" : "否")
                     .setAddress(addressMap.get(id)).setSupplyEnt(entMap.get(e.getSupplyEntId()))
                     .setManageName(Objects.nonNull(manager) ? manager.getName() : null)
@@ -181,46 +183,13 @@ public class GoodsManagerService {
                     .setCreateByName(Objects.nonNull(createUser) ? createUser.getName() : null);
             List<KwpGoodsPriceRange> priceRanges = priceRangeMap.get(id);
             if (CollectionUtils.isNotEmpty(priceRanges)) {
-                goodsList.setHighestPrice(priceRanges.get(priceRanges.size() - 1).getPrice()).setLowestPrice(priceRanges.get(0).getPrice());
+                operationGoodsList.setHighestPrice(priceRanges.get(priceRanges.size() - 1).getPrice()).setLowestPrice(priceRanges.get(0).getPrice());
             }
-            result.add(goodsList);
+            result.add(operationGoodsList);
         });
         return result;
     }
 
-
-
-    /**
-     * @desc: 获取商品详情
-     * @author: lt
-     * @date: 2023-09-14 14:28
-     * @Param id:
-     * @return: com.sckw.product.model.vo.res.GoodsDetail
-     */
-    public OperationGoodsDetail getDetail(Long id) {
-        OperationGoodsDetail detail = detail(id);
-        LambdaQueryWrapper<KwpGoods> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(KwpGoods::getGoodsType, detail.getGoodsType()).eq(KwpGoods::getStatus, GoodsStatusEnum.PUT_ON_SHELVES.getCode())
-                .eq(KwpGoods::getDelFlag, Global.NO).ne(KwpGoods::getId, id).last("LIMIT 4");
-        List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        if (CollectionUtils.isEmpty(list)) {
-            return detail;
-        }
-        List<Long> goodsIds = list.stream().map(KwpGoods::getId).toList();
-        Map<Long, List<KwpGoodsPriceRange>> map = kwpGoodsPriceRangeService.getByGoodsIds(goodsIds).stream()
-                .collect(Collectors.groupingBy(KwpGoodsPriceRange::getGoodsId));
-        List<RecommendGoods> recommendGoodsList = new ArrayList<>();
-        list.forEach(e -> {
-            RecommendGoods recommendGoods = BeanUtils.copyProperties(e, RecommendGoods.class);
-            List<KwpGoodsPriceRange> prices = map.get(recommendGoods.getId());
-            recommendGoods.setUnitLabel(DictEnum.getLabel(DictTypeEnum.UNIT_TYPE.getType(), recommendGoods.getUnit()))
-                    .setPrice(CollectionUtils.isNotEmpty(prices) ? prices.get(0).getPrice() : null);
-            recommendGoodsList.add(recommendGoods);
-        });
-        detail.setRecommendGoodsList(recommendGoodsList);
-        return detail;
-    }
-
     /**
      * @desc: 获取商品详情
      * @author: lt
@@ -228,7 +197,7 @@ public class GoodsManagerService {
      * @Param id:
      * @return: com.sckw.product.model.vo.res.GoodsDetail
      */
-    public OperationGoodsDetail detail(Long id) {
+    public OperationGoodsDetail getDetail(Long id) {
         KwpGoods goods = kwpGoodsMapper.selectById(id);
         if (Objects.isNull(goods)) {
             throw new BusinessException("当前商品不存在!");
@@ -302,28 +271,31 @@ public class GoodsManagerService {
         });
         TableBottom tableBottom = new TableBottom();
         tableBottom.setTotal(CollectionUtils.isEmpty(goodsList) ? 0 : goodsList.size());
-        res.setTableTops(tableTops).setTableBottom(tableBottom);
+        List<TableTop> filteredTableTops = tableTops.stream()
+                .filter(tableTop -> !tableTop.getName().equals("已保存"))
+                .collect(Collectors.toList());
+        res.setTableTops(filteredTableTops).setTableBottom(tableBottom);
         return res;
     }
 
     /**
      * @desc: 导出
-     * @author: yzc
-     * @date: 2023-07-06 9:07
+     * @author: lt
+     * @date: 2023-09-14 17:56
      * @Param params:
      * @return: void
      */
-    public List<GoodsListExport> export(ExportStatisticGoodsListParam params) {
+    public List<OperationGoodsListExport> export(ExportStatisticGoodsListParam params) {
         LambdaQueryWrapper<KwpGoods> wrapper = buildWrapper(params);
         List<KwpGoods> list = kwpGoodsMapper.selectList(wrapper);
-        List<GoodsList> goodsLists = buildGoodLists(list);
+        List<OperationGoodsList> goodsLists = buildGoodLists(list);
         if (CollectionUtils.isEmpty(goodsLists)) {
             return Collections.emptyList();
         }
-        List<GoodsListExport> result = new ArrayList<>();
+        List<OperationGoodsListExport> result = new ArrayList<>();
         AtomicInteger i = new AtomicInteger(1);
         goodsLists.forEach(e -> {
-            GoodsListExport export = BeanUtils.copyProperties(e, GoodsListExport.class);
+            OperationGoodsListExport export = BeanUtils.copyProperties(e, OperationGoodsListExport.class);
             export.setSerialNumber(String.valueOf(i.getAndIncrement()))
                     .setAmount(Objects.isNull(e.getAmount()) ? null : String.valueOf(e.getAmount()))
                     .setHighestPrice(Objects.isNull(e.getHighestPrice()) ? null : String.valueOf(e.getHighestPrice()))

+ 4 - 0
sckw-modules/sckw-system/pom.xml

@@ -71,6 +71,10 @@
             <groupId>com.sckw</groupId>
             <artifactId>sckw-transport-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.sckw</groupId>
+            <artifactId>sckw-common-excel</artifactId>
+        </dependency>
 
     </dependencies>
     <build>

+ 12 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsEnterpriseController.java

@@ -261,4 +261,16 @@ public class KwsEnterpriseController {
         return HttpResult.ok(kwsEntService.queryOtherEnt(reqVo.getId()));
     }
 
+    /**
+     * @param reqVo 查询
+     * @return  HttpResult
+     * @desc: 客户列表分组个数
+     * @author: czh
+     * @date: 2023/9/14
+     */
+    @PostMapping("queryCustomerGroup")
+    public HttpResult queryCustomer(@RequestBody EntFindPageReqVo reqVo) {
+        return HttpResult.ok(kwsEntService.queryCustomerGroup(reqVo));
+    }
+
 }

+ 8 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsRoleController.java

@@ -6,8 +6,10 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.system.model.vo.req.EditRoleReqVo;
 import com.sckw.system.model.vo.req.UserBindRoleReqVo;
 import com.sckw.system.service.KwsRoleService;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import java.util.HashMap;
 
@@ -98,4 +100,10 @@ public class KwsRoleController {
         kwsRoleService.userBindRole(reqVo);
         return HttpResult.ok(HttpStatus.MSG_010);
     }
+
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@RequestBody HashMap params, HttpServletResponse response) {
+        kwsRoleService.export(params, response);
+    }
+
 }

+ 16 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/controller/KwsUserController.java

@@ -20,8 +20,10 @@ import com.sckw.system.model.vo.req.ResetPasswordReqVo;
 import com.sckw.system.model.vo.req.UserAddReqVo;
 import com.sckw.system.model.vo.res.KwsUserResVo;
 import com.sckw.system.service.KwsUserService;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Arrays;
@@ -63,7 +65,6 @@ public class KwsUserController {
     public HttpResult findPage(@RequestBody HashMap params) {
         // 设置分页参数
         PageHelper.startPage(PageResult.getPage(params), PageResult.getPageSize(params));
-        params.put("entId", LoginUserHolder.getEntId());
         List<KwsUserResVo> list = kwsUserService.findPage(params);
         PageResult pageResult = PageHelperUtil.getPageResult(new PageInfo<>(list));
         return HttpResult.ok(pageResult);
@@ -208,6 +209,20 @@ public class KwsUserController {
         return HttpResult.ok(HttpStatus.MSG_005);
     }
 
+
+    /**
+     * @param reqVo 查询入参
+     * @desc: 导出
+     * @author: czh
+     * @date: 2023/7/11
+     */
+    @PostMapping(value = "export", produces = MediaType.APPLICATION_JSON_VALUE)
+    public void export(@RequestBody HashMap params, HttpServletResponse response) {
+        kwsUserService.export(params, response);
+    }
+
+
+
     @PostMapping("testEdit")
     public HttpResult testEdit(@RequestParam String type) {
         return HttpResult.ok(kwsUserService.test(Arrays.stream(type.split(",")).map(Integer::parseInt).toList()));

+ 3 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteBaseService.java

@@ -236,6 +236,9 @@ public class RemoteBaseService {
      */
     public KwsUser queryManageByEntId(Long entId) {
         FindManagePojo manageInfoByEntId = kwsEnterpriseDao.findManageInfoByEntId(entId);
+        if (Objects.isNull(manageInfoByEntId)) {
+            return null;
+        }
         return kwsUserService.selectByKey(manageInfoByEntId.getUserId());
     }
 }

+ 11 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindEntListPojo.java

@@ -202,4 +202,15 @@ public class FindEntListPojo {
      * 状态中文
      */
     private String statusName;
+
+    /**
+     * 母企业id
+     */
+    private Long pid;
+
+    /**
+     * 母企业名
+     */
+    private String pEntName;
+
 }

+ 40 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/report/KwsRoleExcel.java

@@ -0,0 +1,40 @@
+package com.sckw.system.model.report;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.sckw.core.utils.LongToStringUtils;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 角色
+ * @date 2023/9/14
+ */
+@Data
+public class KwsRoleExcel implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -3981621106754243351L;
+
+    @ExcelProperty(value = "岗位名称")
+    private String name;
+
+    @ExcelProperty(value = "创建人")
+    private String createBy;
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ExcelProperty(value = "创建时间")
+    private Date createTime;
+
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ExcelProperty(value = "更新时间")
+    private Date updateTime;
+
+    @ExcelProperty(value = "备注")
+    private String remark;
+}

+ 51 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/report/KwsUserExcel.java

@@ -0,0 +1,51 @@
+package com.sckw.system.model.report;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author czh
+ * @desc 用户导出
+ * @date 2023/9/14
+ */
+@Data
+public class KwsUserExcel implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -2268347072252833277L;
+
+    @ExcelProperty(value = "状态")
+    private String status;
+
+    @ExcelProperty(value = "姓名")
+    private String name;
+
+    @ExcelProperty(value = "账号")
+    private String account;
+
+    @ExcelProperty(value = "岗位角色")
+    private String roleName;
+
+    @ExcelProperty(value = "所属机构")
+    private String deptName;
+
+    @ExcelProperty(value = "创建人")
+    private String createByName;
+
+    @ExcelProperty(value = "创建时间")
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ExcelProperty(value = "更新时间")
+    @JsonFormat(locale="zh", pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+}

+ 20 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/EntFindPageResVo.java

@@ -1,8 +1,10 @@
 package com.sckw.system.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.Serial;
 import java.io.Serializable;
@@ -43,6 +45,8 @@ public class EntFindPageResVo implements Serializable {
     /**
      * 注册时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date regTime;
 
     /**
@@ -53,6 +57,8 @@ public class EntFindPageResVo implements Serializable {
     /**
      * 审批时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date approvalTime;
 
     /**
@@ -68,6 +74,8 @@ public class EntFindPageResVo implements Serializable {
     /**
      * 修改时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
     /**
@@ -108,5 +116,17 @@ public class EntFindPageResVo implements Serializable {
     /**
      * 创建时间
      */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
+
+    /**
+     * 母企业id
+     */
+    private Long pid;
+
+    /**
+     * 母企业名
+     */
+    private String pEntName;
 }

+ 2 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/KwsUserResVo.java

@@ -99,7 +99,7 @@ public class KwsUserResVo implements Serializable {
     private String deptName;
 
     /**
-     * 机构
+     * 岗位
      */
     private String roleName;
 
@@ -114,7 +114,7 @@ public class KwsUserResVo implements Serializable {
     private String createByName;
 
     /**
-     * 修改时间
+     * 创建时间
      */
     private Date createTime;
 

+ 34 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/QueryCustomerResVo.java

@@ -0,0 +1,34 @@
+package com.sckw.system.model.vo.res;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author czh
+ * @desc 客户列表入参
+ * @date 2023/9/14
+ */
+@Data
+public class QueryCustomerResVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 8423246495675260245L;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 状态名
+     */
+    private String statusName;
+
+    /**
+     * 个数
+     */
+    private Integer cnt;
+
+}

+ 43 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -1,5 +1,4 @@
 package com.sckw.system.service;
-import com.google.common.collect.Lists;
 import java.util.Date;
 
 import cn.hutool.core.date.DateUtil;
@@ -17,7 +16,6 @@ import com.sckw.core.web.model.EntCertificateInfo;
 import com.sckw.stream.enums.MessageEnum;
 import com.sckw.stream.model.UserInfo;
 import com.sckw.system.api.model.dto.req.RegisterReqDto;
-import com.sckw.system.api.model.dto.res.REnterpriseVo;
 import com.sckw.system.api.model.dto.res.*;
 import com.sckw.system.dao.*;
 import com.sckw.system.dubbo.RemoteSystemServiceImpl;
@@ -132,6 +130,12 @@ public class KwsEnterpriseService {
         kwsRoleService.deleteByDeptIds(list);
     }
 
+    public static void main(String[] args) {
+        Long l1 = 1234L;
+        Long l2 = 1234L;
+        System.out.println(l1.equals(l2));
+    }
+
     /**
      * @param reqVo 更新记录入参
      * @desc: 更新记录, 有的是更新有的是新增, 两种情况
@@ -837,6 +841,9 @@ public class KwsEnterpriseService {
         QueryCurrentOrganizationResVo queryCurrentOrganizationResVo = new QueryCurrentOrganizationResVo();
         queryCurrentOrganizationResVo.setEntId(entCacheResDto.getId());
         queryCurrentOrganizationResVo.setEntName(entCacheResDto.getFirmName());
+        queryCurrentOrganizationResVo.setContactsId(entCacheResDto.getContactsId());
+        queryCurrentOrganizationResVo.setContacts(entCacheResDto.getContacts());
+        queryCurrentOrganizationResVo.setPhone(entCacheResDto.getPhone());
         list.add(queryCurrentOrganizationResVo);
 
         List<KwsEntDept> kwsEntDepts = kwsEntDeptDao.selectByEntPid(entId);
@@ -1061,4 +1068,38 @@ public class KwsEnterpriseService {
     public List<KwsEnterprise> queryEntInfoByCityCodeAndEntTypesWithPage(Integer cityCode, List<Integer> entTypeList, List<Long> entIdList, String entName) {
         return kwsEnterpriseDao.queryEntInfoByCityCodeAndEntTypesWithPage(cityCode, entTypeList, entIdList, entName);
     }
+
+
+    /**
+     * @param reqVo 查询
+     * @return QueryCustomerResVo
+     * @desc: 客户列表分组个数
+     * @author: czh
+     * @date: 2023/9/14
+     */
+    public List<QueryCustomerResVo> queryCustomerGroup(EntFindPageReqVo reqVo) {
+        List<FindEntListPojo> list = findPojo(reqVo);
+        List<QueryCustomerResVo> result = new ArrayList<>();
+        Map<Integer, List<FindEntListPojo>> collect = list.stream().collect(Collectors.groupingBy(FindEntListPojo::getStatus));
+
+        List<FindEntListPojo> findEntListPojos1 = collect.get(Global.NO);
+        QueryCustomerResVo queryCustomerResVo1 = new QueryCustomerResVo();
+        queryCustomerResVo1.setStatus(Global.NO);
+        queryCustomerResVo1.setStatusName("正常");
+        queryCustomerResVo1.setCnt(CollectionUtils.isEmpty(findEntListPojos1) ? 0 : findEntListPojos1.size());
+
+        List<FindEntListPojo> findEntListPojos2 = collect.get(Global.YES);
+        QueryCustomerResVo queryCustomerResVo2 = new QueryCustomerResVo();
+        queryCustomerResVo2.setStatus(Global.YES);
+        queryCustomerResVo2.setStatusName("冻结");
+        queryCustomerResVo2.setCnt(CollectionUtils.isEmpty(findEntListPojos2) ? 0 : findEntListPojos2.size());
+
+        QueryCustomerResVo queryCustomerResVo = new QueryCustomerResVo();
+        queryCustomerResVo.setStatusName("全部");
+        queryCustomerResVo.setCnt(queryCustomerResVo1.getCnt() + queryCustomerResVo2.getCnt());
+        result.add(queryCustomerResVo);
+        result.add(queryCustomerResVo1);
+        result.add(queryCustomerResVo2);
+        return result;
+    }
 }

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

@@ -17,17 +17,21 @@ import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.config.CustomConfig;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.ExcelUtil;
 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.report.KwsRoleExcel;
+import com.sckw.system.model.report.KwsUserExcel;
 import com.sckw.system.model.vo.req.EditRoleReqVo;
 import com.sckw.system.model.vo.req.RoleBindMenuReqVo;
 import com.sckw.system.model.vo.req.UserBindRoleReqVo;
 import com.sckw.system.model.vo.res.IdResVo;
 import com.sckw.system.model.vo.res.KwsMenuResVo;
 import com.sckw.system.model.vo.res.RoleResVo;
+import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -459,9 +463,20 @@ public class KwsRoleService {
 
     }
 
-
     public List<KwsUserRole> findAllByUserId(long userId) {
         return kwsUserRoleDao.findAllByUserId(userId);
     }
 
+
+
+    public void export(HashMap params, HttpServletResponse response) {
+        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)) {
+            throw new SystemException("导出数据为空");
+        }
+        ExcelUtil.downData(response, KwsRoleExcel.class, BeanUtils.copyToList(roleResVos, KwsRoleExcel.class));
+    }
 }

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

@@ -8,6 +8,7 @@ import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.excel.utils.ExcelUtil;
 import com.sckw.redis.constant.RedisConstant;
 import com.sckw.redis.utils.RedissonUtils;
 import com.sckw.system.api.RemoteUserService;
@@ -19,9 +20,11 @@ import com.sckw.system.api.model.dto.res.RegisterResDto;
 import com.sckw.system.dao.*;
 import com.sckw.system.dubbo.RemoteSystemServiceImpl;
 import com.sckw.system.model.*;
+import com.sckw.system.model.report.KwsUserExcel;
 import com.sckw.system.model.vo.req.*;
 import com.sckw.system.model.vo.res.KwsUserResVo;
 import com.sckw.transport.api.dubbo.TransportStatisticsService;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -81,7 +84,7 @@ public class KwsUserService {
      * @author: czh
      * @date: 2023/7/7
      */
-    @Transactional(rollbackFor = Exception.class)
+    @Transactional(rollbackFor = {})
     public void add(UserAddReqVo reqVo) {
         commonService.checkPhone(reqVo.getAccount());
         KwsUser kwsUser = new KwsUser();
@@ -366,6 +369,10 @@ public class KwsUserService {
      * 分页查询
      */
     public List<KwsUserResVo> findPage(Map<String, Object> params) {
+        if (Objects.equals(LoginUserHolder.getSystemType(), SystemTypeEnum.COMPANY.getCode())) {
+            params.put("entId", LoginUserHolder.getEntId());
+        }
+
         return kwsUserDao.findPage(params);
     }
 
@@ -640,4 +647,23 @@ public class KwsUserService {
     public List<KwsUser> queryUserByDeptIds(List<Long> deptIds) {
         return kwsUserDao.selectByDeptIds(deptIds);
     }
+
+
+    public void export(HashMap params, HttpServletResponse response) {
+        List<KwsUserResVo> list = kwsUserDao.findPage(params);
+
+        if (CollectionUtils.isEmpty(list)) {
+            throw new SystemException("导出数据为空");
+        }
+
+        List<KwsUserExcel> result = new ArrayList<>();
+        list.forEach(item -> {
+            KwsUserExcel kwsUserExce = new KwsUserExcel();
+            BeanUtils.copyProperties(item, kwsUserExce);
+            kwsUserExce.setStatus(item.getStatus().equals(Global.NO) ? "正常" : "冻结");
+            result.add(kwsUserExce);
+        });
+        ExcelUtil.downData(response, KwsUserExcel.class, result);
+    }
+    
 }

+ 45 - 42
sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml

@@ -54,45 +54,50 @@
   <select id="findPojo" resultType="com.sckw.system.model.pojo.FindEntListPojo" parameterType="com.sckw.system.model.pojo.FindPojoParam">
     select tab.*,
            case when tab.id in (select ent_id from kws_ent_dep) then '子单位' else '主单位' end entDept,
-           case when tab.status = 0 then '正常' else '冻结' end statusName from
+           case when tab.status = 0 then '正常' else '冻结' end statusName
+    from
     (
-    select a.id,
-    min(a.firm_name) firm_name,
-    min(a.code) code,
-    min(a.contacts) contacts,
-    min(a.phone) phone,
-    min(a.legal_name) legal_name,
-    min(a.legal_phone) legal_phone,
-    min(a.head) head,
-    min(a.integral) integral,
-    min(a.balance) balance,
-    min(a.experience) experience,
-    min(a.member_level) member_level,
-    min(a.reg_time) reg_time,
-    min(a.reg_source) reg_source,
-    min(a.org_code) org_code,
-    min(a.city_code) city_code,
-    min(a.detail_address) detail_address,
-    min(a.lat) lat,
-    min(a.lng) lng,
-    min(a.approval) approval,
-    min(a.approval_time) approval_time,
-    min(a.manager) manager,
-    min(a.remark) remark,
-    min(a.status) status,
-    min(a.create_by) create_by,
-    min(a.create_time) create_time,
-    min(a.update_by) update_by,
-    min(a.update_time) update_time,
-    min(a.del_flag) del_flag,
-    ifnull(GROUP_CONCAT(distinct b.type), '') type,
-    min(k.system_type) system_type,
-    min(k.name) createByName,
-    min(ku.name) updateByName
+          select a.id,
+          min(a.firm_name) firm_name,
+          min(a.code) code,
+          min(a.contacts) contacts,
+          min(a.phone) phone,
+          min(a.legal_name) legal_name,
+          min(a.legal_phone) legal_phone,
+          min(a.head) head,
+          min(a.integral) integral,
+          min(a.balance) balance,
+          min(a.experience) experience,
+          min(a.member_level) member_level,
+          min(a.reg_time) reg_time,
+          min(a.reg_source) reg_source,
+          min(a.org_code) org_code,
+          min(a.city_code) city_code,
+          min(a.detail_address) detail_address,
+          min(a.lat) lat,
+          min(a.lng) lng,
+          min(a.approval) approval,
+          min(a.approval_time) approval_time,
+          min(a.manager) manager,
+          min(a.remark) remark,
+          min(a.status) status,
+          min(a.create_by) create_by,
+          min(a.create_time) create_time,
+          min(a.update_by) update_by,
+          min(a.update_time) update_time,
+          min(a.del_flag) del_flag,
+          ifnull(GROUP_CONCAT(distinct b.type), '') type,
+          min(k.system_type) system_type,
+          min(k.name) createByName,
+          min(ku.name) updateByName,
+          min(d.id) pid,
+          min(d.firm_name) pEntName
     from kws_enterprise a
     left join kws_user k on a.create_by = k.id
     left join kws_user ku on a.update_by = ku.id
     left join kws_ent_type b on a.id = b.ent_id and b.del_flag = 0
+    left join kws_ent_dept c on a.id = c.ent_id
+    left join kws_enterprise d on c.ent_pid = d.id
     <if test="dto.typeList != null and dto.typeList.size() > 0">and b.type in
       <foreach collection="dto.typeList" item="item" open="(" close=")" separator=",">
         #{item}
@@ -111,10 +116,10 @@
       and (a.contacts like concat('%', #{dto.keywords}, '%') or a.phone like concat('%', #{dto.keywords}, '%') or a.firm_name like concat('%', #{dto.keywords}, '%'))
     </if>
     <if test="dto.startTime != null">
-      and a.update_time >= #{dto.startTime}
+      and a.reg_time >= #{dto.startTime}
     </if>
     <if test="dto.endTime != null">
-      and a.update_time &lt;= #{dto.endTime}
+      and a.reg_time &lt;= #{dto.endTime}
     </if>
     <if test="dto.approvalStartTime != null">
       and a.approval_time >= #{dto.approvalStartTime}
@@ -275,15 +280,13 @@
   </select>
 
   <select id="checkEntRepeat" resultType="com.sckw.system.model.KwsEnterprise">
-    select * from kws_enterprise where (
-        1 = 1
-        <if test="entName != null and entName != ''">
-          or firm_name = #{entName}
-        </if>
+    select * from kws_enterprise where  (
+          firm_name = #{entName}
         <if test="phone != null and phone != ''">
           or phone = #{phone}
         </if>
-         ) and del_flag = 0 and approval in (1,3,4)
+         )
+        and del_flag = 0 and approval in (1,3,4)
   </select>
 
   <select id="selectAllByKeys" resultType="com.sckw.system.model.KwsEnterprise">

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

@@ -161,6 +161,11 @@
     <if test="endTime != null and endTime != ''" >
       and sr.create_time &lt; date_add(#{endTime}, INTERVAL 1 DAY)
     </if>
+    <if test="idList != null and idList.size() > 0">
+      <foreach collection="idList" item="item" open="(" close=")" separator=",">
+        #{item}
+      </foreach>
+    </if>
     ORDER BY sr.create_time desc
   </select>
 

+ 6 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsUserDao.xml

@@ -240,6 +240,12 @@
     <if test="systemType != null and systemType != ''">
       and su.system_type = #{systemType, jdbcType=VARCHAR}
     </if>
+    <if test="idList != null and idList.size() > 0">
+      and su.id in
+      <foreach collection="idList" item="item" open="(" close=")" separator=",">
+        #{item}
+      </foreach>
+    </if>
     <if test="account != null and account != ''">
       and su.account = #{account, jdbcType=VARCHAR}
     </if>