From cebfd67f43ab771cb7dca9eab10e1143ed04418d Mon Sep 17 00:00:00 2001 From: "pref_mail@163.com" <123456> Date: Thu, 31 Aug 2023 11:39:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=E4=BF=AE=E6=AD=A3=E6=AC=A7=E6=B4=BE?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81=E5=88=B0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/logpm/factory/TestService.java | 225 ++++++++++-------- .../com/logpm/factory/excel/JpDataMode.java | 31 +++ 2 files changed, 160 insertions(+), 96 deletions(-) create mode 100644 blade-service/logpm-factory/src/test/java/com/logpm/factory/excel/JpDataMode.java diff --git a/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java b/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java index 019d6d717..f407deee6 100644 --- a/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java +++ b/blade-service/logpm-factory/src/test/java/com/logpm/factory/TestService.java @@ -1,96 +1,129 @@ -package com.logpm.factory; - -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.EasyExcelFactory; -import com.alibaba.excel.annotation.ExcelProperty; -import com.alibaba.excel.metadata.BaseRowModel; -import com.alibaba.excel.metadata.Sheet; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.logpm.factory.comfac.controller.FactoryCommonController; -import com.logpm.factory.comfac.dto.UnloadCarDTO; -import com.logpm.factory.excel.ExcelMode; -import com.logpm.factory.mt.entity.MtFactoryOrderMain; -import com.logpm.factory.mt.entity.MtPushData; -import com.logpm.factory.mt.service.IMtFactoryDataService; -import com.logpm.factory.mt.service.IMtFactoryOrderMainService; -import com.logpm.factory.mt.service.IMtPushDataService; -import com.logpm.factory.mt.service.impl.MtFactoryDataServiceImpl; -import com.logpm.factory.oupai.service.IOuPaiFactoryService; -import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; -import com.logpm.oldproject.entity.AdvanceDetailEntity; -import com.logpm.oldproject.feign.IAdvanceDetailClient; -import com.rabbitmq.client.Channel; -import lombok.Data; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.springblade.core.test.BladeBootTest; -import org.springblade.core.test.BladeSpringExtension; -import org.springblade.core.tool.api.R; -import org.springblade.core.tool.api.ResultCode; -import org.springblade.core.tool.utils.StringUtil; -import org.springframework.amqp.core.Message; -import org.springframework.amqp.rabbit.annotation.RabbitHandler; -import org.springframework.beans.factory.annotation.Autowired; - -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.security.NoSuchAlgorithmException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; - -@ExtendWith(BladeSpringExtension.class) -@BladeBootTest(appName = "logpm-factory-pref", enableLoader = true) -public class TestService { - - -// @Autowired -// private IOuPaiFactoryService ouPaiFactoryService; -// -// -// - public void test2() { -// ouPaiFactoryService.findOuPaiFactoryOrderDTOByCarCarNumber("LCD230505047"); - - // 获取Excle - Sheet sheet = new Sheet(1, 1, ExcelMode.class); - - try { - List readList = EasyExcelFactory.read(new FileInputStream("f://order_status_log.xlsx"), sheet); - - - List list = new ArrayList(); - for (Object obj : readList) { - ExcelMode t = (ExcelMode) obj; - - JSONObject json = JSONObject.parseObject(t.getArgs()); - - System.out.println(json.getString("unitNo")); - //HttpResponse execute = HttpUtil.createPost("http://h5u.huitongys.com/api/logpm-factory/factory/common/sendOrderStatus").body(t.getArgs()).execute(); - //System.out.println(execute.body()); - - - } - - - - - - - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - - - } - -} - +//package com.logpm.factory; +// +//import cn.hutool.http.HttpResponse; +//import cn.hutool.http.HttpUtil; +//import com.alibaba.excel.EasyExcel; +//import com.alibaba.excel.EasyExcelFactory; +//import com.alibaba.excel.annotation.ExcelProperty; +//import com.alibaba.excel.metadata.BaseRowModel; +//import com.alibaba.excel.metadata.Sheet; +//import com.alibaba.fastjson.JSON; +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +//import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +//import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; +//import com.fasterxml.jackson.core.JsonProcessingException; +//import com.logpm.factory.comfac.controller.FactoryCommonController; +//import com.logpm.factory.comfac.dto.UnloadCarDTO; +//import com.logpm.factory.excel.ExcelMode; +//import com.logpm.factory.excel.JpDataMode; +//import com.logpm.factory.mt.entity.MtFactoryOrderMain; +//import com.logpm.factory.mt.entity.MtPushData; +//import com.logpm.factory.mt.service.IMtFactoryDataService; +//import com.logpm.factory.mt.service.IMtFactoryOrderMainService; +//import com.logpm.factory.mt.service.IMtPushDataService; +//import com.logpm.factory.mt.service.impl.MtFactoryDataServiceImpl; +//import com.logpm.factory.oupai.service.IOuPaiFactoryService; +//import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; +//import com.logpm.oldproject.entity.AdvanceDetailEntity; +//import com.logpm.oldproject.feign.IAdvanceDetailClient; +//import com.rabbitmq.client.Channel; +//import lombok.Data; +//import org.junit.jupiter.api.Test; +//import org.junit.jupiter.api.extension.ExtendWith; +//import org.springblade.core.test.BladeBootTest; +//import org.springblade.core.test.BladeSpringExtension; +//import org.springblade.core.tool.api.R; +//import org.springblade.core.tool.api.ResultCode; +//import org.springblade.core.tool.utils.StringUtil; +//import org.springframework.amqp.core.Message; +//import org.springframework.amqp.rabbit.annotation.RabbitHandler; +//import org.springframework.beans.factory.annotation.Autowired; +// +//import java.io.*; +//import java.security.NoSuchAlgorithmException; +//import java.text.ParseException; +//import java.text.SimpleDateFormat; +//import java.util.*; +//import java.util.stream.Collectors; +// +//@ExtendWith(BladeSpringExtension.class) +//@BladeBootTest(appName = "logpm-factory-pref", enableLoader = true) +//public class TestService { +// +// +//// @Autowired +//// private IOuPaiFactoryService ouPaiFactoryService; +//// +//// +//// +// +// +// @Test +// public void test2() { +//// ouPaiFactoryService.findOuPaiFactoryOrderDTOByCarCarNumber("LCD230505047"); +// +// // 获取Excle +// +// try { +// +// File file = new File("F://response.json"); +// +// BufferedReader reader = new BufferedReader(new FileReader(file)); +// +// StringBuffer sb = new StringBuffer(); +// +// while (true) { +// String ms = reader.readLine(); +// if (StringUtil.isBlank(ms)) { +// break; +// } +// sb.append(ms); +// } +// JSONObject object = JSONObject.parseObject(sb.toString()); +// +// JSONArray jsonArray = object.getJSONArray("rows"); +// +// List ls = new ArrayList<>(); +// for (int i = 0; i < jsonArray.size(); i++) { +// JpDataMode jpDataMode = new JpDataMode(); +// JSONObject t = jsonArray.getJSONObject(i); +// String yjOrderNo =t.getString("yjOrderNo"); +// String omsExtYsId =t.getString("omsExtYsId"); +// String sendTime =t.getString("sendTime"); +// String goodsNumber =t.getString("goodsNumber"); +// String scanedNum =t.getString("scanedNum"); +// String handedNum =t.getString("handedNum"); +// +// +// jpDataMode.setOmsExtYsId(omsExtYsId); +// jpDataMode.setOrderId(yjOrderNo); +// jpDataMode.setGoodsNumber(goodsNumber); +// jpDataMode.setSendTime(sendTime); +// jpDataMode.setScanedNum(scanedNum); +// jpDataMode.setHandedNum(handedNum); +// +// +// ls.add(jpDataMode); +// } +// +// +// +// +// EasyExcel.write("F:\\11.xlsx").sheet("sheet1").doWrite(ls); +// +// +// +// } catch (FileNotFoundException e) { +// e.printStackTrace(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// +// +// } +// +// +//} +// diff --git a/blade-service/logpm-factory/src/test/java/com/logpm/factory/excel/JpDataMode.java b/blade-service/logpm-factory/src/test/java/com/logpm/factory/excel/JpDataMode.java new file mode 100644 index 000000000..8a2ba384b --- /dev/null +++ b/blade-service/logpm-factory/src/test/java/com/logpm/factory/excel/JpDataMode.java @@ -0,0 +1,31 @@ +package com.logpm.factory.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.metadata.BaseRowModel; +import lombok.Data; + +@Data +public class JpDataMode extends BaseRowModel { + + + @ExcelProperty("DD单号") + private String orderId; + + @ExcelProperty("YS单号") + private String omsExtYsId; + + @ExcelProperty("发车时间") + private String sendTime; + + @ExcelProperty("总件数") + private String goodsNumber; + + + @ExcelProperty("扫码入库数") + private String scanedNum; + + @ExcelProperty("手动入库件数") + private String handedNum; + + +} From afa8a7cb3c1a8faf970146d089b8d7666dc9809a Mon Sep 17 00:00:00 2001 From: zhenghaoyu Date: Thu, 31 Aug 2023 11:41:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1.=E5=AD=98=E5=85=A5=E6=AC=A7=E6=B4=BE?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oupai/service/IOuPaiFactoryService.java | 4 + .../impl/OuPaiFactoryDataServiceImpl.java | 41 +++++-- .../service/impl/OuPaiFactoryServiceImpl.java | 114 +++++++++++++++++- 3 files changed, 145 insertions(+), 14 deletions(-) diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOuPaiFactoryService.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOuPaiFactoryService.java index 637b3f52c..68ea10def 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOuPaiFactoryService.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/IOuPaiFactoryService.java @@ -11,4 +11,8 @@ public interface IOuPaiFactoryService { String saveOuPaiFactoryOrderDTOByCarCarNumber(String carNumber); + String saveOuPaiPackageStatusByCode(String orderCode,Integer event); + + String saveOuPaiOutGoingOrderByCode(String orderCode, Integer event); + } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryDataServiceImpl.java index b574315d2..c129811b5 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryDataServiceImpl.java @@ -5,6 +5,8 @@ import com.logpm.factory.oupai.service.IOuPaiFactoryService; import com.logpm.factory.oupai.vo.OuPaiDataPushVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.exception.CustomerException; +import org.springblade.core.tool.utils.StringUtil; import org.springframework.stereotype.Service; @Service @@ -20,20 +22,33 @@ public class OuPaiFactoryDataServiceImpl implements IOuPaiFactoryDataService { @Override public String saveData(OuPaiDataPushVO ouPaiDataPushVO) { - - - // 需要判断 这个里面的事件是否为 - if(ouPaiDataPushVO.getEvent()==3 && "ReceivingOrder".equals(ouPaiDataPushVO.getTypeName())){ + Integer event = ouPaiDataPushVO.getEvent(); + String typeName = ouPaiDataPushVO.getTypeName(); + String orderCode = ouPaiDataPushVO.getOrderCode(); + String code = null; + if(StringUtil.isBlank(typeName)){ + log.info("#############saveData: 事件类型为空 typeName={}",typeName); + throw new CustomerException(403,"事件类型为空"); + } + if(event == 0){ + //收货单开始收货 + }else if(event == 1){ + //收货单完成收货 + }else if(event == 2){ + //包件收货 + code = ouPaiFactoryService.saveOuPaiPackageStatusByCode(orderCode,event); + }else if(event == 3){ + // 收货单创建 // 获取需要处理的数据并存入数据库 - String carNum =ouPaiFactoryService.saveOuPaiFactoryOrderDTOByCarCarNumber(ouPaiDataPushVO.getOrderCode()); - // 将需要将数据 - - return carNum; + code = ouPaiFactoryService.saveOuPaiFactoryOrderDTOByCarCarNumber(orderCode); + }else if(event == 4){ + //配送单发运 + code = ouPaiFactoryService.saveOuPaiOutGoingOrderByCode(orderCode,event); + }else if(event == 5){ + //签收单签收 + }else if(event == 6){ + //签收单部分签收 } - return ouPaiDataPushVO.getOrderCode(); - - - - + return code; } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java index cb60ee1c1..afc5f85fe 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/oupai/service/impl/OuPaiFactoryServiceImpl.java @@ -50,6 +50,118 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { } + @Override + public String saveOuPaiPackageStatusByCode(String orderCode,Integer event) { + // + String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/Package?$filter=Code eq '"+orderCode+"'&select=Code,PdaNumber," + + "FirstClassCode,FirstClassName,SecondClassCode,SecondClassName,ThirdClassCode,ThirdClassName,BuyIn,CosourcingCode," + + "CosourcingUnit,SortingCenter,DistributionCenter,Length,Width,Height,Weight,OrderDetail,Order," + + "PathIndex,PathDetail,DeliveryOrders,ReceivingOrders,LPN,LpnSerialNum,IsEntruck,ReservationOrder," + + "OutGoingOrderDetail,SignBill,IsInventory,Inventories,InventoryInDetails,Freeze," + + "OutGoingOrderDetailInventoryDetail,From,Creator,CreateTime,ShipTime,CarNumber,DeliveryMethod," + + "DeliveryReceiver,DeliveryReceiverPhone,ReturnNumber,GroupType,CarrierCode,CarrierName,PackageDetailNames," + + "ReceivingTime,SendTime,ExceptionSignRemark,Descript,SignTime,OutOrder,IsReceiveByHand,PackageStatus,PackageDetailNames"; + + handlePackageData(url,event); + return orderCode; + } + + @Override + public String saveOuPaiOutGoingOrderByCode(String orderCode, Integer event) { + // + String url = ouPaiProperties.getUri() + "tims_odata_api/api/odata/OutGoingOrder?$filter=Code eq 'PS20230802-6'" + + "&$select=Code,Status,Truck,DriverPhone,Platform,DeliveryDate,Creator,CreateTime,IsAdjust,SendTime," + + "Customers,Volume" + + "&$expand=Warehouse($select=Code,Name)" + + "&$expand=Truck($select=Plate,Type)" + + "&$expand=Driver($select=Contact,Phone)" + + "&$expand=ExpressCompany($select=CompanyName,CompanyCode)" + + "&$expand=OutGoingOrderDetails($select=Customer,IsPickUp,CustomerPhone,Province,City,CustomerAddress," + + "InstallationDate,DeliveryDate,ActualDeliveryDate,TimeFrame,Remark,CarrierRemark,Creator,CreateTime;" + + "$expand=Packages($select=Code,PdaNumber,FirstClassCode,FirstClassName,SecondClassCode,SecondClassName," + + "ThirdClassCode,ThirdClassName,BuyIn,CosourcingCode,CosourcingUnit,SortingCenter,DistributionCenter," + + "Length,Width,Height,Weight,OrderDetail,Order,PathIndex,PathDetail,DeliveryOrders,ReceivingOrders," + + "LPN,LpnSerialNum,IsEntruck,ReservationOrder,OutGoingOrderDetail,SignBill,IsInventory,Inventories," + + "InventoryInDetails,Freeze,OutGoingOrderDetailInventoryDetail,From,Creator,CreateTime," + + "ShipTime,CarNumber,DeliveryMethod,DeliveryReceiver,DeliveryReceiverPhone,ReturnNumber,GroupType," + + "CarrierCode,CarrierName,PackageDetailNames,ReceivingTime,SendTime,ExceptionSignRemark,Descript," + + "SignTime,OutOrder,IsReceiveByHand,PackageStatus,PackageDetailNames);" + + "$expand=OutGoingOrderDetailInventoryDetails($select=SendQty;" + + "$expand=ReservationOrderInventoryDetail($select=Qty;$expand=Inventory($select=SerialNumber,BatchCode," + + "Code,Name,Unit,Qty,HoldQty,SelectedQty,Location))))"; + + handleOutGoingOrderData(url,event); + return orderCode; + } + + private void handleOutGoingOrderData(String url, Integer event) { + OpOrderStatusLogEntity opOrderStatusLogEntity = sendRequestData(url,event); + + // 保存需要解析的数据 + // 获取返回内容 + try { + JSONObject jsonObject = JSONObject.parseObject(opOrderStatusLogEntity.getArgs()); + JSONArray resultArray = jsonObject.getJSONArray("value"); + log.info("############handlePackageData: 数据处理开始"); + + //TODO 这里需要添加处理配送发运单的逻辑 + + opOrderStatusLogEntity.setDataStatus(1); + } catch (Exception e) { + e.printStackTrace(); + log.error("############handlePackageData: {}", e.getMessage()); + opOrderStatusLogEntity.setDataStatus(2); + } + opOrderStatusLogService.saveOrUpdate(opOrderStatusLogEntity); + + } + + private void handlePackageData(String url,Integer event) { + + OpOrderStatusLogEntity opOrderStatusLogEntity = sendRequestData(url,event); + + // 保存需要解析的数据 + // 获取返回内容 + try { + JSONObject jsonObject = JSONObject.parseObject(opOrderStatusLogEntity.getArgs()); + JSONArray resultArray = jsonObject.getJSONArray("value"); + log.info("############handlePackageData: 数据处理开始"); + + //TODO 这里需要添加处理包件状态的逻辑 + + opOrderStatusLogEntity.setDataStatus(1); + } catch (Exception e) { + e.printStackTrace(); + log.error("############handlePackageData: {}", e.getMessage()); + opOrderStatusLogEntity.setDataStatus(2); + } + opOrderStatusLogService.saveOrUpdate(opOrderStatusLogEntity); + } + + private OpOrderStatusLogEntity sendRequestData(String url, Integer event) { + log.info("#################sendRequestData: 请求地址 url={}", url); + + String token = buildToken(); +// log.info(">>> Authorization token {}",token); + + HttpResponse httpResponse = HttpRequest.get(url).header("Authorization", token).execute(); + + String result = httpResponse.body(); + log.info("#################sendRequestData: 返回数据 result={}", result); + + OpOrderStatusLogEntity orderStatusLog = new OpOrderStatusLogEntity(); + orderStatusLog.setArgs(result); + orderStatusLog.setStatus(1); + orderStatusLog.setType(event); + orderStatusLog.setDataStatus(0); + orderStatusLog.setBrand("欧派"); + opOrderStatusLogService.save(orderStatusLog); + + + return orderStatusLog; + } + + /** * 处理返回的JSON数据 * @@ -401,7 +513,7 @@ public class OuPaiFactoryServiceImpl implements IOuPaiFactoryService { OpOrderStatusLogEntity orderStatusLog = new OpOrderStatusLogEntity(); orderStatusLog.setArgs(result); orderStatusLog.setStatus(1); - orderStatusLog.setType(1); + orderStatusLog.setType(3); orderStatusLog.setDataStatus(0); orderStatusLog.setBrand("欧派"); opOrderStatusLogService.save(orderStatusLog);