Commit ffea11d2 zshaohui

立臻接口提交

1 个父辈 e949681c
package com.neotel.smfcore.custom.lizhen;
import com.neotel.smfcore.common.exception.ApiException;
import com.neotel.smfcore.common.utils.HttpHelper;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.core.api.listener.BaseSmfApiListener;
import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.system.service.po.DataLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.SimpleDateFormat;
import java.util.*;
@Slf4j
public class LizhenApi extends BaseSmfApiListener {
@Autowired
private LiteOrderCache liteOrderCache;
//7.获取MES物料数量
public void getReelNum(String reelNumUrl,String reelId){
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("reelId",reelId);
String param = JsonUtil.toJsonStr(paramMap);
log.info("获取MES物料数量入参为:" + param);
try {
String result = HttpHelper.postJson(reelNumUrl, paramMap);
log.info("获取MES物料数量出参为:" + result);
} catch (ApiException e) {
e.printStackTrace();
}
}
//3.IMES提供接收发料明细接口
public void saveReelInfo(String outNotifyUrl, DataLog task){
Map<String,Object> paramMap = new HashMap<>();
Map<String,Object> dataMap = new HashMap<>();
String sourceId = task.getSourceId();
LiteOrder liteOrder = liteOrderCache.getOrderSortItems(sourceId);
if (liteOrder != null){
dataMap.put("pickingid",liteOrder.getOrderNo());
}
dataMap.put("wo","");
dataMap.put("reelno",task.getBarcode());
dataMap.put("ipn",task.getPartNumber());
dataMap.put("qty",task.getNum());
dataMap.put("datecode",new SimpleDateFormat("yyyyMMdd").format(new Date()));
dataMap.put("lot",task.getPosName());
dataMap.put("vendor",task.getPosName());
dataMap.put("batch",task.getBatchId());
paramMap.put("data", Arrays.asList(dataMap));
String param = JsonUtil.toJsonStr(paramMap);
log.info("IMES提供接收发料明细接口入参为:" + param);
try {
String result = HttpHelper.postJson(outNotifyUrl, paramMap);
log.info("IMES提供接收发料明细接口出参为:" + result);
} catch (ApiException e) {
e.printStackTrace();
}
}
//2.禁用料接口MES提供外围系统调用
public void wmsCheckReelfob(String checkReelfobUrl,Barcode barcode) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("ipn", barcode.getPartNumber());
paramMap.put("reelId", barcode.getBarcode());
paramMap.put("wo", "");
paramMap.put("datecode", new SimpleDateFormat("yyyyMMdd").format(new Date()));
paramMap.put("lot", barcode.getPosName());
paramMap.put("vendor", barcode.getProviderNumber());
String param = JsonUtil.toJsonStr(paramMap);
log.info("禁用料接口wmsCheckReelfob入参为:" + param);
try {
String result = HttpHelper.postJson(checkReelfobUrl, paramMap);
log.info("禁用料接口wmsCheckReelfob出参为:" + result);
} catch (ApiException e) {
e.printStackTrace();
}
}
@Override
public boolean isForThisApi(String apiName) {
return apiName != null && apiName.equalsIgnoreCase("Lizhen");
}
}
package com.neotel.smfcore.custom.lizhen.rest;
import com.alibaba.fastjson.JSONObject;
import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.JsonUtil;
import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.order.LiteOrderCache;
import com.neotel.smfcore.core.order.service.manager.ILiteOrderManager;
import com.neotel.smfcore.core.order.service.po.LiteOrder;
import com.neotel.smfcore.core.order.service.po.LiteOrderItem;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
public class LizhenController {
@Autowired
private ILiteOrderManager liteOrderManager;
@Autowired
private LiteOrderCache liteOrderCache;
//1.发料明细
@PostMapping("/api/Mes/EPickingList")
public ResultBean EPickingList(@RequestBody List<Map<String, Object>> params) {
if (params == null || params.isEmpty()) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "参数不能为空");
}
for (Map<String, Object> param : params) {
String pickingId = param.get("picking_id") == null ? "" : param.get("picking_id").toString(); //工单号
if (StringUtils.isBlank(pickingId)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"picking_id"});
}
String plantCode = param.get("plant_code") == null ? "" : param.get("plant_code").toString(); //需求单号
if (StringUtils.isBlank(plantCode)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"plant_code"});
}
String line = param.get("line") == null ? "" : param.get("line").toString(); //线别
if (StringUtils.isBlank(line)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"line"});
}
//设置工单信息
LiteOrder liteOrder = new LiteOrder();
liteOrder.setOrderNo(pickingId);
liteOrder.setLine(line);
//开始处理工单详情信息
List<LiteOrderItem> liteOrderItems = new ArrayList<>();
String item = param.get("ITEM") == null ? "" : param.get("ITEM").toString();
if (StringUtils.isBlank(item)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"item"});
}
List<Map> itemMaps = JsonUtil.toList(item, Map.class);
for (Map itemMap : itemMaps) {
String face = itemMap.get("face") == null ? "" : itemMap.get("face").toString(); //面别
if (StringUtils.isBlank(face)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"face"});
}
String mo = itemMap.get("mo") == null ? "" : itemMap.get("mo").toString();
if (StringUtils.isBlank(mo)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"mo"});
}
String materialCode = itemMap.get("material_code") == null ? "" : itemMap.get("material_code").toString(); //物料编号
if (StringUtils.isBlank(materialCode)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"material_code"});
}
String brand = itemMap.get("brand") == null ? "" : itemMap.get("brand").toString(); //品牌
String batchCode = itemMap.get("batch_code") == null ? "" : itemMap.get("batch_code").toString(); //批次号
Integer reqQty = itemMap.get("req_qty") == null ? null : Integer.valueOf(itemMap.get("req_qty").toString()); //数量
Integer reqReel = itemMap.get("req_reel") == null ? null : Integer.valueOf(itemMap.get("req_reel").toString()); //盘数
String warehouse = itemMap.get("warehouse") == null ? "" : itemMap.get("material_code").toString(); //位置
if (StringUtils.isBlank(warehouse)) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{"material_code"});
}
//工单详情进行赋值操作
LiteOrderItem liteOrderItem = new LiteOrderItem();
liteOrderItem.setPn(materialCode);
liteOrderItem.setSide(face);
liteOrderItem.setNeedNum(reqQty);
liteOrderItem.setNeedReelCount(reqReel);
liteOrderItem.setFeederInfo(warehouse);
if (itemMap.get("SLOT") != null){
String slot = JsonUtil.toJsonStr(itemMap.get("SLOT"));
List<Map> slotMaps = JsonUtil.toList(slot, Map.class);
for (Map slotMap : slotMaps) {
String machine = slotMap.get("machine") == null ? null : slotMap.get("machine").toString();//机器编号
String zone = slotMap.get("zone") == null ? null : slotMap.get("zone").toString();//区域
}
}
liteOrderItems.add(liteOrderItem);
}
liteOrder.setOrderItems(liteOrderItems);
liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
}
return ResultBean.newOkResult("");
}
//5.缺料预警
@PostMapping("/api/Mes/MpickingList")
public ResultBean MpickingList(@RequestBody Map<String,Object> paramMap) {
if (paramMap.get("data") == null){
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "参数不能为空");
}
String data = JsonUtil.toJsonStr(paramMap.get("data"));
List<Map> params = JsonUtil.toList(data, Map.class);
if (params == null || params.isEmpty()) {
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "参数不能为空");
}
//全部必填的 进行校验
for (Map<String, Object> param : params) {
for (Map.Entry<String, Object> par : param.entrySet()) {
String parValue = par.getValue() == null ? "" : par.getValue().toString();
if (StringUtils.isBlank(parValue)){
return ResultBean.newErrorResult(-1, "smfcore.valueCanotNull", "{}不能为空", new String[]{par.getKey()});
}
}
}
for (Map<String, Object> param : params) {
String id = param.get("id") == null ? "" : param.get("id").toString();
String workorderno = param.get("workorderno") == null ? "" : param.get("workorderno").toString();
String line = param.get("line") == null ? "" : param.get("line").toString();
String machinename = param.get("machinename") == null ? "" : param.get("machinename").toString();
String station = param.get("station") == null ? "" : param.get("station").toString();
String side = param.get("side") == null ? "" : param.get("side").toString();
String subslot = param.get("subslot") == null ? "" : param.get("subslot").toString();
String partnumber = param.get("partnumber") == null ? "" : param.get("partnumber").toString();
String leftqty = param.get("leftqty") == null ? "" : param.get("leftqty").toString();
String leftpcbs = param.get("leftpcbs") == null ? "" : param.get("leftpcbs").toString();
String lefttimes = param.get("lefttimes") == null ? "" : param.get("lefttimes").toString();
String priority = param.get("priority") == null ? "" : param.get("priority").toString();
String op = param.get("op") == null ? "" : param.get("op").toString();
String productboards = param.get("productboards") == null ? "" : param.get("productboards").toString();
String reel = param.get("reel") == null ? "" : param.get("reel").toString();
LiteOrder liteOrder = new LiteOrder();
liteOrder.setSo(id);
liteOrder.setOrderNo(workorderno);
liteOrder.setLine(line);
LiteOrderItem liteOrderItem = new LiteOrderItem();
liteOrderItem.setSide(side);
liteOrderItem.setFeederInfo(station);
liteOrderItem.setPn(partnumber);
liteOrderItem.setNeedNum(Integer.valueOf(leftqty));
liteOrderItem.setRi(reel);
liteOrder.setOrderItems(Arrays.asList(liteOrderItem));
liteOrder = liteOrderManager.createWithItems(liteOrder);
liteOrderCache.addOrderToMap(liteOrder);
}
return ResultBean.newOkResult("");
}
}
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!