package com.zy.asrs.wms.task.handler; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.common.openapi.service.ApiLogService; import com.zy.asrs.common.wms.entity.*; import com.zy.asrs.common.wms.service.DocTypeService; import com.zy.asrs.common.wms.service.OrderDetlService; import com.zy.asrs.common.wms.service.OrderService; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.wms.task.AbstractHandler; import com.zy.asrs.wms.task.core.ReturnT; import com.zy.asrs.wms.utils.PostMesDataUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; /** * Created by vincent on 2020/7/7 */ @Slf4j @Service public class OrderSyncHandler extends AbstractHandler { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private OrderService orderService; @Autowired private OrderDetlService orderDetlService; @Autowired private ApiLogService apiLogService; @Autowired private DocTypeService docTypeService; @Value("${erp.url}") private String ERP_URL; @Value("${erp.report}") private String ERP_REPORT; @Value("${erp.login}") private String ERP_LOGIN; @Transactional public ReturnT start(Order order) { DocType docType = docTypeService.getById(order.getDocType()); if (null == docType) { return new ReturnT().setCode(500); } List orderDetls = orderDetlService.list(new LambdaQueryWrapper().eq(OrderDetl::getOrderId,order.getId())); //上报念初ERP 【 上报三方平台 】 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); String nowFormat = dateFormat.format(new Date()); ArrayList> mats = new ArrayList<>(); String orderNo = order.getOrderNo(); for (OrderDetl orderDetl:orderDetls){ LinkedHashMap mat = new LinkedHashMap<>(); mat.put("GoodsCode", orderDetl.getMatnr()); mat.put("Num", orderDetl.getAnfme()); if (!Cools.isEmpty(orderDetl.getBatch())) { mat.put("BatchNo", orderDetl.getBatch()); } if (!Cools.isEmpty(orderDetl.getThreeCode())) { mat.put("DepotName", orderDetl.getThreeCode()); } if (!Cools.isEmpty(orderDetl.getSupp())) { mat.put("FromDanCode", orderDetl.getSupp()); } if (!Cools.isEmpty(orderDetl.getSuppCode())) { mat.put("FromNo", orderDetl.getSuppCode()); } mats.add(mat); } LinkedHashMap param = new LinkedHashMap<>(); param.put("Login", ERP_LOGIN); param.put("DanType", order.getDocType$()+"SH"); param.put("Date", nowFormat); param.put("DanCode", orderNo); param.put("Data", mats); ReturnT mesReturn = new PostMesDataUtils().getMesData("上报MES", ERP_URL, ERP_REPORT, param); if (mesReturn.getCode()!=200){ order.setSettle(7L); order.setCreateTime(new Date()); orderService.updateById(order); } else { order.setSettle(6L); order.setCreateTime(new Date()); orderService.updateById(order); } return mesReturn; } }