diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java index b20224ba2..f03015c6e 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/job/PushDataJob.java @@ -45,6 +45,35 @@ public class PushDataJob { return ReturnT.SUCCESS; } + /** + * 补传我乐到达节点数据 + * + * @param param + * @return + * @throws Exception + */ + @XxlJob("rePushOloNodeData") + public ReturnT rePushOloNodeData(String param) throws Exception { + deliveryNoteService.rePushOloNodeData(); + return ReturnT.SUCCESS; + } + + /** + * 补传我乐到达节点数据-指定订单 分单 回传 + * + * @param param + * @return + * @throws Exception + */ + @XxlJob("rePushOloNodeDataByCode") + public ReturnT rePushOloNodeDataByCode(String param) throws Exception { + if (StrUtil.isEmpty(param)) { + return ReturnT.SUCCESS; + } + deliveryNoteService.rePushOloNodeDataByCode(param); + return ReturnT.SUCCESS; + } + /** * 自定义回传工厂节点作业数据 * diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java index 966cc4ecd..c0fb840e9 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/DeliveryNoteMapper.java @@ -6,6 +6,8 @@ import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 发货单 mapper * @@ -18,4 +20,6 @@ public interface DeliveryNoteMapper extends BaseMapper { JSONObject customPushNodeData(); void updateSustomPushNodeDataStatus(@Param("status") String status, @Param("orderNo") String orderNo, @Param("deliveryNo") String deliveryNo); + + List rePushOloNodeData(@Param("orderCode") String orderCode, @Param("shipmentCode") String shipmentCode, @Param("shipmentSpitCode") String shipmentSpitCode); } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java index b4d260348..0f91841fe 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.java @@ -13,4 +13,6 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface FactoryNodeAllPushMapper extends BaseMapper { + FactoryNodeAllPushEntity rePushOloNodeData(); + } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml index 2380ff654..d0385901e 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeAllPushMapper.xml @@ -2,4 +2,13 @@ + diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml index ba7bc0baa..82c6a7d8d 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mapper/FactoryNodeOrderMapper.xml @@ -23,4 +23,16 @@ and orderNo = #{orderNo} and deliveryNo = #{deliveryNo} + + diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java index 2d1636412..4b9d6061f 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/mq/NodeDataPushListener.java @@ -33,7 +33,6 @@ import org.springframework.amqp.rabbit.annotation.Queue; import org.springframework.amqp.rabbit.annotation.QueueBinding; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; @@ -203,7 +202,11 @@ public class NodeDataPushListener { pushAllEntities.add(factoryNodeAllPushEntity); for (Map.Entry stringIntegerEntry : snMap.entrySet()) { JSONObject jsonObject = new JSONObject(); - jsonObject.set("sn", stringIntegerEntry.getKey()); + String key = stringIntegerEntry.getKey(); + if (StrUtil.contains(key, "补")) { + key = key.split("-")[0]; + } + jsonObject.set("sn", key); jsonObject.set("qty", stringIntegerEntry.getValue()); jsonObject.set("scanTime", entries.getStr("operatorTime")); snArray.add(jsonObject); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java index cc0382041..2c0512b5c 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/DeliveryNoteService.java @@ -26,4 +26,7 @@ public interface DeliveryNoteService extends BaseService { **/ void customPushNodeData(); + void rePushOloNodeData(); + + void rePushOloNodeDataByCode(String param); } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java index 960bba781..25507b82f 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/FactoryNodeAllPushService.java @@ -11,4 +11,6 @@ import org.springblade.core.mp.base.BaseService; **/ public interface FactoryNodeAllPushService extends BaseService { + FactoryNodeAllPushEntity rePushOloNodeData(); + } diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java index 20b671209..612c08631 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/DeliveryNoteServiceImpl.java @@ -1,9 +1,11 @@ package com.logpm.factorydata.olo.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; @@ -16,10 +18,12 @@ import com.logpm.factorydata.enums.BrandEnums; import com.logpm.factorydata.enums.SaxStatusEnums; import com.logpm.factorydata.feign.IFactoryDataClient; import com.logpm.factorydata.olo.entity.DeliveryNoteEntity; +import com.logpm.factorydata.olo.entity.FactoryNodeAllPushEntity; import com.logpm.factorydata.olo.entity.FactoryOrderLogEntity; import com.logpm.factorydata.olo.mapper.DeliveryNoteMapper; import com.logpm.factorydata.olo.pros.OldProperties; import com.logpm.factorydata.olo.service.DeliveryNoteService; +import com.logpm.factorydata.olo.service.FactoryNodeAllPushService; import com.logpm.factorydata.olo.service.FactoryOrderLogService; import com.logpm.factorydata.olo.vo.DeliveryNoteVO; import com.logpm.factorydata.vo.SendMsg; @@ -54,8 +58,11 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; /** * 发货单 业务实现类 @@ -74,6 +81,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl vo) { @@ -213,7 +221,7 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl 1) { + if (StrUtil.equals(orderPackageDTO.getType(), "标准台面") || anInt > 1) { advanceDetailEntity.setOrderPackageCode("OLO" + orderPackageDTO.getSn() + "-" + DateUtil.format(new Date(), "yyyyMMddHHmmss") + "-" + num + "-" + StrUtil.padPre(String.valueOf(i + 1), 3, "0")); } else { advanceDetailEntity.setOrderPackageCode(orderPackageDTO.getSn()); @@ -292,6 +300,148 @@ public class DeliveryNoteServiceImpl extends BaseServiceImpl packageCodeSet = new HashSet<>(); + for (String s : split) { + if (StrUtil.contains(s, "补")) { + continue; + } + packageCodeSet.add(s); + } + String orderCode = entity.getOrderCode(); + String shipmentCode = entity.getShipmentCode(); + String shipmentSpitCode = entity.getShipmentSpitCode(); + List list = this.baseMapper.rePushOloNodeData(orderCode, shipmentCode, shipmentSpitCode); + if (CollUtil.isNotEmpty(list)) { + List sns = list.stream().filter(s -> !packageCodeSet.contains(s.getSn())).map(deliveryNoteEntity -> { + String sn = deliveryNoteEntity.getSn(); + if (StrUtil.contains(sn, "补")) { + sn = sn.split("-")[0]; + } + deliveryNoteEntity.setSn(sn); + return deliveryNoteEntity; + }).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(sns)) { + JSONArray snArray = new JSONArray(); + for (DeliveryNoteEntity sn : sns) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("sn", sn.getSn()); + jsonObject.set("qty", sn.getQty()); + jsonObject.set("scanTime", DateUtil.formatDateTime(createTime)); + snArray.add(jsonObject); + } + entries.set("snList", snArray); + String post = HttpUtil.post(entity.getSendUrl(), JSONUtil.toJsonStr(entries)); + FactoryNodeAllPushEntity pushAllEntity = new FactoryNodeAllPushEntity(); + BeanUtil.copyProperties(entity, pushAllEntity); + pushAllEntity.setId(null); + try { + JSONObject entries1 = JSONUtil.parseObj(post); + Integer code = entries1.getInt("code"); + String data = entries1.getStr("data"); + // 成功 + Integer successCode = code; + String message = data; + if (NumberUtil.equals(code, 200)) { + if (StrUtil.isNotEmpty(data)) { + JSONObject jsonObject = JSONUtil.parseObj(data); + Integer code1 = jsonObject.getInt("code"); + successCode = code1; + } + } + pushAllEntity.setPackageCode(sns.stream().map(DeliveryNoteEntity::getSn).collect(Collectors.joining(","))); + pushAllEntity.setSendStatus(successCode + ""); + pushAllEntity.setContent(JSONUtil.toJsonStr(entries)); + pushAllEntity.setResultContent(message); + pushAllEntity.setReserve1(Convert.toStr(sns.size())); + pushAllEntity.setReserve2(Convert.toStr(sns.size())); + factoryNodeAllPushService.save(pushAllEntity); + } catch (Exception e) { + log.error("解析返回值失败"); + } + } + } + entity.setReserve1(entity.getReserve2()); + factoryNodeAllPushService.updateById(entity); + } + + } + + @Override + public void rePushOloNodeDataByCode(String param) { + JSONObject entries = JSONUtil.parseObj(param); + String orderCode = entries.getStr("orderCode"); + String shipmentCode = entries.getStr("shipmentCode"); + String shipmentSpitCode = entries.getStr("shipmentSpitCode"); + List list = this.baseMapper.rePushOloNodeData(orderCode, shipmentCode, shipmentSpitCode); + if (CollUtil.isNotEmpty(list)) { + List sns = list.stream().map(deliveryNoteEntity -> { + String sn = deliveryNoteEntity.getSn(); + if (StrUtil.contains(sn, "补")) { + sn = sn.split("-")[0]; + } + deliveryNoteEntity.setSn(sn); + return deliveryNoteEntity; + }).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(sns)) { + JSONArray snArray = new JSONArray(); + for (DeliveryNoteEntity sn : sns) { + JSONObject jsonObject = new JSONObject(); + jsonObject.set("sn", sn.getSn()); + jsonObject.set("qty", sn.getQty()); + jsonObject.set("scanTime", DateUtil.formatDateTime(new Date())); + snArray.add(jsonObject); + } + entries.set("snList", snArray); + String post = HttpUtil.post(oldProperties.getPushNodeUrl(), JSONUtil.toJsonStr(entries)); + FactoryNodeAllPushEntity pushAllEntity = new FactoryNodeAllPushEntity(); + pushAllEntity.setWarehouse(entries.getStr("nodeName")); + pushAllEntity.setWorkBatch(orderCode); + pushAllEntity.setSendUrl(oldProperties.getPushNodeUrl()); + pushAllEntity.setOrderCode(orderCode); + pushAllEntity.setShipmentCode(shipmentCode); + pushAllEntity.setShipmentSpitCode(shipmentSpitCode); + pushAllEntity.setType(entries.getStr("content")); + pushAllEntity.setWaybillCode(entries.getStr("deliveryNo")); + pushAllEntity.setTypeCode(entries.getInt("siteLevel")); + try { + JSONObject entries1 = JSONUtil.parseObj(post); + Integer code = entries1.getInt("code"); + String data = entries1.getStr("data"); + // 成功 + Integer successCode = code; + String message = data; + if (NumberUtil.equals(code, 200)) { + if (StrUtil.isNotEmpty(data)) { + JSONObject jsonObject = JSONUtil.parseObj(data); + Integer code1 = jsonObject.getInt("code"); + successCode = code1; + } + } + pushAllEntity.setPackageCode(sns.stream().map(DeliveryNoteEntity::getSn).collect(Collectors.joining(","))); + pushAllEntity.setSendStatus(successCode + ""); + pushAllEntity.setContent(JSONUtil.toJsonStr(entries)); + pushAllEntity.setResultContent(message); + pushAllEntity.setReserve1(Convert.toStr(sns.size())); + pushAllEntity.setReserve2(Convert.toStr(sns.size())); + factoryNodeAllPushService.save(pushAllEntity); + } catch (Exception e) { + log.error("解析返回值失败"); + } + } + } + } + private String uploadFile(String body) { // 文本内容和保存为本地文件 并上传 String logPath = FileLogsUtil.saveFileLogs(body); diff --git a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java index d6f91f383..d05c664c0 100644 --- a/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java +++ b/blade-service/logpm-factory-data/logpm-factory-data-olo/src/main/java/com/logpm/factorydata/olo/service/impl/FactoryNodeAllPushServiceImpl.java @@ -19,4 +19,8 @@ import org.springframework.stereotype.Service; @AllArgsConstructor public class FactoryNodeAllPushServiceImpl extends BaseServiceImpl implements FactoryNodeAllPushService { + @Override + public FactoryNodeAllPushEntity rePushOloNodeData() { + return this.baseMapper.rePushOloNodeData(); + } }