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

Merge branch 'dev' into dev-xcq

xucaiqin 2 лет назад
Родитель
Сommit
bc819202b6
37 измененных файлов с 773 добавлено и 108 удалено
  1. 1 0
      sckw-auth/src/main/java/com/sckw/auth/service/impl/AuthServiceImpl.java
  2. 9 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/context/LoginUserHolder.java
  3. 5 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/model/LoginUserInfo.java
  4. 1 1
      sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/KwsEnterpriseResDto.java
  5. 64 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCarrierController.java
  6. 18 2
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/controller/KwcCheckedController.java
  7. 2 1
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsMapper.java
  8. 50 0
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/req/QueryListReqDto.java
  9. 3 2
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ContractLogisticsReqVo.java
  10. 4 5
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java
  11. 2 1
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryListResVo.java
  12. 42 34
      sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java
  13. 10 1
      sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml
  14. 0 2
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApplyQueryReqVo.java
  15. 0 2
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateManageQueryReqVo.java
  16. 6 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java
  17. 1 0
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java
  18. 19 2
      sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java
  19. 6 2
      sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml
  20. 1 14
      sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwTransportController.java
  21. 1 1
      sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java
  22. 1 2
      sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java
  23. 5 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/pojo/FindEntListPojo.java
  24. 10 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/EntFindPageResVo.java
  25. 16 0
      sckw-modules/sckw-system/src/main/java/com/sckw/system/model/vo/res/KwsUserResVo.java
  26. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java
  27. 1 1
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java
  28. 3 1
      sckw-modules/sckw-system/src/main/resources/mapper/KwsEnterpriseDao.xml
  29. 3 1
      sckw-modules/sckw-system/src/main/resources/mapper/KwsUserDao.xml
  30. 16 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/DriverController.java
  31. 18 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java
  32. 1 1
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/DocumentParamDTO.java
  33. 256 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java
  34. 1 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java
  35. 133 5
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java
  36. 2 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  37. 61 23
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

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

