Browse Source

Merge branch 'pre-production'

master
zhenghaoyu 1 year ago
parent
commit
405a85f77d
  1. 8
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordEntity.java
  2. 19
      blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java
  3. 7
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionDeliveryListClient.java
  4. 1
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java
  5. 27
      blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadScanClient.java
  6. 6
      blade-service/logpm-aftersales/pom.xml
  7. 46
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java
  8. 17
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java
  9. 31
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java
  10. 16
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordMapper.java
  11. 7
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordMapper.xml
  12. 13
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java
  13. 77
      blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java
  14. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java
  15. 39
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java
  16. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java
  17. 29
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java
  18. 125
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforOrderExcel.java
  19. 163
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforPackageExcel.java
  20. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionDeliveryListClient.java
  21. 10
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml
  22. 1
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListInfoMapper.xml
  23. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml
  24. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java
  25. 3
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml
  26. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java
  27. 16
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java
  28. 7
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java
  29. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java
  30. 252
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java
  31. 12
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java
  32. 5
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java
  33. 55
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java
  34. 2
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java
  35. 67
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java
  36. 46
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java
  37. 16
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java
  38. 49
      blade-service/logpm-report/src/main/java/com/logpm/report/controller/IndexCountController.java
  39. 20
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java
  40. 26
      blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml
  41. 21
      blade-service/logpm-report/src/main/java/com/logpm/report/service/InLibraryDeliverService.java
  42. 29
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java
  43. 18
      blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportBillLoadingAsyncService.java
  44. 13
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java
  45. 28
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadScanClient.java
  46. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java
  47. 16
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml
  48. 7
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java
  49. 6
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java
  50. 78
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java
  51. 18
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java
  52. 106
      blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java
  53. 57
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/OldSystemPushController.java
  54. 14
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/AbnormalRecordDTO.java
  55. 21
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseAbnormalRecordClient.java
  56. 16
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseAbnormalRecordMapper.java
  57. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IAsyncDataService.java
  58. 12
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseAbnormalRecordService.java
  59. 47
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/AsyncDataServiceImpl.java
  60. 31
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseAbnormalRecordServiceImpl.java
  61. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

8
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/entity/WarehouseAbnormalRecordEntity.java → blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/entity/AftersalesAbnormalRecordEntity.java

