diff --git a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IAdvanceDetailClient.java b/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IAdvanceDetailClient.java index 3e7a8e092..68c7f6ce1 100644 --- a/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IAdvanceDetailClient.java +++ b/blade-service-api/logpm-old-project-api/src/main/java/com/logpm/oldproject/feign/IAdvanceDetailClient.java @@ -18,9 +18,12 @@ package com.logpm.oldproject.feign; import com.logpm.oldproject.entity.AdvanceDetailEntity; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import java.util.Map; + /** * 预仓明细表 Feign接口类 * @@ -54,4 +57,12 @@ public interface IAdvanceDetailClient { @PostMapping(API_PREFIX + "/addAdvanceDetail") boolean addAdvanceDetail(@RequestBody AdvanceDetailEntity advanceDetailEntity); + + /** + * 查询补充数据 + * @param unitNo + * @return + */ + @GetMapping(API_PREFIX + "/getSupplyData") + Map getSupplyData(String unitNo); } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/FactoryApplication.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/FactoryApplication.java index d5181a390..24579a781 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/FactoryApplication.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/FactoryApplication.java @@ -29,7 +29,7 @@ import org.springblade.core.launch.BladeApplication; public class FactoryApplication { public static void main(String[] args) { - BladeApplication.run(ModuleNameConstant.APPLICATION_FACTORY_NAME, FactoryApplication.class, args); + BladeApplication.run(ModuleNameConstant.APPLICATION_FACTORY_NAME+"-zhy", FactoryApplication.class, args); } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java index 54be67251..9bd1bf418 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/jobhandler/FactoryXxlJob.java @@ -336,7 +336,7 @@ public class FactoryXxlJob { ServiceNumEntity serviceNum = new ServiceNumEntity(); serviceNum.setServiceNum(stationOrderEntity.getTcWlb007()); //服务号 - serviceNum.setTotal(stationOrderEntity.getTcWlb009().toString()); //订单数量 + serviceNum.setTotal("1"); //订单数量 serviceNum.setDetailTotal(stationOrderEntity.getTcWlb009().toString()); // 包数量 serviceNum.setStoreName(stationOrderEntity.getOcc02()); //商场名 serviceNum.setStoreNo(""); // 商场编号 diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/controller/PanFactoryDataController.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/controller/PanFactoryDataController.java index ea3a58d49..8bd297f84 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/controller/PanFactoryDataController.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/controller/PanFactoryDataController.java @@ -138,7 +138,7 @@ public class PanFactoryDataController extends BladeController { public R sendOrders(@Validated @RequestBody OrderInfoDTO orderInfoDTO) { log.info("############sendOrders: 请求参数{}",orderInfoDTO); try{ -// factoryDataService.handleData(orderInfoDTO); + factoryDataService.handleData(orderInfoDTO); }catch (CustomerException e){ log.error(e.message,e); return R.fail(e.code,e.message); diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/dto/OrderInfoDTO.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/dto/OrderInfoDTO.java index 77e88be22..f3b519335 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/dto/OrderInfoDTO.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/dto/OrderInfoDTO.java @@ -17,6 +17,7 @@ package com.logpm.factory.snm.dto; import lombok.Data; +import org.springblade.core.tool.utils.StringUtil; import javax.validation.constraints.NotEmpty; @@ -39,4 +40,20 @@ public class OrderInfoDTO { @NotEmpty(message = "物流单号不能为空") private String logiBillNo;//物流单号 + + public boolean verifyData() { + if(StringUtil.isBlank(orderNo)){ + return false; + } + if(StringUtil.isBlank(plantId)){ + return false; + } + if(StringUtil.isBlank(deliveryNumber)){ + return false; + } + if(StringUtil.isBlank(logiBillNo)){ + return false; + } + return true; + } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/AsyncDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/AsyncDataServiceImpl.java index a510262a9..fd03b080f 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/AsyncDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/AsyncDataServiceImpl.java @@ -2,10 +2,14 @@ package com.logpm.factory.snm.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.logpm.factory.snm.entity.PanFactoryOrder; +import com.logpm.factory.snm.entity.PanPackageInfo; import com.logpm.factory.snm.service.IAsyncDataService; import com.logpm.factory.snm.service.IPanFactoryOrderService; import com.logpm.factory.snm.service.IPanPackageInfoService; import com.logpm.factory.snm.service.IPanPackageListService; +import com.logpm.oldproject.entity.AdvanceDetailEntity; +import com.logpm.oldproject.entity.AdvanceEntity; +import com.logpm.oldproject.entity.ServiceNumEntity; import com.logpm.oldproject.feign.IAdvanceClient; import com.logpm.oldproject.feign.IAdvanceDetailClient; import com.logpm.oldproject.feign.IServiceNumClient; @@ -15,6 +19,8 @@ import lombok.extern.log4j.Log4j2; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; /** @@ -45,11 +51,152 @@ public class AsyncDataServiceImpl implements IAsyncDataService { QueryWrapper orderQueryWrapper = new QueryWrapper<>(); orderQueryWrapper.eq("status",1) .eq("is_deleted",0); - List list = panFactoryOrderService.list(orderQueryWrapper); - log.info("#########handlerDataToHt: 待处理的订单数量为{}",list.size()); - for (PanFactoryOrder panFactoryOrder:list){ - Long id = panFactoryOrder.getId(); - log.info("#########handlerDataToHt: 当前处理的订单id={}",id); + List panFactoryOrders = panFactoryOrderService.list(orderQueryWrapper); + List serviceNumEntityList = new ArrayList<>(); + log.info("#########handlerDataToHt: 待处理的订单数量为{}",panFactoryOrders.size()); + for (PanFactoryOrder panFactoryOrder:panFactoryOrders){ + Long orderId = panFactoryOrder.getId(); + log.info("#########handlerDataToHt: 当前处理的订单id={}",orderId); + + //添加订单信息 + AdvanceEntity advanceEntity = new AdvanceEntity(); + advanceEntity.setOrderSelfNum(panFactoryOrder.getOrderNo()); //订单自编号 + advanceEntity.setSiteName(""); // 基地 TODO 通过工厂id映射 + advanceEntity.setArea(""); // 区域 + advanceEntity.setOrderTypeName(""); //订单类型名称 可以为空 + advanceEntity.setOrderClassName("工厂"); //订单类型 可以为空 + advanceEntity.setType("皮阿诺"); + advanceEntity.setTotal(panFactoryOrder.getServiceCount()); //订单总数据 + advanceEntity.setMctsTruck(panFactoryOrder.getDeliveryNumber()); //车次 + advanceEntity.setMtdsNo("");// MTDS单号 可以为空 + advanceEntity.setFirstPackName(""); //一级品类 + advanceEntity.setFirstPackCode(""); //一级品类 + advanceEntity.setDealerName(""); //商场名称 + advanceEntity.setDealerCode(panFactoryOrder.getUserId()); //商场编码 + advanceEntity.setDueDate(""); // 交期 + advanceEntity.setIsOpai(0); //是否干仓配 + advanceEntity.setOrderNum("");//MSCS订单号 可以为空 + advanceEntity.setCarrierName("汇通物流");//承运商 可以为空 + advanceEntity.setCustomerName(panFactoryOrder.getCustomerName()); //顾客名称 + advanceEntity.setCustomerPhone(panFactoryOrder.getCustomerNumber()); // 顾客电话 + advanceEntity.setCustomerRoad(panFactoryOrder.getCustomerAddress());//顾客地址 + advanceEntity.setSystemType("线上"); //订单类型 + advanceEntity.setStoreNo(""); //门店编码 + advanceEntity.setStoreName(""); //门店名称 + advanceEntity.setSerialKey(""); //序列号 + advanceEntity.setServiceNum(panFactoryOrder.getServiceNum()); //服务号 + advanceEntity.setMatingCode("");//齐套模式 可以为空 + advanceEntity.setContractNum("");//合同号 可以为空 + advanceEntity.setLeaveBehind("");//遗留:Y=是,N=否 + advanceEntity.setSenderMobile(panFactoryOrder.getSenderMobile());//发货人电话 可以为空 + advanceEntity.setSenderAddress(panFactoryOrder.getSenderAddress()); //发货地址 可以为空 + advanceEntity.setSenderName(panFactoryOrder.getSendFactory()); //发货工厂名称 可以为空 + advanceEntity.setAdministratorsId(1073);// 导入人 + advanceEntity.setCreateTime(LocalDate.now()); //添加时间 + advanceEntity.setCarsNum(panFactoryOrder.getDeliveryNumber()); //派车单--snm 可以为空 + advanceEntity.setDeleteTime(0); // 删除时间 + advanceEntity.setWaybillNo("");//运单号 可以为空 + advanceEntity.setWarehouseId(0); //导入人仓库id TODO 通过映射去查 + advanceEntity.setWaybillStatus(Byte.parseByte("1"));//开单状态:1=未开单,2=已开单 + advanceEntity.setOldId(0);// + advanceEntity.setFreeze(Byte.parseByte("1"));//冻结状态:1=正常,2=冻结 + advanceEntity.setDeleteReason("");//删除原因 + advanceEntity.setDeleteAdministratorsId(0);//删除用户 + Integer advanceId = iAdvanceClient.addAdvanceClient(advanceEntity); + if(advanceId > 0){ + //更改订单状态 + panFactoryOrder.setStatus(0); + panFactoryOrderService.saveOrUpdate(panFactoryOrder); + }else{ + //修改订单状态为失败 + panFactoryOrder.setStatus(2); + panFactoryOrderService.saveOrUpdate(panFactoryOrder); + continue; + } + + //通过订单id查询对应的包件 + QueryWrapper packageQueryWrapper = new QueryWrapper<>(); + orderQueryWrapper.eq("order_id",orderId) + .eq("is_deleted",0); + List packages = panPackageInfoService.list(packageQueryWrapper); + for(PanPackageInfo panPackageInfo:packages){ + //添加订单明细 + AdvanceDetailEntity advanceDetailEntity = new AdvanceDetailEntity(); + advanceDetailEntity.setAdvanceId(advanceId);//预仓id + advanceDetailEntity.setIsPay(Byte.parseByte("0"));// + advanceDetailEntity.setLineID("");//线下订单明细标时 可以为空 + advanceDetailEntity.setSerialKey("");//序列号 可以为空 + advanceDetailEntity.setArea("");//区域 + advanceDetailEntity.setOrderSelfNum(panFactoryOrder.getOrderNo());//订单自编号 + advanceDetailEntity.setType("皮阿诺");//订单来源 + advanceDetailEntity.setSystemType("线上");//订单类型 + advanceDetailEntity.setOrderNum("");//MSCS单号 可以为空 + advanceDetailEntity.setIsOpai(0);//是否干仓配:1=是,0=否 + advanceDetailEntity.setMtdsNo("");//MTDS单号 可以为空 + advanceDetailEntity.setFirstPackName(panPackageInfo.getFirstPackName());//一级品类 + advanceDetailEntity.setFirstPackCode(panPackageInfo.getFirstPackCode());//二级品类 + advanceDetailEntity.setSiteName("Objects.isNull(stationlinenumEntity) ? null : stationlinenumEntity.getLogisticsLineName()");//基地名称 基地 TODO 通过工厂id映射 + advanceDetailEntity.setSiteCode("");//基地编码 + advanceDetailEntity.setProductCode(panPackageInfo.getProductCode());//货品名称 可以为空 + advanceDetailEntity.setSecondPackName(panPackageInfo.getSecondPackName());//二级品类名称 + advanceDetailEntity.setSecondPackCode(panPackageInfo.getSecondPackCode());//二级品类 + advanceDetailEntity.setThirdPackName(panPackageInfo.getThirdPackName());//三级品类名称 + advanceDetailEntity.setThirdPackCode(panPackageInfo.getThirdPackCode());//三级品类 + advanceDetailEntity.setGoodName("");//v产品类型 可以为空 + advanceDetailEntity.setIsAddin("Y");//例放:N=正常,Y=例放 + advanceDetailEntity.setIsThirdAddin("N");//三级例放:N=正常,Y=例放 + advanceDetailEntity.setIsSuppin("N");//补进:N=正常,Y=例放 + advanceDetailEntity.setMscsNum(panPackageInfo.getProductNum()+"");//发货数量 + advanceDetailEntity.setMtdsNum(0);//销售数量 + advanceDetailEntity.setVolume("");//体积 + advanceDetailEntity.setUnitNo(panPackageInfo.getUnitNo());//包条码 + advanceDetailEntity.setMctsTruck(panFactoryOrder.getDeliveryNumber());//车次号 + advanceDetailEntity.setMctsTruckNo("");//车牌号 + advanceDetailEntity.setDate100(null);//基地发货日期 + advanceDetailEntity.setDate2("");//预约到厂时间 + advanceDetailEntity.setDate3("");//实际到厂时间 + advanceDetailEntity.setDate4("");//开始装车时间 + advanceDetailEntity.setDate5("");//完成装车时间 + advanceDetailEntity.setDate6("");//车辆离厂时间 + advanceDetailEntity.setCreateTime(LocalDate.now());//创建时间 + advanceDetailEntity.setDeleteTime(0);//删除时间 + advanceDetailEntity.setServiceNum(panFactoryOrder.getServiceNum());//服务号 + advanceDetailEntity.setAdmin("");// + advanceDetailEntity.setAdministratorsId(0);//导入人 +// advanceDetailEntity.setDueDate(0);//交期 + advanceDetailEntity.setRemark("");//备注 + advanceDetailEntity.setOldId(0);// + boolean b = advanceDetailClient.addAdvanceDetail(advanceDetailEntity); + if(b){ + //修改数据状态 + panPackageInfo.setStatus(0); + panPackageInfoService.saveOrUpdate(panPackageInfo); + }else{ + panPackageInfo.setStatus(2); + panPackageInfoService.saveOrUpdate(panPackageInfo); + } + Integer detailId = advanceDetailEntity.getId(); + + //TODO 这里还要确认是否需要 + + } + + ServiceNumEntity serviceNum = new ServiceNumEntity(); + serviceNum.setServiceNum(panFactoryOrder.getServiceNum()); //服务号 + serviceNum.setTotal("1"); //订单数量 + serviceNum.setDetailTotal(panFactoryOrder.getServiceCount()+""); // 包数量 + serviceNum.setStoreName(panFactoryOrder.getUserName()); //商场名 + serviceNum.setStoreNo(""); // 商场编号 + serviceNum.setCustomerName(panFactoryOrder.getCustomerName()); //顾客姓名 + serviceNum.setCustomerPhone(panFactoryOrder.getCustomerNumber()); //顾客电话 + serviceNum.setCustomerRoad(""); //顾客地址 + serviceNum.setIsOpai(1); //是否干仓配 + serviceNum.setCompleteSet("V"); //齐套标识:Y=齐套,N=未齐套,V=未知 +// serviceNum.setCreateTime(LocalDate.now()); + serviceNum.setDeleteTime(0); + serviceNumEntityList.add(serviceNum); } + serviceNumClient.addServiceNum(serviceNumEntityList); + log.info("##############handlerDataToHt: 处理数据完成"); } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/PanFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/PanFactoryDataServiceImpl.java index c735f9de6..3663a33d4 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/PanFactoryDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/snm/service/impl/PanFactoryDataServiceImpl.java @@ -15,13 +15,13 @@ import com.logpm.factory.snm.service.IPanFactoryDataService; import com.logpm.factory.snm.service.IPanFactoryOrderService; import com.logpm.factory.snm.service.IPanOrderStatusLogService; import com.logpm.factory.snm.service.IPanPackageInfoService; +import com.logpm.oldproject.feign.IAdvanceDetailClient; import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.common.exception.CustomerException; import org.springblade.core.tool.utils.StringUtil; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.Map; @@ -41,6 +41,8 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { private final PanFactoryProperties panFactoryProperties; private final IPanOrderStatusLogService panOrderStatusLogService; private final IPanPackageInfoService panPackageInfoService; + private final IPanFactoryOrderService panFactoryOrderService; + private final IAdvanceDetailClient advanceDetailClient; // @Override // public FactoryTokenVO getToken(String corpId, String appKey, String appSecret) throws NoSuchAlgorithmException { @@ -85,9 +87,9 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { // return factoryTokenVO; // } - @Transactional(rollbackFor = Exception.class) + @Override - public void handleData(OrderInfoDTO orderInfoDTO) { + public void handleData(OrderInfoDTO orderInfoDTO) throws CustomerException { //先保存原始请求数据 PanOrderStatusLog panOrderStatusLog = new PanOrderStatusLog(); @@ -96,15 +98,25 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { panOrderStatusLog.setType(1); panOrderStatusLogService.save(panOrderStatusLog); + String orderNo = orderInfoDTO.getOrderNo(); + //根据客户订单号去查询WMS装车清单号 QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("order_no",orderInfoDTO.getOrderNo()); + queryWrapper.eq("order_no",orderNo); PanFactoryOrder panFactoryOrder = factoryOrderService.getOne(queryWrapper); String plantId = panFactoryOrder.getPlantId();//工厂id String deliveryNumber = panFactoryOrder.getDeliveryNumber(); orderInfoDTO.setPlantId(plantId); orderInfoDTO.setDeliveryNumber(deliveryNumber); + QueryWrapper panFactoryOrderQueryWrapper = new QueryWrapper<>(); + panFactoryOrderQueryWrapper.eq("order_no",orderNo); + PanFactoryOrder one = panFactoryOrderService.getOne(panFactoryOrderQueryWrapper); + if(Objects.isNull(one)){ + logger.info("#############handleData: 合同自编码orderNo={}",orderNo); + throw new CustomerException(400,"未找到订单数据"); + } + //拼接参数 Map map = new HashMap<>(); map.put("payload", JSONObject.toJSONString(orderInfoDTO)); @@ -112,43 +124,48 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { Gson gson = new GsonBuilder().setPrettyPrinting().create(); String s = gson.toJson(map); + //判断数据是都已存在 + if(!orderInfoDTO.verifyData()){ + logger.info("#############handleData: 数据不齐全 orderInfoDTO={}",orderInfoDTO); + throw new CustomerException(400,"数据不齐全"); + } + //先获取token -// String panToken = getPanToken(); -// + String panToken = getPanToken(); + //请求参数 logger.info("##############handleData: 推送包件状态请求参数 {}",s); -// //处理逻辑 -// //TODO 这里还差那边给到请求接口 -// String result = HttpRequest.post(panFactoryProperties.getUrl()+"/hitf/v1/rest/invoke?namespace=HZERO&serverCode=HUITONG_MID_RECEIVE") -// .header("Authorization","Bearer "+panToken) -// .header("Content-Type","application/json") -// .body(s).timeout(5 * 1000) -// .execute().body(); -// -// logger.info("##############handleData: 推送包件状态返回参数 {}",result); -// -// //把结果字符串转为json对象 -// JSONObject jsonObject = JSONObject.parseObject(result); -// JSONObject payload = jsonObject.getJSONObject("payload"); -// if(!Objects.isNull(payload)){ -// Integer code = payload.getInteger("code"); -// String message = payload.getString("data"); -// if(code.equals(1)){ -// logger.info("##########handleData: 物流状态传递成功"); -// panOrderStatusLog.setStatus(0); -// panOrderStatusLogService.saveOrUpdate(panOrderStatusLog); -// }else{ -// throw new CustomerException(400,message); -// } -// }else{ -// throw new CustomerException(400,"返回格式有误:"+result); -// } + //处理逻辑 + String result = HttpRequest.post(panFactoryProperties.getUrl()+"/hitf/v1/rest/invoke?namespace=HZERO&serverCode=HUITONG_MID_RECEIVE") + .header("Authorization","Bearer "+panToken) + .header("Content-Type","application/json") + .body(s).timeout(5 * 1000) + .execute().body(); + + logger.info("##############handleData: 推送包件状态返回参数 {}",result); + + //把结果字符串转为json对象 + JSONObject jsonObject = JSONObject.parseObject(result); + JSONObject payload = jsonObject.getJSONObject("payload"); + if(!Objects.isNull(payload)){ + Integer code = payload.getInteger("code"); + String message = payload.getString("data"); + if(code.equals(1)){ + logger.info("##########handleData: 物流状态传递成功"); + panOrderStatusLog.setStatus(0); + panOrderStatusLogService.saveOrUpdate(panOrderStatusLog); + }else{ + throw new CustomerException(400,message); + } + }else{ + throw new CustomerException(400,"返回格式有误:"+result); + } } @Override - public void handleStatusData(OrderStatusDTO orderStatusDTO) { + public void handleStatusData(OrderStatusDTO orderStatusDTO) throws CustomerException { //先保存原始请求数据 PanOrderStatusLog panOrderStatusLog = new PanOrderStatusLog(); @@ -157,6 +174,12 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { panOrderStatusLog.setType(2); panOrderStatusLogService.save(panOrderStatusLog); + String status = orderStatusDTO.getStatus(); + if("2".equals(status)||"4".equals(status)||"5".equals(status)||"8".equals(status)||"9".equals(status)){ + logger.info("#############handleStatusData: 当前数据的状态不推送 status={}",status); + throw new CustomerException(400,"当前数据的状态不推送"); + } + //通过包件码查询是否是要推送的订单 String unitNo = orderStatusDTO.getUnitNo();//包件码 QueryWrapper packageInfoQueryWrapper = new QueryWrapper<>(); @@ -166,6 +189,11 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { logger.info("#############handleStatusData: 当前包条码未找到对应数据unitNo={}",unitNo); throw new CustomerException(400,"未找到包件数据"); } + //查询destinationWarehouse logiBillNo plantId数据 + Map supplyData = advanceDetailClient.getSupplyData(unitNo); + orderStatusDTO.setPlantId(supplyData.get("plantId")); + orderStatusDTO.setDestinationWarehouse(supplyData.get("destinationWarehouse")); + orderStatusDTO.setLogiBillNo(supplyData.get("logiBillNo")); //判断数据是都已存在 if(!orderStatusDTO.verifyData()){ @@ -180,36 +208,36 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { Gson gson = new GsonBuilder().setPrettyPrinting().create(); String s = gson.toJson(map); -// //先获取token -// String panToken = getPanToken(); -// + //先获取token + String panToken = getPanToken(); + //请求参数 logger.info("##############handleStatusData: 推送包件状态请求参数 {}",s); -// //处理逻辑 -// String result = HttpRequest.post(panFactoryProperties.getUrl()+"/hitf/v1/rest/invoke?namespace=HZERO&serverCode=OPEN&interfaceCode=HUITONG_RECEIVE") -// .header("Authorization","Bearer "+panToken) -// .header("Content-Type","application/json") -// .body(s).timeout(5 * 1000) -// .execute().body(); -// -// logger.info("##############handleStatusData: 推送包件状态返回参数 {}",result); -// -// //把结果字符串转为json对象 -// JSONObject jsonObject = JSONObject.parseObject(result); -// JSONObject payload = jsonObject.getJSONObject("payload"); -// if(!Objects.isNull(payload)){ -// Integer code = payload.getInteger("code"); -// String message = payload.getString("data"); -// if(code.equals(1)){ -// logger.info("##########handleStatusData: 物流状态传递成功"); -// panOrderStatusLog.setStatus(0); -// panOrderStatusLogService.saveOrUpdate(panOrderStatusLog); -// }else{ -// throw new CustomerException(400,message); -// } -// }else{ -// throw new CustomerException(400,"返回格式有误:"+result); -// } + //处理逻辑 + String result = HttpRequest.post(panFactoryProperties.getUrl()+"/hitf/v1/rest/invoke?namespace=HZERO&serverCode=OPEN&interfaceCode=HUITONG_RECEIVE") + .header("Authorization","Bearer "+panToken) + .header("Content-Type","application/json") + .body(s).timeout(5 * 1000) + .execute().body(); + + logger.info("##############handleStatusData: 推送包件状态返回参数 {}",result); + + //把结果字符串转为json对象 + JSONObject jsonObject = JSONObject.parseObject(result); + JSONObject payload = jsonObject.getJSONObject("payload"); + if(!Objects.isNull(payload)){ + Integer code = payload.getInteger("code"); + String message = payload.getString("data"); + if(code.equals(1)){ + logger.info("##########handleStatusData: 物流状态传递成功"); + panOrderStatusLog.setStatus(0); + panOrderStatusLogService.saveOrUpdate(panOrderStatusLog); + }else{ + throw new CustomerException(400,message); + } + }else{ + throw new CustomerException(400,"返回格式有误:"+result); + } } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/AdvanceDetailClient.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/AdvanceDetailClient.java index 023224a11..ed301d19f 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/AdvanceDetailClient.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/feign/AdvanceDetailClient.java @@ -24,6 +24,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; +import java.util.Map; + /** * 预仓明细表 Feign实现类 * @@ -55,4 +57,12 @@ public class AdvanceDetailClient implements IAdvanceDetailClient { return advanceDetailService.addAdvanceDetail(advanceDetailEntity); } + @Override + @GetMapping(API_PREFIX + "/getSupplyData") + public Map getSupplyData(String unitNo) { + //查询补充数据 + Map map = advanceDetailService.getSupplyData(unitNo); + return map; + } + } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.java index 660535fc7..d4f3eb109 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.java @@ -16,15 +16,14 @@ */ package com.logpm.oldproject.mapper; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.logpm.oldproject.entity.AdvanceDetailEntity; -import com.logpm.oldproject.entity.AdvanceEntity; import com.logpm.oldproject.vo.AdvanceDetailVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * 预仓明细表 Mapper 接口 @@ -50,4 +49,5 @@ public interface AdvanceDetailMapper extends BaseMapper { */ Boolean addAll(@Param("param") AdvanceDetailEntity advanceDetailEntity); + Map getSupplyData(@Param("unitNo") String unitNo); } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.xml b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.xml index 9af52bcfc..e957a99cc 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.xml +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/mapper/AdvanceDetailMapper.xml @@ -75,5 +75,18 @@ + + diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IAdvanceDetailService.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IAdvanceDetailService.java index e53d157a1..a17098c74 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IAdvanceDetailService.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/IAdvanceDetailService.java @@ -18,6 +18,8 @@ package com.logpm.oldproject.service; import com.logpm.oldproject.entity.AdvanceDetailEntity; +import java.util.Map; + /** * 预仓明细表 服务类 * @@ -29,4 +31,5 @@ public interface IAdvanceDetailService { Boolean addAdvanceDetail(AdvanceDetailEntity advanceDetailEntity); + Map getSupplyData(String unitNo); } diff --git a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/AdvanceDetailServiceImpl.java b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/AdvanceDetailServiceImpl.java index 817f68f8a..2d4257d82 100644 --- a/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/AdvanceDetailServiceImpl.java +++ b/blade-service/logpm-old-project/src/main/java/com/logpm/oldproject/service/impl/AdvanceDetailServiceImpl.java @@ -22,6 +22,8 @@ import com.logpm.oldproject.service.IAdvanceDetailService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Map; + /** * 预仓明细表 服务实现类 * @@ -39,5 +41,13 @@ public class AdvanceDetailServiceImpl implements IAdvanceDetailService { return advanceDetailMapper.addAll(advanceDetailEntity); } + @Override + public Map getSupplyData(String unitNo) { + //查询补充数据 + //unitNo + Map map = advanceDetailMapper.getSupplyData(unitNo); + return map; + } + }