Browse Source

1.同步订单数据时判断是在存在于盘点任务中

2.同步包条数据时判断是否在盘点任务中
3.补全同步订单信息的入库时间
training
zhenghaoyu 1 year ago
parent
commit
4d2a9c93e8
  1. 3
      blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java
  2. 57
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/entity/InventoryDetailEntity.java
  3. 23
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IInventoryDetailClient.java
  4. 6
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOrderClient.java
  5. 3
      blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/ITrayScanDesClient.java
  6. 1
      blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/entity/OrderSyncRecordEntity.java
  7. 3
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java
  8. 2
      blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillClient.java
  9. 6
      blade-service/logpm-distribution/src/main/java/com/logpm/distribution/feign/DistributionParcelListClient.java
  10. 25
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/InventoryDetailClient.java
  11. 10
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/OrderClient.java
  12. 5
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/TrayScanDesClient.java
  13. 14
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/InventoryDetailMapper.java
  14. 23
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/InventoryDetailMapper.xml
  15. 4
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.java
  16. 49
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.xml
  17. 4
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/TrayScanDesMapper.java
  18. 16
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/TrayScanDesMapper.xml
  19. 11
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IInventoryDetailService.java
  20. 4
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IOrderService.java
  21. 2
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/ITrayScanDesService.java
  22. 24
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/InventoryDetailServiceImpl.java
  23. 10
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/OrderServiceImpl.java
  24. 5
      blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/TrayScanDesServiceImpl.java
  25. 101
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java
  26. 2
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java
  27. 246
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  28. 26
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java
  29. 3
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseWaybillClient.java
  30. 1
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java
  31. 111
      blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

3
blade-service-api/logpm-distribution-api/src/main/java/com/logpm/distribution/feign/IDistributionParcelListClient.java

@ -96,4 +96,7 @@ public interface IDistributionParcelListClient {
*/
@GetMapping(API_PREFIX+"/getParcelListByStockArticleId")
List<DistributionParcelListEntity> getParcelListByStockArticleId(@RequestParam Long id);
@PostMapping(API_PREFIX+"/addReturnId")
Long addReturnId(@RequestBody DistributionParcelListEntity entity);
}

57
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/entity/InventoryDetailEntity.java

@ -0,0 +1,57 @@
package com.logpm.oldproject.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
@Data
@TableName("ht_inventory_detail")
@ApiModel(value = "InventoryDetail对象", description = "盘点任务明细")
public class InventoryDetailEntity {
@TableId(
value = "id",
type = IdType.AUTO
)
private Integer id;
@JsonProperty("unitNo")
private String unitNo;
@JsonProperty("orderSelfNum")
private String orderSelfNum;
private Integer abnormalStatus;
private Integer locationId;
private Integer inventoryId;
private Integer administratorsId;
private Integer status;
private String firstName;
private String secondName;
private String thirdName;
private String productname;
private Integer systemExists;
private Integer trayId;
private Date createTime;
private Date updateTime;
private Integer deleteTime;
}

23
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IInventoryDetailClient.java

@ -0,0 +1,23 @@
package com.logpm.oldproject.feign;
import com.logpm.oldproject.entity.InventoryDetailEntity;
import org.springblade.common.constant.ModuleNameConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(
value = ModuleNameConstant.APPLICATION_OLDPROJECT_NAME
)
public interface IInventoryDetailClient {
String API_PREFIX = "/inventoryDetail/client";
@GetMapping(API_PREFIX + "/findOrderIsExist")
InventoryDetailEntity findOrderIsExist(@RequestParam String orderCode);
@GetMapping(API_PREFIX + "/findUnitNoIsExist")
InventoryDetailEntity findUnitNoIsExist(@RequestParam String unitNo);
// @GetMapping(API_PREFIX + "/getEntityByOrderCode")
// OrderCountEntity getEntityByOrderCode(@RequestParam String orderCode, @RequestParam Integer oldWarehouseId);
}

6
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IOrderClient.java

@ -51,4 +51,10 @@ public interface IOrderClient {
@GetMapping(API_PREFIX + "/getGoodsTypeByOrderCode")
Integer getGoodsTypeByOrderCode(@RequestParam String orderCode,@RequestParam Integer oldWarehouseId);
@GetMapping(API_PREFIX + "/getTotalCountByZero")
Integer getTotalCountByZero(@RequestParam String param, @RequestParam Integer oldWarehouseId);
@GetMapping(API_PREFIX + "/findOrderCodeListByZero")
List<String> findOrderCodeListByZero(@RequestParam String param, @RequestParam Integer oldWarehouseId, @RequestParam Integer pageNum, @RequestParam Integer pageSize);
}

3
blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/ITrayScanDesClient.java

@ -18,6 +18,9 @@ public interface ITrayScanDesClient {
@GetMapping(API_PREFIX + "/findListByOrderCodeAndWarehouseId")
List<TrayScanDesEntity> findListByOrderCodeAndWarehouseId(@RequestParam String orderCode, @RequestParam Integer oldWarehouseId);
@GetMapping(API_PREFIX + "/findZeroListByOrderCodeAndWarehouseId")
List<TrayScanDesEntity> findZeroListByOrderCodeAndWarehouseId(@RequestParam String orderCode, @RequestParam Integer oldWarehouseId);
// @GetMapping(API_PREFIX + "/getEntityByOrderCode")
// OrderCountEntity getEntityByOrderCode(@RequestParam String orderCode, @RequestParam Integer oldWarehouseId);
}

1
blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/entity/OrderSyncRecordEntity.java

@ -16,5 +16,6 @@ public class OrderSyncRecordEntity extends BaseEntity {
private Integer currentPage;
private Integer finishNum;
private Integer syncStatus;
private Integer type;
}

3
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseTrayTypeClient.java