@ -1,4 +1,4 @@
package com.logpm.warehouse.entity;
package com.logpm.aftersales.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@ -10,10 +10,10 @@ import org.springblade.core.tenant.mp.TenantEntity;
import java.util.Date;
@Data
@TableName("logpm_warehouse_abnormal_record")
@ApiModel(value = "WarehouseAbnormalRecord对象", description = "异常记录表")
@TableName("logpm_aftersales_abnormal_record")
@ApiModel(value = "AftersalesAbnormalRecord对象", description = "异常记录表")
@EqualsAndHashCode(callSuper = true)
public class WarehouseAbnormalRecordEntity extends TenantEntity {
public class AftersalesAbnormalRecordEntity extends TenantEntity {
/** 预留1 */
@ApiModelProperty(name = "预留1",notes = "")

19
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseAbnormalRecordClient.java → blade-service-api/logpm-aftersales-api/src/main/java/com/logpm/aftersales/feign/IAftersalesAbnormalRecordClient.java

@ -14,29 +14,36 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.warehouse.feign;
package com.logpm.aftersales.feign;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 货位 Feign接口类
*
* @author lmy
* @author zhy
* @since 2023-08-14
*/
@FeignClient(
value = ModuleNameConstant.APPLICATION_WAREHOUSE_NAME
value = ModuleNameConstant.APPLICATION_AFTERSALES_NAME
)
public interface IWarehouseAbnormalRecordClient {
public interface IAftersalesAbnormalRecordClient {
String API_PREFIX = "abormal/client";
String TOP = API_PREFIX + "/top";
@PostMapping(API_PREFIX+"/addAbnormalRecord")
void addAbnormalRecord(@RequestBody WarehouseAbnormalRecordEntity warehouseAbnormalRecordEntity);
void addAbnormalRecord(@RequestBody AftersalesAbnormalRecordEntity warehouseAbnormalRecordEntity);
@GetMapping(API_PREFIX+"/findAbnormalList")
List<AftersalesAbnormalRecordEntity> findAbnormalList(String carsNo);
}

7
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionDeliveryListClient.java

@ -120,6 +120,13 @@ public interface IDistributionDeliveryListClient {
@GetMapping(TOP+"/maintenanceDeliveryInfo")
void maintenanceDeliveryInfo(@RequestParam("deliveryId")String deliveryId);
/**
* 维护指定仓库配送车次任务信息
* @param params
* @return
*/
@GetMapping(TOP+"/maintenanceDeliveryInfoByWarehouseId")
void maintenanceDeliveryInfoByWarehouseId(@RequestParam("warehouseId")String params);
// /**

1
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/vo/DistributionBillOrderPackVO.java

@ -12,6 +12,7 @@ import java.util.Date;
**/
@Data
public class DistributionBillOrderPackVO {
private Long id;
private String orderPackageCode;
private String orderPackageStatus;
private String warehouse;

27
blade-service-api/logpm-trunkline-api/src/main/java/com/logpm/trunkline/feign/ITrunklineCarsLoadScanClient.java

@ -0,0 +1,27 @@
package com.logpm.trunkline.feign;
import org.springblade.common.constant.ModuleNameConstant;
import org.springblade.core.tool.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(
value = ModuleNameConstant.APPLICATION_TRUNKLINE_NAME
)
public interface ITrunklineCarsLoadScanClient {
String API_PREFIX = "trunklineCarsLoadScan/client";
@GetMapping(API_PREFIX+"/removeLoadScanById")
void removeLoadScanById(@RequestParam Long carsLoadScanId);
@GetMapping(API_PREFIX+"/incomingPackage")
R incomingPackage(@RequestParam Long carsLoadScanId);
// @PostMapping(API_PREFIX+"/addAdvanceReturnId")
// Long addAdvanceReturnId(@RequestBody TrunklineAdvanceEntity trunklineAdvanceEntity);
}

6
blade-service/logpm-aftersales/pom.xml

@ -77,6 +77,12 @@
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
</dependency>
<dependency>
<groupId>org.springblade</groupId>
<artifactId>logpm-trunkline-api</artifactId>
<version>3.2.0.RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
<plugins>

46
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/WarehouseAbnormalRecordController.java → blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/controller/AftersalesAbnormalRecordController.java

@ -14,13 +14,13 @@
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.warehouse.controller;
package com.logpm.aftersales.controller;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.warehouse.dto.AbnormalRecordDTO;
import com.logpm.warehouse.service.IWarehouseAbnormalRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -30,6 +30,8 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
* 运单表 控制器
*
@ -41,10 +43,10 @@ import org.springframework.web.bind.annotation.*;
@AllArgsConstructor
@RequestMapping("/abnormal")
@Api(value = "异常列表", tags = "异常列表接口")
public class WarehouseAbnormalRecordController extends BladeController {
public class AftersalesAbnormalRecordController extends BladeController {
private final IBasicdataWarehouseClient basicdataWarehouseClient;
private final IWarehouseAbnormalRecordService warehouseAbnormalRecordService;
private final IAftersalesAbnormalRecordService aftersalesAbnormalRecordService;
@ResponseBody
@PostMapping("/findPageList")
@ -58,9 +60,10 @@ public class WarehouseAbnormalRecordController extends BladeController {
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
abnormalRecordDTO.setWarehouseId(myCurrentWarehouse.getId());
return warehouseAbnormalRecordService.findPageList(abnormalRecordDTO);
if(!Objects.isNull(myCurrentWarehouse)){
abnormalRecordDTO.setWarehouseId(myCurrentWarehouse.getId());
}
return aftersalesAbnormalRecordService.findPageList(abnormalRecordDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
@ -70,8 +73,35 @@ public class WarehouseAbnormalRecordController extends BladeController {
}
}
@ResponseBody
@PostMapping("/dealAbnormal")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "处理异常", notes = "传入loadCarsDTO")
public R dealAbnormal(@RequestBody AbnormalRecordDTO abnormalRecordDTO) {
String method = "############dealAbnormal: ";
log.info(method + "请求参数{}", abnormalRecordDTO);
Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
try{
if(Objects.isNull(abnormalRecordId)){
log.warn(method+"异常id为空 abnormalRecordId={}",abnormalRecordId);
return R.fail(405,"异常id为空");
}
//当前登录人选择的仓库
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if(!Objects.isNull(myCurrentWarehouse)){
abnormalRecordDTO.setWarehouseId(myCurrentWarehouse.getId());
}
return aftersalesAbnormalRecordService.dealAbnormal(abnormalRecordDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error(method+"系统异常",e);
return R.fail(500,"系统异常");
}
}
}

17
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/dto/AbnormalRecordDTO.java

@ -0,0 +1,17 @@
package com.logpm.aftersales.dto;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import lombok.Data;
@Data
public class AbnormalRecordDTO extends AftersalesAbnormalRecordEntity {
private Long abnormalRecordId;
private Long warehouseId;
private Integer pageNum;
private Integer pageSize;
private Integer dealType;
}

31
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/feign/AftersalesAbnormalRecordClient.java

@ -0,0 +1,31 @@
package com.logpm.aftersales.feign;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@ApiIgnore()
@RestController
@AllArgsConstructor
public class AftersalesAbnormalRecordClient implements IAftersalesAbnormalRecordClient {
private final IAftersalesAbnormalRecordService aftersalesAbnormalRecordService;
@Override
public void addAbnormalRecord(AftersalesAbnormalRecordEntity abnormalRecordEntity) {
aftersalesAbnormalRecordService.save(abnormalRecordEntity);
}
@Override
public List<AftersalesAbnormalRecordEntity> findAbnormalList(String carsNo) {
QueryWrapper<AftersalesAbnormalRecordEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("cars_no",carsNo)
.eq("abnormal_status",0);
return aftersalesAbnormalRecordService.list(queryWrapper);
}
}

16
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordMapper.java

@ -0,0 +1,16 @@
package com.logpm.aftersales.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface AftersalesAbnormalRecordMapper extends BaseMapper<AftersalesAbnormalRecordEntity> {
IPage<AftersalesAbnormalRecordEntity> findPageList(IPage<Object> page, @Param("param") AbnormalRecordDTO abnormalRecordDTO);
}

7
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseAbnormalRecordMapper.xml → blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/mapper/AftersalesAbnormalRecordMapper.xml

@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.warehouse.mapper.WarehouseAbnormalRecordMapper">
<mapper namespace="com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper">
<select id="findPageList" resultType="com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity">
<select id="findPageList" resultType="com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity">
select *
from logpm_warehouse_abnormal_record
where 1=1
<if test="">
</if>
</select>
</mapper>

13
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/IAftersalesAbnormalRecordService.java

@ -0,0 +1,13 @@
package com.logpm.aftersales.service;
import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
public interface IAftersalesAbnormalRecordService extends BaseService<AftersalesAbnormalRecordEntity> {
R findPageList(AbnormalRecordDTO abnormalRecordDTO);
R dealAbnormal(AbnormalRecordDTO abnormalRecordDTO);
}

77
blade-service/logpm-aftersales/src/main/java/com/logpm/aftersales/service/impl/AftersalesAbnormalRecordServiceImpl.java

@ -0,0 +1,77 @@
package com.logpm.aftersales.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.aftersales.dto.AbnormalRecordDTO;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.mapper.AftersalesAbnormalRecordMapper;
import com.logpm.aftersales.service.IAftersalesAbnormalRecordService;
import com.logpm.trunkline.feign.ITrunklineCarsLoadScanClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Objects;
@Slf4j
@Service
@AllArgsConstructor
public class AftersalesAbnormalRecordServiceImpl extends BaseServiceImpl<AftersalesAbnormalRecordMapper, AftersalesAbnormalRecordEntity> implements IAftersalesAbnormalRecordService {
private final ITrunklineCarsLoadScanClient trunklineCarsLoadScanClient;
@Override
public R findPageList(AbnormalRecordDTO abnormalRecordDTO) {
IPage<Object> page = new Page<>();
page.setCurrent(abnormalRecordDTO.getPageNum());
page.setSize(abnormalRecordDTO.getPageSize());
IPage<AftersalesAbnormalRecordEntity> pageList = baseMapper.findPageList(page,abnormalRecordDTO);
return R.data(pageList);
}
@Override
public R dealAbnormal(AbnormalRecordDTO abnormalRecordDTO) {
Long abnormalRecordId = abnormalRecordDTO.getAbnormalRecordId();
AftersalesAbnormalRecordEntity abnormalRecordEntity = baseMapper.selectById(abnormalRecordId);
if(!Objects.isNull(abnormalRecordEntity)){
Integer abnormalStatus = abnormalRecordEntity.getAbnormalStatus();
if(abnormalStatus.equals(1)){
log.warn("################dealAbnormal: 异常已完结");
return R.fail(405,"异常已完结");
}
String abnormalType = abnormalRecordEntity.getAbnormalType();
String upWarehouseName = abnormalRecordEntity.getUpWarehouseName();
if("1".equals(abnormalType)){
Integer dealType = abnormalRecordDTO.getDealType();
Long carsLoadScanId = abnormalRecordEntity.getAssociationId();
if(dealType.equals(1)){
//无效包条码
abnormalRecordEntity.setRemark("已确认为无效包条码("+upWarehouseName+" "+AuthUtil.getNickName()+")");
//删除装车异常数据
trunklineCarsLoadScanClient.removeLoadScanById(carsLoadScanId);
}else if(dealType.equals(2)){
//暂存单入库
R r = trunklineCarsLoadScanClient.incomingPackage(carsLoadScanId);
int code = r.getCode();
if(code != 200){
return r;
}
}
}
abnormalRecordEntity.setAbnormalStatus(1);
abnormalRecordEntity.setDealTime(new Date());
abnormalRecordEntity.setDealUserId(AuthUtil.getUserId());
abnormalRecordEntity.setDealUserName(AuthUtil.getNickName());
}
return R.success("处理成功");
}
}

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/appcontroller/DistributionBillLadingAppController.java

@ -18,9 +18,12 @@ package com.logpm.distribution.appcontroller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.logpm.distribution.bean.Resp;
import com.logpm.distribution.dto.app.BillLadingAppDTO;
import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
import com.logpm.distribution.service.IDistributionBillLadingScanService;
import com.logpm.distribution.service.IDistrilbutionBillLadingService;
import com.logpm.distribution.vo.DistrilbutionBillLadingAppVO;
import com.logpm.distribution.vo.app.DistrilbutionAppBillLadingOrderMainVO;
@ -35,9 +38,11 @@ import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.Map;
/**
@ -55,6 +60,8 @@ public class DistributionBillLadingAppController extends BladeController {
private final IDistrilbutionBillLadingService distrilbutionBillLadingService;
private final IDistributionBillLadingScanService distributionBillLadingScanService;
/**
* 自提信息表 分页列表
*/
@ -179,10 +186,15 @@ public class DistributionBillLadingAppController extends BladeController {
@PostMapping("/addReceivedImage")
@ApiOperation(value = "添加自提单签收图片")
public R updateReceivedImage(@RequestBody BillLadingAppDTO billLadingAppDTO) {
log.debug("=====签收图片自提签收:{}",billLadingAppDTO);
if (ObjectUtils.isNull(billLadingAppDTO.getBillLadingId())) {
return R.fail(3002, "自提id不能为空 !");
}
List<DistributionBillLadingScanEntity> list = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda().eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingAppDTO.getBillLadingId()));
if (Func.isEmpty(list)){
return R.fail(3002, "请扫描货物后提交签收图片 !");
}
if(ObjectUtils.isNull(billLadingAppDTO.getPrintList()) || billLadingAppDTO.getPrintList().isEmpty()){
throw new ServiceException("图片对象不能为空!!");
}

39
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionSignforController.java

@ -29,7 +29,9 @@ import com.logpm.distribution.dto.app.DistributionAppAddvalueDTO;
import com.logpm.distribution.entity.DistributionSignPrintEntity;
import com.logpm.distribution.entity.DistributionSignforEntity;
import com.logpm.distribution.excel.DistributionSignforExcel;
import com.logpm.distribution.excel.DistributionSignforOrderExcel;
import com.logpm.distribution.excel.DistributionSignforOwnExcel;
import com.logpm.distribution.excel.DistributionSignforPackageExcel;
import com.logpm.distribution.service.IDistributionAsyncService;
import com.logpm.distribution.service.IDistributionDeliveryListService;
import com.logpm.distribution.service.IDistributionReservationService;
@ -149,6 +151,8 @@ public class DistributionSignforController extends BladeController {
}
/**
* 签收详情包件信息
*/
@ -338,6 +342,41 @@ public class DistributionSignforController extends BladeController {
return R.status(distributionSignforService.deleteLogic(Func.toLongList(ids)));
}
/**
* 签收详情包件信息
*/
@PostMapping("/export-distributionSignforPackageList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "导出预约包件列表", notes = "传入distributionSignfor")
public void exportDistributionSignforPackageList(@RequestBody Map<String,Object> map, HttpServletResponse response) {
String method = "exportDistributionSignforPackageList";
if (Func.isEmpty(map.get("signforId"))){
log.info(method+ " signforId is null");
}
String signforId = (String) map.get("signforId");
// List<DistributionParcelListVO> distributionSignforsnmbVO= distributionSignforService.signforPackageList(signforId);
List<DistributionSignforPackageExcel> distributionSignfor = distributionSignforService.exportDistributionSignforPackageList(Long.parseLong(signforId));
ExcelUtil.export(response, "签收管理数据" + DateUtil.time(), "待签收管理数据表", distributionSignfor, DistributionSignforPackageExcel.class);
}
/**
* 签收详情包件信息
*/
@PostMapping("/export-distributionSignforOrderList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "导出预约包件列表", notes = "传入distributionSignfor")
public void exportDistributionSignforOrderList(@RequestBody Map<String,Object> map, HttpServletResponse response) {
// List<DistributionParcelListVO> distributionSignforsnmbVO= distributionSignforService.signforPackageList(signforId);
String method = "exportDistributionSignforPackageList";
if (Func.isEmpty(map.get("signforId"))){
log.info(method+ " signforId is null");
}
String signforId = (String) map.get("signforId");
List<DistributionSignforOrderExcel> distributionSignfor = distributionSignforService.exportDistributionSignforOrderList(Long.parseLong(signforId));
ExcelUtil.export(response, "签收管理数据" + DateUtil.time(), "待签收管理数据表", distributionSignfor, DistributionSignforOrderExcel.class);
}
/**
* 导出数据

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistributionStockListController.java

@ -225,7 +225,7 @@ public class DistributionStockListController extends BladeController {
}
/**
* 库存品管理 删除
* 库存品管理撤销转
*/
@PostMapping("/cancelAddStockListByPackage")
@ApiOperationSupport(order = 7)

29
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/controller/DistrilbutionBillLadingController.java

@ -251,6 +251,35 @@ public class DistrilbutionBillLadingController extends BladeController {
public R update(@Valid @RequestBody DistrilbutionBillLadingEntity distrilbutionBillLading) {
return R.status(distrilbutionBillLadingService.updateById(distrilbutionBillLading));
}
/**
* 查询提货单是否需要释放资源
*/
@GetMapping("/checkBillLadingIsRelease")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "修改", notes = "传入distrilbutionBillLading")
public Boolean checkBillLadingIsRelease(@RequestParam Long billLadingId) {
Integer flag = distrilbutionBillLadingService.checkBillLadingIsRelease(billLadingId);
switch (flag){
case 1:
return true;
case 2:
log.info("#####################提货单查询错误billLadingId:{}",billLadingId);
return false;
case 3:
log.info("#####################提货单装车未完成:{}",billLadingId);
return false;
case 4:
log.info("#####################提货单未装车:{}",billLadingId);
return false;
}
return false;
}
/**
* 提货单 自己修改 签收
*/

125
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforOrderExcel.java

@ -0,0 +1,125 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.distribution.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 签收导出包件Excel实体
*
* @author cyz
* @since 2023-06-13
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class DistributionSignforOrderExcel implements Serializable {
private static final long serialVersionUID = 1L;
@ColumnWidth(20)
@ExcelProperty("运单号")
private String waybillNumber;
@ColumnWidth(20)
@ExcelProperty("服务号")
private String serviceNumber;
@ColumnWidth(20)
@ExcelProperty("订单自编号")
private String orderCode;
@ColumnWidth(20)
@ExcelProperty("仓库")
private String warehouse;
@ColumnWidth(20)
@ExcelProperty("总数量")
private Integer totalNumber;
@ColumnWidth(20)
@ExcelProperty("在库数量")
private Integer handQuantity;
@ColumnWidth(20)
@ExcelProperty("计划数量")
private Integer reservationNum;
@ColumnWidth(20)
@ExcelProperty("装车数量")
private Integer loadingNumber;
@ColumnWidth(20)
@ExcelProperty("签收数量")
private Integer signinQuantity;
@ColumnWidth(20)
@ExcelProperty("品牌")
private String brand;
@ColumnWidth(20)
@ExcelProperty("收货单位")
private String consigneeUnit;
@ColumnWidth(20)
@ExcelProperty("商场名称")
private String mallName;
@ColumnWidth(20)
@ExcelProperty("门店名称")
private String storeName;
@ColumnWidth(20)
@ExcelProperty("运单收货人")
private String consigneePerson;
@ColumnWidth(20)
@ExcelProperty("运单收货地址")
private String consigneeAddress;
@ColumnWidth(20)
@ExcelProperty("运单收货电话")
private String consigneeMobile;
@ColumnWidth(20)
@ExcelProperty("终端收货人")
private String customerName;
@ColumnWidth(20)
@ExcelProperty("终端收货地址")
private String customerAddress;
@ColumnWidth(20)
@ExcelProperty("终端收货电话")
private String customerTelephone;
}

163
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/excel/DistributionSignforPackageExcel.java

@ -0,0 +1,163 @@
/*
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the dreamlu.net developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: Chill 庄骞 (smallchill@163.com)
*/
package com.logpm.distribution.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 签收导出包件Excel实体
*
* @author cyz
* @since 2023-06-13
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class DistributionSignforPackageExcel implements Serializable {
private static final long serialVersionUID = 1L;
@ColumnWidth(20)
@ExcelProperty("运单号")
private String waybillNumber;
@ColumnWidth(20)
@ExcelProperty("服务号")
private String serviceNumber;
@ColumnWidth(20)
@ExcelProperty("订单自编号")
private String orderCode;
@ColumnWidth(20)
@ExcelProperty("包条码")
private String orderPackageCode;
@ColumnWidth(20)
@ExcelProperty("仓库")
private String warehouse;
@ColumnWidth(20)
@ExcelProperty("发站仓")
private String sendWarehouseName;
@ColumnWidth(20)
@ExcelProperty("目的仓")
private String acceptWarehouseName;
@ColumnWidth(20)
@ExcelProperty("入库时间")
private Date createTime;
@ColumnWidth(20)
@ExcelProperty("入库车次")
private String trainNumber;
@ColumnWidth(20)
@ExcelProperty("包件类型")
private String conditions;
@ColumnWidth(20)
@ExcelProperty("一级品")
private String firsts;
@ColumnWidth(20)
@ExcelProperty("二级品")
private String second;
@ColumnWidth(20)
@ExcelProperty("三级品")
private String thirdProduct;
@ColumnWidth(20)
@ExcelProperty("当前状态")
private String orderPackageStatusName;
@ColumnWidth(20)
@ExcelProperty("冻结状态")
private String orderPackageFreezeStatusName;
@ColumnWidth(20)
@ExcelProperty("备货状态")
private String orderPackageStockupStatusName;
@ColumnWidth(20)
@ExcelProperty("预约状态")
private String orderPackageReservationStatusName;
@ColumnWidth(20)
@ExcelProperty("装车状态")
private String orderPackageLoadingStatusName;
@ColumnWidth(20)
@ExcelProperty("计划数量")
private Integer reservationNum;
@ColumnWidth(20)
@ExcelProperty("装车数量")
private Integer loadingNub;
@ColumnWidth(20)
@ExcelProperty("签收数量")
private Integer signingNub;
@ColumnWidth(20)
@ExcelProperty("装车方式")
private String scanStatus;
@ColumnWidth(20)
@ExcelProperty("计划装车人")
private String driverName;
@ColumnWidth(20)
@ExcelProperty("实际装车人")
private String scanUser;
@ColumnWidth(20)
@ExcelProperty("装车时间")
private String loadingTime;
@ColumnWidth(20)
@ExcelProperty("签收人")
private String signingUser;
@ColumnWidth(20)
@ExcelProperty("签收时间")
private String signingTime;
// @ColumnWidth(20)
// @ExcelProperty("装车时间")
// private String warehouse;
//
// @ColumnWidth(20)
// @ExcelProperty("签收人")
// private String warehouse;
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionDeliveryListClient.java

@ -17,6 +17,7 @@
package com.logpm.distribution.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.aftersales.vo.AftersalesAbnormalPackageVO;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.service.IDistributionDeliveryListService;
@ -27,11 +28,13 @@ import lombok.AllArgsConstructor;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
import java.util.stream.Collectors;
/**
* 配送管理 Feign实现类
@ -98,5 +101,18 @@ public class DistributionDeliveryListClient implements IDistributionDeliveryList
distributionDeliveryListService.maintenanceDeliveryInfoAndDeliveryStatus(deliveryIds);
}
/**
* @param params
*/
@Override
public void maintenanceDeliveryInfoByWarehouseId(String params) {
List<DistributionDeliveryListEntity> entityList = distributionDeliveryListService.list(Wrappers.<DistributionDeliveryListEntity>query().lambda().in(DistributionDeliveryListEntity::getWarehouseId, Func.toLongList(params)));
if (Func.isNotEmpty(entityList)){
String deliveryIds = entityList.stream().map(DistributionDeliveryListEntity::getId).map(String::valueOf).collect(Collectors.joining(","));
distributionDeliveryListService.maintenanceDeliveryInfoAndDeliveryStatus(deliveryIds);
}
}
}

10
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockArticleMapper.xml

@ -609,9 +609,19 @@
LEFT JOIN logpm_distribution_parcel_list ldpl on ldsa.id = ldpl.stock_article_id
LEFT JOIN logpm_warehouse_tray_goods lwtg on lwtg.association_id = ldpl.id
LEFT JOIN logpm_warehouse_updown_goods lwug on lwug.association_id = ldpl.id
LEFT JOIN
(SELECT ldsaa.id,SUM(ldpll.quantity) AS num
FROM logpm_distribution_stock_article ldsaa
LEFT JOIN logpm_distribution_parcel_list ldpll ON ldsaa.id = ldpll.stock_article_id
WHERE ldpll.order_package_loading_status != '20'
AND ldpll.order_package_reservation_status !='20'
AND ldpll.order_package_status != '70'
GROUP BY ldsaa.id)
AS t ON t.id = ldsa.id
<where>
ldsa.order_status in ('10','20','30','70')
and ldsa.reservation_status in ('10','20')
and t.num > 0
<!-- AND (ldsa.incoming_num - ldsa.delivery_quantity) > 0 -->
AND ldsa.hand_quantity > 0
<if test="par.warehouseId != null and par.warehouseId != '' ">

1
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListInfoMapper.xml

@ -80,6 +80,7 @@
logpm_distribution_stock_list
WHERE
cargo_number=#{cargoNumber}
and is_deleted=0
AND
incoming_batch = (
SELECT

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistributionStockListMapper.xml

@ -531,7 +531,10 @@
order_package_code = #{orderPackageCode}
AND conditions = 2
) t
LEFT JOIN logpm_distribution_stock_list ldsl ON ldsl.incoming_batch = t.order_code and ldsl.cargo_number=t.material_code
LEFT JOIN logpm_distribution_stock_list ldsl ON ldsl.incoming_batch = t.order_code
where
ldsl.cargo_number=t.material_code
and ldsl.is_deleted=0
</select>
<select id="getMerchantStockList" resultType="com.logpm.distribution.entity.DistributionStockListEntity">
SELECT * FROM logpm_distribution_stock_list WHERE tenant_id = #{tenantId} AND cargo_number= #{materielCode}

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillLadingMapper.java

@ -123,7 +123,7 @@ public interface DistrilbutionBillLadingMapper extends BaseMapper<DistrilbutionB
/**
* 查询自提单计划件数
* @param id
* @param billLadingId
* @return
*/
Integer selectBillLadingPlanNum(@Param("billLadingId") Long billLadingId);

3
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/mapper/DistrilbutionBillStockMapper.xml

@ -146,7 +146,7 @@
LEFT JOIN logpm_distribution_stock lds on lds.stock_article = ldbs.stock_article_id
LEFT JOIN logpm_distrilbution_bill_lading ldbl ON lds.stock_article = ldbl.stock_article_id
<where>
ldbs.is_deleted = 0 and ldbs.bill_lading_id = #{param.billLadingId} and ldbs.order_status in (1,2)
ldbs.is_deleted = 0 and ldbs.bill_lading_id = #{param.billLadingId} and ldbs.order_status in (1,3)
</where>
</select>
@ -155,6 +155,7 @@
lds.outbound_type,
ldpl.order_package_code orderPackageCode,
ldpl.warehouse,
ldpl.id,
ldpl.firsts,
ldpl.SECOND AS `second`,
ldpl.third_product thirdProduct,

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionAsyncService.java

@ -314,4 +314,10 @@ public interface IDistributionAsyncService {
* @param id
*/
void sendTrunkineLog(Long deliveryId,Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse,Integer a);
/**
* 自提单未扫描数据进行资源释放
* @param l
*/
void releaseBillLadingResource(Long l,Long warehouseId);
}

16
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistributionSignforService.java

@ -26,7 +26,9 @@ import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionSignPrintEntity;
import com.logpm.distribution.entity.DistributionSignforEntity;
import com.logpm.distribution.excel.DistributionSignforExcel;
import com.logpm.distribution.excel.DistributionSignforOrderExcel;
import com.logpm.distribution.excel.DistributionSignforOwnExcel;
import com.logpm.distribution.excel.DistributionSignforPackageExcel;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.vo.app.DistributionAppDeliveryListVO;
import com.logpm.distribution.vo.app.DistributionAppParcelListVO;
@ -305,4 +307,18 @@ public interface IDistributionSignforService extends BaseService<DistributionSig
* @return
*/
R deliverySingleZeroPackage(DistrilbutionAppsignforDTO distrilbutionloadingscanDTO);
/**
* 待签收页面导出包件详情
* @param signforId
* @return
*/
List<DistributionSignforPackageExcel> exportDistributionSignforPackageList(Long signforId);
/**
* 待签收订单导出
* @param signforId
* @return
*/
List<DistributionSignforOrderExcel> exportDistributionSignforOrderList(Long signforId);
}

7
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillLadingService.java

@ -235,4 +235,11 @@ public interface IDistrilbutionBillLadingService extends BaseService<Distrilbuti
* @return
*/
Integer selectBillLadingPlanNum(Long id);
/**
* 查询自提单是否需要进行资源释放
* @param billLadingId
* @return
*/
Integer checkBillLadingIsRelease(Long billLadingId);
}

6
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/IDistrilbutionBillStockService.java

@ -99,4 +99,10 @@ public interface IDistrilbutionBillStockService extends BaseService<Distrilbutio
List<DistributionBillOrderExcel> distrilbutionBillStock(Map<String, Object> distrilbutionBillStock);
List<DistributionBillOrderPackExcel> billOrderPackExcel(Map<String, Object> distrilbutionBillStock);
/**
* 维护自提单订单状态
* @param l
*/
void maintenanceOrderInfo(Long l);
}

252
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionAsyncServiceImpl.java

@ -1,7 +1,9 @@
package com.logpm.distribution.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
@ -12,10 +14,59 @@ import com.logpm.distribution.dto.DistributionStockArticleDTO;
import com.logpm.distribution.dto.app.DistrilbutionloadingscanDTO;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.dto.app.StockupZeroDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.mapper.*;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
import com.logpm.distribution.entity.DisStockListDetailEntity;
import com.logpm.distribution.entity.DistributionBillLadingScanEntity;
import com.logpm.distribution.entity.DistributionDeliveryDetailsEntity;
import com.logpm.distribution.entity.DistributionDeliveryListEntity;
import com.logpm.distribution.entity.DistributionLoadscanEntity;
import com.logpm.distribution.entity.DistributionLoadscaninvnEntity;
import com.logpm.distribution.entity.DistributionParcelListEntity;
import com.logpm.distribution.entity.DistributionParcelNumberEntity;
import com.logpm.distribution.entity.DistributionReservationEntity;
import com.logpm.distribution.entity.DistributionReservationPackageEntity;
import com.logpm.distribution.entity.DistributionReservationStockarticleEntity;
import com.logpm.distribution.entity.DistributionReservationStocklistEntity;
import com.logpm.distribution.entity.DistributionReservationZeroPackageEntity;
import com.logpm.distribution.entity.DistributionSignforEntity;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.entity.DistributionStockEntity;
import com.logpm.distribution.entity.DistributionStockListEntity;
import com.logpm.distribution.entity.DistributionStockupEntity;
import com.logpm.distribution.entity.DistributionStockupInfoEntity;
import com.logpm.distribution.entity.DistrilbutionBillLadingEntity;
import com.logpm.distribution.entity.DistrilbutionBillPackageEntity;
import com.logpm.distribution.entity.DistrilbutionBillStockEntity;
import com.logpm.distribution.mapper.DistributionBillLadingScanMapper;
import com.logpm.distribution.mapper.DistributionDeliveryDetailsMapper;
import com.logpm.distribution.mapper.DistributionDeliveryListMapper;
import com.logpm.distribution.mapper.DistributionLoadscanMapper;
import com.logpm.distribution.mapper.DistributionLoadscaninvnMapper;
import com.logpm.distribution.mapper.DistributionParcelListMapper;
import com.logpm.distribution.mapper.DistributionReservationMapper;
import com.logpm.distribution.mapper.DistributionReservationPackageMapper;
import com.logpm.distribution.mapper.DistributionReservationStockarticleMapper;
import com.logpm.distribution.mapper.DistributionReservationStocklistMapper;
import com.logpm.distribution.mapper.DistributionSignforMapper;
import com.logpm.distribution.mapper.DistributionStockListMapper;
import com.logpm.distribution.mapper.DistributionStockMapper;
import com.logpm.distribution.mapper.DistributionStockupInfoMapper;
import com.logpm.distribution.mapper.DistributionStockupMapper;
import com.logpm.distribution.mapper.DistrilbutionBillLadingMapper;
import com.logpm.distribution.service.IDisStockListDetailService;
import com.logpm.distribution.service.IDistributionAsyncService;
import com.logpm.distribution.service.IDistributionDeliveryDetailsService;
import com.logpm.distribution.service.IDistributionParcelNumberService;
import com.logpm.distribution.service.IDistributionReservationStockarticleService;
import com.logpm.distribution.service.IDistributionReservationStocklistService;
import com.logpm.distribution.service.IDistributionReservationZeroPackageService;
import com.logpm.distribution.service.IDistributionStockArticleService;
import com.logpm.distribution.service.IDistrilbutionBillPackageService;
import com.logpm.distribution.service.IDistrilbutionBillStockService;
import com.logpm.distribution.vo.DistributionParcelNumberVO;
import com.logpm.distribution.vo.DistributionSignPrintVO;
import com.logpm.distribution.vo.DistributionStockPackageVO;
import com.logpm.distribution.vo.DistributionStockupSelfVO;
import com.logpm.distribution.vo.DistrilbutionBillStockVO;
import com.logpm.factory.comfac.dto.OrderStatusDTO;
import com.logpm.factory.mt.dto.MtReceiveContentDTO;
import com.logpm.factory.mt.dto.MtReceiveDTO;
@ -23,9 +74,7 @@ import com.logpm.factory.mt.dto.MtReceiveImagesDTO;
import com.logpm.factory.mt.feign.IMtOrderMainClinet;
import com.logpm.factory.oupai.feign.IOuPaiFactoryClinet;
import com.logpm.trunkline.dto.AddWaybillTrackDTO;
import com.logpm.trunkline.feign.ITrunklineWaybillOrderClient;
import com.logpm.trunkline.feign.ITrunklineWaybillTrackClient;
import com.logpm.warehouse.entity.WarehouseWarehouseEntity;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
@ -46,11 +95,17 @@ import org.springblade.common.constant.orderpackage.OrderPackageLoadingStatusCon
import org.springblade.common.constant.orderpackage.OrderPackageReservationStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStatusConstant;
import org.springblade.common.constant.orderpackage.OrderPackageStockupStatusConstant;
import org.springblade.common.constant.reservation.*;
import org.springblade.common.constant.reservation.ReservationInventoryLoadingStatusConstant;
import org.springblade.common.constant.reservation.ReservationInventorySigningStatusConstant;
import org.springblade.common.constant.reservation.ReservationInventoryStatusConstant;
import org.springblade.common.constant.reservation.ReservationLoadingStatusConstant;
import org.springblade.common.constant.reservation.ReservationOrderStatusConstant;
import org.springblade.common.constant.reservation.ReservationPackageStatusConstant;
import org.springblade.common.constant.reservation.ReservationSigningStatusConstant;
import org.springblade.common.constant.reservation.ReservationStockupStatusConstant;
import org.springblade.common.constant.signing.SignforStatusConstant;
import org.springblade.common.constant.stockup.StockupStatusConstant;
import org.springblade.common.constant.stockup.StockupTypeConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.utils.Func;
@ -60,7 +115,12 @@ import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@ -666,7 +726,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
distributionStockupSelfVO = distributionStockupMapper.stockupSelfOffShelf(stockupDTO);
} else {
//商 市
log.info(">>>> find bug stockupDTO {}",stockupDTO);
log.info(">>>> find bug stockupDTO {}", stockupDTO);
distributionStockupSelfVO = distributionStockupMapper.stockupOffShelf(stockupDTO);
}
//有
@ -962,7 +1022,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
if (Func.isNotEmpty(parcelNumberEntityList)) {
parcelNumberEntityList.forEach(p -> {
DistributionParcelListEntity zeroParcelListEntity = distributionParcelListService.getById(p.getParcelListId());
if (p.getOutboundQuantity() .equals(p.getQuantity()) && p.getOutboundQuantity() > 0) {
if (p.getOutboundQuantity().equals(p.getQuantity()) && p.getOutboundQuantity() > 0) {
//出库数量和总数量一致,此时包件处于装车状态
zeroParcelListEntity.setOrderPackageLoadingStatus(OrderPackageLoadingStatusConstant.yizhuangche.getValue());
}
@ -1448,8 +1508,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// }
break;
default:
log.info("开单其它品牌stockArticleEntity.getBrand() ={}",stockArticleEntity.getBrand());
//其他.....
log.info("开单其它品牌stockArticleEntity.getBrand() ={}", stockArticleEntity.getBrand());
//其他.....
}
}
@ -1506,6 +1566,11 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
List<DistributionSignPrintVO> distributionSignPrintVOS = distributionSignforMapper.selectSignImgsUrl(distributionSignforEntity.getReservationId());
if (Func.isNotEmpty(distributionSignPrintVOS)) {
for (DistributionSignPrintVO distributionSignPrintVO : distributionSignPrintVOS) {
if (StrUtil.isNotBlank(distributionSignPrintVO.getUrlRoute())) {
if (distributionSignPrintVO.getUrlRoute().startsWith("blob:")) {
continue;
}
}
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO();
mtReceiveImagesDTO.setImage(distributionSignPrintVO.getUrlRoute());
mtReceiveImagesDTOS.add(mtReceiveImagesDTO);
@ -1525,8 +1590,8 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
log.info(">>>>>>>>>>>>>>> 文员复核推送 品牌 {} ", brand);
assert brand != null;
if (Func.isNotEmpty(brand.get("梦天"))) {
assert brand != null;
if (Func.isNotEmpty(brand.get("梦天"))) {
mtReceiveDTO.setReceiveContentList(brand.get("梦天"));
orderMainClinet.sendReceiveInfoByNewSystem(mtReceiveDTO);
}
@ -1618,7 +1683,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.filter(p -> p.getOrderPackageLoadingStatus().equals(OrderPackageLoadingStatusConstant.weizhuancghe.getValue()) && !p.getOrderPackageStatus().equals(OrderPackageStatusConstant.yiqianshou.getValue()))
.map(DistributionParcelListEntity::getOrderCode)
.distinct().collect(Collectors.joining(","));
log.info(method+"维护订制品订单:{}",orderCodes);
log.info(method + "维护订制品订单:{}", orderCodes);
builder.append(orderCodes);
log.info(">>>>>> updatePackageDeliveryStatus,{}, {}", reservationId, packageIds);
@ -1627,7 +1692,7 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//维护预约订单状态
}
List<DistributionParcelNumberDTO> distributionParcelNumberDTOS = distributionReservationMapper.selectZeroPackageListByReservationId(reservationId);
if (Func.isNotEmpty(distributionParcelNumberDTOS)){
if (Func.isNotEmpty(distributionParcelNumberDTOS)) {
//查询此预约单下未进行装车且签收的零担包件
List<Long> packageIds = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getParcelListId).collect(Collectors.toList());
List<DistributionLoadscanEntity> loadscanEntityList = distributionLoadscanMapper.selectList(Wrappers.<DistributionLoadscanEntity>query().lambda()
@ -1635,22 +1700,22 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
.in(DistributionLoadscanEntity::getPackageId, packageIds)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue())
);
if (Func.isNotEmpty(loadscanEntityList)){
if (Func.isNotEmpty(loadscanEntityList)) {
//查看是否存在需要进行回库的零担
List<Long> collect = loadscanEntityList.stream().filter(f -> !packageIds.contains(f.getPackageId())).map(DistributionLoadscanEntity::getPackageId).collect(Collectors.toList());
if (Func.isNotEmpty(collect)){
if (Func.isNotEmpty(collect)) {
String orderCode = distributionParcelNumberDTOS.stream().filter(f -> collect.contains(f.getParcelListId())).map(DistributionParcelNumberDTO::getOrderCode).collect(Collectors.joining(","));
log.info(method+"维护零担订单:{}",orderCode);
log.info(method + "维护零担订单:{}", orderCode);
builder.append(orderCode);
//这些单子就是需要进行状态回退的零担包件
reservationZeroPackageService.recoverZeroPackage(reservationId,collect);
reservationZeroPackageService.recoverZeroPackage(reservationId, collect);
}
}else {
} else {
//计划数量全部回退
String orderCode = distributionParcelNumberDTOS.stream().map(DistributionParcelNumberDTO::getOrderCode).distinct().collect(Collectors.joining(","));
log.info(method+"维护零担订单:{}",orderCode);
log.info(method + "维护零担订单:{}", orderCode);
builder.append(orderCode);
reservationZeroPackageService.recoverZeroPackage(reservationId,packageIds);
reservationZeroPackageService.recoverZeroPackage(reservationId, packageIds);
}
}
distributionStockArticleService.maintenanceOrderInfo(builder.toString(), warehouseId);
@ -1690,55 +1755,88 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
* @param deliveryId
*/
@Override
public void sendTrunkineLog(Long deliveryId,Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse,Integer a) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
public void sendTrunkineLog(Long deliveryId, Long reservationId, BladeUser user, BasicdataWarehouseEntity warehouse, Integer a) {
DistributionDeliveryListEntity distributionDeliveryListEntity = distributionDeliveryListMapper.selectById(deliveryId);
List<DistributionParcelListEntity> distributionParcelListEntities = null;
if (1 ==a ){
if (1 == a) {
distributionParcelListEntities = distributionDeliveryListMapper.selectPackageListByDeliveryListId(deliveryId);
}else {
} else {
distributionParcelListEntities = distributionReservationMapper.selectPackageListByReservationId(reservationId);
}
//查询配送司机信息
Map<String,Object> driverInfo = distributionDeliveryListMapper.selectDeliveryDriverInfo(distributionDeliveryListEntity.getId());
if (Func.isNotEmpty(distributionParcelListEntities)){
Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber));
listMap.forEach((k, v) ->{
StringBuilder builder = new StringBuilder();
//统计已装车数量
WarehouseWaybillEntity byWaybillNo = waybillClient.findByWaybillNo(k);
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO();
addWaybillTrackDTO.setWaybillId(byWaybillNo.getId());
addWaybillTrackDTO.setWaybillNo(byWaybillNo.getWaybillNo());
if (1 ==a){
int sum = v.stream().filter(p -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(p.getOrderPackageLoadingStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("90");
addWaybillTrackDTO.setRefer("运单配送");
String msg = "运单配送:"+sum+"/"+v.size()+"件";
builder.append(msg);
//拼接配送信息
String deliveryMsg = "车牌号:"+ driverInfo.get("vehicleNub")+","+"司机姓名:"+driverInfo.get("driverName")+",司机电话:"+driverInfo.get("driverPhone")+",配送时间:"+distributionDeliveryListEntity.getTaskTime();
builder.append(deliveryMsg);
}else {
int sum = v.stream().filter(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("100");
addWaybillTrackDTO.setRefer("运单签收");
String msg = "运单签收:"+sum+"/"+v.size()+"件";
builder.append(msg);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
String deliveryMsg = "最近操作人:"+user.getNickName()+simpleDateFormat.format(new Date());
builder.append(deliveryMsg);
}
addWaybillTrackDTO.setNickName(user.getNickName());
addWaybillTrackDTO.setUserId(user.getUserId());
addWaybillTrackDTO.setWarehouseId(warehouse.getId());
addWaybillTrackDTO.setWarehouseName(warehouse.getName());
addWaybillTrackDTO.setOperationRemark(builder.toString());
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO);
});
}
//查询配送司机信息
Map<String, Object> driverInfo = distributionDeliveryListMapper.selectDeliveryDriverInfo(distributionDeliveryListEntity.getId());
if (Func.isNotEmpty(distributionParcelListEntities)) {
Map<String, List<DistributionParcelListEntity>> listMap = distributionParcelListEntities.stream().collect(Collectors.groupingBy(DistributionParcelListEntity::getWaybillNumber));
listMap.forEach((k, v) -> {
StringBuilder builder = new StringBuilder();
//统计已装车数量
WarehouseWaybillEntity byWaybillNo = waybillClient.findByWaybillNo(k);
AddWaybillTrackDTO addWaybillTrackDTO = new AddWaybillTrackDTO();
addWaybillTrackDTO.setWaybillId(byWaybillNo.getId());
addWaybillTrackDTO.setWaybillNo(byWaybillNo.getWaybillNo());
if (1 == a) {
int sum = v.stream().filter(p -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(p.getOrderPackageLoadingStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("90");
addWaybillTrackDTO.setRefer("运单配送");
String msg = "运单配送:" + sum + "/" + v.size() + "件";
builder.append(msg);
//拼接配送信息
String deliveryMsg = "车牌号:" + driverInfo.get("vehicleNub") + "," + "司机姓名:" + driverInfo.get("driverName") + ",司机电话:" + driverInfo.get("driverPhone") + ",配送时间:" + distributionDeliveryListEntity.getTaskTime();
builder.append(deliveryMsg);
} else {
int sum = v.stream().filter(p -> OrderPackageStatusConstant.yiqianshou.getValue().equals(p.getOrderPackageStatus())).mapToInt(DistributionParcelListEntity::getQuantity).sum();
addWaybillTrackDTO.setTrackType("100");
addWaybillTrackDTO.setRefer("运单签收");
String msg = "运单签收:" + sum + "/" + v.size() + "件";
builder.append(msg);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.sss");
String deliveryMsg = "最近操作人:" + user.getNickName() + simpleDateFormat.format(new Date());
builder.append(deliveryMsg);
}
addWaybillTrackDTO.setNickName(user.getNickName());
addWaybillTrackDTO.setUserId(user.getUserId());
addWaybillTrackDTO.setWarehouseId(warehouse.getId());
addWaybillTrackDTO.setWarehouseName(warehouse.getName());
addWaybillTrackDTO.setOperationRemark(builder.toString());
trunklineWaybillTrackClient.addWaybillLog(addWaybillTrackDTO);
});
}
}
/**
* @param l
*/
@Override
@Transactional
public void releaseBillLadingResource(Long l,Long warehouseId) {
List<DistrilbutionBillPackageEntity> list = billPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, l)
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2)
);
if (Func.isNotEmpty(list)){
List<Long> ids = list.stream().map(DistrilbutionBillPackageEntity::getParceListId).collect(Collectors.toList());
//查询包件
List<DistributionParcelListEntity> distributionParcelListEntities = distributionParcelListService.listByIds(ids);
List<Long> packageIds = distributionParcelListEntities.stream().filter(f -> OrderPackageLoadingStatusConstant.yizhuangche.getValue().equals(f.getOrderPackageLoadingStatus())|| !OrderPackageStatusConstant.yiqianshou.getValue().equals(f.getOrderPackageStatus())).map(DistributionParcelListEntity::getId).collect(Collectors.toList());
distributionParcelListService.update(new UpdateWrapper<DistributionParcelListEntity>().lambda()
.set(DistributionParcelListEntity::getOrderPackageReservationStatus,OrderPackageReservationStatusConstant.daiyuyue.getValue())
.set(DistributionParcelListEntity::getOrderPackageLoadingStatus,OrderPackageLoadingStatusConstant.weizhuancghe.getValue())
.set(DistributionParcelListEntity::getOrderPackageStatus,OrderPackageStatusConstant.yiruku.getValue())
.set(DistributionParcelListEntity::getOrderPackageStockupStatus,OrderPackageStockupStatusConstant.daibeihuo.getValue())
.in(DistributionParcelListEntity::getId,packageIds)
);
billPackageService.update(new UpdateWrapper<DistrilbutionBillPackageEntity>().lambda()
.set(DistrilbutionBillPackageEntity::getPacketBarStatus,2)
.eq(DistrilbutionBillPackageEntity::getBillLadingId,l)
.in(DistrilbutionBillPackageEntity::getParceListId,packageIds)
);
String collect = distributionParcelListEntities.stream().map(DistributionParcelListEntity::getOrderCode).distinct().collect(Collectors.joining(","));
distributionStockArticleService.maintenanceOrderInfo(collect,warehouseId);
//维护自提单订单信息
distrilbutionBillStockService.maintenanceOrderInfo(l);
}
}
@ -2343,18 +2441,18 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
public void changeOrderReservationStatus(DistributionStockArticleDTO stockArticleDTO) {
Long id = stockArticleDTO.getId();
DistributionStockArticleEntity stockArticleEntity = Func.copy(stockArticleDTO, DistributionStockArticleEntity.class);
assert stockArticleEntity != null;
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
assert stockArticleEntity != null;
if (stockArticleEntity.getIsZero().equals(IsOrNoConstant.no.getValue())) {
List<DistributionParcelListEntity> parcelListEntityList = distributionParcelListService.getBaseMapper().selectList(Wrappers.<DistributionParcelListEntity>query().lambda().eq(DistributionParcelListEntity::getStockArticleId, id));
boolean flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.yiyueyue.getValue()));
if (flag && stockArticleEntity.getTotalNumber() == parcelListEntityList.size()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
} else {
flag = parcelListEntityList.stream().allMatch(p -> p.getOrderPackageReservationStatus().equals(OrderPackageReservationStatusConstant.daiyuyue.getValue()));
if (flag) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.daiyuyue.getValue());
} else {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.bufenyuyue.getValue());
}
}
} else {
@ -2365,10 +2463,10 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
// parcelNumberEntities.forEach(p -> {
// unavailableNum.getAndAdd(p.getOutboundQuantity() + p.getDeliveryQuantity());
// });
if (Func.isNotEmpty(parcelNumberEntities)){
if (Func.isNotEmpty(parcelNumberEntities)) {
int sum = parcelNumberEntities.stream().mapToInt(p -> p.getOutboundQuantity() + p.getDeliveryQuantity()).sum();
unavailableNum.getAndAdd(sum);
log.info("################零担包件当前不可用数量:{}",sum);
log.info("################零担包件当前不可用数量:{}", sum);
}
if (unavailableNum.get() == stockArticleDTO.getHandQuantity()) {
stockArticleEntity.setReservationStatus(OrderReservationStatusConstant.yiyueyue.getValue());
@ -2656,13 +2754,13 @@ public class DistributionAsyncServiceImpl implements IDistributionAsyncService {
//修改
}
} else {
distributionStockup.setId(stockupDTO.getStockupId());
if (i == 0) {
distributionStockup.setId(stockupDTO.getStockupId());
if (i == 0) {
//修改备货状态
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
distributionStockup.setStockupStatus(StockupStatusConstant.yibeihuo.getValue());
} else {
//修改备货状态
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
distributionStockup.setStockupStatus(StockupStatusConstant.beihuozhong.getValue());
}
}

12
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionDeliveryListServiceImpl.java

@ -5845,7 +5845,9 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
int row = distributionReservationMapper.cancelReservationPackage(reservationId, orderPackageId);
// 查询该包件是否进行装车
if (row == 1) {
DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getDeliveryId, deliveryId).eq(DistributionLoadscanEntity::getReservationId, reservationId).eq(DistributionLoadscanEntity::getPackageId, orderPackageId).ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
DistributionLoadscanEntity loadscanEntity = distributionLoadscanService.getOne(Wrappers.<DistributionLoadscanEntity>query().lambda().eq(DistributionLoadscanEntity::getDeliveryId, deliveryId).eq(DistributionLoadscanEntity::getReservationId, reservationId)
.eq(DistributionLoadscanEntity::getPackageId, orderPackageId)
.ne(DistributionLoadscanEntity::getScanStatus, LoadingStatusConstant.quxiao.getValue()));
if (Func.isNotEmpty(loadscanEntity)) {
//修改包件状态 达到回库的状态
DistributionParcelListEntity parcelListEntity = distributionParcelListService.getById(loadscanEntity.getPackageId());
@ -6941,16 +6943,18 @@ public class DistributionDeliveryListServiceImpl extends BaseServiceImpl<Distrib
List<DistributionReservationEntity> distributionReservationEntities = baseMapper.selectReservationByDeliveryListId(deliveryId);
//查询客户列表
// log.info(">>>>>>>>>>>>>>> 车次状态维护3 代码执行 list={}",list);
if (Func.isNotEmpty(distributionReservationEntities)){
log.info(">>>>>>>>>>>>>>> 维护配送车次客户数量:{}",distributionReservationEntities.size());
boolean flag = distributionReservationEntities.stream().allMatch(a -> ReservationSigningStatusConstant.yiqianshou.getValue().equals(a.getSigningStatus()));
log.info(">>>>>>>>>>>>>>> 客户是否完全签收 代码执行 list:{}",flag);
if (flag) {
deliveryListEntity.setDeliveryStatus(DeliveryStatusConstant.yiwancheng.getValue());
}
}else {
log.error(">>>>>>>>>>>>>>> 查询配送车次错误 代码执行 deliveryId={}",deliveryId);
throw new RuntimeException("查询配送客户信息失效!!!");
//查询不出此配送任务存在预约信息,进行配送车次取消
this.cancelDelivery(deliveryListEntity.getId());
log.info(deliveryListEntity.getTrainNumber()+">>>>>>>>>>>>>>> 取消全部配送信息:{}",deliveryId);
log.info(">>>>>>>>>>>>>>> 进行配送车次任务取消",deliveryId);
}

5
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionReservationServiceImpl.java

@ -1963,7 +1963,10 @@ public class DistributionReservationServiceImpl extends BaseServiceImpl<Distribu
if (Func.isNotEmpty(mallId)) {
reservationEntity.setMallId(mallId.get(0));
}
reservationEntity.setStoreName(String.join(",", storeName));
if (Func.isNotEmpty(storeName)) {
// reservationEntity.setMallId(mallId.get(0));
reservationEntity.setStoreName(String.join(",", storeName));
}
reservationEntity.setReceivingUnit(String.join(",", receivingUnit));
reservationEntity.setReservationStockListNum(inventorTotal.get());
reservationEntity.setReservationDate(distributionReservationDTO.getReservationDate());

55
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionSignforServiceImpl.java

@ -35,7 +35,9 @@ import com.logpm.distribution.dto.*;
import com.logpm.distribution.dto.app.DistributionAppDeliveryListDTO;
import com.logpm.distribution.entity.*;
import com.logpm.distribution.excel.DistributionSignforExcel;
import com.logpm.distribution.excel.DistributionSignforOrderExcel;
import com.logpm.distribution.excel.DistributionSignforOwnExcel;
import com.logpm.distribution.excel.DistributionSignforPackageExcel;
import com.logpm.distribution.mapper.*;
import com.logpm.distribution.service.*;
import com.logpm.distribution.vo.*;
@ -1192,6 +1194,59 @@ public class DistributionSignforServiceImpl extends BaseServiceImpl<Distribution
}
/**
* @param signforId
* @return
*/
@Override
public List<DistributionSignforPackageExcel> exportDistributionSignforPackageList(Long signforId) {
List<DistributionParcelListVO> distributionParcelListVOS = this.signforPackageList(signforId);
List<DistributionSignforPackageExcel> distributionSignforPackageExcels = new ArrayList<>();
for (DistributionParcelListVO distributionParcelListVO : distributionParcelListVOS) {
DistributionSignforPackageExcel packageExcel = Func.copy(distributionParcelListVO, DistributionSignforPackageExcel.class);
distributionSignforPackageExcels.add(packageExcel);
}
return distributionSignforPackageExcels;
}
/**
* @param signforId
* @return
*/
@Override
public List<DistributionSignforOrderExcel> exportDistributionSignforOrderList(Long signforId) {
DistributionSignforEntity signforEntity = this.getById(signforId);
List<DistributionReservationStockarticleEntity> reservationStockarticleEntityList = distributionReservationStockarticleService.list(Wrappers.<DistributionReservationStockarticleEntity>query().lambda()
.eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId())
.ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue()));
// if (Func.isEmpty(reservationStockarticleEntityList)) {
// log.error("#####################预约查询无订单信息,reservationId:{}", signforEntity.getReservationId());
// return null;
// }
List<Long> orderIds = reservationStockarticleEntityList.stream().map(DistributionReservationStockarticleEntity::getStockArticleId).collect(Collectors.toList());
List<DistributionSignforOrderExcel> distributionSignforOrderExcels = new ArrayList<>();
if (Func.isNotEmpty(orderIds)) {
List<DistributionStockArticleEntity> stockArticleEntities = distributionStockArticleService.listByIds(orderIds);
List<DistributionStockArticleVO> distributionStockArticleVOS = DistributionStockArticleWrapper.build().listVO(stockArticleEntities);
for (DistributionStockArticleVO distributionStockArticleVO : distributionStockArticleVOS) {
//查询计划、装车、签收数量
DistributionReservationStockarticleEntity reservationStockarticleEntity = distributionReservationStockarticleService.getOne(Wrappers.<DistributionReservationStockarticleEntity>query().lambda()
.eq(DistributionReservationStockarticleEntity::getReservationId, signforEntity.getReservationId())
.eq(DistributionReservationStockarticleEntity::getStockArticleId, distributionStockArticleVO.getId())
.ne(DistributionReservationStockarticleEntity::getStockArticleStatus, ReservationOrderStatusConstant.quxiao.getValue())
);
distributionStockArticleVO.setReservationNum(reservationStockarticleEntity.getReservationNum());
Integer loadingNum = distributionLoadscanMapper.selectOrderLoadingNumByReservationIdAndDeliveryIdAndOrderId(signforEntity.getReservationId(), signforEntity.getDeliveryId(), distributionStockArticleVO.getId());
distributionStockArticleVO.setLoadingNumber(loadingNum);
Integer signingNum = distributionLoadscanMapper.selectOrderSigningNumByReservationIdAndDeliveryIdAndOrderId(signforEntity.getReservationId(), signforEntity.getDeliveryId(), distributionStockArticleVO.getId());
distributionStockArticleVO.setSigningNumber(signingNum);
DistributionSignforOrderExcel orderExcel = Func.copy(distributionStockArticleVO, DistributionSignforOrderExcel.class);
distributionSignforOrderExcels.add(orderExcel);
}
}
return distributionSignforOrderExcels;
}
private List<DeliveryNodeVo> handleStockUp(DistributionStockupEntity distributionStockupEntity) {
List<DeliveryNodeVo> nodeVos = new ArrayList<>();
try {

2
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistributionStockListServiceImpl.java

@ -765,7 +765,7 @@ public class DistributionStockListServiceImpl extends BaseServiceImpl<Distributi
map.put("img", QRCodeUtil.getEmpAutograph(filename));
if (Func.isNotEmpty(stockListEntity.getOrderCode())){
String fileTypeName = QRCodeUtil.createCodeToFile(stockListEntity.getOrderCode());
map.put("imgType", QRCodeUtil.getEmpAutograph(fileTypeName));
map.put("imgType", QRCodeUtil.createCodeToFileType(fileTypeName));
}
data.add(map);
}

67
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillLadingServiceImpl.java

@ -103,7 +103,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
private final IDistributionBillLadingScanService distributionBillLadingScanService;
private final IDistrilbutionBillStockService distrilbutionBillStockService;
private final IDistributionStockupScanService distributionStockupScanService;
@ -693,10 +692,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
public DistrilbutionBillLadingEntity selectByBillLadingCode(String searchCode) {
String method = "##########类DistrilbutionBi().selectByBillLadingCode,";
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
if (Func.isEmpty(myCurrentWarehouse)) {
return null;
}
return baseMapper.selectByBillLadingCode( myCurrentWarehouse.getId(),searchCode);
return baseMapper.selectByBillLadingCode(myCurrentWarehouse.getId(), searchCode);
}
/**
@ -708,6 +707,36 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
return baseMapper.selectBillLadingPlanNum(id);
}
/**
* @param billLadingId
* @return
*/
@Override
public Integer checkBillLadingIsRelease(Long billLadingId) {
String method = "###################################DistributionBillLadingServiceImpl.checkBillLadingIsRelease";
DistrilbutionBillLadingEntity billLadingEntity = this.getById(billLadingId);
if (Func.isEmpty(billLadingEntity)) {
log.info(method + "自提单查询失败:{}", billLadingId);
return 2;
}
Integer integer = this.selectBillLadingPlanNum(billLadingEntity.getId());
//查询是否存在自提扫描
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda()
.eq(DistributionBillLadingScanEntity::getBillLadingId, billLadingId));
boolean a = false;
if (Func.isEmpty(ladingScanEntities)) {
int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
//提货扫描数量和计划保持一致无需进行资源释放
if (integer == sum) {
return 1;
}else {
return 3;
}
} else {
return 4;
}
}
@Transactional
private Integer cancelBillLodingPackage(List<Long> ids) {
String method = "##########类DistrilbutionBillLadingServiceImpl执行方法cancelBillLoding,";
@ -727,16 +756,16 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
//取消包件
UpdateWrapper<DistrilbutionBillPackageEntity> updateWrapper = new UpdateWrapper<>();
updateWrapper.lambda()
.in(DistrilbutionBillPackageEntity::getBillLadingId,ids)
.set(DistrilbutionBillPackageEntity::getPacketBarStatus,"3")
.in(DistrilbutionBillPackageEntity::getBillLadingId, ids)
.set(DistrilbutionBillPackageEntity::getPacketBarStatus, "3")
;
distrilbutionBillPackageService.update(updateWrapper);
//取消订单
UpdateWrapper<DistrilbutionBillStockEntity> orderUpdateWrapper = new UpdateWrapper<>();
orderUpdateWrapper.lambda()
.in(DistrilbutionBillStockEntity::getBillLadingId,ids)
.set(DistrilbutionBillStockEntity::getOrderStatus,"3")
.in(DistrilbutionBillStockEntity::getBillLadingId, ids)
.set(DistrilbutionBillStockEntity::getOrderStatus, "3")
;
distrilbutionBillStockService.update(orderUpdateWrapper);
@ -753,8 +782,8 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
if (Func.isNotEmpty(distributionStockListEntities)) {
//已经备货的库存品 存在库存品包件
distributionStockListEntities.forEach(ddd -> {
//恢复库存品数量
distributionStockListService.updateInventoryQuantityOccupied(ddd.getStockListId(),ddd.getQuantity());
//恢复库存品数量
distributionStockListService.updateInventoryQuantityOccupied(ddd.getStockListId(), ddd.getQuantity());
//进行库存品包件取消
if (ddd.getStockStatus().equals("3")) {
disStockListDetailService.cancelInventoryPackageByReservationIdAnStockListId(ddd.getStockListId(), ddd.getBillLadingId());
@ -1790,7 +1819,7 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
DistrilbutionBillStockEntity one2 = distrilbutionBillStockService.getOne(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, billLadingId)
.apply("order_status in (1 , 2)")
.apply("order_status in (1 , 3)")
.eq(DistrilbutionBillStockEntity::getStockArticleId, list4.get(0).getStockArticleId())
);
if (ObjectUtils.isNull(one2)) {
@ -1879,7 +1908,6 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
distributionAsyncService.getStockUPstate(Long.parseLong(a));
log.info(coding + " > > 签收成功!!");
return Resp.scanSuccess("签收成功", "");
}
@ -1942,6 +1970,10 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
@Transactional(rollbackFor = Exception.class)
public Boolean updateOwn(String ids) {
String[] split = ids.split(",");
BasicdataWarehouseEntity myCurrentWarehouse = basicdataWarehouseClient.getMyCurrentWarehouse();
if (Func.isEmpty(myCurrentWarehouse)){
return false;
}
for (int i = 0; i < split.length; i++) {
String s = split[i];
//查询是不是上传图片
@ -1962,6 +1994,19 @@ public class DistrilbutionBillLadingServiceImpl extends BaseServiceImpl<Distrilb
billLadingEntity.setConditions(BillLadingStatusConstant.yiqianshou.getValue());
billLadingEntity.setId(Long.parseLong(s));
this.updateById(billLadingEntity);
//查询自提单是否完成扫描
Integer integer = this.selectBillLadingPlanNum(Long.parseLong(s));
List<DistributionBillLadingScanEntity> ladingScanEntities = distributionBillLadingScanService.list(Wrappers.<DistributionBillLadingScanEntity>query().lambda().eq(DistributionBillLadingScanEntity::getBillLadingId, Long.parseLong(s)));
if (Func.isNotEmpty(ladingScanEntities)){
int sum = ladingScanEntities.stream().mapToInt(DistributionBillLadingScanEntity::getQuantity).sum();
if (integer != sum){
//存在资源释放操作
distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId());
}
}else {
distributionAsyncService.releaseBillLadingResource(Long.parseLong(s),myCurrentWarehouse.getId());
}
//修改订单状态
List<DistrilbutionBillStockEntity> list = distrilbutionBillStockService.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, s)

46
blade-service/logpm-distribution/src/main/java/com/logpm/distribution/service/impl/DistrilbutionBillStockServiceImpl.java

@ -18,26 +18,33 @@ package com.logpm.distribution.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.logpm.distribution.dto.app.StockupDTO;
import com.logpm.distribution.entity.DistrilbutionBillPackageEntity;
import com.logpm.distribution.entity.DistrilbutionBillStockEntity;
import com.logpm.distribution.excel.DistributionBillOrderExcel;
import com.logpm.distribution.excel.DistributionBillOrderPackExcel;
import com.logpm.distribution.excel.DistrilbutionBillStockExcel;
import com.logpm.distribution.mapper.DistrilbutionBillStockMapper;
import com.logpm.distribution.service.IDistrilbutionBillPackageService;
import com.logpm.distribution.service.IDistrilbutionBillStockService;
import com.logpm.distribution.vo.*;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.DictBizConstant;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.DictBizCache;
import org.springblade.system.entity.User;
import org.springblade.system.feign.IUserClient;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -53,6 +60,8 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
private final IUserClient userClient;
private final IDistrilbutionBillPackageService distrilbutionBillPackageService;
@Override
public IPage<DistrilbutionBillStockVO> selectDistrilbutionBillStockPage(IPage<DistrilbutionBillStockVO> page, DistrilbutionBillStockVO distrilbutionBillStock) {
return page.setRecords(baseMapper.selectDistrilbutionBillStockPage(page, distrilbutionBillStock));
@ -170,4 +179,41 @@ public class DistrilbutionBillStockServiceImpl extends BaseServiceImpl<Distrilbu
});
return distributionBillOrderPackExcels;
}
/**
* @param l
*/
@Override
@Transactional
public void maintenanceOrderInfo(Long l) {
List<DistrilbutionBillStockEntity> entityList = this.list(Wrappers.<DistrilbutionBillStockEntity>query().lambda()
.eq(DistrilbutionBillStockEntity::getBillLadingId, l)
.ne(DistrilbutionBillStockEntity::getOrderStatus, "2")
);
List<Long> ids = new ArrayList<>();
if (Func.isNotEmpty(entityList)){
for (DistrilbutionBillStockEntity distrilbutionBillStockEntity : entityList) {
List<DistrilbutionBillPackageEntity> packageEntities = distrilbutionBillPackageService.list(Wrappers.<DistrilbutionBillPackageEntity>query().lambda()
.eq(DistrilbutionBillPackageEntity::getBillLadingId, l)
.eq(DistrilbutionBillPackageEntity::getStockArticleId, distrilbutionBillStockEntity.getStockArticleId())
.ne(DistrilbutionBillPackageEntity::getPacketBarStatus, 2)
);
if (Func.isEmpty(packageEntities)){
//取消订单
ids.add(distrilbutionBillStockEntity.getId());
}else {
int sum = packageEntities.stream().mapToInt(DistrilbutionBillPackageEntity::getPacketNumber).sum();
if (sum == 0){
ids.add(distrilbutionBillStockEntity.getId());
}
}
}
}
if (Func.isNotEmpty(ids)){
this.update(new UpdateWrapper<DistrilbutionBillStockEntity>().lambda()
.set(DistrilbutionBillStockEntity::getOrderStatus, "2")
.in(DistrilbutionBillStockEntity::getId, ids)
);
}
}
}

16
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/DistributionDatarepair.java

@ -140,6 +140,22 @@ public class DistributionDatarepair {
/**
* 维护指定取消预约信息
* @return
*/
@XxlJob("maintenanceDeliveryInfo")
public ReturnT<String> maintenanceDeliveryInfo(String params) {
//维护配送的状态
String method = "######################DistributionDatarepair.maintenanceDeliveryStatus";
log.info(method+"维护配送订单id:{}",params);
deliveryListClient.maintenanceDeliveryInfoByWarehouseId(params);
log.info(method+"维护配送订单结束");
return ReturnT.SUCCESS;
}

49
blade-service/logpm-report/src/main/java/com/logpm/report/controller/IndexCountController.java

@ -0,0 +1,49 @@
package com.logpm.report.controller;
import com.logpm.report.service.InLibraryDeliverService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpSession;
@AllArgsConstructor
@RestController
@RequestMapping("/index-count")
@Api(value = "首页统计数据", tags = "首页统计数据")
public class IndexCountController {
private InLibraryDeliverService inLibraryDeliverService;
@GetMapping("/index_count")
@ApiOperation(value = "定制品在库订单总量",tags = "定制品在库订单总量")
public R<Integer> indexCount(@RequestParam("id") Long id) {
Integer indexCount = inLibraryDeliverService.indexCount(id);
return R.data(indexCount);
}
@GetMapping("/index_number_in_the_library")
@ApiOperation(value = "定制品在库订单上架总数",tags = "定制品在库订单上架总数")
public R<Integer> getTheNumberOfShelvesInTheLibrary(@RequestParam("id") Long id){
Integer theNumberOfShelvesInTheLibrary= inLibraryDeliverService.theNumberOfShelvesInTheLibrary(id,2);
return R.data(theNumberOfShelvesInTheLibrary);
}
@GetMapping("/index_number_No_the_library")
@ApiOperation(value = "定制品在库订单未上架总数",tags = "定制品在库订单未上架总数")
public R<Integer> getTheNumberOfShelvesNoTheLibrary(@RequestParam("id") Long id){
Integer theNumberOfShelvesInTheLibrary= inLibraryDeliverService.theNumberOfShelvesInTheLibrary(id,1);
return R.data(theNumberOfShelvesInTheLibrary);
}
}

20
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.java

@ -0,0 +1,20 @@
package com.logpm.report.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface InLibraryDeliverMapper extends BaseMapper {
Integer obtainTheNumberOfInventoryListings (@Param("id") Long id);
Integer theNumberOfShelvesInTheLibrary(@Param("id") Long id , Integer order_package_grounding_status);
// Integer quantityInTransit(@Param("id") Long id,)
}

26
blade-service/logpm-report/src/main/java/com/logpm/report/mapper/InLibraryDeliverMapper.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.logpm.report.mapper.InLibraryDeliverMapper">
<select id="obtainTheNumberOfInventoryListings" resultType="java.lang.Integer">
select count (
*
) as con
from logpm_distribution_parcel_list
where warehouse_id = #{id} and
order_package_status = 20
and
conditions = 1
</select>
<select id="theNumberOfShelvesInTheLibrary" resultType="java.lang.Integer">
select count (
*
) as con
from logpm_distribution_parcel_list
where warehouse_id = #{id} and
order_package_status = 20
and
conditions = 1
and
order_package_grounding_status= #{order_package_grounding_status}
</select>
</mapper>

21
blade-service/logpm-report/src/main/java/com/logpm/report/service/InLibraryDeliverService.java

@ -0,0 +1,21 @@
package com.logpm.report.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.models.auth.In;
/**
* @author wzy
* @create 2024-03-06 15:51
*/
public interface InLibraryDeliverService {
IPage<InLibraryDeliverService> DistributionParcelListPage( ) ;
Integer indexCount(Long id);
Integer theNumberOfShelvesInTheLibrary(Long id,Integer order_package_grounding_statu);
}

29
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/InLibraryDeliverServiceImpl.java

@ -0,0 +1,29 @@
package com.logpm.report.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.report.mapper.InLibraryDeliverMapper;
import com.logpm.report.service.InLibraryDeliverService;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class InLibraryDeliverServiceImpl implements InLibraryDeliverService {
private InLibraryDeliverMapper inLibraryDeliverMapper;
@Override
public IPage<InLibraryDeliverService> DistributionParcelListPage() {
return null;
}
@Override
public Integer indexCount(Long id) {
return inLibraryDeliverMapper.obtainTheNumberOfInventoryListings(id);
}
public Integer theNumberOfShelvesInTheLibrary(Long id,Integer order_package_grounding_status){
return inLibraryDeliverMapper.theNumberOfShelvesInTheLibrary(id,order_package_grounding_status);
}
}

18
blade-service/logpm-report/src/main/java/com/logpm/report/service/impl/ReportBillLoadingAsyncService.java

@ -97,15 +97,15 @@ public class ReportBillLoadingAsyncService implements IReportBillLoadingAsyncSer
userIds.add(detailsVO.getExamineUser());
}
}
R<List<User>> listR = userClient.userInfoByIds(AuthUtil.getTenantId(), CollUtil.join(userIds, ","));
if (ObjectUtil.equal(ReportConstants.HTTP_SUCCESS_CODE, listR.getCode())) {
List<User> data = listR.getData();
Map<Long, String> collect = data.stream().collect(Collectors.toMap(User::getId, User::getName));
for (BillLoadingDetailsVO detailsVO : detailsPage) {
detailsVO.setScanUser(collect.get(detailsVO.getScanUser()));
detailsVO.setExamineUser(collect.get(detailsVO.getExamineUser()));
}
}
// R<List<User>> listR = userClient.userInfoByIds(AuthUtil.getTenantId(), CollUtil.join(userIds, ","));
// if (ObjectUtil.equal(ReportConstants.HTTP_SUCCESS_CODE, listR.getCode())) {
// List<User> data = listR.getData();
// Map<Long, String> collect = data.stream().collect(Collectors.toMap(User::getId, User::getName));
// for (BillLoadingDetailsVO detailsVO : detailsPage) {
// detailsVO.setScanUser(collect.get(detailsVO.getScanUser()));
// detailsVO.setExamineUser(collect.get(detailsVO.getExamineUser()));
// }
// }
}
return page.setRecords(detailsPage);

13
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/controller/CarsLoadController.java

@ -2177,11 +2177,11 @@ public class CarsLoadController {
@ResponseBody
@PostMapping("/abnormalList")
@PostMapping("/transitOrderPageList")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "成本分摊", notes = "传入loadCarsDTO")
public R abnormalList(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############abnormalList: ";
@ApiOperation(value = "在途订单列表", notes = "传入loadCarsDTO")
public R transitOrderPageList(@RequestBody LoadCarsDTO loadCarsDTO) {
String method = "############transitOrderPageList: ";
log.info(method + "请求参数{}", loadCarsDTO);
try{
@ -2193,7 +2193,7 @@ public class CarsLoadController {
}
loadCarsDTO.setWarehouseId(myCurrentWarehouse.getId());
return carsLoadService.abnormalList(loadCarsDTO);
return carsLoadService.transitOrderPageList(loadCarsDTO);
}catch (CustomerException e){
log.error(e.message,e);
return R.fail(e.code,e.message);
@ -2203,7 +2203,4 @@ public class CarsLoadController {
}
}
}

28
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/feign/TrunklineCarsLoadScanClient.java

@ -0,0 +1,28 @@
package com.logpm.trunkline.feign;
import com.logpm.trunkline.service.ITrunklineCarsLoadService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@Slf4j
@ApiIgnore()
@RestController
@AllArgsConstructor
public class TrunklineCarsLoadScanClient implements ITrunklineCarsLoadScanClient{
private final ITrunklineCarsLoadService trunklineCarsLoadService;
@Override
public void removeLoadScanById(Long carsLoadScanId) {
trunklineCarsLoadService.abnormalRemove(carsLoadScanId);
}
@Override
public R incomingPackage(Long carsLoadScanId) {
return trunklineCarsLoadService.syncIncomingPackage(carsLoadScanId);
}
}

7
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.java

@ -102,4 +102,11 @@ public interface TrunklineCarsLoadScanMapper extends BaseMapper<TrunklineCarsLoa
IPage<TrunklineCarsLoadScanVO> abnormalList(IPage<Object> page, @Param("loadCarsDTO") LoadCarsDTO loadCarsDTO);
List<TrunklineCarsLoadScanEntity> abnormalListStartCarByLoadIdAndWarehouseId(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<TrunklineCarsLoadScanEntity> findUnloadCheckAbnormalNoUnloadList(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
List<TrunklineCarsLoadScanEntity> findUnloadCheckAbnormalNoDataList(@Param("loadId") Long loadId, @Param("warehouseId") Long warehouseId);
IPage<TrunklineCarsLoadScanVO> transitOrderPageList(IPage<Object> page, @Param("param") LoadCarsDTO loadCarsDTO);
}

16
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/mapper/TrunklineCarsLoadScanMapper.xml

@ -478,4 +478,20 @@
and scan_status = '1'
</select>
<select id="findUnloadCheckAbnormalNoUnloadList" resultType="com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity">
select *
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and final_node_id = #{warehouseId}
and scan_status = '1'
</select>
<select id="findUnloadCheckAbnormalNoDataList" resultType="com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity">
select *
from logpm_trunkline_cars_load_scan
where load_id = #{loadId}
and unload_node_id = #{warehouseId}
and is_data = 0
</select>
</mapper>

7
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadScanService.java

@ -97,4 +97,11 @@ public interface ITrunklineCarsLoadScanService extends BaseService<TrunklineCars
IPage<TrunklineCarsLoadScanVO> abnormalList(IPage<Object> page, LoadCarsDTO loadCarsDTO);
List<TrunklineCarsLoadScanEntity> abnormalListStartCarByLoadIdAndWarehouseId(Long loadId, Long warehouseId);
List<TrunklineCarsLoadScanEntity> findUnloadCheckAbnormalNoUnloadList(Long loadId, Long warehouseId);
List<TrunklineCarsLoadScanEntity> findUnloadCheckAbnormalNoDataList(Long loadId, Long warehouseId);
IPage<TrunklineCarsLoadScanVO> transitOrderPageList(IPage<Object> page, LoadCarsDTO loadCarsDTO);
}

6
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/ITrunklineCarsLoadService.java

@ -188,4 +188,10 @@ public interface ITrunklineCarsLoadService extends BaseService<TrunklineCarsLoad
R costShareByLoadId(Long loadId);
R abnormalList(LoadCarsDTO loadCarsDTO);
void abnormalRemove(Long carsLoadScanId);
R syncIncomingPackage(Long carsLoadScanId);
R transitOrderPageList(LoadCarsDTO loadCarsDTO);
}

78
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/CarsLoadAsyncServiceImpl.java

@ -1,14 +1,14 @@
package com.logpm.trunkline.service.impl;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.feign.IAftersalesAbnormalRecordClient;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataWarehouseClient;
import com.logpm.distribution.entity.DistributionStockArticleEntity;
import com.logpm.distribution.feign.IDistributionStockArticleClient;
import com.logpm.trunkline.entity.*;
import com.logpm.trunkline.service.*;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.IWarehouseAbnormalRecordClient;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.DictBizConstant;
@ -18,6 +18,7 @@ import org.springblade.common.exception.CustomerException;
import org.springblade.common.utils.CommonUtil;
import org.springblade.system.cache.DictBizCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@ -43,8 +44,9 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
private IDistributionStockArticleClient distributionStockArticleClient;
@Autowired
private IBasicdataWarehouseClient warehouseClient;
@Lazy
@Autowired
private IWarehouseAbnormalRecordClient abnormalRecordClient;
private IAftersalesAbnormalRecordClient abnormalRecordClient;
@Async
@Override
@ -337,7 +339,7 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
String scanCode = trunklineCarsLoadScanEntity.getScanCode();
Long scanId = trunklineCarsLoadScanEntity.getId();
//无装车计划
WarehouseAbnormalRecordEntity abnormalRecordEntity = new WarehouseAbnormalRecordEntity();
AftersalesAbnormalRecordEntity abnormalRecordEntity = new AftersalesAbnormalRecordEntity();
abnormalRecordEntity.setTenantId(tenantId);
abnormalRecordEntity.setCreateUser(userId);
abnormalRecordEntity.setUpdateUser(userId);
@ -357,7 +359,7 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
abnormalRecordEntity.setUpTime(new Date());
abnormalRecordEntity.setAssociationId(scanId);
abnormalRecordEntity.setAssociationType(1);
abnormalRecordEntity.setRemark("无计划装车");
abnormalRecordEntity.setRemark("无计划装车---装车记录补录");
abnormalRecordClient.addAbnormalRecord(abnormalRecordEntity);
}
}
@ -373,7 +375,7 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
String orderCode = carsLoadScanEntity.getOrderCode();
String scanCode = carsLoadScanEntity.getScanCode();
//无装车记录
WarehouseAbnormalRecordEntity abnormalRecordEntity = new WarehouseAbnormalRecordEntity();
AftersalesAbnormalRecordEntity abnormalRecordEntity = new AftersalesAbnormalRecordEntity();
abnormalRecordEntity.setTenantId(tenantId);
abnormalRecordEntity.setCreateUser(userId);
abnormalRecordEntity.setUpdateUser(userId);
@ -400,8 +402,70 @@ public class CarsLoadAsyncServiceImpl implements ICarsLoadAsyncService {
@Async
@Override
public void abnormalListUnloadCheckByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String nodeName, String tenantId, Long userId, String nickName, Long firstLong) {
public void abnormalListUnloadCheckByLoadIdAndWarehouseId(Long loadId, Long warehouseId, String warehouseName, String tenantId, Long userId, String nickName, Long deptId) {
List<TrunklineCarsLoadScanEntity> noUnloadList = trunklineCarsLoadScanService.findUnloadCheckAbnormalNoUnloadList(loadId,warehouseId);
for (TrunklineCarsLoadScanEntity trunklineCarsLoadScanEntity : noUnloadList) {
String loadCode = trunklineCarsLoadScanEntity.getLoadCode();
String waybillNo = trunklineCarsLoadScanEntity.getWaybillNo();
String orderCode = trunklineCarsLoadScanEntity.getOrderCode();
String scanCode = trunklineCarsLoadScanEntity.getScanCode();
Long scanId = trunklineCarsLoadScanEntity.getId();
//无装车计划
AftersalesAbnormalRecordEntity abnormalRecordEntity = new AftersalesAbnormalRecordEntity();
abnormalRecordEntity.setTenantId(tenantId);
abnormalRecordEntity.setCreateUser(userId);
abnormalRecordEntity.setUpdateUser(userId);
abnormalRecordEntity.setCreateDept(deptId);
abnormalRecordEntity.setType("2");
abnormalRecordEntity.setAbnormalType("4");
abnormalRecordEntity.setCarType("1");
abnormalRecordEntity.setUpWarehouseId(warehouseId);
abnormalRecordEntity.setUpWarehouseName(warehouseName);
abnormalRecordEntity.setCarsNo(loadCode);
abnormalRecordEntity.setWaybillNo(waybillNo);
abnormalRecordEntity.setOrderCode(orderCode);
abnormalRecordEntity.setOrderPackageCode(scanCode);
abnormalRecordEntity.setUpUserId(userId);
abnormalRecordEntity.setUpUserName(nickName);
abnormalRecordEntity.setAbnormalStatus(0);
abnormalRecordEntity.setUpTime(new Date());
abnormalRecordEntity.setAssociationId(scanId);
abnormalRecordEntity.setAssociationType(1);
abnormalRecordEntity.setRemark("无卸车记录");
abnormalRecordClient.addAbnormalRecord(abnormalRecordEntity);
}
List<TrunklineCarsLoadScanEntity> noDataList = trunklineCarsLoadScanService.findUnloadCheckAbnormalNoDataList(loadId,warehouseId);
for (TrunklineCarsLoadScanEntity carsLoadScanEntity : noDataList) {
String loadCode = carsLoadScanEntity.getLoadCode();
String waybillNo = carsLoadScanEntity.getWaybillNo();
String orderCode = carsLoadScanEntity.getOrderCode();
String scanCode = carsLoadScanEntity.getScanCode();
Long scanId = carsLoadScanEntity.getId();
//无装车计划
AftersalesAbnormalRecordEntity abnormalRecordEntity = new AftersalesAbnormalRecordEntity();
abnormalRecordEntity.setTenantId(tenantId);
abnormalRecordEntity.setCreateUser(userId);
abnormalRecordEntity.setUpdateUser(userId);
abnormalRecordEntity.setCreateDept(deptId);
abnormalRecordEntity.setType("2");
abnormalRecordEntity.setAbnormalType("1");
abnormalRecordEntity.setCarType("1");
abnormalRecordEntity.setUpWarehouseId(warehouseId);
abnormalRecordEntity.setUpWarehouseName(warehouseName);
abnormalRecordEntity.setCarsNo(loadCode);
abnormalRecordEntity.setWaybillNo(waybillNo);
abnormalRecordEntity.setOrderCode(orderCode);
abnormalRecordEntity.setOrderPackageCode(scanCode);
abnormalRecordEntity.setUpUserId(userId);
abnormalRecordEntity.setUpUserName(nickName);
abnormalRecordEntity.setAbnormalStatus(0);
abnormalRecordEntity.setUpTime(new Date());
abnormalRecordEntity.setAssociationId(scanId);
abnormalRecordEntity.setAssociationType(1);
abnormalRecordEntity.setRemark("无系统编码");
abnormalRecordClient.addAbnormalRecord(abnormalRecordEntity);
}
}
}

18
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadScanServiceImpl.java

@ -7,7 +7,6 @@ import com.logpm.trunkline.entity.TrunklineCarsLoadScanEntity;
import com.logpm.trunkline.mapper.TrunklineCarsLoadScanMapper;
import com.logpm.trunkline.service.ITrunklineCarsLoadScanService;
import com.logpm.trunkline.vo.*;
import com.logpm.warehouse.feign.IWarehouseAbnormalRecordClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
@ -21,8 +20,6 @@ import java.util.Map;
@AllArgsConstructor
public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineCarsLoadScanMapper, TrunklineCarsLoadScanEntity> implements ITrunklineCarsLoadScanService {
private final IWarehouseAbnormalRecordClient warehouseAbnormalRecordClient;
@Override
public Integer findNumByLoadId(Long loadId) {
return baseMapper.findNumByLoadId(loadId);
@ -241,4 +238,19 @@ public class TrunklineCarsLoadScanServiceImpl extends BaseServiceImpl<TrunklineC
return baseMapper.abnormalListStartCarByLoadIdAndWarehouseId(loadId,warehouseId);
}
@Override
public List<TrunklineCarsLoadScanEntity> findUnloadCheckAbnormalNoUnloadList(Long loadId, Long warehouseId) {
return baseMapper.findUnloadCheckAbnormalNoUnloadList(loadId,warehouseId);
}
@Override
public List<TrunklineCarsLoadScanEntity> findUnloadCheckAbnormalNoDataList(Long loadId, Long warehouseId) {
return baseMapper.findUnloadCheckAbnormalNoDataList(loadId,warehouseId);
}
@Override
public IPage<TrunklineCarsLoadScanVO> transitOrderPageList(IPage<Object> page, LoadCarsDTO loadCarsDTO) {
return baseMapper.transitOrderPageList(page,loadCarsDTO);
}
}

106
blade-service/logpm-trunkline/src/main/java/com/logpm/trunkline/service/impl/TrunklineCarsLoadServiceImpl.java

@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.aftersales.entity.AftersalesAbnormalRecordEntity;
import com.logpm.aftersales.feign.IAftersalesAbnormalRecordClient;
import com.logpm.basicdata.entity.BasicdataTrayEntity;
import com.logpm.basicdata.entity.BasicdataWarehouseEntity;
import com.logpm.basicdata.feign.IBasicdataCodeClient;
@ -24,7 +26,10 @@ import com.logpm.trunkline.service.*;
import com.logpm.trunkline.vo.*;
import com.logpm.warehouse.entity.WarehouseWayBillDetail;
import com.logpm.warehouse.entity.WarehouseWaybillEntity;
import com.logpm.warehouse.feign.*;
import com.logpm.warehouse.feign.IWarehouseTrayTypeClient;
import com.logpm.warehouse.feign.IWarehouseUpdownTypeClient;
import com.logpm.warehouse.feign.IWarehouseWaybillClient;
import com.logpm.warehouse.feign.IWarehouseWaybillDetailClient;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringEscapeUtils;
@ -84,7 +89,7 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
private final IOpenOrderAsyncService openOrderAsyncService;
private final IDistributionParcelNumberClient distributionParcelNumberClient;
private final ITrunklineCostShareRecordService trunklineCostShareRecordService;
private final ITrunklineAdvanceService advanceService;
private final IAftersalesAbnormalRecordClient abnormalRecordClient;
@Override
public IPage<TrunklineCarsLoadVO> loadCarsPageList(LoadCarsDTO loadCarsDTO) {
@ -813,8 +818,6 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
map.put("flagType", "TrunklineUnloadConfirm");
rabbitTemplate.convertAndSend(RabbitConstant.TRUNKLINE_UNLOAD_CONFIRM_EXCHANGE, RabbitConstant.TRUNKLINE_UNLOAD_CONFIRM_ROUTING, map);
}
@Transactional(rollbackFor = Exception.class)
@ -3768,11 +3771,11 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
log.warn("################findCostShareBefore: 配载计划不存在 loadId={}",loadId);
return R.fail(405,"配载计划不存在");
}
List<TrunklineCarsLoadScanEntity> ls = trunklineCarsLoadScanService.findListNoDataByLoadId(loadId);
String carsNo = carsLoadEntity.getCarsNo();
List<AftersalesAbnormalRecordEntity> ls = abnormalRecordClient.findAbnormalList(carsNo);
Map<String,Object> map = new HashMap<>();
map.put("noDataLoadScanList",ls);
map.put("abnormalList",ls);
return R.data(map);
}
@ -3830,6 +3833,95 @@ public class TrunklineCarsLoadServiceImpl extends BaseServiceImpl<TrunklineCarsL
return R.data(ls);
}
@Override
public void abnormalRemove(Long carsLoadScanId) {
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
if(!Objects.isNull(carsLoadScanEntity)){
Long loadId = carsLoadScanEntity.getLoadId();
boolean b = trunklineCarsLoadScanService.deleteEntityByCarsLoadScanId(carsLoadScanId);
if(b){
updateNumByLoadId(loadId);
}
}
}
@Override
public R syncIncomingPackage(Long carsLoadScanId) {
TrunklineCarsLoadScanEntity carsLoadScanEntity = trunklineCarsLoadScanService.getById(carsLoadScanId);
if(Objects.isNull(carsLoadScanEntity)){
log.warn("#################syncIncomingPackage: 数据不存在 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"数据不存在");
}
String scanCode = carsLoadScanEntity.getScanCode();
Long unloadNodeId = carsLoadScanEntity.getUnloadNodeId();
String loadCode = carsLoadScanEntity.getLoadCode();
//判断是否入库
TrunklineAdvanceDetailEntity advanceDetailEntity = trunklineAdvanceDetailService.findEntityByOrderPackageCode(scanCode);
if(Objects.isNull(advanceDetailEntity)){
log.warn("#################syncIncomingPackage: 数据不存在 同步失败 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"数据不存在 同步失败");
}
String packageStatus = advanceDetailEntity.getPackageStatus();
String orderCode = advanceDetailEntity.getOrderCode();
String waybillNo = advanceDetailEntity.getWaybillNo();
if("0".equals(packageStatus)){
InComingDTO inComingDTO = new InComingDTO();
inComingDTO.setOrderPackageCode(scanCode);
inComingDTO.setWarehouseId(unloadNodeId);
R r = inComingService.incomingPackage(inComingDTO);
int code = r.getCode();
if(code != 200){
log.warn("#################syncIncomingPackage: 同步数据失败 carsLoadScanId={}",carsLoadScanId);
return R.fail(405,"同步数据失败");
}else{
carsLoadScanEntity.setWaybillNo(waybillNo);
carsLoadScanEntity.setOrderCode(orderCode);
carsLoadScanEntity.setIsData(1);
return R.success("同步成功");
}
}else{
DistributionParcelListEntity parcelListEntity = distributionParcelListClient.findByOrderPackageCodeAndStatus(scanCode);
if(!Objects.isNull(parcelListEntity)){
Long warehouseId = parcelListEntity.getWarehouseId();
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCodeAndWarehouseId(orderCode, warehouseId);
DistributionStockArticleEntity newStockArticle = new DistributionStockArticleEntity();
BeanUtil.copy(stockArticleEntity,newStockArticle);
newStockArticle.setId(null);
newStockArticle.setHandQuantity(0);
Long orderId = distributionStockArticleClient.addData(newStockArticle);
DistributionParcelListEntity newParcelList = new DistributionParcelListEntity();
BeanUtil.copy(parcelListEntity,newParcelList);
newParcelList.setId(null);
newParcelList.setTrainNumber(loadCode);
newParcelList.setStockArticleId(orderId);
distributionParcelListClient.add(newParcelList);
stockArticleEntity.setHandQuantity(stockArticleEntity.getHandQuantity()-1);
distributionStockArticleClient.saveOrUpdate(stockArticleEntity);
parcelListEntity.setOrderPackageStatus("60");
distributionParcelListClient.update(parcelListEntity);
return R.success("同步成功");
}else{
log.warn("###############syncIncomingPackage: 同步失败");
return R.fail(405,"同步数据失败");
}
}
}
@Override
public R transitOrderPageList(LoadCarsDTO loadCarsDTO) {
IPage<Object> page = new Page<>();
page.setCurrent(loadCarsDTO.getPageNum());
page.setSize(loadCarsDTO.getPageSize());
IPage<TrunklineCarsLoadScanVO> ls = trunklineCarsLoadScanService.transitOrderPageList(page,loadCarsDTO);
return R.data(ls);
}
@Override
public R loadingTrayInfo(LoadCarsDTO loadCarsDTO) {
log.info("##############loadingTrayInfo: 查询托盘的货物信息");

57
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/controller/OldSystemPushController.java

@ -12,6 +12,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.common.constant.OldSystemDataPushConfig;
import org.springblade.common.constant.RabbitConstant;
import org.springblade.common.exception.CustomerException;
import org.springblade.common.utils.CommonUtil;
@ -173,18 +174,23 @@ public class OldSystemPushController {
return R.fail(405,"打托方式不存在");
}
if (OldSystemDataPushConfig.getWarehourseIdList().contains(oldWarehouseId+"")) {
//先保存原始请求数据
WarehouseLog warehouseLog = new WarehouseLog();
warehouseLog.setArgs(JSONObject.toJSONString(trayInfoDTO));
warehouseLog.setStatus(0);
warehouseLog.setType(3);
warehouseLogService.save(warehouseLog);
//先保存原始请求数据
WarehouseLog warehouseLog = new WarehouseLog();
warehouseLog.setArgs(JSONObject.toJSONString(trayInfoDTO));
warehouseLog.setStatus(0);
warehouseLog.setType(3);
warehouseLogService.save(warehouseLog);
asyncDataService.sendTrayInfoByOrderPackageCode(trayInfoDTO);
asyncDataService.sendTrayInfoByOrderPackageCode(trayInfoDTO);
warehouseLog.setStatus(1);
warehouseLogService.updateById(warehouseLog);
}else{
log.warn("##############sendTrayInfoByOrderPackageCode: 已开放仓库 openWarehouseIds={}",OldSystemDataPushConfig.getWarehourseIdList());
log.warn("##############sendTrayInfoByOrderPackageCode: 当前仓不属于已开放的仓库 oldWarehouseId={}",oldWarehouseId);
}
warehouseLog.setStatus(1);
warehouseLogService.updateById(warehouseLog);
return R.success("操作成功");
}catch (CustomerException e){
log.error(e.message,e);
@ -197,22 +203,27 @@ public class OldSystemPushController {
@ResponseBody
@PostMapping("/addCreateTrayData")
@PostMapping("/unbindTrayData")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "老系统创建托盘数据", notes = "传入waybillDTO")
public R addCreateTrayData(@RequestBody TrayInfoDTO trayInfoDTO) {
log.info("############addCreateTrayData: 请求参数{}",trayInfoDTO);
@ApiOperation(value = "解绑托盘包件", notes = "传入waybillDTO")
public R unbindTrayData(@RequestBody TrayInfoDTO trayInfoDTO) {
log.info("############unbindTrayData: 请求参数{}",trayInfoDTO);
try{
List<String> trayNos = trayInfoDTO.getTrayNos();
Integer warehouseId = trayInfoDTO.getWarehouseId();
Integer trayId = trayInfoDTO.getTrayId();
String orderPackageCode = trayInfoDTO.getOrderPackageCode();
Integer oldWarehouseId = trayInfoDTO.getWarehouseId();
if(trayNos.size() == 0){
log.warn("##############addCreateTrayData: 托盘id不存在 trayNos={}",trayNos);
if(Objects.isNull(trayId)){
log.warn("##############addCreateTrayData: 托盘id不存在 trayId={}",trayId);
return R.fail(405,"托盘id不存在");
}
if(Objects.isNull(warehouseId)){
log.warn("##############addCreateTrayData: 仓库id不存在 warehouseId={}",warehouseId);
if(StringUtil.isBlank(orderPackageCode)){
log.warn("##############addCreateTrayData: 包件不能为空 orderPackageCode={}",orderPackageCode);
return R.fail(405,"包件不能为空");
}
if(Objects.isNull(oldWarehouseId)){
log.warn("##############addCreateTrayData: 仓库id不存在 oldWarehouseId={}",oldWarehouseId);
return R.fail(405,"仓库id不存在");
}
@ -220,10 +231,10 @@ public class OldSystemPushController {
WarehouseLog warehouseLog = new WarehouseLog();
warehouseLog.setArgs(JSONObject.toJSONString(trayInfoDTO));
warehouseLog.setStatus(0);
warehouseLog.setType(3);
warehouseLog.setType(4);
warehouseLogService.save(warehouseLog);
asyncDataService.addCreateTrayData(trayInfoDTO);
asyncDataService.unbindTrayData(trayInfoDTO);
warehouseLog.setStatus(1);
warehouseLogService.updateById(warehouseLog);
@ -232,8 +243,8 @@ public class OldSystemPushController {
log.error(e.message,e);
return R.fail(e.code,e.message);
}catch (Exception e){
log.error("############sendOrders: 系统异常",e);
return R.fail(500,"############sendOrders: 系统异常");
log.error("############unbindTrayData: 系统异常",e);
return R.fail(500,"############unbindTrayData: 系统异常");
}
}

14
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/dto/AbnormalRecordDTO.java

@ -1,14 +0,0 @@
package com.logpm.warehouse.dto;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import lombok.Data;
@Data
public class AbnormalRecordDTO extends WarehouseAbnormalRecordEntity {
private Long warehouseId;
private Integer pageNum;
private Integer pageSize;
}

21
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseAbnormalRecordClient.java

@ -1,21 +0,0 @@
package com.logpm.warehouse.feign;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import com.logpm.warehouse.service.IWarehouseAbnormalRecordService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore()
@RestController
@AllArgsConstructor
public class WarehouseAbnormalRecordClient implements IWarehouseAbnormalRecordClient {
private final IWarehouseAbnormalRecordService warehouseAbnormalRecordService;
@Override
public void addAbnormalRecord(WarehouseAbnormalRecordEntity warehouseAbnormalRecordEntity) {
warehouseAbnormalRecordEntity.setAbnormalStatus(0);
warehouseAbnormalRecordService.save(warehouseAbnormalRecordEntity);
}
}

16
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/mapper/WarehouseAbnormalRecordMapper.java

@ -1,16 +0,0 @@
package com.logpm.warehouse.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.logpm.warehouse.dto.AbnormalRecordDTO;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface WarehouseAbnormalRecordMapper extends BaseMapper<WarehouseAbnormalRecordEntity> {
IPage<WarehouseAbnormalRecordEntity> findPageList(IPage<Object> page, @Param("param") AbnormalRecordDTO abnormalRecordDTO);
}

3
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IAsyncDataService.java

@ -10,4 +10,7 @@ public interface IAsyncDataService {
void sendTrayInfoByOrderPackageCode(TrayInfoDTO trayInfoDTO);
void addCreateTrayData(TrayInfoDTO trayInfoDTO);
void unbindTrayData(TrayInfoDTO trayInfoDTO);
}

12
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseAbnormalRecordService.java

@ -1,12 +0,0 @@
package com.logpm.warehouse.service;
import com.logpm.warehouse.dto.AbnormalRecordDTO;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
public interface IWarehouseAbnormalRecordService extends BaseService<WarehouseAbnormalRecordEntity> {
R findPageList(AbnormalRecordDTO abnormalRecordDTO);
}

47
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/AsyncDataServiceImpl.java

@ -559,6 +559,53 @@ public class AsyncDataServiceImpl implements IAsyncDataService {
}
@Override
public void unbindTrayData(TrayInfoDTO trayInfoDTO) {
Integer oldTrayId = trayInfoDTO.getTrayId();
String orderPackageCode = trayInfoDTO.getOrderPackageCode();
Integer oldWarehouseId = trayInfoDTO.getWarehouseId();
BasicdataWarehouseEntity warehouseEntity = basicdataWarehouseClient.getWarehouseByOldId(oldWarehouseId);
if(Objects.isNull(warehouseEntity)){
log.warn("##############unbindTrayData: 仓库信息不存在 oldWarehouseId={}",oldWarehouseId);
throw new CustomerException(405,"仓库信息不存在");
}
BasicdataTrayEntity basicdataTrayEntity = basicdataTrayClient.getTrayByTrayCode("T" + oldTrayId);
Long trayId = null;
if(Objects.isNull(basicdataTrayEntity)){
log.info("############unbindTrayData: 托盘信息不存在 同步");
//如果托盘不存在就去同步该托盘
TrayEntity trayEntity = trayClient.getTrayById(oldTrayId);
basicdataTrayEntity = new BasicdataTrayEntity();
basicdataTrayEntity.setTenantId("627683");
basicdataTrayEntity.setCreateUser(1714696768639311873L);
basicdataTrayEntity.setUpdateUser(1714696768639311873L);
basicdataTrayEntity.setCreateDept(1649331096241836033L);
basicdataTrayEntity.setPalletName(trayEntity.getTrayNo());
basicdataTrayEntity.setPalletCode("T"+trayEntity.getId());
basicdataTrayEntity.setWarehouseId(warehouseEntity.getId());
basicdataTrayEntity.setTrayStatus(trayEntity.getStatus()+"");
basicdataTrayEntity.setType(1);
basicdataTrayEntity.setOldId(trayEntity.getId());
// basicdataTrayEntity.setNowWarehouseId(nowNewWarehouseId);
trayId = basicdataTrayClient.addTray(basicdataTrayEntity);
basicdataTrayEntity.setId(trayId);
}else{
trayId = basicdataTrayEntity.getId();
}
Long allocationId = taryAllocationService.getAllocationIdByTrayId(trayId);
if(Objects.isNull(allocationId)){
List<String> orderPackageCodes = new ArrayList<>();
orderPackageCodes.add(orderPackageCode);
trayTypeService.deleteScanOrderPackageCode("T"+trayId,orderPackageCodes, warehouseEntity.getId());
}else{
log.warn("#############unbindTrayData: 托盘已上架 trayId={}",trayId);
throw new CustomerException(405,"托盘已上架");
}
}
private void dealWithStockTray(String materialCode, String marketName, String incomingBatch, Integer stockNum, String trayCode, String trayType, Long warehouseId) {
log.info("#############dealWithStockTray: 处理库存品的打托");

31
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseAbnormalRecordServiceImpl.java

@ -1,31 +0,0 @@
package com.logpm.warehouse.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.logpm.warehouse.dto.AbnormalRecordDTO;
import com.logpm.warehouse.entity.WarehouseAbnormalRecordEntity;
import com.logpm.warehouse.mapper.WarehouseAbnormalRecordMapper;
import com.logpm.warehouse.service.IWarehouseAbnormalRecordService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R;
import org.springframework.stereotype.Service;
@Slf4j
@Service
@AllArgsConstructor
public class WarehouseAbnormalRecordServiceImpl extends BaseServiceImpl<WarehouseAbnormalRecordMapper,WarehouseAbnormalRecordEntity> implements IWarehouseAbnormalRecordService {
@Override
public R findPageList(AbnormalRecordDTO abnormalRecordDTO) {
IPage<Object> page = new Page<>();
page.setCurrent(abnormalRecordDTO.getPageNum());
page.setSize(abnormalRecordDTO.getPageSize());
IPage<WarehouseAbnormalRecordEntity> pageList = baseMapper.findPageList(page,abnormalRecordDTO);
return R.data(pageList);
}
}

3
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseRetentionRecordServiceImpl.java

@ -315,6 +315,9 @@ public class WarehouseRetentionRecordServiceImpl extends BaseServiceImpl<Warehou
//零担
saveFlah.set(distributionDeliveryListClient.retentionDeliveryReservationZeroPackage(rs.getDeliveryId(), rs.getReservationId(), rs.getOrderPackageId(),rs.getRetentionQuantity(),rs.getOrderId()));
break;
default:
log.error(">>>>> rs.getConditions()={}",rs.getConditions());
}
}
});

Loading…
Cancel
Save