|
|
|
@ -71,103 +71,103 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
public R dealWithData(MtFactoryDataDTO mtFactoryDataDTO) { |
|
|
|
|
log.info("#############dealWithData: 处理梦天工厂数据 开始"); |
|
|
|
|
String orderType = mtFactoryDataDTO.getOrderType();//单据类型
|
|
|
|
|
if("反冲单".equals(orderType)){ |
|
|
|
|
if ("反冲单".equals(orderType)) { |
|
|
|
|
//如果是反冲单 就去把对应的包件信息逻辑删除
|
|
|
|
|
List<MtFactoryOrderDTO> orderList = mtFactoryDataDTO.getOrderList(); |
|
|
|
|
List<Long> updateList = new ArrayList<>(); |
|
|
|
|
for (MtFactoryOrderDTO mtFactoryOrderDTO:orderList){ |
|
|
|
|
for (MtFactoryOrderDTO mtFactoryOrderDTO : orderList) { |
|
|
|
|
String orderCode = mtFactoryOrderDTO.getOrderCode(); |
|
|
|
|
List<MtPackageInfoDTO> packageInfos = mtFactoryOrderDTO.getPackageInfos(); |
|
|
|
|
for (MtPackageInfoDTO mtPackageInfoDTO:packageInfos){ |
|
|
|
|
for (MtPackageInfoDTO mtPackageInfoDTO : packageInfos) { |
|
|
|
|
//根据包件码和订单自编码查询是否存在该包件
|
|
|
|
|
String packageCode = mtPackageInfoDTO.getPackageCode(); |
|
|
|
|
QueryWrapper<MtPackageInfo> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.eq("order_code",orderCode) |
|
|
|
|
.eq("package_code",packageCode) |
|
|
|
|
.eq("is_deleted",0); |
|
|
|
|
queryWrapper.eq("order_code", orderCode) |
|
|
|
|
.eq("package_code", packageCode) |
|
|
|
|
.eq("is_deleted", 0); |
|
|
|
|
|
|
|
|
|
MtPackageInfo mtPackageInfo = mtPackageInfoService.getOne(queryWrapper); |
|
|
|
|
if(!Objects.isNull(mtPackageInfo)){ |
|
|
|
|
if (!Objects.isNull(mtPackageInfo)) { |
|
|
|
|
updateList.add(mtPackageInfo.getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
mtPackageInfoService.updateDeleteByIds(updateList); |
|
|
|
|
return R.success("SUCCESS"); |
|
|
|
|
}else { |
|
|
|
|
} else { |
|
|
|
|
String invoiceOrderCode = mtFactoryDataDTO.getInvoiceOrderCode();//发货单编码
|
|
|
|
|
//先判断该发货单编码是否已经存在
|
|
|
|
|
QueryWrapper<MtFactoryOrderMain> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.eq("invoice_order_code",invoiceOrderCode); |
|
|
|
|
queryWrapper.eq("invoice_order_code", invoiceOrderCode); |
|
|
|
|
Long mainId = null; |
|
|
|
|
MtFactoryOrderMain mtFactoryOrderMain = mtFactoryOrderMainService.getOne(queryWrapper); |
|
|
|
|
if(!Objects.isNull(mtFactoryOrderMain)){ |
|
|
|
|
log.warn("#############dealWithData: 数据已存在 invoiceOrderCode={}",invoiceOrderCode); |
|
|
|
|
return R.fail(405,"发货单已存在"); |
|
|
|
|
if (!Objects.isNull(mtFactoryOrderMain)) { |
|
|
|
|
log.warn("#############dealWithData: 数据已存在 invoiceOrderCode={}", invoiceOrderCode); |
|
|
|
|
return R.fail(405, "发货单已存在"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//先取出所有发车单下面的订单
|
|
|
|
|
List<MtFactoryOrderDTO> orderList = mtFactoryDataDTO.getOrderList();//所有订单数据
|
|
|
|
|
for(MtFactoryOrderDTO mtFactoryOrderDTO:orderList){ |
|
|
|
|
for (MtFactoryOrderDTO mtFactoryOrderDTO : orderList) { |
|
|
|
|
String orderCode = mtFactoryOrderDTO.getOrderCode();//订单自编码
|
|
|
|
|
//先取出订单下面的包件进行判断是否存在
|
|
|
|
|
List<MtPackageInfoDTO> packageInfos = mtFactoryOrderDTO.getPackageInfos(); |
|
|
|
|
//查询出该订单自编码下面的目前存在的所有包件
|
|
|
|
|
QueryWrapper<MtPackageInfo> qw = new QueryWrapper<>(); |
|
|
|
|
qw.eq("order_code",orderCode); |
|
|
|
|
qw.eq("order_code", orderCode); |
|
|
|
|
List<MtPackageInfo> existPackages = mtPackageInfoService.list(qw); |
|
|
|
|
for(MtPackageInfo mtPackageInfo:existPackages){ |
|
|
|
|
for (MtPackageInfo mtPackageInfo : existPackages) { |
|
|
|
|
String packageCode = mtPackageInfo.getPackageCode(); |
|
|
|
|
for (MtPackageInfoDTO mtPackageInfoDTO:packageInfos){ |
|
|
|
|
for (MtPackageInfoDTO mtPackageInfoDTO : packageInfos) { |
|
|
|
|
String pc = mtPackageInfoDTO.getPackageCode(); |
|
|
|
|
if(packageCode.equals(pc)){ |
|
|
|
|
if (packageCode.equals(pc)) { |
|
|
|
|
packageInfos.remove(mtPackageInfoDTO); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//判断是否有新的包件
|
|
|
|
|
if(packageInfos.size() == 0){ |
|
|
|
|
if (packageInfos.size() == 0) { |
|
|
|
|
//如果没有新增包件就直接下一条数据
|
|
|
|
|
log.info("##################dealWithData: 没有新增包件,所以当前数据不保存 invoiceOrderCode={}",invoiceOrderCode); |
|
|
|
|
log.info("##################dealWithData: 没有新增包件,所以当前数据不保存 invoiceOrderCode={}", invoiceOrderCode); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
//如果有新增包件就去存入订单发车单,和订单信息
|
|
|
|
|
if(Objects.isNull(mtFactoryOrderMain)){ |
|
|
|
|
if (Objects.isNull(mtFactoryOrderMain)) { |
|
|
|
|
mtFactoryOrderMain = new MtFactoryOrderMain(); |
|
|
|
|
BeanUtil.copyProperties(mtFactoryDataDTO,mtFactoryOrderMain); |
|
|
|
|
BeanUtil.copyProperties(mtFactoryDataDTO, mtFactoryOrderMain); |
|
|
|
|
boolean saveMain = mtFactoryOrderMainService.save(mtFactoryOrderMain); |
|
|
|
|
if(saveMain){ |
|
|
|
|
if (saveMain) { |
|
|
|
|
mainId = mtFactoryOrderMain.getId(); |
|
|
|
|
}else{ |
|
|
|
|
log.warn("##################dealWithData: 保存头信息失败invoiceOrderCode={} ",invoiceOrderCode); |
|
|
|
|
throw new CustomerException(405,"保存数据失败"); |
|
|
|
|
} else { |
|
|
|
|
log.warn("##################dealWithData: 保存头信息失败invoiceOrderCode={} ", invoiceOrderCode); |
|
|
|
|
throw new CustomerException(405, "保存数据失败"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//保存订单信息
|
|
|
|
|
MtFactoryOrder mtFactoryOrder = new MtFactoryOrder(); |
|
|
|
|
BeanUtil.copyProperties(mtFactoryOrderDTO,mtFactoryOrder); |
|
|
|
|
BeanUtil.copyProperties(mtFactoryOrderDTO, mtFactoryOrder); |
|
|
|
|
mtFactoryOrder.setMainId(mainId); |
|
|
|
|
boolean saveOrder = mtFactoryOrderService.save(mtFactoryOrder); |
|
|
|
|
Long orderId = mtFactoryOrder.getId(); |
|
|
|
|
if(saveOrder){ |
|
|
|
|
if (saveOrder) { |
|
|
|
|
List<MtPackageInfo> list = new ArrayList<>(); |
|
|
|
|
for(MtPackageInfoDTO mtPackageInfoDTO:packageInfos){ |
|
|
|
|
for (MtPackageInfoDTO mtPackageInfoDTO : packageInfos) { |
|
|
|
|
MtPackageInfo mtPackageInfo = new MtPackageInfo(); |
|
|
|
|
BeanUtil.copyProperties(mtPackageInfoDTO,mtPackageInfo); |
|
|
|
|
BeanUtil.copyProperties(mtPackageInfoDTO, mtPackageInfo); |
|
|
|
|
mtPackageInfo.setOrderId(orderId); |
|
|
|
|
mtPackageInfo.setOrderCode(orderCode); |
|
|
|
|
list.add(mtPackageInfo); |
|
|
|
|
} |
|
|
|
|
//保存包件信息
|
|
|
|
|
boolean b = mtPackageInfoService.saveBatch(list); |
|
|
|
|
}else{ |
|
|
|
|
log.warn("##################dealWithData: 保存订单信息失败orderCode={} ",orderCode); |
|
|
|
|
throw new CustomerException(405,"保存数据失败"); |
|
|
|
|
} else { |
|
|
|
|
log.warn("##################dealWithData: 保存订单信息失败orderCode={} ", orderCode); |
|
|
|
|
throw new CustomerException(405, "保存数据失败"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Map<String,Long> map = new HashMap<>(); |
|
|
|
|
map.put("mainId",mainId); |
|
|
|
|
Map<String, Long> map = new HashMap<>(); |
|
|
|
|
map.put("mainId", mainId); |
|
|
|
|
|
|
|
|
|
return R.data(map); |
|
|
|
|
} |
|
|
|
@ -179,24 +179,24 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
|
|
|
|
|
//根据客户订单号去查询WMS装车清单号
|
|
|
|
|
QueryWrapper<MtFactoryOrder> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
queryWrapper.eq("order_code",orderNo); |
|
|
|
|
queryWrapper.eq("order_code", orderNo); |
|
|
|
|
MtFactoryOrder mtFactoryOrder = mtFactoryOrderService.getOne(queryWrapper); |
|
|
|
|
if(Objects.isNull(mtFactoryOrder)){ |
|
|
|
|
logger.info("#############handleData: 未找到订单数据 合同自编码orderNo={}",orderNo); |
|
|
|
|
return R.fail(400,"未找到订单数据"); |
|
|
|
|
if (Objects.isNull(mtFactoryOrder)) { |
|
|
|
|
logger.info("#############handleData: 未找到订单数据 合同自编码orderNo={}", orderNo); |
|
|
|
|
return R.fail(400, "未找到订单数据"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//TODO 组装数据
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//判断数据是都已存在
|
|
|
|
|
if(!orderInfoDTO.verifyData()){ |
|
|
|
|
logger.info("#############handleData: 数据不齐全 orderInfoDTO={}",orderInfoDTO); |
|
|
|
|
return R.fail(405,"数据不齐全"); |
|
|
|
|
if (!orderInfoDTO.verifyData()) { |
|
|
|
|
logger.info("#############handleData: 数据不齐全 orderInfoDTO={}", orderInfoDTO); |
|
|
|
|
return R.fail(405, "数据不齐全"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//拼接参数
|
|
|
|
|
Map<String,Object> map = new HashMap<>(); |
|
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
|
map.put("payload", JSONObject.toJSONString(orderInfoDTO)); |
|
|
|
|
|
|
|
|
|
Gson gson = new GsonBuilder().setPrettyPrinting().create(); |
|
|
|
@ -206,29 +206,29 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
String panToken = getMtToken(); |
|
|
|
|
|
|
|
|
|
//请求参数
|
|
|
|
|
logger.info("##############handleData: 推送包件状态请求参数 {}",s); |
|
|
|
|
logger.info("##############handleData: 推送包件状态请求参数 {}", s); |
|
|
|
|
//处理逻辑
|
|
|
|
|
String result = HttpRequest.post("URL"+"/hitf/v1/rest/invoke?namespace=HZERO&serverCode=OPEN&interfaceCode=HUITONG_MID_RECEIVE") |
|
|
|
|
.header("Authorization","Bearer "+panToken) |
|
|
|
|
.header("Content-Type","application/json") |
|
|
|
|
String result = HttpRequest.post("URL" + "/hitf/v1/rest/invoke?namespace=HZERO&serverCode=OPEN&interfaceCode=HUITONG_MID_RECEIVE") |
|
|
|
|
.header("Authorization", "Bearer " + panToken) |
|
|
|
|
.header("Content-Type", "application/json") |
|
|
|
|
.body(s).timeout(5 * 1000) |
|
|
|
|
.execute().body(); |
|
|
|
|
|
|
|
|
|
logger.info("##############handleData: 推送包件状态返回参数 {}",result); |
|
|
|
|
logger.info("##############handleData: 推送包件状态返回参数 {}", result); |
|
|
|
|
|
|
|
|
|
//把结果字符串转为json对象
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result); |
|
|
|
|
JSONObject payload = jsonObject.getJSONObject("payload"); |
|
|
|
|
if(!Objects.isNull(payload)){ |
|
|
|
|
if (!Objects.isNull(payload)) { |
|
|
|
|
Integer code = payload.getInteger("code"); |
|
|
|
|
String message = payload.getString("data"); |
|
|
|
|
if(code.equals(1)){ |
|
|
|
|
if (code.equals(1)) { |
|
|
|
|
logger.info("##########handleData: 物流状态传递成功"); |
|
|
|
|
}else{ |
|
|
|
|
return R.fail(405,message); |
|
|
|
|
} else { |
|
|
|
|
return R.fail(405, message); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
return R.fail(405,"返回格式有误:"+result); |
|
|
|
|
} else { |
|
|
|
|
return R.fail(405, "返回格式有误:" + result); |
|
|
|
|
} |
|
|
|
|
return Resp.success("SUCCESS"); |
|
|
|
|
|
|
|
|
@ -236,11 +236,12 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 获取梦天的工厂的数据token |
|
|
|
|
* |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private String getMtToken() throws NoSuchAlgorithmException { |
|
|
|
|
String mtToken =bladeRedis.get("mt_token"); |
|
|
|
|
if(StringUtil.isBlank(mtToken)){ |
|
|
|
|
String mtToken = bladeRedis.get("mt_token"); |
|
|
|
|
if (StringUtil.isBlank(mtToken)) { |
|
|
|
|
// 重新获取
|
|
|
|
|
String appkey = mtFactoryProperties.getAppkey(); |
|
|
|
|
String appsecret = mtFactoryProperties.getAppsecret(); |
|
|
|
@ -250,35 +251,35 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
|
|
|
|
|
String sign = MD5Utils.md5Hex((appkey + appsecret + time).getBytes(StandardCharsets.UTF_8)); |
|
|
|
|
String pwd = MD5Utils.md5Hex(userpwd.getBytes(StandardCharsets.UTF_8)); |
|
|
|
|
JSONObject jsonObject1 =new JSONObject(); |
|
|
|
|
jsonObject1.put("APPKEY",appkey); |
|
|
|
|
jsonObject1.put("SIGN",sign); |
|
|
|
|
jsonObject1.put("USERID",userid); |
|
|
|
|
jsonObject1.put("USERPWD",pwd); |
|
|
|
|
jsonObject1.put("Timestamp",time); |
|
|
|
|
logger.info("##############getMengtianToken: 获取梦天token请求参数 {}",jsonObject1); |
|
|
|
|
String result = HttpRequest.post(mtFactoryProperties.getUrl()+"/Auth/Validate") |
|
|
|
|
.header("Content-Type","application/json").body(jsonObject1.toJSONString()).timeout(5 * 1000) |
|
|
|
|
JSONObject jsonObject1 = new JSONObject(); |
|
|
|
|
jsonObject1.put("APPKEY", appkey); |
|
|
|
|
jsonObject1.put("SIGN", sign); |
|
|
|
|
jsonObject1.put("USERID", userid); |
|
|
|
|
jsonObject1.put("USERPWD", pwd); |
|
|
|
|
jsonObject1.put("Timestamp", time); |
|
|
|
|
logger.info("##############getMengtianToken: 获取梦天token请求参数 {}", jsonObject1); |
|
|
|
|
String result = HttpRequest.post(mtFactoryProperties.getUrl() + "/Auth/Validate") |
|
|
|
|
.header("Content-Type", "application/json").body(jsonObject1.toJSONString()).timeout(5 * 1000) |
|
|
|
|
.execute() |
|
|
|
|
.body(); |
|
|
|
|
//获取的结果转成json对象
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result); |
|
|
|
|
logger.info("##############getMengtianToken: 获取梦天token返回参数 {}",result); |
|
|
|
|
logger.info("##############getMengtianToken: 获取梦天token返回参数 {}", result); |
|
|
|
|
|
|
|
|
|
Integer code = jsonObject.getInteger("Result"); |
|
|
|
|
String access_token = jsonObject.getString("Data"); |
|
|
|
|
if(0 == code){ |
|
|
|
|
if(StringUtil.hasLength(access_token)){ |
|
|
|
|
mtToken= access_token; |
|
|
|
|
if (0 == code) { |
|
|
|
|
if (StringUtil.hasLength(access_token)) { |
|
|
|
|
mtToken = access_token; |
|
|
|
|
// 加入redis
|
|
|
|
|
bladeRedis.setEx("mt_token",mtToken,25*60L); |
|
|
|
|
}else{ |
|
|
|
|
log.warn("###############getMengtianToken: 获取梦天token失败 access_token={}",access_token); |
|
|
|
|
throw new CustomerException(402,"获取梦天token失败"); |
|
|
|
|
bladeRedis.setEx("mt_token", mtToken, 25 * 60L); |
|
|
|
|
} else { |
|
|
|
|
log.warn("###############getMengtianToken: 获取梦天token失败 access_token={}", access_token); |
|
|
|
|
throw new CustomerException(402, "获取梦天token失败"); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
log.warn("###############getMengtianToken: 获取梦天token失败 code={}",code); |
|
|
|
|
throw new CustomerException(402,"获取梦天token失败"); |
|
|
|
|
} else { |
|
|
|
|
log.warn("###############getMengtianToken: 获取梦天token失败 code={}", code); |
|
|
|
|
throw new CustomerException(402, "获取梦天token失败"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return mtToken; |
|
|
|
@ -288,19 +289,17 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R handleStatusData(OrderStatusDTO orderStatusDTO) throws CustomerException, JsonProcessingException, NoSuchAlgorithmException { |
|
|
|
|
logger.info("#############handleStatusData: orderStatusDTO={}",orderStatusDTO); |
|
|
|
|
logger.info("#############handleStatusData: orderStatusDTO={}", orderStatusDTO); |
|
|
|
|
|
|
|
|
|
String status = orderStatusDTO.getStatus(); |
|
|
|
|
String orderNo = orderStatusDTO.getOrderNo(); |
|
|
|
|
if("1".equals(status)||"2".equals(status)||"3".equals(status)||"5".equals(status)||"6".equals(status)||"7".equals(status)||"8".equals(status)||"9".equals(status)){ |
|
|
|
|
logger.info("#############handleStatusData: 当前数据的状态不推送 status={}",status); |
|
|
|
|
return Resp.fail(400,"当前数据的状态不推送"); |
|
|
|
|
if ("1".equals(status) || "2".equals(status) || "3".equals(status) || "5".equals(status) || "6".equals(status) || "7".equals(status) || "8".equals(status) || "9".equals(status)) { |
|
|
|
|
logger.info("#############handleStatusData: 当前数据的状态不推送 status={}", status); |
|
|
|
|
return Resp.fail(400, "当前数据的状态不推送"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}",0); |
|
|
|
|
|
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}", 0); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// if("4".equals(status)){
|
|
|
|
@ -337,51 +336,49 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
//通过包件码查询是否是要推送的订单
|
|
|
|
|
String unitNo = orderStatusDTO.getUnitNo();//包件码
|
|
|
|
|
QueryWrapper<MtPackageInfo> packageInfoQueryWrapper = new QueryWrapper<>(); |
|
|
|
|
packageInfoQueryWrapper.eq("package_code",unitNo); |
|
|
|
|
packageInfoQueryWrapper.eq("package_code", unitNo); |
|
|
|
|
MtPackageInfo one = mtPackageInfoService.getOne(packageInfoQueryWrapper); |
|
|
|
|
logger.info("#############one: {}",one); |
|
|
|
|
logger.info("#############one: {}", one); |
|
|
|
|
|
|
|
|
|
if(Objects.isNull(one)){ |
|
|
|
|
logger.info("#############handleStatusData: 当前包条码未找到对应数据unitNo={}",unitNo); |
|
|
|
|
return Resp.fail(400,"未找到包件数据"); |
|
|
|
|
if (Objects.isNull(one)) { |
|
|
|
|
logger.info("#############handleStatusData: 当前包条码未找到对应数据unitNo={}", unitNo); |
|
|
|
|
return Resp.fail(400, "未找到包件数据"); |
|
|
|
|
} |
|
|
|
|
Long orderId = one.getOrderId(); |
|
|
|
|
MtFactoryOrder mtFactoryOrder = mtFactoryOrderService.getById(orderId); |
|
|
|
|
if(Objects.isNull(mtFactoryOrder)){ |
|
|
|
|
logger.info("#############handleStatusData: 未找到对应订单orderId={}",orderId); |
|
|
|
|
return Resp.fail(400,"未找到对应订单"); |
|
|
|
|
if (Objects.isNull(mtFactoryOrder)) { |
|
|
|
|
logger.info("#############handleStatusData: 未找到对应订单orderId={}", orderId); |
|
|
|
|
return Resp.fail(400, "未找到对应订单"); |
|
|
|
|
} |
|
|
|
|
Long mainId = mtFactoryOrder.getMainId(); |
|
|
|
|
MtFactoryOrderMain mtFactoryOrderMain = mtFactoryOrderMainService.getById(mainId); |
|
|
|
|
if(Objects.isNull(mtFactoryOrderMain)){ |
|
|
|
|
logger.info("#############handleStatusData: 未找到对应订单mainId={}",mainId); |
|
|
|
|
return Resp.fail(400,"未找到对应订单"); |
|
|
|
|
if (Objects.isNull(mtFactoryOrderMain)) { |
|
|
|
|
logger.info("#############handleStatusData: 未找到对应订单mainId={}", mainId); |
|
|
|
|
return Resp.fail(400, "未找到对应订单"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 验证该数据是否推送过
|
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}",1); |
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}", 1); |
|
|
|
|
LambdaQueryWrapper<MtPushData> lambdaQueryChainWrapper = new LambdaQueryWrapper(MtPushData.class); |
|
|
|
|
lambdaQueryChainWrapper.select(MtPushData::getId); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getPushStatus,1); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getRefCode,unitNo); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getRefParentCode,orderNo); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getRefType,2); |
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}",2); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getPushStatus, 1); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getRefCode, unitNo); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getRefParentCode, orderNo); |
|
|
|
|
lambdaQueryChainWrapper.eq(MtPushData::getRefType, 2); |
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}", 2); |
|
|
|
|
|
|
|
|
|
List<MtPushData> tempIds =mtPushDataService.getBaseMapper().selectList(lambdaQueryChainWrapper); |
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}",3); |
|
|
|
|
List<MtPushData> tempIds = mtPushDataService.getBaseMapper().selectList(lambdaQueryChainWrapper); |
|
|
|
|
logger.info("##################orderStatusHandler: 异常tag={}", 3); |
|
|
|
|
|
|
|
|
|
logger.info("##################orderStatusHandler: tempIds={}",tempIds); |
|
|
|
|
logger.info("##################orderStatusHandler: tempIds={}", tempIds); |
|
|
|
|
|
|
|
|
|
if(tempIds!=null&& tempIds.size()>0){ |
|
|
|
|
if (tempIds != null && tempIds.size() > 0) { |
|
|
|
|
// 标识存在 该项数据已被推送
|
|
|
|
|
return Resp.fail(400,"数据已被推送 ,无需再次重复"); |
|
|
|
|
return Resp.fail(400, "数据已被推送 ,无需再次重复"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//拼接参数
|
|
|
|
|
MtOrderStatusDTO mtOrderStatusDTO = new MtOrderStatusDTO(); |
|
|
|
|
mtOrderStatusDTO.setInvoiceOrderCode(mtFactoryOrderMain.getInvoiceOrderCode()); |
|
|
|
@ -397,7 +394,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
|
|
|
|
|
R rd = sendMtFactoryData(mtFactoryProperties.getUrl() + "/ZXCFaHuoDan/ShouHuoRuKu", s, 1); |
|
|
|
|
|
|
|
|
|
if(rd.getCode()==ResultCode.SUCCESS.getCode()){ |
|
|
|
|
if (rd.getCode() == ResultCode.SUCCESS.getCode()) { |
|
|
|
|
MtPushData mtPushData = new MtPushData(); |
|
|
|
|
mtPushData.setPushTime(new Date()); |
|
|
|
|
mtPushData.setPushStatus(1);// 推送状态
|
|
|
|
@ -405,7 +402,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
mtPushData.setRefParentCode(orderNo); |
|
|
|
|
mtPushData.setRefType(2);// 包件
|
|
|
|
|
// 插入推送数据
|
|
|
|
|
logger.info("#############handleStatusData:保存推送数据{}",mtPushData); |
|
|
|
|
logger.info("#############handleStatusData:保存推送数据{}", mtPushData); |
|
|
|
|
mtPushDataService.save(mtPushData); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
@ -416,25 +413,24 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional |
|
|
|
|
@Override |
|
|
|
|
public R sendReceiveInfo(ReceiveInfoDTO receiveInfoDTO) throws JsonProcessingException, NoSuchAlgorithmException { |
|
|
|
|
log.info("###########sendReceiveInfo: 处理签收图片数据开始"); |
|
|
|
|
|
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",1); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 1); |
|
|
|
|
|
|
|
|
|
Integer newDistributionContactId = receiveInfoDTO.getNewDistributionContactId(); |
|
|
|
|
List<ReceiveBodyDTO> receiveBodyList = receiveInfoDTO.getReceiveBodyList(); |
|
|
|
|
List<ReceivePhotoDTO> receivePhotoList = receiveInfoDTO.getReceivePhotoList(); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",2); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 2); |
|
|
|
|
|
|
|
|
|
//查询签收人
|
|
|
|
|
NewDistributionContactEntity newDistributionContactEntity = newDistributionContactClient.fingByNewDistributionContactId(newDistributionContactId); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",3); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 3); |
|
|
|
|
|
|
|
|
|
String receiver = null; |
|
|
|
|
if (!Objects.isNull(newDistributionContactEntity)){ |
|
|
|
|
if (!Objects.isNull(newDistributionContactEntity)) { |
|
|
|
|
receiver = newDistributionContactEntity.getContact(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -446,36 +442,36 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
//循环处理签收信息
|
|
|
|
|
List<MtReceiveContentDTO> mtReceiveContentDTOList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",4); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 4); |
|
|
|
|
|
|
|
|
|
for(ReceiveBodyDTO receiveBodyDTO:receiveBodyList){ |
|
|
|
|
for (ReceiveBodyDTO receiveBodyDTO : receiveBodyList) { |
|
|
|
|
String unitNo = receiveBodyDTO.getUnitNo();//包条码
|
|
|
|
|
//通过订单编号查询总单信息
|
|
|
|
|
QueryWrapper<MtPackageInfo> packageInfoQueryWrapper = new QueryWrapper<>(); |
|
|
|
|
packageInfoQueryWrapper.eq("package_code",unitNo); |
|
|
|
|
packageInfoQueryWrapper.eq("package_code", unitNo); |
|
|
|
|
MtPackageInfo one = mtPackageInfoService.getOne(packageInfoQueryWrapper); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",5); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 5); |
|
|
|
|
|
|
|
|
|
if(Objects.isNull(one)){ |
|
|
|
|
logger.info("#############sendReceiveInfo: 当前包条码未找到对应数据unitNo={}",unitNo); |
|
|
|
|
if (Objects.isNull(one)) { |
|
|
|
|
logger.info("#############sendReceiveInfo: 当前包条码未找到对应数据unitNo={}", unitNo); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
Long orderId = one.getOrderId(); |
|
|
|
|
MtFactoryOrder mtFactoryOrder = mtFactoryOrderService.getById(orderId); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",6); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 6); |
|
|
|
|
|
|
|
|
|
if(Objects.isNull(mtFactoryOrder)){ |
|
|
|
|
logger.info("#############sendReceiveInfo: 未找到对应订单orderId={}",orderId); |
|
|
|
|
if (Objects.isNull(mtFactoryOrder)) { |
|
|
|
|
logger.info("#############sendReceiveInfo: 未找到对应订单orderId={}", orderId); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
Long mainId = mtFactoryOrder.getMainId(); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",7); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 7); |
|
|
|
|
|
|
|
|
|
MtFactoryOrderMain mtFactoryOrderMain = mtFactoryOrderMainService.getById(mainId); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",8); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 8); |
|
|
|
|
|
|
|
|
|
if(Objects.isNull(mtFactoryOrderMain)){ |
|
|
|
|
logger.info("#############sendReceiveInfo: 未找到对应订单mainId={}",mainId); |
|
|
|
|
if (Objects.isNull(mtFactoryOrderMain)) { |
|
|
|
|
logger.info("#############sendReceiveInfo: 未找到对应订单mainId={}", mainId); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -487,17 +483,17 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
mtReceiveContentDTO.setUnitNo(unitNo); |
|
|
|
|
mtReceiveContentDTO.setOperateDate(receiveBodyDTO.getOperateDate()); |
|
|
|
|
mtReceiveContentDTOList.add(mtReceiveContentDTO); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",9); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 9); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",10); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 10); |
|
|
|
|
|
|
|
|
|
//签收信息数据存入头部数据
|
|
|
|
|
mtReceiveDTO.setReceiveContentList(mtReceiveContentDTOList); |
|
|
|
|
|
|
|
|
|
//处理签收图片数据
|
|
|
|
|
List<MtReceiveImagesDTO> mtReceiveImagesDTOList = new ArrayList<>(); |
|
|
|
|
for (ReceivePhotoDTO receivePhotoDTO:receivePhotoList){ |
|
|
|
|
for (ReceivePhotoDTO receivePhotoDTO : receivePhotoList) { |
|
|
|
|
MtReceiveImagesDTO mtReceiveImagesDTO = new MtReceiveImagesDTO(); |
|
|
|
|
mtReceiveImagesDTO.setImage(receivePhotoDTO.getUrl()); |
|
|
|
|
mtReceiveImagesDTOList.add(mtReceiveImagesDTO); |
|
|
|
@ -508,11 +504,10 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
ObjectMapper objectMapper = new ObjectMapper(); |
|
|
|
|
|
|
|
|
|
String s = objectMapper.writeValueAsString(mtReceiveDTO); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}",11); |
|
|
|
|
logger.info("#############sendReceiveInfo:tag{}", 11); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return sendMtFactoryData(mtFactoryProperties.getUrl()+"/ZXCFaHuoDan/QianShouDan",s,5); |
|
|
|
|
return sendMtFactoryData(mtFactoryProperties.getUrl() + "/ZXCFaHuoDan/QianShouDan", s, 5); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -520,7 +515,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
@Override |
|
|
|
|
public R sendUnloadCarNum(String unloadCarNum, String data) throws ParseException, JsonProcessingException, NoSuchAlgorithmException { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logger.info(">>>>>>sendUnloadCarNum tag ={}", 1); |
|
|
|
|
MtUnLoadCarNumDTO unLoadCarNumDTO = new MtUnLoadCarNumDTO(); |
|
|
|
|
unLoadCarNumDTO.setInvoiceOrderCode(unloadCarNum); |
|
|
|
|
unLoadCarNumDTO.setInvoiceTime(data); |
|
|
|
@ -530,13 +525,20 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
|
|
|
|
|
//推送数据到梦天
|
|
|
|
|
//请求参数
|
|
|
|
|
return sendMtFactoryData(mtFactoryProperties.getUrl()+"/ZXCFaHuoDan/QueRenShouHuo",s,4); |
|
|
|
|
logger.info(">>>>>>sendUnloadCarNum tag ={}", 1); |
|
|
|
|
R r =sendMtFactoryData(mtFactoryProperties.getUrl() + "/ZXCFaHuoDan/QueRenShouHuo", s, 4); |
|
|
|
|
logger.info(">>>>>>sendUnloadCarNum r ={}", r); |
|
|
|
|
|
|
|
|
|
logger.info(">>>>>>sendUnloadCarNum tag ={}", 2); |
|
|
|
|
|
|
|
|
|
return r; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 封装梦天数据对接接口 |
|
|
|
|
* |
|
|
|
|
* @param url |
|
|
|
|
* @param data |
|
|
|
|
* @return |
|
|
|
@ -546,16 +548,16 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
//先获取token
|
|
|
|
|
String token = getMtToken(); |
|
|
|
|
//处理逻辑
|
|
|
|
|
String result = HttpRequest.post(url) |
|
|
|
|
.header("APPKEY",mtFactoryProperties.getAppkey()) |
|
|
|
|
.header("Authorization",token) |
|
|
|
|
.header("USERID",mtFactoryProperties.getUserid()) |
|
|
|
|
.header("USERPWD",MD5Utils.md5Hex(mtFactoryProperties.getUserpwd().getBytes(StandardCharsets.UTF_8))) |
|
|
|
|
.header("Content-Type","application/json") |
|
|
|
|
String result = HttpRequest.post(url) |
|
|
|
|
.header("APPKEY", mtFactoryProperties.getAppkey()) |
|
|
|
|
.header("Authorization", token) |
|
|
|
|
.header("USERID", mtFactoryProperties.getUserid()) |
|
|
|
|
.header("USERPWD", MD5Utils.md5Hex(mtFactoryProperties.getUserpwd().getBytes(StandardCharsets.UTF_8))) |
|
|
|
|
.header("Content-Type", "application/json") |
|
|
|
|
.body(data).timeout(5 * 1000) |
|
|
|
|
.execute().body(); |
|
|
|
|
|
|
|
|
|
logger.info("##############sendMtFactoryData: {}",result); |
|
|
|
|
logger.info("##############sendMtFactoryData: {}", result); |
|
|
|
|
// 保存数据到数据库
|
|
|
|
|
MtOrderLogEntity mtOrderLogEntity = new MtOrderLogEntity(); |
|
|
|
|
mtOrderLogEntity.setReqArgs(data); |
|
|
|
@ -566,17 +568,17 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService {
|
|
|
|
|
//把结果字符串转为json对象
|
|
|
|
|
JSONObject jsonObject = JSONObject.parseObject(result); |
|
|
|
|
|
|
|
|
|
if(!Objects.isNull(jsonObject)){ |
|
|
|
|
if (!Objects.isNull(jsonObject)) { |
|
|
|
|
Integer code = jsonObject.getInteger("Result"); |
|
|
|
|
String message = jsonObject.getString("Message"); |
|
|
|
|
if(code.equals(0)){ |
|
|
|
|
if (code.equals(0)) { |
|
|
|
|
logger.info("##########sendMtFactoryData: 物流状态传递成功"); |
|
|
|
|
return Resp.success("物流状态传递成功"); |
|
|
|
|
}else{ |
|
|
|
|
return Resp.fail(405,message); |
|
|
|
|
} else { |
|
|
|
|
return Resp.fail(405, message); |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
return Resp.fail(405,"返回格式有误:"+result); |
|
|
|
|
} else { |
|
|
|
|
return Resp.fail(405, "返回格式有误:" + result); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|