@ -53,4 +53,7 @@ public interface IWarehouseTrayTypeClient {
@PostMapping(API_PREFIX+"/orderScanOrderPackageCode")
boolean orderScanOrderPackageCode(@RequestBody Map<String, Object> map);
@PostMapping(API_PREFIX+"/enterZeroOrderByTrayCode")
boolean enterZeroOrderByTrayCode(@RequestBody Map<String, Object> map);
}

2
blade-service-api/logpm-warehouse-api/src/main/java/com/logpm/warehouse/feign/IWarehouseWaybillClient.java

@ -56,7 +56,7 @@ public interface IWarehouseWaybillClient {
WarehouseWaybillEntity findByWaybillId(@RequestParam("waybillId") Long waybillId);
@PostMapping(API_PREFIX + "/addEnntity")
void addEnntity(@RequestBody WarehouseWaybillEntity warehouseWaybill);
Long addEnntity(@RequestBody WarehouseWaybillEntity warehouseWaybill);
@PostMapping(API_PREFIX + "/updateEntity")
void updateEntity(@RequestBody WarehouseWaybillEntity warehouseWaybill);

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

@ -157,4 +157,10 @@ public class DistributionParcelListClient implements IDistributionParcelListClie
return distributionParcelListService.getParcelListByStockArticleId(id);
}
@Override
public Long addReturnId(DistributionParcelListEntity entity) {
distributionParcelListService.save(entity);
return entity.getId();
}
}

25
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/InventoryDetailClient.java

@ -0,0 +1,25 @@
package com.logpm.oldproject.feign;
import com.logpm.oldproject.entity.InventoryDetailEntity;
import com.logpm.oldproject.service.IInventoryDetailService;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
@ApiIgnore()
@RestController
@AllArgsConstructor
public class InventoryDetailClient implements IInventoryDetailClient{
private final IInventoryDetailService inventoryDetailService;
@Override
public InventoryDetailEntity findOrderIsExist(String orderCode) {
return inventoryDetailService.findOrderIsExist(orderCode);
}
@Override
public InventoryDetailEntity findUnitNoIsExist(String unitNo) {
return inventoryDetailService.findUnitNoIsExist(unitNo);
}
}

10
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/OrderClient.java

@ -61,4 +61,14 @@ public class OrderClient implements IOrderClient {
public Integer getGoodsTypeByOrderCode(String orderCode,Integer oldWarehouseId) {
return orderService.getGoodsTypeByOrderCode(orderCode,oldWarehouseId);
}
@Override
public Integer getTotalCountByZero(String param, Integer oldWarehouseId) {
return orderService.getTotalCountByZero(param,oldWarehouseId);
}
@Override
public List<String> findOrderCodeListByZero(String param, Integer oldWarehouseId, Integer pageNum, Integer pageSize) {
return orderService.findOrderCodeListByZero(param,oldWarehouseId,pageNum,pageSize);
}
}

5
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/TrayScanDesClient.java

@ -19,4 +19,9 @@ public class TrayScanDesClient implements ITrayScanDesClient {
public List<TrayScanDesEntity> findListByOrderCodeAndWarehouseId(String orderCode, Integer oldWarehouseId) {
return trayScanDesService.findListByOrderCodeAndWarehouseId(orderCode,oldWarehouseId);
}
@Override
public List<TrayScanDesEntity> findZeroListByOrderCodeAndWarehouseId(String orderCode, Integer oldWarehouseId) {
return trayScanDesService.findZeroListByOrderCodeAndWarehouseId(orderCode, oldWarehouseId);
}
}

14
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/InventoryDetailMapper.java

@ -0,0 +1,14 @@
package com.logpm.oldproject.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.oldproject.entity.InventoryDetailEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface InventoryDetailMapper extends BaseMapper<InventoryDetailEntity> {
InventoryDetailEntity findOrderIsExist(@Param("orderCode") String orderCode);
InventoryDetailEntity findUnitNoIsExist(@Param("unitNo") String unitNo);
}

23
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/InventoryDetailMapper.xml

@ -0,0 +1,23 @@
<?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.oldproject.mapper.InventoryDetailMapper">
<select id="findOrderIsExist" resultType="com.logpm.oldproject.entity.InventoryDetailEntity">
select *
from ht_inventory_detail
where inventory_id in (185,187,188,189)
and orderSelfNum = #{orderCode}
and status = 2
limit 1
</select>
<select id="findUnitNoIsExist" resultType="com.logpm.oldproject.entity.InventoryDetailEntity">
select *
from ht_inventory_detail
where inventory_id in (185,187,188,189)
and unitNo = #{unitNo}
and status = 2
limit 1
</select>
</mapper>

4
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.java