@@ -276,6 +276,7 @@ public class AuthServiceImpl implements IAuthService {
             EntInfoResVo entInfo = loginResVo.getEntInfo();
             if (!Objects.isNull(entInfo)) {
                 loginUserInfo.setEntId(entInfo.getId());
+                loginUserInfo.setEntName(entInfo.getFirmName());
                 List<DeptInfoResVo> deptInfo = entInfo.getDeptInfo();
                 if (!CollectionUtils.isEmpty(deptInfo)) {
                     loginUserInfo.setDeptIds(String.join(",", deptInfo.stream().map(item -> String.valueOf(item.getId())).toList()));

+ 9 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/context/LoginUserHolder.java

@@ -110,6 +110,15 @@ public class LoginUserHolder {
         return LONGIN_USER_HOLDER.get() == null ? null : LONGIN_USER_HOLDER.get().getEntId();
     }
 
+    /**
+     * 用户所属企业
+     * @author zhaokang
+     * @Date 2020/04/13 0021
+     */
+    public static String getEntName(){
+        return LONGIN_USER_HOLDER.get() == null ? null : LONGIN_USER_HOLDER.get().getEntName();
+    }
+
     /**
      * 用户登录终端
      * @author zhaokang

+ 5 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/web/model/LoginUserInfo.java

@@ -50,6 +50,11 @@ public class LoginUserInfo {
      */
     private String deptIds;
 
+    /**
+     * 企业名
+     */
+    private String entName;
+
 
     public LoginUserInfo() {
     }

+ 1 - 1
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/KwsEnterpriseResDto.java

@@ -160,6 +160,6 @@ public class KwsEnterpriseResDto implements Serializable {
     /**
      * 专属客户经理(用户ID)
      */
-    private long manager;
+    private Long manager;
 
 }

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

@@ -0,0 +1,64 @@
+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.validation.Valid;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * @author czh
+ * @desc 承运合同
+ * @date 2023/7/18
+ */
+@RestController
+@RequestMapping("kwcCarrier")
+public class KwcCarrierController {
+
+    @Autowired
+    private KwcContractLogisticsService kwcContractLogisticsService;
+
+    /**
+     * @desc 分页查询
+     * @param reqVo 分页入参
+     * @author czh
+     * @date 2023/7/17
+     * @return HttpResult
+     */
+    @RequestMapping("queryListByPage")
+    public HttpResult queryListByPage(@RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS4.getCode());
+        return HttpResult.ok(kwcContractLogisticsService.queryListByPage(reqVo));
+    }
+
+    /**
+     * @desc: 合同详情
+     * @param reqVo id
+     * @author: czh
+     * @date 2023/7/16
+     * @return HttpResult
+     */
+    @PostMapping("detail")
+    public HttpResult detail(@Valid @RequestBody IdReqVo reqVo) throws SystemException {
+        return HttpResult.ok(kwcContractLogisticsService.detail(reqVo.getId()));
+    }
+
+    /**
+     * @desc: 导出
+     * @param reqVo 查询入参
+     * @author: czh
+     * @date 2023/7/17
+     */
+    @PostMapping("export")
+    public void export(@Valid @RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS4.getCode());
+        kwcContractLogisticsService.export(reqVo);
+    }
+}

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

@@ -6,6 +6,7 @@ import com.sckw.contract.model.vo.req.IdsReqVo;
 import com.sckw.contract.model.vo.req.QueryListReqVo;
 import com.sckw.contract.service.*;
 import com.sckw.core.exception.SystemException;
+import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
 import jakarta.validation.Valid;
@@ -35,7 +36,8 @@ public class KwcCheckedController {
      * @return HttpResult
      */
     @RequestMapping("queryListByPage")
-    public HttpResult queryListByPage(@Valid @RequestBody QueryListReqVo reqVo) throws SystemException {
+    public HttpResult queryListByPage(@RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS3.getCode());
         return HttpResult.ok(kwcContractLogisticsService.queryListByPage(reqVo));
     }
 
@@ -133,14 +135,28 @@ public class KwcCheckedController {
 
     /**
      * @desc: 导出
-     * @param @param null
+     * @param reqVo 查询入参
      * @author: czh
      * @date 2023/7/17
      */
     @PostMapping("export")
     public void export(@Valid @RequestBody QueryListReqVo reqVo) throws SystemException {
+        reqVo.setEntType(EntTypeEnum.LOGISTICS3.getCode());
         kwcContractLogisticsService.export(reqVo);
     }
 
 
+    /**
+     * @return HttpResult
+     * @desc: 查询当前企业的托运合同
+     * @author: czh
+     * @date: 2023/7/18
+     */
+    @PostMapping("queryCurrentEntCheckedContractList")
+    public HttpResult queryCurrentEntCheckedContractList() throws SystemException {
+        return HttpResult.ok(kwcContractLogisticsService.queryCurrentEntCheckedContractList());
+    }
+
+
+
 }

+ 2 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/dao/KwcContractLogisticsMapper.java

@@ -1,6 +1,7 @@
 package com.sckw.contract.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.contract.model.dto.req.QueryListReqDto;
 import com.sckw.contract.model.entity.KwcContractLogistics;
 import com.sckw.contract.model.vo.req.QueryListReqVo;
 import com.sckw.contract.model.vo.res.QueryListResVo;
@@ -24,7 +25,7 @@ public interface KwcContractLogisticsMapper extends BaseMapper<KwcContractLogist
      * @date 2023/7/17
      * @return QueryListResVo
      */
-    List<QueryListResVo> queryList(QueryListReqVo reqVo);
+    List<QueryListResVo> queryList(QueryListReqDto reqVo);
 }
 
 

+ 50 - 0
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/dto/req/QueryListReqDto.java

@@ -0,0 +1,50 @@
+package com.sckw.contract.model.dto.req;
+
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author czh
+ * @desc 查询入参
+ * @date 2023/7/18
+ */
+@Data
+public class QueryListReqDto {
+
+    /**
+     * ID集合
+     */
+    private List<Long> idList;
+
+    /**
+     * 单位名称、联系人、联系电话
+     */
+    private String keywords;
+
+    /**
+     * 创建结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 创建开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 合同状态  0已签约 1已完结 2已保存(草稿) 3签约中
+     */
+    private Integer status;
+
+    /**
+     * 合同单位类型 3托运  4承运
+     */
+    private Integer entType;
+
+    /**
+     * 企业id
+     */
+    private Long entId;
+}

+ 3 - 2
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/ContractLogisticsReqVo.java

@@ -1,5 +1,6 @@
 package com.sckw.contract.model.vo.req;
 
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
@@ -37,8 +38,8 @@ public class ContractLogisticsReqVo implements Serializable {
     /**
      * 合同文件
      */
-    @NotNull(message = "合同文件不能为空")
-    private List<String> contractFile;
+    @NotBlank(message = "合同文件不能为空")
+    private String contractFile;
 
     /**
      * 标的信息

+ 4 - 5
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/req/QueryListReqVo.java

@@ -19,11 +19,6 @@ public class QueryListReqVo extends PageRequest implements Serializable {
      */
     private String ids;
 
-    /**
-     * ID集合
-     */
-    private List<Long> idList;
-
     /**
      * 单位名称、联系人、联系电话
      */
@@ -44,5 +39,9 @@ public class QueryListReqVo extends PageRequest implements Serializable {
      */
     private Integer status;
 
+    /**
+     * 合同单位类型 3托运  4承运
+     */
+    private Integer entType;
 
 }

+ 2 - 1
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/model/vo/res/QueryListResVo.java

@@ -9,6 +9,7 @@ import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
+
 @Data
 public class QueryListResVo implements Serializable {
 
@@ -69,7 +70,7 @@ public class QueryListResVo implements Serializable {
      * 主键id
      */
     @JsonSerialize(using = LongToStringUtils.class)
-    private Double id;
+    private Long id;
 
     /**
      * 发起时间

+ 42 - 34
sckw-modules/sckw-contract/src/main/java/com/sckw/contract/service/KwcContractLogisticsService.java

@@ -8,12 +8,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.contract.dao.KwcContractLogisticsMapper;
+import com.sckw.contract.model.dto.req.QueryListReqDto;
 import com.sckw.contract.model.entity.KwcContractLogistics;
 import com.sckw.contract.model.entity.KwcContractLogisticsGoods;
 import com.sckw.contract.model.entity.KwcContractLogisticsUnit;
 import com.sckw.contract.model.vo.req.ContractLogisticsReqVo;
 import com.sckw.contract.model.vo.req.LogisticsBaseInfoReqVo;
-import com.sckw.contract.model.vo.req.LogisticsGoodsInfoReqVo;
 import com.sckw.contract.model.vo.req.QueryListReqVo;
 import com.sckw.contract.model.vo.res.ContractLogisticsDetailResVo;
 import com.sckw.contract.model.vo.res.LogisticsBaseInfoResVo;
@@ -27,6 +27,7 @@ import com.sckw.core.model.enums.CooperateTypeEnum;
 import com.sckw.core.model.enums.SigningWayEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
+import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.IdWorker;
 import com.sckw.core.utils.StringUtils;
@@ -75,26 +76,19 @@ public class KwcContractLogisticsService {
     @Transactional(rollbackFor = {})
     public Long addCheckedContract(ContractLogisticsReqVo reqVo) {
         LogisticsBaseInfoReqVo baseInfo = reqVo.getBaseInfo();
-        List<String> contractFileList = reqVo.getContractFile();
-        List<LogisticsGoodsInfoReqVo> goodsInfoList = reqVo.getGoodsInfo();
 
         //创建合同
         KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(baseInfo, reqVo.getRemark(), reqVo.getPId());
-        Date date = new Date();
         long contactId = new IdWorker(1L).nextId();
         kwcContractLogistics.setId(contactId);
         kwcContractLogistics.setStatus(ContractStatusEnum.SAVE.getCode());
-        kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
-        kwcContractLogistics.setCreateTime(date);
-        kwcContractLogistics.setUpdateBy(LoginUserHolder.getUserId());
-        kwcContractLogistics.setUpdateTime(date);
-        kwcContractLogistics.setDelFlag(Global.NO);
+        kwcContractLogistics.setSigningUrl(reqVo.getContractFile());
         if (kwcContractLogisticsMapper.insert(kwcContractLogistics) <= 0) {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
         }
 
         //保存交易合同商品信息
-        kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), goodsInfoList);
+        kwcContractLogisticsGoodsService.saveContractLogisticsGoods(kwcContractLogistics.getId(), reqVo.getGoodsInfo());
 
         //存单位信息
         kwcContractLogisticsUnitService.saveContractLogisticsUnit(kwcContractLogistics.getId(), baseInfo);
@@ -103,13 +97,14 @@ public class KwcContractLogisticsService {
     }
 
     public KwcContractLogistics getKwcContractLogistics(LogisticsBaseInfoReqVo baseInfo, String remark, Long pid) {
+        Date date = new Date();
         KwcContractLogistics kwcContractLogistics = new KwcContractLogistics();
         kwcContractLogistics.setEntId(LoginUserHolder.getEntId());
         kwcContractLogistics.setContractNo(baseInfo.getContractCode());
         kwcContractLogistics.setName(baseInfo.getContractName());
         kwcContractLogistics.setSigningWay(SigningWayEnum.getName(baseInfo.getSigningWay()).getName());
         SysDictResDto sysDictResDto = remoteSystemService.queryDictByTypeAndValue(DictTypeEnum.CHARGING_TYPE.getType(), baseInfo.getCharging());
-        if (Objects.isNull(sysDictResDto)) {
+        if (Objects.nonNull(sysDictResDto)) {
             kwcContractLogistics.setCharging(sysDictResDto.getId());
         }
 
@@ -117,7 +112,6 @@ public class KwcContractLogisticsService {
 //        kwcContractLogistics.setTrading(pid);
         kwcContractLogistics.setStartTime(baseInfo.getStartTime());
         kwcContractLogistics.setEndTime(baseInfo.getEndTime());
-        //单位不同怎么汇总?
         kwcContractLogistics.setAmount(new BigDecimal("0"));
         kwcContractLogistics.setPerformedAmount(new BigDecimal("0"));
         kwcContractLogistics.setSigningUrl("");
@@ -125,6 +119,11 @@ public class KwcContractLogisticsService {
         kwcContractLogistics.setSigningNo("");
         kwcContractLogistics.setContractPid(pid);
         kwcContractLogistics.setRemark(remark);
+        kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
+        kwcContractLogistics.setCreateTime(date);
+        kwcContractLogistics.setUpdateBy(LoginUserHolder.getUserId());
+        kwcContractLogistics.setUpdateTime(date);
+        kwcContractLogistics.setDelFlag(Global.NO);
         return kwcContractLogistics;
     }
 
@@ -139,7 +138,7 @@ public class KwcContractLogisticsService {
         Long id = reqVo.getPId();
         KwcContractLogistics kwcContractLogistics = kwcContractLogisticsMapper.selectById(id);
         if (Objects.isNull(kwcContractLogistics)) {
-
+            throw new SystemException(HttpStatus.QUERY_FAIL_CODE, HttpStatus.CONTRACT_NOT_EXISTS);
         }
 
         addCheckedContract(reqVo);
@@ -147,9 +146,9 @@ public class KwcContractLogisticsService {
 
     /**
      * @return ContractLogisticsDetailResVo
-     * @desc: 合同详情
-     * @param: reqVo id
-     * @author: czh
+     * @desc 合同详情
+     * @param  id 主键
+     * @author czh
      * @date 2023/7/16
      */
     public ContractLogisticsDetailResVo detail(Long id) {
@@ -234,8 +233,7 @@ public class KwcContractLogisticsService {
         wrapper.eq(KwcContractLogistics::getContractPid, kwcContractLogistics.getId());
         wrapper.eq(KwcContractLogistics::getDelFlag, Global.NO);
         wrapper.eq(KwcContractLogistics::getStatus, Global.NO);
-        List<KwcContractLogistics> supplementList = kwcContractLogisticsMapper.selectList(wrapper);
-        return supplementList;
+        return kwcContractLogisticsMapper.selectList(wrapper);
     }
 
 
@@ -251,15 +249,10 @@ public class KwcContractLogisticsService {
         if (Objects.isNull(id)) {
             //创建合同
             KwcContractLogistics kwcContractLogistics = getKwcContractLogistics(reqVo.getBaseInfo(), reqVo.getRemark(), reqVo.getPId());
-            Date date = new Date();
             id = new IdWorker(1L).nextId();
             kwcContractLogistics.setId(id);
             kwcContractLogistics.setStatus(ContractStatusEnum.SUBMIT.getCode());
-            kwcContractLogistics.setCreateBy(LoginUserHolder.getUserId());
-            kwcContractLogistics.setCreateTime(date);
-            kwcContractLogistics.setUpdateBy(LoginUserHolder.getUserId());
-            kwcContractLogistics.setUpdateTime(date);
-            kwcContractLogistics.setDelFlag(Global.NO);
+            kwcContractLogistics.setSigningUrl(reqVo.getContractFile());
             if (kwcContractLogisticsMapper.insert(kwcContractLogistics) <= 0) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
             }
@@ -291,6 +284,7 @@ public class KwcContractLogisticsService {
 
         KwcContractLogistics param = getKwcContractLogistics(reqVo.getBaseInfo(), reqVo.getRemark(), reqVo.getPId());
         param.setId(contractId);
+        param.setSigningUrl(reqVo.getContractFile());
         param.setStatus(ContractStatusEnum.SAVE.getCode());
         param.setUpdateBy(LoginUserHolder.getUserId());
         param.setUpdateTime(new Date());
@@ -322,11 +316,10 @@ public class KwcContractLogisticsService {
      * @param: reqVo ids
      * @author: czh
      * @date 2023/7/16
-     * @return HttpResult
      */
     @Transactional(rollbackFor = {})
     public void complete(String ids) {
-        List<Long> contractIdList = Arrays.asList(ids.split(Global.COMMA)).stream().map(Long::parseLong).toList();
+        List<Long> contractIdList = Arrays.stream(ids.split(Global.COMMA)).map(Long::parseLong).toList();
         List<KwcContractLogistics> kwcContractLogistics = kwcContractLogisticsMapper.selectBatchIds(contractIdList);
         Date date = new Date();
         kwcContractLogistics.forEach(item -> {
@@ -346,11 +339,10 @@ public class KwcContractLogisticsService {
      * @param: reqVo ids
      * @author: czh
      * @date 2023/7/16
-     * @return HttpResult
      */
     @Transactional(rollbackFor = {})
     public void delete(String ids) {
-        List<Long> contractIdList = Arrays.asList(ids.split(Global.COMMA)).stream().map(Long::parseLong).toList();
+        List<Long> contractIdList = Arrays.stream(ids.split(Global.COMMA)).map(Long::parseLong).toList();
         List<KwcContractLogistics> kwcContractLogistics = kwcContractLogisticsMapper.selectBatchIds(contractIdList);
         Date date = new Date();
         kwcContractLogistics.forEach(item -> {
@@ -375,16 +367,21 @@ public class KwcContractLogisticsService {
      */
     public PageResult queryListByPage(QueryListReqVo reqVo) {
         PageHelper.startPage(reqVo.getPage(), reqVo.getPageSize());
-        List<QueryListResVo> list = kwcContractLogisticsMapper.queryList(reqVo);
+        QueryListReqDto queryListReqDto = new QueryListReqDto();
+        BeanUtils.copyProperties(reqVo, queryListReqDto);
+        List<QueryListResVo> list = kwcContractLogisticsMapper.queryList(queryListReqDto);
         return PageHelperUtil.getPageResult(new PageInfo<>(list));
     }
 
     public void export(QueryListReqVo reqVo) {
+        QueryListReqDto queryListReqDto = new QueryListReqDto();
+        BeanUtils.copyProperties(reqVo, queryListReqDto);
+
         if (StringUtils.isNotBlank(reqVo.getIds())) {
-            List<Long> idList = Arrays.asList(reqVo.getIds().split(Global.COMMA)).stream().map(Long::parseLong).toList();
-            reqVo.setIdList(idList);
+            List<Long> idList = Arrays.stream(reqVo.getIds().split(Global.COMMA)).map(Long::parseLong).toList();
+            queryListReqDto.setIdList(idList);
         }
-        List<QueryListResVo> queryListResVos = kwcContractLogisticsMapper.queryList(reqVo);
+        List<QueryListResVo> queryListResVos = kwcContractLogisticsMapper.queryList(queryListReqDto);
         try {
             EasyExcelUtil.writeSingleExcel("物流合同.xlsx", "sheet1", queryListResVos, QueryListResVo.class);
         } catch (IOException e) {
@@ -392,8 +389,19 @@ public class KwcContractLogisticsService {
             throw new SystemException(HttpStatus.CODE_10301, HttpStatus.MSG_014);
         }
     }
-}
-
 
 
+    /**
+     * @return QueryListResVo
+     * @desc: 查询当前企业的托运合同
+     * @author: czh
+     * @date: 2023/7/18
+     */
+    public List<QueryListResVo> queryCurrentEntCheckedContractList() {
+        Long entId = LoginUserHolder.getEntId();
+        QueryListReqDto queryListReqDto = new QueryListReqDto();
+        queryListReqDto.setEntId(entId);
+        return kwcContractLogisticsMapper.queryList(queryListReqDto);
+    }
 
+}

+ 10 - 1
sckw-modules/sckw-contract/src/main/resources/mapper/KwcContractLogisticsMapper.xml

@@ -39,11 +39,19 @@
         create_time,update_by,update_time,
         del_flag
     </sql>
+
     <select id="queryList" resultType="com.sckw.contract.model.vo.res.QueryListResVo">
         select distinct a.*
           from kwc_contract_logistics a
           left join kwc_contract_logistics_unit b on a.id = b.contractId
         where a.del_flag = 0
+          and b.del_flag = 0
+          <if test="entType != null">
+              and b.unit_type = #{entType}
+          </if>
+          <if test="entId != null">
+              and b.ent_id = #{entId}
+          </if>
           <if test="startTime != null">
               and a.create_time >= #{startTime}
           </if>
@@ -54,7 +62,7 @@
               and a.status = #{status}
           </if>
           <if test="keywords != null and keywords != ''">
-              and (b.firm_name like concat('%', keywords, '%') or b.contacts like concat('%', keywords, '%') or b.phone like concat('%', keywords, '%'))
+              and (b.firm_name like concat('%', #{keywords}, '%') or b.contacts like concat('%', #{keywords}, '%') or b.phone like concat('%', #{keywords}, '%'))
           </if>
           <if test="idList != null and idList.size() > 0">
               and a.id in
@@ -63,4 +71,5 @@
             </foreach>
           </if>
     </select>
+
 </mapper>

+ 0 - 2
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateApplyQueryReqVo.java

@@ -39,13 +39,11 @@ public class CooperateApplyQueryReqVo extends PageRequest implements Serializabl
     /**
      * 开始时间(时间戳)
      */
-    @NotNull(message = "开始时间不能为空")
     private Date startTime;
 
     /**
      * 结束时间(时间戳)
      */
-    @NotNull(message = "结束时间不能为空")
     private Date endTime;
 
     /**

+ 0 - 2
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/req/CooperateManageQueryReqVo.java

@@ -34,13 +34,11 @@ public class CooperateManageQueryReqVo extends PageRequest implements Serializab
     /**
      * 开始时间(时间戳)
      */
-    @NotNull(message = "开始时间不能为空")
     private Date startTime;
 
     /**
      * 结束时间(时间戳)
      */
-    @NotNull(message = "结束时间不能为空")
     private Date endTime;
 
     /**

+ 6 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/model/vo/res/CooperateManageQueryResVo.java

@@ -40,6 +40,12 @@ public class CooperateManageQueryResVo implements Serializable {
      */
     private Date createTime;
 
+    /**
+     * 单位Id
+     */
+    @JsonSerialize(using = LongToStringUtils.class)
+    private Long entId;
+
     /**
      * 单位名称
      */

+ 1 - 0
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/CommonBusinessService.java

@@ -178,6 +178,7 @@ public class CommonBusinessService {
             cooperateManageQueryResVo.setApplyTypeCode(cooperateManageQueryResDto.getApplyTypeCode());
             cooperateManageQueryResVo.setCreateByName(userMap.get(cooperateManageQueryResDto.getCreateBy()));
             cooperateManageQueryResVo.setEntName(targetEntName);
+            cooperateManageQueryResVo.setEntId(targetEntId);
 
             //我方是发起方
             if (entId.compareTo(cooperateManageQueryResDto.getInviteeEntId()) == 0) {

+ 19 - 2
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmCooperateManageService.java

@@ -86,9 +86,26 @@ public class KwmCooperateManageService {
             cooperateManageQueryReqDto.setCooperateTypes(Arrays.asList(cooperateTypes.split(Global.COMMA)));
         }
 
-        if (Objects.nonNull(reqVo.getStatus())) {
-            cooperateManageQueryReqDto.setStatus(Collections.singletonList(reqVo.getStatus()));
+
+        //只允许查出申请中、已拒绝、已撤销的记录
+        List<Integer> status = new ArrayList<>();
+        if (Objects.isNull(reqVo.getStatus())) {
+            status.add(CooperateStatusEnum.PROCESS.getCode());
+            status.add(CooperateStatusEnum.OK.getCode());
+            status.add(CooperateStatusEnum.PASS.getCode());
+        }
+
+        if (Objects.nonNull(reqVo.getStatus()) && reqVo.getStatus() == CooperateStatusEnum.PROCESS.getCode()) {
+            status.add(CooperateStatusEnum.PROCESS.getCode());
         }
+        if (Objects.nonNull(reqVo.getStatus()) && reqVo.getStatus() == CooperateStatusEnum.OK.getCode()) {
+            status.add(CooperateStatusEnum.OK.getCode());
+        }
+        if (Objects.nonNull(reqVo.getStatus()) && reqVo.getStatus() == CooperateStatusEnum.PASS.getCode()) {
+            status.add(CooperateStatusEnum.PASS.getCode());
+        }
+        cooperateManageQueryReqDto.setStatus(status);
+
 
         List<Long> ids = reqVo.getIds();
         if (!CollectionUtils.isEmpty(ids)) {

+ 6 - 2
sckw-modules/sckw-manage/src/main/resources/mapper/KwmCooperateMapper.xml

@@ -51,8 +51,12 @@
           LEFT JOIN kwm_cooperate_type b ON a.id = b.cooperate_id
          WHERE a.del_flag = 0
            and (a.invitee_ent_id = #{reqDto.currentEntId} OR a.inviter_ent_id = #{reqDto.currentEntId})
-           and a.create_time >= #{reqDto.startTime}
-           and a.create_time &lt;= #{reqDto.endTime}
+           <if test="reqDto.startTime != null">
+               and a.create_time >= #{reqDto.startTime}
+           </if>
+           <if test="reqDto.endTime != null">
+               and a.create_time &lt;= #{reqDto.endTime}
+           </if>
            <if test="reqDto.cooperateTypes != null and reqDto.cooperateTypes.size() > 0">
                and b.type in
                <foreach collection="reqDto.cooperateTypes" item="item" open="(" close=")" separator=",">

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

@@ -96,19 +96,6 @@ public class KwTransportController {
         }
     }
 
-    /**
-     * 根据当前登录 id获取派给当前id的车辆运单
-     *
-     * @return
-     */
-    @RequestMapping(value = "/getWaybillDriverDetail", method = RequestMethod.GET)
-    public HttpResult getWaybillDriverDetail(@RequestParam("id") Long id, @RequestParam("type") String type) {
-        try {
-            return transportService.getWaybillDriverDetail(id,type);
-        } catch (Exception e) {
-            log.error("派车给当前司机单据查询 error:{}", e.getMessage(), e);
-            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
-        }
-    }
+
 
 }

+ 1 - 1
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwTransportService.java

@@ -268,7 +268,7 @@ public class KwTransportService {
     }
 
     /**
-     * 司机端 运单详情页面
+     * 司机端 运单详情页面-【作废】
      * @param id
      * @param type
      * @return

+ 1 - 2
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -56,8 +56,7 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     public Map<String, SysDictResDto> queryDictMapByTypeValues(String keys) {
         Map<String, SysDictResDto> map = new HashMap<>();
         String[] typeValueArr = keys.split(Global.COMMA);
-        for (int i = 0; i < typeValueArr.length; i++) {
-            String typeValue = typeValueArr[i];
+        for (String typeValue : typeValueArr) {
             String[] split = typeValue.split(Global.POUND);
             SysDictResDto sysDictResDto = queryDictByTypeAndValue(split[0], split[1]);
             map.put(typeValue, sysDictResDto);

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

@@ -153,6 +153,11 @@ public class FindEntListPojo {
      */
     private Long updateBy;
 
+    /**
+     * 更新人
+     */
+    private String updateByName;
+
     /**
      * 更新时间
      */

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

@@ -60,6 +60,16 @@ public class EntFindPageResVo implements Serializable {
      */
     private String createByName;
 
+    /**
+     * 修改人
+     */
+    private String updateByName;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
     /**
      * 企业类型
      */

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

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @author czh
@@ -101,4 +102,19 @@ public class KwsUserResVo implements Serializable {
      */
     private Integer status;
 
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 修改时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
 }

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

@@ -249,7 +249,7 @@ public class KwsEnterpriseService {
             BeanUtils.copyProperties(item, entFindPageResVo);
             entFindPageResVo.setApprovalTime(item.getApprovalTime());
             entFindPageResVo.setEntTypes(item.getType());
-            entFindPageResVo.setEntryType(item.getSystemType().intValue() == SystemTypeEnum.MANAGE.getCode() ? EntryTypeEnum.PLATFORM.getCode() : EntryTypeEnum.SELF.getCode());
+            entFindPageResVo.setEntryType(item.getSystemType() == SystemTypeEnum.MANAGE.getCode() ? EntryTypeEnum.PLATFORM.getCode() : EntryTypeEnum.SELF.getCode());
             entFindPageResVo.setEntryTypeStr(EntryTypeEnum.getName(entFindPageResVo.getEntryType()).getName());
             result.add(entFindPageResVo);
         }

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

@@ -366,7 +366,7 @@ public class KwsUserService {
      */
     public void updatePassword(UpdatePasswordReqDto reqVo) {
         //查用户信息
-        KwsUser kwsUser = checkUserBase(reqVo.getId());
+        KwsUser kwsUser = checkUserBase(reqVo.getAccount(), reqVo.getSystemType());
 
         //密码校验
         String password = reqVo.getPassword();

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

@@ -85,9 +85,11 @@
     min(a.del_flag) del_flag,
     ifnull(GROUP_CONCAT(distinct b.type), '') type,
     min(k.system_type) system_type,
-    min(k.name) createByName
+    min(k.name) createByName,
+    min(ku.name) updateByName
     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
     <if test="dto.typeList != null and dto.typeList.size() > 0">and b.type in

+ 3 - 1
sckw-modules/sckw-system/src/main/resources/mapper/KwsUserDao.xml

@@ -273,12 +273,14 @@
     select
       su.id, su.system_type systemType, su.account, su.password, su.name,
       su.phone, su.photo, su.email, su.is_main isMain, su.remark, su.status, su.salt,
-      c.id deptId,c.name deptName,e.id roleId, e.name roleName
+      c.id deptId,c.name deptName,e.id roleId, e.name roleName,
+      u1.name createByName, su.create_time createTime, su.update_time updateTime
     from kws_user su
     left join kws_user_dept b on su.id = b.user_id
     left join kws_dept c on b.dept_id = c.id
     left join kws_user_role d on su.id = d.user_id
     left join kws_role e on e.id = d.role_id
+    left join kws_user u1 on su.create_by = u1.id
     where su.del_flag = 0
     <if test="systemType != null and systemType != ''">
       and su.system_type = #{systemType, jdbcType=INTEGER}

+ 16 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/DriverController.java

@@ -23,10 +23,25 @@ public class DriverController {
     @Autowired
     private DriverService driverService;
 
+    /**
+     * 根据当前登录 id获取派给当前id的车辆运单
+     *
+     * @return
+     */
+    @RequestMapping(value = "/getWaybillDriverDetail", method = RequestMethod.GET)
+    public HttpResult getWaybillDriverDetail(@RequestParam("id") Long id, @RequestParam("type") String type) {
+        try {
+            return driverService.getWaybillDriverDetail(id, type);
+        } catch (Exception e) {
+            log.error("派车给当前司机单据查询 error:{}", e.getMessage(), e);
+            return HttpResult.error(HttpStatus.GLOBAL_EXCEPTION_CODE, e.getMessage());
+        }
+    }
+
     /**
      * 司机app top统计
      *
-     * @param id
+     * @param id 司机id
      * @return
      */
     @RequestMapping(value = "/statistics", method = RequestMethod.POST)

+ 18 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/dao/KwtWaybillOrderMapper.java

@@ -1,6 +1,7 @@
 package com.sckw.transport.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.sckw.mongo.model.TobleTop;
 import com.sckw.transport.model.KwtWaybillOrder;
 import com.sckw.transport.model.dto.OrderCarDTO;
 import org.apache.ibatis.annotations.Mapper;
@@ -25,4 +26,21 @@ public interface KwtWaybillOrderMapper extends BaseMapper<KwtWaybillOrder> {
     List<OrderCarDTO> selectWaybillOrderCarList(@Param("id") String id, @Param("page") int page, @Param("pageSize") int pageSize);
 
     Long selectWaybillOrderCarCount(@Param("id") String id);
+
+    /**
+     * 根据司机id+定义状态统计
+     *
+     * @param id
+     * @param status
+     * @return
+     */
+    TobleTop statistics(@Param("id") Long id, @Param("status") List<Long> status);
+
+    /**
+     * 根据司机id+运单状态获取物流订单id
+     * @param id
+     * @param status
+     * @return
+     */
+    List<Long> selectDriverOrder(@Param("id") Long id, @Param("status") List<Long> status);
 }

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/DocumentParamDTO.java

@@ -20,7 +20,7 @@ public class DocumentParamDTO {
      */
     private String documentNo;
     /**
-     * 单据类型(销售订单:0;采购订单:1;承运订单:3;托运订单:4)
+     * 单据类型(销售订单:0;采购订单:1;承运订单:2;托运订单:3)
      */
     @NotBlank(message = "单据类型不能为空")
     private String documentType;

+ 256 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderVO.java

@@ -0,0 +1,256 @@
+package com.sckw.transport.model.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author lfdc
+ * @description 运单待接单列表vo
+ * @date 2023-07-18 13:50:57
+ */
+@Data
+public class WaybillOrderVO {
+
+    /**
+     * 主键
+     */
+    private Long wOrderId;
+
+    /**
+     * 编号
+     */
+    private String wOrderNo;
+
+    /**
+     * 主键
+     */
+    private Long lOrderId;
+
+    /**
+     * 物流订单编号
+     */
+    private String lOrderNo;
+
+    /**
+     * 交易订单id(kwo_trade_order)
+     */
+    private Long tOrderId;
+
+    /**
+     * 交易订单编号(kwo_trade_order)
+     */
+    private String tOrderNo;
+
+    /**
+     * 车队班组
+     */
+    private String truckFleetName;
+
+    /**
+     * 车牌号
+     */
+    private String truckNo;
+
+    /**
+     * 司机主键ID
+     */
+    private Long driverId;
+
+    /**
+     * 司机姓名
+     */
+    private String driverName;
+
+    /**
+     * 司机手机号码
+     */
+    private String driverPhone;
+
+    /**
+     * 司机身份证号
+     */
+    private String driverIdcard;
+
+    /**
+     * 装货日期
+     */
+    private Date loadTime;
+
+    /**
+     * 卸货日期
+     */
+    private Date unloadTime;
+
+    /**
+     * 已委托量
+     */
+    private BigDecimal entrustAmount;
+
+    /**
+     * 装货重量
+     */
+    private BigDecimal loadAmount;
+
+    /**
+     * 商品主键
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品编号
+     */
+    private String goodsCode;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 装货地址类型
+     */
+    private Long loadType;
+
+    /**
+     * 装货联系人姓名
+     */
+    private String loadContacts;
+
+    /**
+     * 装货联系电话
+     */
+    private String loadPhone;
+
+    /**
+     * 装货所在地区
+     */
+    private Integer loadCityCode;
+
+    /**
+     * 装货所属区域名称
+     */
+    private String loadCityName;
+
+    /**
+     * 装货详细地址
+     */
+    private String loadDetailAddress;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLat;
+
+    /**
+     * 装货纬度
+     */
+    private String loadLng;
+
+    /**
+     * 卸货地址类型
+     */
+    private Long unloadType;
+
+    /**
+     * 卸货联系人姓名
+     */
+    private String unloadContacts;
+
+    /**
+     * 卸货联系电话
+     */
+    private String unloadPhone;
+
+    /**
+     * 卸货所在地区
+     */
+    private Integer unloadCityCode;
+
+    /**
+     * 卸货所属区域名称
+     */
+    private String unloadCityName;
+
+    /**
+     * 卸货详细地址
+     */
+    private String unloadDetailAddress;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLat;
+
+    /**
+     * 卸货纬度
+     */
+    private String unloadLng;
+
+    /**
+     * 创建人主键id
+     */
+    private Long createBy;
+
+    /**
+     * 创建人姓名
+     */
+    private String createByName;
+
+    /**
+     * 派车时间-创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新人主键id
+     */
+    private Long updateBy;
+
+    /**
+     * 更新人姓名
+     */
+    private String updateByName;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 是否删除(0未删除,1删除)
+     */
+    private Integer delFlag;
+
+    /**
+     * 单据状态
+     */
+    private String status;
+
+    /**
+     * 循环/趟次
+     */
+    private String type;
+
+    /**
+     * 车队id
+     */
+    private String fleetId;
+    /**
+     * 车队姓名
+     */
+    private String fleetName;
+
+    /**
+     * 计划结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 计划开始时间
+     */
+    private Date startTime;
+
+
+}

+ 1 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/AcceptCarriageOrderService.java

@@ -307,6 +307,7 @@ public class AcceptCarriageOrderService {
         waybillCarDTO.setEntId(logisticsOrder.getEntId());
         waybillCarDTO.setFirmName(remoteSystemService.queryEntCacheById(logisticsOrder.getEntId()).getFirmName());
         waybillCarDTO.setTruckNo(carListDTO.getTruckNo());
+        //todo 司机dubbo查询
 //        waybillCarDTO.setTruckType();
 //        waybillCarDTO.setTruckEnergyType();
 //        waybillCarDTO.setTruckColor()

+ 133 - 5
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/DriverService.java

@@ -1,13 +1,26 @@
 package com.sckw.transport.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.common.enums.NumberConstant;
+import com.sckw.core.utils.CollectionUtils;
+import com.sckw.core.web.constant.HttpStatus;
 import com.sckw.core.web.response.HttpResult;
-import com.sckw.transport.dao.KwtWaybillOrderMapper;
-import com.sckw.transport.dao.KwtWaybillOrderTicketMapper;
-import com.sckw.transport.dao.KwtWaybillOrderTrackMapper;
+import com.sckw.mongo.model.TobleTop;
+import com.sckw.transport.common.enums.CarWaybillEnum;
+import com.sckw.transport.dao.*;
+import com.sckw.transport.model.KwtLogisticsOrderAddress;
+import com.sckw.transport.model.KwtLogisticsOrderGoods;
+import com.sckw.transport.model.KwtWaybillOrder;
+import com.sckw.transport.model.vo.WaybillOrderVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * @author lfdc
  * @description 司机端service
@@ -26,9 +39,20 @@ public class DriverService {
     @Autowired
     private KwtWaybillOrderTicketMapper waybillOrderTicketMapper;
 
+    @Autowired
+    private KwtLogisticsOrderMapper logisticsOrderMapper;
+
+    @Autowired
+    private KwtLogisticsOrderUnitMapper logisticsOrderUnitMapper;
+
+    @Autowired
+    private KwtLogisticsOrderAddressMapper logisticsOrderAddressMapper;
+
+    @Autowired
+    private KwtLogisticsOrderGoodsMapper logisticsOrderGoodsMapper;
+
 
     /**
-     *
      * @param id
      * @return
      */
@@ -40,6 +64,110 @@ public class DriverService {
          * 执行:对应[已出车][到达装货地点]、[已装货]、[到达卸货地点]
          * 完结: 对应[已卸货]、[已核单]
          * */
-        return null;
+        List<Long> status = new ArrayList<>();
+        List<TobleTop> list = new ArrayList<>();
+        status.add(CarWaybillEnum.PENDING_ORDER.getCode().longValue());
+        TobleTop top = waybillOrderMapper.statistics(id, status);
+        top.setName("计划");
+        top.setValue(String.valueOf(NumberConstant.ONE));
+        status.clear();
+        status.add(CarWaybillEnum.PENDING_VEHICLE.getCode().longValue());
+        TobleTop top1 = waybillOrderMapper.statistics(id, status);
+        top1.setName("出车");
+        top1.setValue(String.valueOf(NumberConstant.TWO));
+        status.clear();
+        status.add(CarWaybillEnum.EXIT_COMPLETED.getCode().longValue());
+        status.add(CarWaybillEnum.WAIT_LOADING.getCode().longValue());
+        status.add(CarWaybillEnum.COMPLETION_LOADING.getCode().longValue());
+        status.add(CarWaybillEnum.WAIT_UNLOADING.getCode().longValue());
+        TobleTop top2 = waybillOrderMapper.statistics(id, status);
+        top2.setName("执行");
+        top2.setValue(String.valueOf(NumberConstant.THREE));
+        status.clear();
+        status.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
+        status.add(CarWaybillEnum.APPROVAL_COMPLETED.getCode().longValue());
+        TobleTop top3 = waybillOrderMapper.statistics(id, status);
+        top3.setName("完结");
+        top3.setValue(String.valueOf(NumberConstant.FOUR));
+        list.add(top);
+        list.add(top1);
+        list.add(top2);
+        list.add(top3);
+        return HttpResult.ok(list);
+    }
+
+    /**
+     * 根据当前登录 id获取派给当前id的车辆运单
+     * @param id 司机id
+     * @param type  展示页签类型
+     * @return
+     */
+    public HttpResult getWaybillDriverDetail(Long id, String type) {
+        /**
+         * 当前司机端页面 页面【计划】=1;【出车】=2;【执行】=3;【完结】=4
+         * 计划:对应运单状态的[待接单]
+         * 出车:对应运单状态的[待出车]
+         * 执行:对应[已出车][到达装货地点]、[已装货]、[到达卸货地点]
+         * 完结: 对应[已卸货]、[已核单]
+         * */
+        HttpResult result = new HttpResult();
+        List<Long> status = new ArrayList<>();
+        if (String.valueOf(NumberConstant.ONE).equals(type)) {
+            status.add(CarWaybillEnum.PENDING_ORDER.getCode().longValue());
+        } else if (String.valueOf(NumberConstant.TWO).equals(type)) {
+            status.add(CarWaybillEnum.PENDING_VEHICLE.getCode().longValue());
+        } else if (String.valueOf(NumberConstant.THREE).equals(type)) {
+            status.add(CarWaybillEnum.EXIT_COMPLETED.getCode().longValue());
+            status.add(CarWaybillEnum.WAIT_LOADING.getCode().longValue());
+            status.add(CarWaybillEnum.COMPLETION_LOADING.getCode().longValue());
+            status.add(CarWaybillEnum.WAIT_UNLOADING.getCode().longValue());
+        } else if (String.valueOf(NumberConstant.FOUR).equals(type)) {
+            status.add(CarWaybillEnum.COMPLETION_UNLOADING.getCode().longValue());
+            status.add(CarWaybillEnum.APPROVAL_COMPLETED.getCode().longValue());
+        } else {
+            result.setMsg("类型错误");
+            result.setCode(HttpStatus.GLOBAL_EXCEPTION_CODE);
+            return result;
+        }
+        List<Long> list = waybillOrderMapper.selectDriverOrder(id, status);
+        List<WaybillOrderVO> orderVOList = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (Long aLong : list) {
+                KwtLogisticsOrderAddress loadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                        .eq(KwtLogisticsOrderAddress::getLOrderId, aLong).eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.ONE));
+                KwtLogisticsOrderAddress unloadAddress = logisticsOrderAddressMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderAddress>()
+                        .eq(KwtLogisticsOrderAddress::getLOrderId, aLong).eq(KwtLogisticsOrderAddress::getAddressType, NumberConstant.TWO));
+                KwtLogisticsOrderGoods orderGoods = logisticsOrderGoodsMapper.selectOne(new LambdaQueryWrapper<KwtLogisticsOrderGoods>()
+                        .eq(KwtLogisticsOrderGoods::getLOrderId, aLong));
+                List<KwtWaybillOrder> waybillOrders = waybillOrderMapper.selectList(new LambdaQueryWrapper<KwtWaybillOrder>()
+                        .eq(KwtWaybillOrder::getLOrderId, aLong).eq(KwtWaybillOrder::getDriverId, id));
+                for (KwtWaybillOrder waybill : waybillOrders) {
+                    WaybillOrderVO vo = new WaybillOrderVO();
+                    vo.setLOrderId(aLong);
+                    vo.setLoadCityCode(loadAddress.getCityCode());
+                    vo.setLoadCityName(loadAddress.getCityName());
+                    vo.setLoadDetailAddress(loadAddress.getDetailAddress());
+                    vo.setUnloadCityName(unloadAddress.getCityName());
+                    vo.setUnloadCityCode(unloadAddress.getCityCode());
+                    vo.setGoodsName(orderGoods == null ? null : (orderGoods.getGoodsName() == null ? null : orderGoods.getGoodsName()));
+                    vo.setGoodsCode(orderGoods == null ? null : (orderGoods.getSkuId() == null ? null : String.valueOf(orderGoods.getSkuId())));
+                    vo.setWOrderId(waybill.getId());
+                    vo.setWOrderNo(waybill.getWOrderNo());
+                    vo.setCreateTime(waybill.getCreateTime());
+                    vo.setStartTime(waybill.getStartTime());
+                    vo.setEndTime(waybill.getEndTime());
+                    //todo 查询车队服务dubbo
+//                    vo.setFleetName();
+//                    vo.setFleetId();
+//                    vo.setTruckFleetName();
+                    vo.setEntrustAmount(waybill.getEntrustAmount());
+                    vo.setType(waybill.getType());
+                    vo.setTruckNo(waybill.getTruckNo());
+                    orderVOList.add(vo);
+                }
+            }
+            orderVOList = orderVOList.stream().sorted(Comparator.comparing(WaybillOrderVO::getCreateTime)).collect(Collectors.toList());
+        }
+        return HttpResult.ok(orderVOList);
     }
 }

+ 2 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -120,11 +120,11 @@ public class TransportCommonService {
     public HttpResult getOrderDetail(DocumentParamDTO dto) {
         HttpResult httpResult = new HttpResult();
         httpResult.setCode(HttpStatus.SUCCESS_CODE);
-        if (String.valueOf(NumberConstant.FOUR).equals(dto.getDocumentType())) {
+        if (String.valueOf(NumberConstant.THREE).equals(dto.getDocumentType())) {
             //托运订单
             OrderDetailVO orderDetailVO = getOrderData(dto);
             httpResult.setData(orderDetailVO);
-        } else if (String.valueOf(NumberConstant.THREE).equals(dto.getDocumentType())) {
+        } else if (String.valueOf(NumberConstant.TWO).equals(dto.getDocumentType())) {
             //承运订单
             OrderDetailVO orderDetailVO = getOrderData(dto);
             httpResult.setData(orderDetailVO);

+ 61 - 23
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -2,29 +2,30 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sckw.transport.dao.KwtWaybillOrderMapper">
     <resultMap id="BaseResultMap" type="com.sckw.transport.model.KwtWaybillOrder">
-        <id column="id" jdbcType="BIGINT" property="id" />
-        <result column="ent_id" jdbcType="BIGINT" property="entId" />
-        <result column="l_order_id" jdbcType="BIGINT" property="lOrderId" />
-        <result column="w_order_no" jdbcType="VARCHAR" property="wOrderNo" />
-        <result column="truck_no" jdbcType="VARCHAR" property="truckNo" />
-        <result column="type" jdbcType="VARCHAR" property="type" />
-        <result column="driver_id" jdbcType="BIGINT" property="driverId" />
-        <result column="entrust_amount" jdbcType="DECIMAL" property="entrustAmount" />
-        <result column="unload_amount" jdbcType="DECIMAL" property="unloadAmount" />
-        <result column="load_amount" jdbcType="DECIMAL" property="loadAmount" />
-        <result column="deficit_amount" jdbcType="DECIMAL" property="deficitAmount" />
-        <result column="remark" jdbcType="VARCHAR" property="remark" />
-        <result column="status" jdbcType="INTEGER" property="status" />
-        <result column="create_by" jdbcType="BIGINT" property="createBy" />
-        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-        <result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
-        <result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
-        <result column="update_by" jdbcType="BIGINT" property="updateBy" />
-        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
-        <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="ent_id" jdbcType="BIGINT" property="entId"/>
+        <result column="l_order_id" jdbcType="BIGINT" property="lOrderId"/>
+        <result column="w_order_no" jdbcType="VARCHAR" property="wOrderNo"/>
+        <result column="truck_no" jdbcType="VARCHAR" property="truckNo"/>
+        <result column="type" jdbcType="VARCHAR" property="type"/>
+        <result column="driver_id" jdbcType="BIGINT" property="driverId"/>
+        <result column="entrust_amount" jdbcType="DECIMAL" property="entrustAmount"/>
+        <result column="unload_amount" jdbcType="DECIMAL" property="unloadAmount"/>
+        <result column="load_amount" jdbcType="DECIMAL" property="loadAmount"/>
+        <result column="deficit_amount" jdbcType="DECIMAL" property="deficitAmount"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="status" jdbcType="INTEGER" property="status"/>
+        <result column="create_by" jdbcType="BIGINT" property="createBy"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="start_time" jdbcType="TIMESTAMP" property="startTime"/>
+        <result column="end_time" jdbcType="TIMESTAMP" property="endTime"/>
+        <result column="update_by" jdbcType="BIGINT" property="updateBy"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag"/>
     </resultMap>
     <sql id="Base_Column_List">
-        id, ent_id, l_order_id, w_order_no, truck_no, driver_id, entrust_amount, unload_amount,
+        id
+        , ent_id, l_order_id, w_order_no, truck_no, driver_id, entrust_amount, unload_amount,
     load_amount, deficit_amount, remark, `status`, create_by, create_time, update_by,
     update_time, del_flag,start_time,end_time
     </sql>
@@ -39,8 +40,8 @@
                  LEFT JOIN kwt_logistics_order b ON a.l_order_id = b.id
         WHERE a.del_flag = '0'
           and b.del_flag = '0'
-          and b.t_order_id = #{id,jdbcType=VARCHAR}
-        limit #{page},#{pageSize}
+          and b.t_order_id = #{id,jdbcType=VARCHAR} limit #{page}
+            , #{pageSize}
     </select>
     <select id="selectWaybillOrderCarCount" resultType="java.lang.Long">
         SELECT count(a.id)
@@ -50,4 +51,41 @@
           and b.del_flag = '0'
           and b.t_order_id = #{id,jdbcType=VARCHAR}
     </select>
+    <select id="statistics" resultType="com.sckw.mongo.model.TobleTop">
+        SELECT count(a.id) AS total
+        FROM kwt_waybill_order a
+        LEFT JOIN kwt_waybill_order_track b ON a.id = b.w_order_id
+        AND a.del_flag = '0'
+        AND b.del_flag = '0'
+        <where>
+            <if test="id != null and id !=''">
+                a.driver_id = #{id,jdbcType=BIGINT}
+            </if>
+            <if test="status != null and status.size() > 0">
+                AND b.`status` IN
+                <foreach collection="status" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+    <select id="selectDriverOrder" resultType="java.lang.Long">
+        SELECT a.l_order_id as lOrderId
+        FROM kwt_waybill_order a
+        LEFT JOIN kwt_waybill_order_track b ON a.id = b.w_order_id
+        AND a.del_flag = '0'
+        AND b.del_flag = '0'
+        <where>
+            <if test="id != null and id !=''">
+                a.driver_id = #{id,jdbcType=BIGINT}
+            </if>
+            <if test="status != null and status.size() > 0">
+                AND b.`status` IN
+                <foreach collection="status" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        group by lOrderId
+    </select>
 </mapper>