package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.core.common.Cools; import com.core.exception.CoolException; import com.zy.asrs.entity.DocType; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.OrderService; import com.zy.asrs.service.ReportToThirdService; import com.zy.nc.SendUtil; import com.zy.nc.util.NcResultMessage; import com.zy.nc.vo.SaleOutBodyVO; import com.zy.nc.vo.SaleOutHeadVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Slf4j public class ReportToThirdServiceImpl implements ReportToThirdService { @Autowired private ApiLogService apiLogService; @Autowired private OrderService orderService; @Value("${NYNC.ip}") private String nyncIp; @Value("${NYNC.port}") private String port; @Value("${NYNC.saveRefDelivery}") private String saveRefDelivery; @Override public void report(Order order, List orderDetls, DocType docType) { Boolean http = false; NcResultMessage response = null; try { switch (order.getDocType().toString()) { case "销售发货": //组装对象数据 Map data = new HashMap(); SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO(); saleOutHeadVO.setPk_org("FYT"); saleOutHeadVO.setCwarehouseid("6101"); SaleOutBodyVO saleOutBodyVO = null; for (OrderDetl orderDetl : orderDetls) { saleOutBodyVO = new SaleOutBodyVO(); saleOutBodyVO.setCsourcebillhid("1001A1100000027XNSH2"); saleOutBodyVO.setCsourcebillbid("1001A1100000027YFC8U"); saleOutBodyVO.setCsourcetype("4331-01"); } data.put("saleOutHeadVO", saleOutHeadVO); data.put("saleOutBodyVO", saleOutBodyVO); //发送请求 response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + port, saveRefDelivery, JSONObject.toJSONString(data)); if (!Cools.isEmpty(response) && response.isSuccess()) { log.info("response:{}", response); http = true; } break; case "产成品入库": break; case "辅料采购入库": break; case "辅料及成品转库": break; case "自动包装入库": break; case "内部调拨": break; default: break; } if (http) { // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } catch (Exception e) { throw new CoolException("调用接口报错,请联系管理员"); } finally { reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery); } } private Boolean reportApiLog(Object data, String docType, String url, String path) { String response = ""; boolean success = false; apiLogService.save( docType, url + path, null, "127.0.0.1", JSON.toJSONString(data), response, success ); return false; } }