@ -35,4 +35,8 @@ public interface OrderMapper extends BaseMapper<OrderEntity> {
List<String> findOrderCodeListByPage(@Param("param") String param, @Param("oldWarehouseId") Integer oldWarehouseId, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
Integer getGoodsTypeByOrderCode(@Param("orderCode") String orderCode,@Param("oldWarehouseId") Integer oldWarehouseId);
Integer getTotalCountByZero(@Param("param") String param, @Param("oldWarehouseId") Integer oldWarehouseId);
List<String> findOrderCodeListByZero(@Param("param") String param, @Param("oldWarehouseId") Integer oldWarehouseId, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
}

49
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/OrderMapper.xml

@ -15,6 +15,7 @@
AND `i`.`status` &lt;&gt; 11
AND `i`.`delete_time` = '0'
AND ( ( `i`.`in_num` + `i`.`delives_num` ) > 0 )
AND `i`.`goods_type` = '1'
AND `i`.warehouse_id = #{oldWarehouseId}
<if test="param != null and param != ''">
AND `i`.`orderSelfNum` = #{param}
@ -36,6 +37,7 @@
AND `i`.`status` &lt;&gt; 11
AND `i`.`delete_time` = '0'
AND ( ( `i`.`in_num` + `i`.`delives_num` ) > 0 )
AND `i`.`goods_type` = '1'
AND `i`.warehouse_id = #{oldWarehouseId}
<if test="param != null and param != ''">
AND `i`.`orderSelfNum` = #{param}
@ -57,4 +59,51 @@
AND `i`.`orderSelfNum` = #{orderCode}
</select>
<select id="getTotalCountByZero" resultType="Integer">
SELECT
count(i.orderSelfNum)
FROM
`ht_order_count` `i`
INNER JOIN `ht_way_bill` `w` ON `w`.`waybill_no` = `i`.`orderSelfNum`
LEFT JOIN `ht_customer` `customer` ON `customer`.`id` = `w`.`send_id`
WHERE
`i`.`status` &lt;&gt; 11
AND `i`.`history_type` = 0
AND `i`.`delete_time` = '0'
AND `w`.`delete_time` = '0'
AND `i`.`create_time` > '2021-07-01 00:00:00'
AND `i`.`goods_type` = '2'
and `i`.warehouse_id = #{oldWarehouseId}
<if test="param != null and param != ''">
AND `i`.`orderSelfNum` = #{param}
</if>
ORDER BY
`i`.`id` DESC
</select>
<select id="findOrderCodeListByZero" resultType="java.lang.String">
SELECT
i.orderSelfNum
FROM
`ht_order_count` `i`
INNER JOIN `ht_way_bill` `w` ON `w`.`waybill_no` = `i`.`orderSelfNum`
LEFT JOIN `ht_customer` `customer` ON `customer`.`id` = `w`.`send_id`
WHERE
`i`.`status` &lt;&gt; 11
AND `i`.`history_type` = 0
AND `i`.`delete_time` = '0'
AND `w`.`delete_time` = '0'
AND `i`.`create_time` > '2021-07-01 00:00:00'
AND `i`.`goods_type` = '2'
and `i`.warehouse_id = #{oldWarehouseId}
<if test="param != null and param != ''">
AND `i`.`orderSelfNum` = #{param}
</if>
ORDER BY
`i`.`id` ASC
LIMIT #{pageNum},#{pageSize}
</select>
</mapper>

4
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/TrayScanDesMapper.java

@ -3,7 +3,11 @@ package com.logpm.oldproject.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.logpm.oldproject.entity.TrayScanDesEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface TrayScanDesMapper extends BaseMapper<TrayScanDesEntity> {
List<TrayScanDesEntity> findZeroListByOrderCodeAndWarehouseId(@Param("orderCode") String orderCode, @Param("oldWarehouseId") Integer oldWarehouseId);
}

16
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/TrayScanDesMapper.xml

@ -2,6 +2,22 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.logpm.oldproject.mapper.TrayScanDesMapper">
<select id="findZeroListByOrderCodeAndWarehouseId" resultType="com.logpm.oldproject.entity.TrayScanDesEntity">
select tsd.orderSelfNum orderSelfNum,
tsd.tray_id trayId,
tsd.tray_scan_id trayScanId,
sum(tsd.num) num
from ht_tray_scan_des tsd
where tsd.is_zero = 1
and tsd.warehouse_id = #{oldWarehouseId}
and tsd.orderSelfNum = #{orderCode}
and tsd.is_deleted = 0
and tsd.type = 1
group by tsd.orderSelfNum,
tsd.tray_id,
tsd.tray_scan_id
</select>
</mapper>

11
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IInventoryDetailService.java

@ -0,0 +1,11 @@
package com.logpm.oldproject.service;
import com.logpm.oldproject.entity.InventoryDetailEntity;
public interface IInventoryDetailService {
InventoryDetailEntity findOrderIsExist(String orderCode);
InventoryDetailEntity findUnitNoIsExist(String unitNo);
}

4
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IOrderService.java

@ -15,4 +15,8 @@ public interface IOrderService {
List<String> findOrderCodeListByPage(String param, Integer oldWarehouseId, Integer pageNum, Integer pageSize);
Integer getGoodsTypeByOrderCode(String orderCode,Integer oldWarehouseId);
Integer getTotalCountByZero(String param, Integer oldWarehouseId);
List<String> findOrderCodeListByZero(String param, Integer oldWarehouseId, Integer pageNum, Integer pageSize);
}

2
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/ITrayScanDesService.java

@ -6,4 +6,6 @@ import java.util.List;
public interface ITrayScanDesService {
List<TrayScanDesEntity> findListByOrderCodeAndWarehouseId(String orderCode, Integer oldWarehouseId);
List<TrayScanDesEntity> findZeroListByOrderCodeAndWarehouseId(String orderCode, Integer oldWarehouseId);
}

24
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/InventoryDetailServiceImpl.java

@ -0,0 +1,24 @@
package com.logpm.oldproject.service.impl;
import com.logpm.oldproject.entity.InventoryDetailEntity;
import com.logpm.oldproject.mapper.InventoryDetailMapper;
import com.logpm.oldproject.service.IInventoryDetailService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class InventoryDetailServiceImpl implements IInventoryDetailService {
private final InventoryDetailMapper inventoryDetailMapper;
@Override
public InventoryDetailEntity findOrderIsExist(String orderCode) {
return inventoryDetailMapper.findOrderIsExist(orderCode);
}
@Override
public InventoryDetailEntity findUnitNoIsExist(String unitNo) {
return inventoryDetailMapper.findUnitNoIsExist(unitNo);
}
}

10
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/OrderServiceImpl.java

@ -48,4 +48,14 @@ public class OrderServiceImpl implements IOrderService {
public Integer getGoodsTypeByOrderCode(String orderCode,Integer oldWarehouseId) {
return orderMapper.getGoodsTypeByOrderCode(orderCode,oldWarehouseId);
}
@Override
public Integer getTotalCountByZero(String param, Integer oldWarehouseId) {
return orderMapper.getTotalCountByZero(param,oldWarehouseId);
}
@Override
public List<String> findOrderCodeListByZero(String param, Integer oldWarehouseId, Integer pageNum, Integer pageSize) {
return orderMapper.findOrderCodeListByZero(param,oldWarehouseId,pageNum*pageSize,pageSize);
}
}

5
blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/TrayScanDesServiceImpl.java

@ -23,4 +23,9 @@ public class TrayScanDesServiceImpl implements ITrayScanDesService {
.eq("orderSelfNum",orderCode);
return trayScanDesMapper.selectList(queryWrapper);
}
@Override
public List<TrayScanDesEntity> findZeroListByOrderCodeAndWarehouseId(String orderCode, Integer oldWarehouseId) {
return trayScanDesMapper.findZeroListByOrderCodeAndWarehouseId(orderCode,oldWarehouseId);
}
}

101
blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java

@ -62,6 +62,7 @@ public class SyncOrderInfoToPlatform {
//查询该仓库是否有未完成的同步数据
QueryWrapper<OrderSyncRecordEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("old_warehouse_id",oldWarehouseId)
.eq("type",1)
.ne("sync_status",2);
OrderSyncRecordEntity one = orderSyncRecordService.getOne(queryWrapper);
if(!Objects.isNull(one)){
@ -71,6 +72,10 @@ public class SyncOrderInfoToPlatform {
}else{
//查询本次同步一共多少的个订单
Integer totalNum = orderClient.getTotalCountBy(param,oldWarehouseId);
if(totalNum == 0){
log.info("################syncZeroOrderInfo: 暂无需要执行的数据");
return ReturnT.SUCCESS;
}
log.info("##################syncOrderInfo: 一共需要同步{}条数据",totalNum);
//计算出需要多少页
int i = totalNum % pageSize;
@ -85,6 +90,7 @@ public class SyncOrderInfoToPlatform {
one.setOldWarehouseId(oldWarehouseId);
one.setTotalNum(totalNum);
one.setTotalPage(totalPage);
one.setType(1);
one.setCurrentPage(0);
one.setFinishNum(0);
one.setSyncStatus(0);
@ -122,4 +128,99 @@ public class SyncOrderInfoToPlatform {
}
@XxlJob("syncZeroOrderInfo")
public ReturnT<String> syncZeroOrderInfo(String param) {
//查询需要同步的仓库
List<WarehouseMappingDataEntity> warehouseMappingDataEntityList = warehouseMappingDataService.getWarehouseMapping();
if(warehouseMappingDataEntityList.isEmpty()){
log.warn("###############syncZeroOrderInfo: 当前没有配置需要同步的仓库信息");
return ReturnT.FAIL;
}
Integer pageSize = 500;//处理的每页条数
for (WarehouseMappingDataEntity mappingDataEntity:warehouseMappingDataEntityList){
Integer oldWarehouseId = mappingDataEntity.getOldWarehouseId();//老系统仓库id
Long newWarehouseId = mappingDataEntity.getNewWarehouseId();//新系统仓库id
//查询新系统是否已有仓库信息
BasicdataWarehouseEntity basicdataWarehouseEntity = basicdataWarehouseClient.getEntityWarehouseId(newWarehouseId);
if(Objects.isNull(basicdataWarehouseEntity)){
log.warn("###############syncZeroOrderInfo: 新系统没有仓库信息");
return ReturnT.FAIL;
}
Integer totalPage = 0;
Integer currentPage = 0;
//查询该仓库是否有未完成的同步数据
QueryWrapper<OrderSyncRecordEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("old_warehouse_id",oldWarehouseId)
.eq("type",2)
.ne("sync_status",2);
OrderSyncRecordEntity one = orderSyncRecordService.getOne(queryWrapper);
if(!Objects.isNull(one)){
//因为该仓库有未完成的同步,继续执行
totalPage = one.getTotalPage();
currentPage = one.getCurrentPage();
}else{
//查询本次同步一共多少的个订单
Integer totalNum = orderClient.getTotalCountByZero(param,oldWarehouseId);
if(totalNum == 0){
log.info("################syncZeroOrderInfo: 暂无需要执行的数据");
return ReturnT.SUCCESS;
}
log.info("##################syncZeroOrderInfo: 一共需要同步{}条数据",totalNum);
//计算出需要多少页
int i = totalNum % pageSize;
if(i == 0){
totalPage = totalNum/pageSize;
}else{
totalPage = totalNum/pageSize + 1;
}
currentPage = 0;
log.info("##################syncZeroOrderInfo: 一共需要同步{}页size为{}的数据",totalPage,pageSize);
one = new OrderSyncRecordEntity();
one.setOldWarehouseId(oldWarehouseId);
one.setTotalNum(totalNum);
one.setTotalPage(totalPage);
one.setType(2);
one.setCurrentPage(0);
one.setFinishNum(0);
one.setSyncStatus(0);
orderSyncRecordService.save(one);
}
for (int j = currentPage; j < totalPage; j++) {
log.info("##################syncZeroOrderInfo: 当前同步的第{}页的数据",j+1);
try{
List<String> orderCodeList = orderClient.findOrderCodeListByZero(param,oldWarehouseId,j,pageSize);
syncOrderInfoService.handleDataZero(orderCodeList,oldWarehouseId,newWarehouseId);
log.info("################syncZeroOrderInfo: 同步成功{}个订单",orderCodeList.size());
one.setCurrentPage(j+1);
one.setFinishNum(one.getFinishNum() + orderCodeList.size());
if((j+1) == totalPage){
one.setSyncStatus(2);
}else{
one.setSyncStatus(1);
}
orderSyncRecordService.saveOrUpdate(one);
}catch (CustomerException e){
log.error(e.message,e);
return ReturnT.FAIL;
}catch (Exception e){
log.error("#############syncZeroOrderInfo: 同步数据失败",e);
return ReturnT.FAIL;
}
}
}
log.info("################syncZeroOrderInfo: 同步成功完成");
return ReturnT.SUCCESS;
}
}

2
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java

@ -4,4 +4,6 @@ import java.util.List;
public interface ISyncOrderInfoService {
void handleData(List<String> orderCodeList,Integer oldWarehouseId,Long newWarehouseId);
void handleDataZero(List<String> orderCodeList, Integer oldWarehouseId, Long newWarehouseId);
}

246
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java

@ -64,6 +64,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
private final ITrayScanDesClient trayScanDesClient;
private final ITrayScanClient trayScanClient;
private final IWarehouseTrayTypeClient warehouseTrayTypeClient;
private final IInventoryDetailClient inventoryDetailClient;
@Transactional(rollbackFor = Exception.class)
@Override
@ -76,83 +77,143 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
log.info("#############handleData: 订单orderCode={}已存在",orderCode);
continue;
}
//查询订单是零担还是订制品
Integer goodsType = orderClient.getGoodsTypeByOrderCode(orderCode,oldWarehouseId);
if(1 == goodsType){
//包件
//查询订单是否在盘点任务中有被盘点到
InventoryDetailEntity inventoryDetailEntity = inventoryDetailClient.findOrderIsExist(orderCode);
if(!Objects.isNull(inventoryDetailEntity)){
//定单
saveOrderInfo(orderCode,oldWarehouseId,newWarehouseId);
}else if(2 == goodsType){
//运单
saveZeroOrderInfo(orderCode,oldWarehouseId,newWarehouseId);
}else{
log.error("#############handleData: 未知的订单类型goodsType={} orderCode={} oldWarehouseId={}",goodsType,orderCode,oldWarehouseId);
throw new CustomerException(403,"未知的订单类型");
}
//存入打托信息
saveTrayTypeInfo(orderCode,goodsType,oldWarehouseId,newWarehouseId);
//存入打托信息
saveTrayTypeInfoPackage(orderCode,oldWarehouseId,newWarehouseId);
}
}
}
private void saveTrayTypeInfo(String orderCode, Integer goodsType,Integer oldWarehouseId,Long newWarehouseId) {
//1.根绝goodsType判断是订制品订单还是零担订单
if(1 == goodsType){
//如果是订制品就先查询该订单有哪些包件打了托
List<TrayScanDesEntity> list = trayScanDesClient.findListByOrderCodeAndWarehouseId(orderCode,oldWarehouseId);
for (TrayScanDesEntity trayScanDesEntity:list){
Integer trayScanId = trayScanDesEntity.getTrayScanId();
String unitNo = trayScanDesEntity.getUnitNo();//包条码
//查询打托方式信息
TrayScanEntity trayScanEntity = trayScanClient.getEntityByTrayScanId(trayScanId);
Integer type = trayScanEntity.getType();
Integer trayId = trayScanEntity.getTrayId();
String customerName = trayScanEntity.getCustomerName();
String customerPhone = trayScanEntity.getCustomerPhone();
//方式:1=仓,2=商场,3=客户,4=其他,5=服务号,6=合同号
//方式:60=仓,30=商场,50=客户,100=其他,10=服务号,20=合同号
String newTrayType = "100";
if(1==type){
newTrayType = "60";
}else if(2==type){
newTrayType = "30";
}else if(3==type){
newTrayType = "50";
}else if(4==type){
newTrayType = "100";
}else if(5==type){
newTrayType = "10";
}else if(6==type){
newTrayType = "20";
}
@Transactional(rollbackFor = Exception.class)
@Override
public void handleDataZero(List<String> orderCodeList,Integer oldWarehouseId,Long newWarehouseId) {
log.info("#############handleData: 处理订单开始");
for (String orderCode:orderCodeList){
log.info("#############handleData: 当前处理orderCode={}的订单",orderCode);
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findStockArticleByOrderCode(orderCode);
if(!Objects.isNull(stockArticleEntity)){
log.info("#############handleData: 订单orderCode={}已存在",orderCode);
continue;
}
// //查询订单是零担还是订制品
// Integer goodsType = orderClient.getGoodsTypeByOrderCode(orderCode,oldWarehouseId);
// if(1 == goodsType){
// //包件
// saveOrderInfo(orderCode,oldWarehouseId,newWarehouseId);
// }else if(2 == goodsType){
// //运单
// saveZeroOrderInfo(orderCode,oldWarehouseId,newWarehouseId);
// }else{
// log.error("#############handleData: 未知的订单类型goodsType={} orderCode={} oldWarehouseId={}",goodsType,orderCode,oldWarehouseId);
// throw new CustomerException(403,"未知的订单类型");
// }
//运单
saveZeroOrderInfo(orderCode,oldWarehouseId,newWarehouseId);
Map<String,Object> map = new HashMap<>();
map.put("trayType",newTrayType);
map.put("trayCode","T"+trayId);
map.put("warehouseId",newWarehouseId);
map.put("orderPackageCode",unitNo);
//存入打托信息
saveTrayTypeInfoZero(orderCode,oldWarehouseId,newWarehouseId);
//新系统保存打托方式
boolean b = warehouseTrayTypeClient.orderScanOrderPackageCode(map);
}
}
if(!b){
log.error("################saveTrayTypeInfo: 包件打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId);
throw new CustomerException(403,"包件打托失败");
}
private void saveTrayTypeInfoPackage(String orderCode,Integer oldWarehouseId,Long newWarehouseId) {
//如果是订制品就先查询该订单有哪些包件打了托
List<TrayScanDesEntity> list = trayScanDesClient.findListByOrderCodeAndWarehouseId(orderCode,oldWarehouseId);
for (TrayScanDesEntity trayScanDesEntity:list){
Integer trayScanId = trayScanDesEntity.getTrayScanId();
String unitNo = trayScanDesEntity.getUnitNo();//包条码
//查询打托方式信息
TrayScanEntity trayScanEntity = trayScanClient.getEntityByTrayScanId(trayScanId);
Integer type = trayScanEntity.getType();
Integer trayId = trayScanEntity.getTrayId();
String customerName = trayScanEntity.getCustomerName();
String customerPhone = trayScanEntity.getCustomerPhone();
//方式:1=仓,2=商场,3=客户,4=其他,5=服务号,6=合同号
//方式:60=仓,30=商场,50=客户,100=其他,10=服务号,20=合同号
String newTrayType = "100";
if(1==type){
newTrayType = "60";
}else if(2==type){
newTrayType = "30";
}else if(3==type){
newTrayType = "50";
}else if(4==type){
newTrayType = "100";
}else if(5==type){
newTrayType = "10";
}else if(6==type){
newTrayType = "20";
}
Map<String,Object> map = new HashMap<>();
map.put("trayType",newTrayType);
map.put("trayCode","T"+trayId);
map.put("warehouseId",newWarehouseId);
map.put("orderPackageCode",unitNo);
}else if(2 == goodsType){
//新系统保存打托方式
boolean b = warehouseTrayTypeClient.orderScanOrderPackageCode(map);
if(!b){
log.error("################saveTrayTypeInfo: 包件打托失败 unitNo={} trayCode={}",unitNo,"T"+trayId);
throw new CustomerException(403,"包件打托失败");
}
}
}
private void saveTrayTypeInfoZero(String orderCode,Integer oldWarehouseId,Long newWarehouseId) {
//如果是订制品就先查询该订单有哪些包件打了托
List<TrayScanDesEntity> list = trayScanDesClient.findZeroListByOrderCodeAndWarehouseId(orderCode,oldWarehouseId);
for (TrayScanDesEntity trayScanDesEntity:list){
Integer trayScanId = trayScanDesEntity.getTrayScanId();
Integer trayId = trayScanDesEntity.getTrayId();
Integer num = trayScanDesEntity.getNum();
//方式:1=仓,2=商场,3=客户,4=其他,5=服务号,6=合同号
//方式:60=仓,30=商场,50=客户,100=其他,10=服务号,20=合同号
String newTrayType = "100";
// if(1==type){
// newTrayType = "60";
// }else if(2==type){
// newTrayType = "30";
// }else if(3==type){
// newTrayType = "50";
// }else if(4==type){
// newTrayType = "100";
// }else if(5==type){
// newTrayType = "10";
// }else if(6==type){
// newTrayType = "20";
// }
Map<String,Object> map = new HashMap<>();
map.put("trayType",newTrayType);
map.put("trayCode","T"+trayId);
map.put("warehouseId",newWarehouseId);
map.put("orderCode",orderCode);
map.put("num",num);
//新系统保存打托方式
boolean b = warehouseTrayTypeClient.enterZeroOrderByTrayCode(map);
if(!b){
log.error("################saveTrayTypeInfo: 零担打托失败 orderCode={} trayCode={} num={}",orderCode,"T"+trayId,num);
throw new CustomerException(403,"零担打托失败");
}
}
}
private void saveZeroOrderInfo(String orderCode, Integer oldWarehouseId, Long newWarehouseId) {
OrderCountEntity orderCountEntity = orderCountClient.getEntityByOrderCode(orderCode,oldWarehouseId);
@ -184,25 +245,6 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
// }
warehouseWaybill = saveWayBillData(wayBillEntity, inNum);
// waybillId = warehouseWaybill.getId();
//新增的时候存入所有的订单详情
List<WaybillDesEntity> des = waybillDesClient.getDesList(waybillNo);
List<WarehouseWayBillDetail> ls = new ArrayList<>();
for (WaybillDesEntity waybillDesEntity : des) {
WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail();
warehouseWayBillDetail.setWaybillId(warehouseWaybill.getId());
warehouseWayBillDetail.setWaybillNo(waybillNo);
warehouseWayBillDetail.setProductName(waybillDesEntity.getName());
warehouseWayBillDetail.setNum(waybillDesEntity.getNum());
warehouseWayBillDetail.setStatus(1);
warehouseWayBillDetail.setIsDeleted(0);
warehouseWayBillDetail.setCreateTime(date);
warehouseWayBillDetail.setUpdateTime(date);
ls.add(warehouseWayBillDetail);
}
warehouseWaybillDetailClient.addList(ls);
//createStockArticle(warehouseWaybill);
}
@ -243,6 +285,9 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
distributionStockArticleEntity.setWarehouseEntryTime(date);
distributionStockArticleEntity.setTotalNumber(totalCount);
distributionStockArticleEntity.setHandQuantity(stockCount);
distributionStockArticleEntity.setDealerName(consignee);
distributionStockArticleEntity.setDealerCode(clientEntity.getClientCode());
//零担订单默认齐套
distributionStockArticleEntity.setCompleteSet(1);
@ -319,6 +364,8 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
entity.setCreateDept(distributionStockArticleEntity.getCreateDept());
entity.setWarehouseId(distributionStockArticleEntity.getWarehouseId());
entity.setWarehouse(distributionStockArticleEntity.getWarehouse());
entity.setDealerName(distributionStockArticleEntity.getDealerName());
entity.setDealerCode(distributionStockArticleEntity.getDealerCode());
entity.setQuantity(warehouseWayBillDetail.getNum());
entity.setConditions(1);
entity.setStockArticleId(id);
@ -335,14 +382,14 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
entity.setSendWarehouseName(warehouseWaybill.getDepartureWarehouseName());
entity.setAcceptWarehouseId(warehouseWaybill.getDestinationWarehouseId());
entity.setAcceptWarehouseName(warehouseWaybill.getDestinationWarehouseName());
Long packageId = distributionParcelListClient.addReturnId(entity);
entity.setId(packageId);
ls.add(entity);
}
boolean b = distributionParcelListClient.addBatch(ls);
if (!b) {
log.warn("#################createStockArticle: 保存包件信息失败 orderSelfNum={}", waybillNo);
throw new CustomerException(405, "保存包件信息失败");
}
// if (!b) {
// log.warn("#################createStockArticle: 保存包件信息失败 orderSelfNum={}", waybillNo);
// throw new CustomerException(405, "保存包件信息失败");
// }
List<DistributionParcelNumberEntity> parcelNumberList = new ArrayList<>();
for (DistributionParcelListEntity entity:ls){
@ -467,7 +514,29 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
Date date = new Date();
warehouseWaybill.setCreateTime(date);
warehouseWaybill.setUpdateTime(date);
warehouseWaybillClient.addEnntity(warehouseWaybill);
Long waybillId = warehouseWaybillClient.addEnntity(warehouseWaybill);
warehouseWaybill.setId(waybillId);
//新增的时候存入所有的订单详情
List<WaybillDesEntity> des = waybillDesClient.getDesList(wayBillEntity.getWaybillNo());
List<WarehouseWayBillDetail> ls = new ArrayList<>();
for (WaybillDesEntity waybillDesEntity : des) {
WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail();
warehouseWayBillDetail.setWaybillId(waybillId);
warehouseWayBillDetail.setWaybillNo(wayBillEntity.getWaybillNo());
warehouseWayBillDetail.setProductName(waybillDesEntity.getName());
warehouseWayBillDetail.setNum(waybillDesEntity.getNum());
warehouseWayBillDetail.setStatus(1);
warehouseWayBillDetail.setIsDeleted(0);
warehouseWayBillDetail.setCreateTime(date);
warehouseWayBillDetail.setUpdateTime(date);
ls.add(warehouseWayBillDetail);
}
warehouseWaybillDetailClient.addList(ls);
return warehouseWaybill;
}
@ -518,7 +587,8 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
distributionStockArticleEntity.setWarehouseEntryTime(date);
distributionStockArticleEntity.setWarehouseEntryTime(orderCountEntity.getCreateTime());
distributionStockArticleEntity.setWarehouseEntryTimeEnd(orderCountEntity.getLatestInTime());
distributionStockArticleEntity.setTotalNumber(total);
distributionStockArticleEntity.setHandQuantity(orderCountEntity.getInNum());
distributionStockArticleEntity.setTenantId(TenantNum.HUITONGCODE);// 对应租户ID
@ -684,6 +754,12 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
List<OrderDetailEntity> orderDetailList = orderDetailClient.findByOrderCode(orderCode,oldWarehouseId);
for (OrderDetailEntity orderDetailEntity:orderDetailList){
String unitNo = orderDetailEntity.getUnitNo();
InventoryDetailEntity inventoryDetailEntity = inventoryDetailClient.findUnitNoIsExist(unitNo);
if(Objects.isNull(inventoryDetailEntity)){
log.info("###########saveOrderPackage: 包条不在盘点任务中存在,不同步 unitNo={}",unitNo);
continue;
}
Integer status = orderDetailEntity.getStatus();
Integer carsType = orderDetailEntity.getCarsType();
Integer signState = orderDetailEntity.getSignState();

26
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/feign/WarehouseTrayTypeClient.java

@ -1,5 +1,6 @@
package com.logpm.warehouse.feign;
import com.logpm.warehouse.dto.ZeroOrderVO;
import com.logpm.warehouse.service.IWarehouseTrayTypeService;
import com.logpm.warehouse.vo.TrayTypeDataVO;
import lombok.AllArgsConstructor;
@ -7,6 +8,8 @@ import org.springblade.core.tool.api.R;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ApiIgnore()
@ -44,4 +47,27 @@ public class WarehouseTrayTypeClient implements IWarehouseTrayTypeClient {
}
}
@Override
public boolean enterZeroOrderByTrayCode(Map<String, Object> map) {
String trayType = (String) map.get("trayType");
String trayCode = (String) map.get("trayCode");
Long warehouseId = (Long) map.get("warehouseId");
String orderCode = (String) map.get("orderCode");
Integer num = (Integer) map.get("num");
List<ZeroOrderVO> ls = new ArrayList<>();
ZeroOrderVO zeroOrderVO = new ZeroOrderVO();
zeroOrderVO.setOrderCode(orderCode);
zeroOrderVO.setNum(num);
ls.add(zeroOrderVO);
R r = warehouseTrayTypeService.enterZeroOrderByTrayCodeSync(trayType,trayCode,ls,warehouseId);
if(r.getCode() == 200){
return true;
}else{
return false;
}
}
}

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

@ -44,8 +44,9 @@ public class WarehouseWaybillClient implements IWarehouseWaybillClient {
@Override
@PostMapping(API_PREFIX + "/addEnntity")
public void addEnntity(WarehouseWaybillEntity warehouseWaybill) {
public Long addEnntity(WarehouseWaybillEntity warehouseWaybill) {
warehouseWaybillService.save(warehouseWaybill);
return warehouseWaybill.getId();
}
@Override

1
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/IWarehouseTrayTypeService.java

@ -30,6 +30,7 @@ public interface IWarehouseTrayTypeService extends BaseService<WarehouseTrayType
List<TrayTypeDataListVO> getZeroOrderByWaybillCode(String waybillCode,Long warehouseId);
R enterZeroOrderByTrayCode(String trayType ,String trayCode, List<ZeroOrderVO> zeroList,Long warehouseId);
R enterZeroOrderByTrayCodeSync(String trayType ,String trayCode, List<ZeroOrderVO> zeroList,Long warehouseId);
R deleteZeroOrderByTrayCode(String orderCode, String trayCode,Long warehouseId);

111
blade-service/logpm-warehouse/src/main/java/com/logpm/warehouse/service/impl/WarehouseTrayTypeServiceImpl.java

@ -983,6 +983,117 @@ public class WarehouseTrayTypeServiceImpl extends BaseServiceImpl<WarehouseTrayT
}
@Transactional(rollbackFor = Exception.class)
@Override
public R enterZeroOrderByTrayCodeSync(String trayType,String trayCode, List<ZeroOrderVO> zeroList,Long warehouseId) {
if(Objects.isNull(zeroList)){
log.warn("##############enterZeroOrderByTrayCode: 数据为空 zeroList={}",zeroList);
return R.fail(403,"数据为空");
}
if(zeroList.size() == 0){
log.warn("##############enterZeroOrderByTrayCode: 数据为空 zeroList={}",zeroList);
return R.fail(403,"数据为空");
}
BasicdataTrayEntity trayEntity = basicdataTrayClient.getTrayByTrayCode(trayCode);
if(Objects.isNull(trayEntity)){
log.warn("#########saveTrayTypeByZeroList: 未找到托盘信息 trayCode={}",trayCode);
throw new CustomerException(403,"未找到托盘信息");
}
Long trayId = trayEntity.getId();
//查询零担订单数据
String ocode = zeroList.get(0).getOrderCode();//订单编码
DistributionStockArticleEntity sae = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(ocode,warehouseId);
if(Objects.isNull(sae)){
log.warn("#########saveTrayTypeByZeroList: 未找到订单信息 orderCode={} warehouseId={}",ocode,warehouseId);
throw new CustomerException(403,"未找到订单信息");
}
//查询托盘信息
QueryWrapper<WarehouseTrayTypeEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tray_code",trayCode)
.eq("is_deleted",0);
WarehouseTrayTypeEntity trayTypeEntity = baseMapper.selectOne(queryWrapper);
if(Objects.isNull(trayTypeEntity)){
//如果为空则该托盘为空
//第一次存入数据
trayTypeEntity = saveTrayTypeByZeroList(trayType, trayCode, trayId,sae,warehouseId);
}
String tt = trayTypeEntity.getTrayType();
Long filterId = trayTypeEntity.getFilterId();
String filterValue = trayTypeEntity.getFilterValue();
Long wid = trayTypeEntity.getWarehouseId();
if(!wid.equals(warehouseId)){
log.warn("##############enterZeroOrderByTrayCode: 托盘已在其他仓库打托 {}={}",wid,warehouseId);
return R.fail(403,"托盘已在其他仓库打托");
}
if(!tt.equals(trayType)){
log.warn("##############enterZeroOrderByTrayCode: 打托方式不正确 {}={}",trayType,tt);
return R.fail(403,"打托方式不正确");
}
//判断串货
boolean chuanFlag = false;
String msg = "";
Integer allNum = 0;
for(ZeroOrderVO zeroOrderVO:zeroList){
String orderCode = zeroOrderVO.getOrderCode();//订单自编码
Long orderId = zeroOrderVO.getOrderId();
Integer num = zeroOrderVO.getNum();
if(num == 0 || Objects.isNull(num)){
log.warn("#########enterZeroOrderByTrayCode: 请输入正确的数量 orderCode={} num={}",orderCode,num);
return R.fail(403,"请输入正确的数量");
}
DistributionStockArticleEntity stockArticleEntity = distributionStockArticleClient.findZeroByOrderCodeAndWarehouseId(orderCode,warehouseId);
if(Objects.isNull(stockArticleEntity)){
log.warn("#########enterZeroOrderByTrayCode: 未找到订单信息 orderCode={} warehouseId={}",orderCode,warehouseId);
return R.fail(403,"未找到订单信息");
}
boolean flag = false;
if("10".equals(tt)) {//运单号
String waybillNumber = stockArticleEntity.getWaybillNumber();
if (!filterValue.equals(waybillNumber)) {
flag = true;
chuanFlag = true;
msg = "运单号";
}
}else if("20".equals(tt)){//订单自编码(零担)
if (!filterValue.equals(orderCode)) {
flag = true;
chuanFlag = true;
msg = "订单自编码(零担)";
}
}
//修改打托方式上的值
// changeZeroTotalNumByTrayTypeId(stockArticleEntity, trayTypeEntity.getId(),num, 1);//addSub 1加 2减
if(flag){
//存入零担与托盘绑定关系表
warehouseTrayGoodsService.saveEntityZero(stockArticleEntity, trayTypeEntity,num, "1","1", "分拣打托:人工分拣", "1");
}else{
//存入零担与托盘绑定关系表
warehouseTrayGoodsService.saveEntityZero(stockArticleEntity, trayTypeEntity,num, "0","1", "分拣打托:人工分拣", "1");
}
//更新打托方式上的值
updateNumByTrayTypeId(trayTypeEntity);
allNum = allNum + num;
}
// if (chuanFlag){
// log.warn("#########enterZeroOrderByTrayCode: 不属于同一个"+msg+" 串货 filterValue={} filterValue={}", filterValue, filterValue);
// return Resp.scanFail(2001, "不属于同一个"+msg, "串货");
// }else{
// return R.success("扫描成功");
// }
return R.success("打托成功");
}
@Override
public R deleteZeroOrderByTrayCode(String orderCode, String trayCode,Long warehouseId) {
log.info("#########deleteZeroOrderByTrayCode: 删除对应的零担订单 orderCode={} trayCode={}", orderCode, trayCode);

Loading…
Cancel
Save