Browse Source

1.factory-更新推送包件状态

2.补丁-新增零担拉取逻辑
pull/4/head
zhenghaoyu 11 months ago
parent
commit
7c67580a1d
  1. 14
      blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/vo/SyncZeroOrderVO.java
  2. 4
      blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java
  3. 84
      blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java
  4. 5
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java
  5. 15
      blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml
  6. 4
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java
  7. 5
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java
  8. 68
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java
  9. 11
      blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java

14
blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/vo/SyncZeroOrderVO.java

@ -0,0 +1,14 @@
package com.logpm.patch.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SyncZeroOrderVO implements Serializable {
private Integer id;
private String orderCode;
private Integer num;
}

4
blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java

@ -726,6 +726,10 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService {
entity.setDealerName(distributionStockArticleEntity.getDealerName());
if(!Objects.isNull(orderDetailEntity)){
Integer signState = orderDetailEntity.getSignState();
if(signState == 2){
entity.setOrderPackageStatus(OrderPackageStatusConstant.yiqianshou.getValue());
}
entity.setWarehouseEntryTimeEnd(orderDetailEntity.getUpdateTime());
}

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

@ -15,6 +15,7 @@ import com.logpm.patch.entity.WarehouseMappingDataEntity;
import com.logpm.patch.service.IOrderSyncRecordService;
import com.logpm.patch.service.ISyncOrderInfoService;
import com.logpm.patch.service.IWarehouseMappingDataService;
import com.logpm.patch.vo.SyncZeroOrderVO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.entity.TrunklineDetailProductEntity;
@ -418,8 +419,6 @@ public class SyncOrderInfoToPlatform {
return ReturnT.FAIL;
}
Integer pageSize = 500;//处理的每页条数
for (WarehouseMappingDataEntity mappingDataEntity:warehouseMappingDataEntityList){
Integer oldWarehouseId = mappingDataEntity.getOldWarehouseId();//老系统仓库id
Long newWarehouseId = mappingDataEntity.getNewWarehouseId();//新系统仓库id
@ -431,71 +430,32 @@ public class SyncOrderInfoToPlatform {
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;
List<SyncZeroOrderVO> ls = warehouseMappingDataService.findAllZeroOrder();
Integer total = 0;
for (SyncZeroOrderVO zeroOrderVO : ls) {
total = total + 1;
Integer id = zeroOrderVO.getId();
try{
syncOrderInfoService.handleDataZero(zeroOrderVO,oldWarehouseId,newWarehouseId);
warehouseMappingDataService.updateSyncZeroStatus(id,1);
}catch (CustomerException e){
warehouseMappingDataService.updateSyncZeroStatus(id,2);
log.error(e.message,e);
return ReturnT.FAIL;
}catch (Exception e){
warehouseMappingDataService.updateSyncZeroStatus(id,2);
log.error("#############syncZeroOrderInfo: 同步数据失败",e);
return ReturnT.FAIL;
}
log.info("################syncZeroOrderInfo: 同步完成{}个订单",total);
}
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;

5
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java

@ -2,6 +2,7 @@ package com.logpm.patch.mapper;
import cn.hutool.json.JSONObject;
import com.logpm.patch.entity.WarehouseMappingDataEntity;
import com.logpm.patch.vo.SyncZeroOrderVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -80,4 +81,8 @@ public interface WarehouseMappingDataMapper {
void updateUpdownTypeIsDeleted(@Param("oldAllocationId") Long oldAllocationId);
void updateStatusByTrayId(@Param("trayId") Long trayId);
List<SyncZeroOrderVO> findAllZeroOrder();
void updateSyncZeroStatus(@Param("id") Integer id, @Param("syncStatus") Integer syncStatus);
}

15
blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml

@ -242,4 +242,19 @@
where tray_id = #{trayId}
</update>
<select id="findAllZeroOrder" resultType="com.logpm.patch.vo.SyncZeroOrderVO">
select id id,
order_code orderCode,
num num
from sync_zero_order_info
where sync_status = '0'
</select>
<update id="updateSyncZeroStatus" >
update sync_zero_order_info
set sync_status = #{syncStatus}
where id = #{id}
</update>
</mapper>

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

@ -1,11 +1,13 @@
package com.logpm.patch.service;
import com.logpm.patch.vo.SyncZeroOrderVO;
import java.util.List;
public interface ISyncOrderInfoService {
void handleData(List<String> orderCodeList,Integer oldWarehouseId,Long newWarehouseId,String tableName,Integer inventoryId);
void handleDataZero(List<String> orderCodeList, Integer oldWarehouseId, Long newWarehouseId);
void handleDataZero(SyncZeroOrderVO zeroOrderVO, Integer oldWarehouseId, Long newWarehouseId);
void syncTrayType(Integer oldWarehouseId,Long newWarehouseId,String tableName);

5
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java

@ -2,6 +2,7 @@ package com.logpm.patch.service;
import cn.hutool.json.JSONObject;
import com.logpm.patch.entity.WarehouseMappingDataEntity;
import com.logpm.patch.vo.SyncZeroOrderVO;
import java.util.List;
@ -78,4 +79,8 @@ public interface IWarehouseMappingDataService {
void deleteUpdownGoodsByAllocationId(Long oldAllocationId);
void updateStatusByTrayId(Long trayId);
List<SyncZeroOrderVO> findAllZeroOrder();
void updateSyncZeroStatus(Integer id, Integer syncStatus);
}

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

@ -18,6 +18,7 @@ import com.logpm.oldproject.vo.DistributionParcelListEntityVO;
import com.logpm.patch.entity.WarehouseMappingDataEntity;
import com.logpm.patch.service.ISyncOrderInfoService;
import com.logpm.patch.service.IWarehouseMappingDataService;
import com.logpm.patch.vo.SyncZeroOrderVO;
import com.logpm.trunkline.entity.TrunklineAdvanceDetailEntity;
import com.logpm.trunkline.entity.TrunklineAdvanceEntity;
import com.logpm.trunkline.entity.TrunklineDetailProductEntity;
@ -348,35 +349,13 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
@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,"未知的订单类型");
// }
public void handleDataZero(SyncZeroOrderVO zeroOrderVO, Integer oldWarehouseId, Long newWarehouseId) {
log.info("#############handleDataZero: 处理零担订单开始");
//运单
saveZeroOrderInfo(orderCode,oldWarehouseId,newWarehouseId);
//运单
saveZeroOrderInfo(zeroOrderVO,oldWarehouseId,newWarehouseId);
//存入打托信息
saveTrayTypeInfoZero(orderCode,oldWarehouseId,newWarehouseId);
}
log.info("#############handleDataZero: 处理零担订单结束");
}
@Override
@ -815,15 +794,16 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
}
private void saveZeroOrderInfo(String orderCode, Integer oldWarehouseId, Long newWarehouseId) {
private void saveZeroOrderInfo(SyncZeroOrderVO zeroOrderVO, Integer oldWarehouseId, Long newWarehouseId) {
String orderCode = zeroOrderVO.getOrderCode();
OrderCountEntity orderCountEntity = orderCountClient.getEntityByOrderCode(orderCode,oldWarehouseId);
if(Objects.isNull(orderCountEntity)){
log.warn("#################saveZeroOrderInfo: 未查询单订单信息 orderCode={}",orderCode);
throw new CustomerException(403,"未查询单订单信息");
}
Integer total = orderCountEntity.getTotal();
Integer inNum = orderCountEntity.getInNum();
Integer num = zeroOrderVO.getNum();
WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(orderCode);
@ -837,17 +817,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
//通过运单号先去查询新系统是否存在这个运单号
WarehouseWaybillEntity warehouseWaybill = warehouseWaybillClient.findByWaybillNo(waybillNo);
if (Objects.isNull(warehouseWaybill)) {
Date date = new Date();
//如果新系统中不存在这个运单,那么就去查询老系统的运单数据
// WayBillEntity wayBillEntity = wayBillClient.getByWaybillNo(waybillNo);
// if (Objects.isNull(wayBillEntity)) {
// log.warn("##############waybillDataHandler: 老系统中未找到对应运单waybillNo={}", waybillNo);
// throw new CustomerException("老系统中未找到对应运单");
// }
warehouseWaybill = saveWayBillData(wayBillEntity, inNum);
// waybillId = warehouseWaybill.getId();
//createStockArticle(warehouseWaybill);
warehouseWaybill = saveZeroWayBillData(wayBillEntity);
}
//创建在库订单
createStockArticle(warehouseWaybill);
@ -1038,7 +1008,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
}
public WarehouseWaybillEntity saveWayBillData(WayBillEntity wayBillEntity, Integer allNum) {
public WarehouseWaybillEntity saveZeroWayBillData(WayBillEntity wayBillEntity) {
String startSite = wayBillEntity.getStartSite();//始发仓名称
BasicdataWarehouseEntity starthouse = basicdataWarehouseClient.findByName(startSite);
String warehouseName = wayBillEntity.getWarehouseName();//目的仓
@ -1046,10 +1016,6 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
Integer number = wayBillEntity.getNumber();//运单总数量
String packname = wayBillEntity.getPackname();
String agent = wayBillEntity.getAgent();
if (allNum.compareTo(number) > 0) {
log.warn("##############waybillDataHandler: 运单的总数量异常 allNum={} number={}", allNum, number);
throw new CustomerException("运单的总数量异常");
}
WarehouseWaybillEntity warehouseWaybill = new WarehouseWaybillEntity();
warehouseWaybill.setWaybillNo(wayBillEntity.getWaybillNo());
@ -1087,7 +1053,7 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
warehouseWaybill.setDestination(wayBillEntity.getArriveSite());
warehouseWaybill.setGoodsName(packname);
warehouseWaybill.setTotalCount(number);
warehouseWaybill.setStockCount(allNum);
warehouseWaybill.setStockCount(number);
warehouseWaybill.setTotalWeight(wayBillEntity.getWeight());
warehouseWaybill.setTotalVolume(wayBillEntity.getVolume());
warehouseWaybill.setDeliveryMethod(wayBillEntity.getSendType());
@ -1127,11 +1093,19 @@ public class SyncOrderInfoServiceImpl implements ISyncOrderInfoService {
List<WarehouseWayBillDetail> ls = new ArrayList<>();
for (WaybillDesEntity waybillDesEntity : des) {
WarehouseWayBillDetail warehouseWayBillDetail = new WarehouseWayBillDetail();
warehouseWayBillDetail.setWaybillId(waybillId);
warehouseWayBillDetail.setWaybillNo(wayBillEntity.getWaybillNo());
String name = waybillDesEntity.getName();
BasicdataCategoryEntity categoryEntity = categoryClient.findByName(name);
if(Objects.isNull(categoryEntity)){
}
warehouseWayBillDetail.setProductName(waybillDesEntity.getName());
warehouseWayBillDetail.setNum(waybillDesEntity.getNum());
warehouseWayBillDetail.setPrice(waybillDesEntity.getPrice());
warehouseWayBillDetail.setStatus(1);
warehouseWayBillDetail.setIsDeleted(0);
warehouseWayBillDetail.setCreateTime(date);

11
blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java

@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
import com.logpm.patch.entity.WarehouseMappingDataEntity;
import com.logpm.patch.mapper.WarehouseMappingDataMapper;
import com.logpm.patch.service.IWarehouseMappingDataService;
import com.logpm.patch.vo.SyncZeroOrderVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -184,4 +185,14 @@ public class WarehouseMappingDataServiceImpl implements IWarehouseMappingDataSer
public void updateStatusByTrayId(Long trayId) {
warehouseMappingDataMapper.updateStatusByTrayId(trayId);
}
@Override
public List<SyncZeroOrderVO> findAllZeroOrder() {
return warehouseMappingDataMapper.findAllZeroOrder();
}
@Override
public void updateSyncZeroStatus(Integer id, Integer syncStatus) {
warehouseMappingDataMapper.updateSyncZeroStatus(id,syncStatus);
}
}

Loading…
Cancel
Save