From 7c67580a1d7b5a29cab32a0f122c292a7db68b46 Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Tue, 26 Mar 2024 12:02:15 +0800 Subject: [PATCH] =?UTF-8?q?1.factory-=E6=9B=B4=E6=96=B0=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=8C=85=E4=BB=B6=E7=8A=B6=E6=80=81=202.=E8=A1=A5=E4=B8=81-?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=9B=B6=E6=8B=85=E6=8B=89=E5=8F=96=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/logpm/patch/vo/SyncZeroOrderVO.java | 14 ++++ .../impl/PanFactoryDataServiceImpl.java | 4 + .../jobhandle/SyncOrderInfoToPlatform.java | 84 +++++-------------- .../mapper/WarehouseMappingDataMapper.java | 5 ++ .../mapper/WarehouseMappingDataMapper.xml | 15 ++++ .../patch/service/ISyncOrderInfoService.java | 4 +- .../service/IWarehouseMappingDataService.java | 5 ++ .../impl/SyncOrderInfoServiceImpl.java | 68 +++++---------- .../impl/WarehouseMappingDataServiceImpl.java | 11 +++ 9 files changed, 100 insertions(+), 110 deletions(-) create mode 100644 blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/vo/SyncZeroOrderVO.java diff --git a/blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/vo/SyncZeroOrderVO.java b/blade-service-api/logpm-patch-api/src/main/java/com/logpm/patch/vo/SyncZeroOrderVO.java new file mode 100644 index 000000000..906c4e365 --- /dev/null +++ b/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; + +} diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java index 7af1a9bb5..ad6da3c7f 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/pan/service/impl/PanFactoryDataServiceImpl.java +++ b/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()); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java index c348cbf6b..a8d67a4ff 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/jobhandle/SyncOrderInfoToPlatform.java +++ b/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 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 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 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; diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java index 5b190db94..41249f313 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.java +++ b/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 findAllZeroOrder(); + + void updateSyncZeroStatus(@Param("id") Integer id, @Param("syncStatus") Integer syncStatus); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml index 5dbeb7b1f..ee61aa07e 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml +++ b/blade-service/logpm-patch/src/main/java/com/logpm/patch/mapper/WarehouseMappingDataMapper.xml @@ -242,4 +242,19 @@ where tray_id = #{trayId} + + + + update sync_zero_order_info + set sync_status = #{syncStatus} + where id = #{id} + + + diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java index b49bd8056..cf763ac21 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/ISyncOrderInfoService.java +++ b/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 orderCodeList,Integer oldWarehouseId,Long newWarehouseId,String tableName,Integer inventoryId); - void handleDataZero(List orderCodeList, Integer oldWarehouseId, Long newWarehouseId); + void handleDataZero(SyncZeroOrderVO zeroOrderVO, Integer oldWarehouseId, Long newWarehouseId); void syncTrayType(Integer oldWarehouseId,Long newWarehouseId,String tableName); diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java index b30e4f321..cc9a89169 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/IWarehouseMappingDataService.java +++ b/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 findAllZeroOrder(); + + void updateSyncZeroStatus(Integer id, Integer syncStatus); } diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java index 29563ecd2..29b110b13 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/SyncOrderInfoServiceImpl.java +++ b/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 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 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); diff --git a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java b/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java index 614c58c4f..d9b95f60d 100644 --- a/blade-service/logpm-patch/src/main/java/com/logpm/patch/service/impl/WarehouseMappingDataServiceImpl.java +++ b/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 findAllZeroOrder() { + return warehouseMappingDataMapper.findAllZeroOrder(); + } + + @Override + public void updateSyncZeroStatus(Integer id, Integer syncStatus) { + warehouseMappingDataMapper.updateSyncZeroStatus(id,syncStatus); + } }