diff --git a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java index 6741ff5f7..bbc73d67c 100644 --- a/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java +++ b/blade-biz-common/src/main/java/org/springblade/common/constant/ModuleNameConstant.java @@ -8,7 +8,7 @@ public interface ModuleNameConstant { /** * 如果不需要 "" */ - public static final String DEVAUTH ="-tjj"; + public static final String DEVAUTH =""; /** diff --git a/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtFactoryOrderMain.java b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtFactoryOrderMain.java index 30794eb89..7d4d89487 100644 --- a/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtFactoryOrderMain.java +++ b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/entity/MtFactoryOrderMain.java @@ -8,6 +8,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; +import java.util.Date; + @Data @TableName("mt_factory_order_main") @ApiModel(value = "MtFactoryOrderMain对象", description = "梦天工厂订单主对象") @@ -58,4 +60,11 @@ public class MtFactoryOrderMain extends BaseEntity { @ApiModelProperty(value = "备注") private String remark; + @JsonProperty("反馈梦天状态") + @ApiModelProperty(value = "反馈梦天状态") + private Integer pushStatus; + + @JsonProperty("推送时间") + @ApiModelProperty(value = "推送时间") + private Date pushTime; } diff --git a/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/feign/IMtOrderMainClinet.java b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/feign/IMtOrderMainClinet.java new file mode 100644 index 000000000..7773a34ec --- /dev/null +++ b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/feign/IMtOrderMainClinet.java @@ -0,0 +1,30 @@ +package com.logpm.factory.snm.feign; + +import com.logpm.factory.snm.entity.StationlinenumEntity; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; +import org.springblade.common.constant.ModuleNameConstant; +import org.springblade.core.tool.api.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; + +@FeignClient( + value = ModuleNameConstant.APPLICATION_FACTORY_NAME +) +public interface IMtOrderMainClinet { + + + String API_PREFIX = "/mtclient"; + String TOP = API_PREFIX + "/top"; + + + /** + * 获取梦天工厂订单 包间 主订单 的关系 + * + * @return + */ + @GetMapping(TOP) + R> mtOrderPackageRelation(); + +} diff --git a/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/vo/MTOrderPackageRelationVO.java b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/vo/MTOrderPackageRelationVO.java new file mode 100644 index 000000000..fcb223229 --- /dev/null +++ b/blade-service-api/logpm-factory-api/src/main/java/com/logpm/factory/snm/vo/MTOrderPackageRelationVO.java @@ -0,0 +1,31 @@ +package com.logpm.factory.snm.vo; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 梦天 订单 主订单 包间 关系 用于判断车次中的订单是否包含 + */ +@Data +public class MTOrderPackageRelationVO implements Serializable { + + + /** + * 包件码 + */ + private String packageCode; + /** + * 订单号 + */ + private String orderCode; + + /** + * 主订单号 + */ + private String invoiceOrderCode; + + + +} 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 337f7cc91..639f43261 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 @@ -85,6 +85,6 @@ public interface IAdvanceDetailClient { * @param unloadCarNum * @return */ - @GetMapping(API_PREFIX + "/getOneByUnitNo") + @GetMapping(API_PREFIX + "/getByCarNum") List getByCarNum(@RequestParam String unloadCarNum); } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java index 517a4468c..eb062356e 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/controller/FactoryCommonController.java @@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.logpm.factory.comfac.dto.OrderInfoDTO; import com.logpm.factory.comfac.dto.OrderStatusDTO; import com.logpm.factory.comfac.dto.ReceiveInfoDTO; +import com.logpm.factory.comfac.dto.UnloadCarDTO; import com.logpm.factory.comfac.service.IFactoryCommonService; import com.logpm.factory.comfac.service.IOrderStatusLogService; import com.logpm.factory.snm.entity.OrderStatusLog; @@ -146,4 +147,45 @@ public class FactoryCommonController { } + // 卸车完成推送 + @ResponseBody + @PostMapping("/sendUnloadCarComInfo") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "卸车完成推送", notes = "传入receiveInfoDTO") + public R sendUnloadCarComInfo(@RequestBody UnloadCarDTO receiveInfoDTO) { + log.info("############sendUnloadCarComInfo: 请求参数{}", receiveInfoDTO); + //处理数据 +// R r = factoryCommonService.sendReceiveInfo(receiveInfoDTO); + try{ + + //先保存原始请求数据 + OrderStatusLog orderStatusLog = new OrderStatusLog(); + orderStatusLog.setArgs(JSONObject.toJSONString(receiveInfoDTO)); + orderStatusLog.setStatus(1); + orderStatusLog.setType(5); + orderStatusLogService.save(orderStatusLog); + + Map map=new HashMap<>(); + map.put("messageId", CommonUtil.getUUID()); + map.put("logId", orderStatusLog.getId()); + map.put("messageData",receiveInfoDTO); + map.put("createTime",new Date().getTime()); + //将消息携带绑定键值 +// rabbitTemplate.convertAndSend(RabbitConstant.UNLOAD_CAR_COM_INFO_EXCHANGE, RabbitConstant.UNLOAD_CAR_COM_INFO_ROUTING, map); + + return R.success("调用成功"); + }catch (CustomerException e){ + log.error(e.message,e); + return R.fail(e.code,e.message); + }catch (Exception e){ + log.error("############sendReceiveInfo: 系统异常",e); + return R.fail(500,"############sendReceiveInfo: 系统异常"); + } + } + + + + + + } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/UnloadCarDTO.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/UnloadCarDTO.java new file mode 100644 index 000000000..d8cab0b63 --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/comfac/dto/UnloadCarDTO.java @@ -0,0 +1,20 @@ +package com.logpm.factory.comfac.dto; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import java.io.Serializable; + +/** + * 卸车完成推送 + */ +@Data +public class UnloadCarDTO implements Serializable { + + @NotEmpty(message = "卸车车次号不能为空") + private String unloadCarNum; + + private String completeDate; + + +} diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java index c07c9f387..598ea2a3a 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/config/RabbitMqConfiguration.java @@ -175,5 +175,27 @@ public class RabbitMqConfiguration { } + /***/ + + @Bean + public Queue unloadCarNumQueue() { + return new Queue(RabbitConstant.UNLOAD_CAR_COM_INFO_QUEUE, true); + } + + @Bean + public CustomExchange unloadCarNumExchange() { + Map args = Maps.newHashMap(); + args.put("x-delayed-type", "direct"); + return new CustomExchange(RabbitConstant.UNLOAD_CAR_COM_INFO_EXCHANGE, "x-delayed-message", true, false, args); + } + + @Bean + public Binding unloadCarNumBinding(Queue receiveInfoQueue, CustomExchange receiveInfoExchange) { + return BindingBuilder.bind(receiveInfoQueue).to(receiveInfoExchange).with(RabbitConstant.UNLOAD_CAR_COM_INFO_ROUTING).noargs(); + } + + + + } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/dto/MtUnLoadCarNumDTO.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/dto/MtUnLoadCarNumDTO.java new file mode 100644 index 000000000..cba11e26b --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/dto/MtUnLoadCarNumDTO.java @@ -0,0 +1,20 @@ +package com.logpm.factory.mt.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class MtUnLoadCarNumDTO implements Serializable { + + + @JsonProperty("发货单编号") + private String invoiceOrderCode; + + + @JsonProperty("确认收货时间") + private Date invoiceTime; + +} diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/feign/MtOrderMainClinet.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/feign/MtOrderMainClinet.java new file mode 100644 index 000000000..0593e28cc --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/feign/MtOrderMainClinet.java @@ -0,0 +1,27 @@ +package com.logpm.factory.mt.feign; + +import com.logpm.factory.mt.service.IMtFactoryOrderMainService; +import com.logpm.factory.snm.feign.IMtOrderMainClinet; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; +import lombok.AllArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.List; + +@NonDS +@ApiIgnore +@RestController +@AllArgsConstructor +public class MtOrderMainClinet implements IMtOrderMainClinet { + + private final IMtFactoryOrderMainService mtFactoryOrderMainService; + + @Override + public R> mtOrderPackageRelation() { + List data =mtFactoryOrderMainService.mtOrderPackageRelation(); + return R.data(data); + } +} diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.java index 6788a3f90..a173a919f 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.java @@ -2,6 +2,11 @@ package com.logpm.factory.mt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.logpm.factory.snm.entity.MtFactoryOrderMain; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; + +import java.util.List; public interface MtFactoryOrderMainMapper extends BaseMapper { + + List mtOrderPackageRelation(); } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.xml b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.xml index 9cbe524ab..74e3a249a 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.xml +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/mapper/MtFactoryOrderMainMapper.xml @@ -17,4 +17,18 @@ + + + diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryDataService.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryDataService.java index 3012e6a76..e464e8281 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryDataService.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryDataService.java @@ -8,6 +8,8 @@ import com.logpm.factory.mt.dto.MtFactoryDataDTO; import org.springblade.core.tool.api.R; import java.security.NoSuchAlgorithmException; +import java.text.ParseException; +import java.util.Date; /** * 工厂推送数据接口 @@ -21,4 +23,12 @@ public interface IMtFactoryDataService { R handleStatusData(OrderStatusDTO orderStatusDTO) throws JsonProcessingException, NoSuchAlgorithmException; R sendReceiveInfo(ReceiveInfoDTO receiveInfoDTO) throws JsonProcessingException, NoSuchAlgorithmException; + + /** + * + * @param unloadCarNum 发货单编号 + * @param data 确认收货时间 + * @return + */ + R sendUnloadCarNum(String unloadCarNum, Date data) throws ParseException, JsonProcessingException, NoSuchAlgorithmException; } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryOrderMainService.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryOrderMainService.java index ed5af06df..ce9cade7e 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryOrderMainService.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/IMtFactoryOrderMainService.java @@ -1,8 +1,17 @@ package com.logpm.factory.mt.service; import com.logpm.factory.snm.entity.MtFactoryOrderMain; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; + +import java.util.List; public interface IMtFactoryOrderMainService extends BaseService { + List mtOrderPackageRelation(); + + + + } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java index 79cd84be0..b13922124 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryDataServiceImpl.java @@ -38,6 +38,8 @@ import org.springframework.transaction.annotation.Transactional; import java.nio.charset.StandardCharsets; import java.security.NoSuchAlgorithmException; +import java.text.DateFormat; +import java.text.ParseException; import java.util.*; @Slf4j @@ -231,7 +233,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService { * 获取梦天的工厂的数据token * @return */ - public String getMtToken() throws NoSuchAlgorithmException { + private String getMtToken() throws NoSuchAlgorithmException { String mtToken =bladeRedis.get("mt_token"); if(StringUtil.isBlank(mtToken)){ // 重新获取 @@ -348,7 +350,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService { logger.info("##############handleStatusData: 推送包件状态请求参数 {}",s); //处理逻辑 - String result = HttpRequest.post(mtFactoryProperties.getUrl()+"/Auth/text") + String result = HttpRequest.post(mtFactoryProperties.getUrl()+"/ZXCFaHuoDan/ShouHuoRuKu") .header("APPKEY",mtFactoryProperties.getAppkey()) .header("Authorization",token) .header("USERID",mtFactoryProperties.getUserid()) @@ -455,7 +457,7 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService { logger.info("##############sendReceiveInfo: 推送包件状态请求参数 {}",s); //处理逻辑 - String result = HttpRequest.post(mtFactoryProperties.getUrl()+"/Auth/text2") + String result = HttpRequest.post(mtFactoryProperties.getUrl()+"/ZXCFaHuoDan/QianShouDan") .header("APPKEY",mtFactoryProperties.getAppkey()) .header("Authorization",token) .header("USERID",mtFactoryProperties.getUserid()) @@ -482,4 +484,55 @@ public class MtFactoryDataServiceImpl implements IMtFactoryDataService { return R.success("处理签收数据完成"); } + + @Override + public R sendUnloadCarNum(String unloadCarNum, Date data) throws ParseException, JsonProcessingException, NoSuchAlgorithmException { + + + MtUnLoadCarNumDTO unLoadCarNumDTO = new MtUnLoadCarNumDTO(); + unLoadCarNumDTO.setInvoiceOrderCode(unloadCarNum); + unLoadCarNumDTO.setInvoiceTime(data); + + ObjectMapper objectMapper = new ObjectMapper(); + String s = objectMapper.writeValueAsString(unLoadCarNumDTO); + + //推送数据到梦天 + //先获取token + String token = getMtToken(); + + //请求参数 + logger.info("##############sendReceiveInfo: 推送包件状态请求参数 {}",s); + + //处理逻辑 + String result = HttpRequest.post(mtFactoryProperties.getUrl()+"/ZXCFaHuoDan/QueRenShouHuo") + .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(s).timeout(5 * 1000) + .execute().body(); + + logger.info("##############sendReceiveInfo: 车次作业确认完成 {}",result); + + //把结果字符串转为json对象 + JSONObject jsonObject = JSONObject.parseObject(result); + if(!Objects.isNull(jsonObject)){ + Integer code = jsonObject.getInteger("Result"); + String message = jsonObject.getString("Message"); + if(code.equals(0)){ + logger.info("##########sendReceiveInfo: 物流状态传递成功"); + }else{ + return Resp.fail(405,message); + } + }else{ + return Resp.fail(405,"返回格式有误:"+result); + } + + + + + return R.success("处理签收数据完成"); + + } } diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryOrderMainServiceImpl.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryOrderMainServiceImpl.java index 81fc033fc..b54135e21 100644 --- a/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryOrderMainServiceImpl.java +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/mt/service/impl/MtFactoryOrderMainServiceImpl.java @@ -3,13 +3,25 @@ package com.logpm.factory.mt.service.impl; import com.logpm.factory.snm.entity.MtFactoryOrderMain; import com.logpm.factory.mt.mapper.MtFactoryOrderMainMapper; import com.logpm.factory.mt.service.IMtFactoryOrderMainService; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.api.R; import org.springframework.stereotype.Service; +import java.util.List; + @AllArgsConstructor @Service public class MtFactoryOrderMainServiceImpl extends BaseServiceImpl implements IMtFactoryOrderMainService { + private final MtFactoryOrderMainMapper mtFactoryOrderMainMapper; + + @Override + public List mtOrderPackageRelation() { + return mtFactoryOrderMainMapper.mtOrderPackageRelation(); + } + + } 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 0bab43b4d..8b0f30e3b 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 @@ -421,7 +421,6 @@ public class PanFactoryDataServiceImpl implements IPanFactoryDataService { // 增加订单 经销商信息 和门店信息 buildDealerAndStore(distributionStockArticleEntity, advanceEntity); - distributionStockArticleEntity.setCreateUser(1123598821738675201L); id = distributionStockArticleClient.addData(distributionStockArticleEntity); diff --git a/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/UnloadCarComHandler.java b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/UnloadCarComHandler.java new file mode 100644 index 000000000..ef1ac2d32 --- /dev/null +++ b/blade-service/logpm-factory/src/main/java/com/logpm/factory/receiver/UnloadCarComHandler.java @@ -0,0 +1,139 @@ +package com.logpm.factory.receiver; + +import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.logpm.factory.comfac.dto.OrderInfoDTO; +import com.logpm.factory.comfac.dto.UnloadCarDTO; +import com.logpm.factory.mt.service.IMtFactoryDataService; +import com.logpm.factory.mt.service.IMtFactoryOrderMainService; +import com.logpm.factory.snm.entity.MtFactoryOrderMain; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; +import com.logpm.oldproject.entity.AdvanceDetailEntity; +import com.logpm.oldproject.feign.IAdvanceClient; +import com.logpm.oldproject.feign.IAdvanceDetailClient; +import com.rabbitmq.client.Channel; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.RabbitConstant; +import org.springblade.core.tool.api.R; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitHandler; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.security.NoSuchAlgorithmException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 卸车完成处理队列 + */ +@Slf4j +@RabbitListener(queues = RabbitConstant.UNLOAD_CAR_COM_INFO_QUEUE) +@Component +public class UnloadCarComHandler { + + @Autowired + private IAdvanceDetailClient advanceDetailClient; + + + @Autowired + private IMtFactoryOrderMainService mtFactoryOrderMainService; + + @Autowired + private IMtFactoryDataService mtFactoryDataService; + + + @RabbitHandler + public void unloadCarComDataHandler(Map map, Message message, Channel channel) { + + /* + 1.得到传递的车次 + 2. 需要判断这个车次是否市梦天的 + 3. 查询这个车次上的运单是否市梦天的 + + 4.查询包间对应的梦天发给我们的批次号 + */ + UnloadCarDTO unloadCarDTO = (UnloadCarDTO) map.get("messageData"); + /* + 2.通过车次查询来系统中车次绑定的运单 + 3.通过运单查询货物上的包件 + 4.需要过滤出来 只要梦天的 + */ + List carNumList = advanceDetailClient.getByCarNum(unloadCarDTO.getUnloadCarNum()); + + /** + * 安装品类进行分组 + */ + Map> carNumMapList = carNumList.stream().collect(Collectors.groupingBy(AdvanceDetailEntity::getType)); + + List mtListdata = carNumMapList.get("梦天"); + + if (mtListdata == null || mtListdata.size() == 0) { + log.info("##################{} 车次 不存在梦天的数据 无需返回", unloadCarDTO.getUnloadCarNum()); + return; + } + + // 得到车次下面梦天的包条码集合 + List mtStrs = mtListdata.stream().map(AdvanceDetailEntity::getUnitNo).collect(Collectors.toList()); + if (mtStrs == null || mtStrs.size() == 0) { + log.error("##################{} 车次 梦天的包条数据存在异常! 请联系管理员", unloadCarDTO.getUnloadCarNum()); + return; + } + + List allMtData = mtFactoryOrderMainService.mtOrderPackageRelation(); + // 对这个集合内进行分组 + Map> stringListMap = allMtData.stream().collect(Collectors.groupingBy(MTOrderPackageRelationVO::getInvoiceOrderCode)); + Set set = stringListMap.keySet(); + boolean isPush = false; + for (String s : set) { + // 得到某个工厂运输批次的集合 + List t = stringListMap.get(s); + //得到这个批次下面所有的包间 + List strs = t.stream().map(MTOrderPackageRelationVO::getPackageCode).collect(Collectors.toList()); + // 当前批次的包间 在 这个配载计划中存在一个 则进行通知 + for (String mtStr : mtStrs) { + if (strs.contains(mtStr)) { + isPush = true; + break; + } + } + if (isPush) { + break; + } + } + if (isPush) { + try { + Date data = new SimpleDateFormat().parse(unloadCarDTO.getCompleteDate()); + R r = mtFactoryDataService.sendUnloadCarNum(unloadCarDTO.getUnloadCarNum(), data); + if(r.isSuccess()){ + // 更新订单状态 + UpdateChainWrapper updateChainWrapper =new UpdateChainWrapper(MtFactoryOrderMain.class); + updateChainWrapper.set("push_status","1"); + updateChainWrapper.set("push_time",data); + updateChainWrapper.eq("invoice_order_code",unloadCarDTO.getUnloadCarNum()); + mtFactoryOrderMainService.update(updateChainWrapper); + } + + + } catch (ParseException e) { + e.printStackTrace(); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + } + + + } + + +} 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 9add403f6..a00e208aa 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,17 +1,133 @@ package com.logpm.factory; -//@ExtendWith(BladeSpringExtension.class) -//@BladeBootTest(appName = "logpm-factory", enableLoader = true) +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.mt.service.IMtFactoryDataService; +import com.logpm.factory.mt.service.IMtFactoryOrderMainService; +import com.logpm.factory.mt.service.impl.MtFactoryDataServiceImpl; +import com.logpm.factory.snm.entity.MtFactoryOrderMain; +import com.logpm.factory.snm.vo.MTOrderPackageRelationVO; +import com.logpm.oldproject.entity.AdvanceDetailEntity; +import com.logpm.oldproject.feign.IAdvanceDetailClient; +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.springframework.beans.factory.annotation.Autowired; + +import java.security.NoSuchAlgorithmException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +@ExtendWith(BladeSpringExtension.class) +@BladeBootTest(appName = "logpm-factory-zhy", enableLoader = true) public class TestService { -// @Autowired -// private MtFactoryDataServiceImpl mtFactoryDataService; -// @Test -// public void contextLoads() { -// -// String tolk =mtFactoryDataService.getMtToken(); -// System.out.println(tolk); -// -// } + + + + + @Autowired + private IAdvanceDetailClient advanceDetailClient; + + + @Autowired + private IMtFactoryOrderMainService mtFactoryOrderMainService; + + @Autowired + private IMtFactoryDataService mtFactoryDataService; + @Test + public void contextLoads() { + +/* + 1.得到传递的车次 + 2. 需要判断这个车次是否市梦天的 + 3. 查询这个车次上的运单是否市梦天的 + + 4.查询包间对应的梦天发给我们的批次号 + */ + UnloadCarDTO unloadCarDTO = new UnloadCarDTO(); + unloadCarDTO.setUnloadCarNum("LQGX230719001"); + unloadCarDTO.setCompleteDate("2023-07-19 16:48:45"); + + /* + 2.通过车次查询来系统中车次绑定的运单 + 3.通过运单查询货物上的包件 + 4.需要过滤出来 只要梦天的 + */ + List carNumList = advanceDetailClient.getByCarNum(unloadCarDTO.getUnloadCarNum()); + + + /** + * 安装品类进行分组 + */ + Map> carNumMapList = carNumList.stream().collect(Collectors.groupingBy(AdvanceDetailEntity::getType)); + + List mtListdata = carNumMapList.get("梦天"); + + if (mtListdata == null || mtListdata.size() == 0) { + return; + } + + // 得到车次下面梦天的包条码集合 + List mtStrs = mtListdata.stream().map(AdvanceDetailEntity::getUnitNo).collect(Collectors.toList()); + if (mtStrs == null || mtStrs.size() == 0) { + return; + } + + List allMtData = mtFactoryOrderMainService.mtOrderPackageRelation(); + // 对这个集合内进行分组 + Map> stringListMap = allMtData.stream().collect(Collectors.groupingBy(MTOrderPackageRelationVO::getInvoiceOrderCode)); + Set set = stringListMap.keySet(); + boolean isPush = false; + for (String s : set) { + // 得到某个工厂运输批次的集合 + List t = stringListMap.get(s); + //得到这个批次下面所有的包间 + List strs = t.stream().map(MTOrderPackageRelationVO::getPackageCode).collect(Collectors.toList()); + // 当前批次的包间 在 这个配载计划中存在一个 则进行通知 + for (String mtStr : mtStrs) { + if (strs.contains(mtStr)) { + isPush = true; + break; + } + } + if (isPush) { + break; + } + } + if (isPush) { + try { + + Date data = new SimpleDateFormat().parse(unloadCarDTO.getCompleteDate()); + R r = mtFactoryDataService.sendUnloadCarNum(unloadCarDTO.getUnloadCarNum(), data); + // 更新订单状态 + UpdateChainWrapper updateChainWrapper =new UpdateChainWrapper(MtFactoryOrderMain.class); + updateChainWrapper.set("push_status","1"); + updateChainWrapper.set("push_time",data); + updateChainWrapper.eq("invoice_order_code",unloadCarDTO.getUnloadCarNum()); + mtFactoryOrderMainService.update(updateChainWrapper); + + } catch (ParseException e) { + e.printStackTrace(); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } + + + } + + + } } 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 0f8f55138..2a83de195 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 @@ -164,7 +164,7 @@ FROM ht_advance_detail WHERE - id IN ( + advance_id IN ( SELECT advance_id FROM