wms修改5

orign^2
mengjiao 1 year ago
parent aace8fb9e5
commit 410c6cca84

@ -192,7 +192,7 @@ public class OdsProcureOrderController extends BaseController {
/** /**
* *
* *
* @param odsProcureOrder * @param
* @return * @return
*/ */
@PostMapping("/addPurchaseOrderOutbound") @PostMapping("/addPurchaseOrderOutbound")
@ -201,5 +201,41 @@ public class OdsProcureOrderController extends BaseController {
return success(); return success();
} }
/**
*
* @param wmsTraystatus
* @return
*/
@PostMapping("/TraystatusUpdate")
public AjaxResult TraystatusUpdate(@RequestBody WMSTraystatus wmsTraystatus) {
odsProcureOrderService.TraystatusUpdate(wmsTraystatus);
//托盘状态更新
return success();
}
/**
*
* @param wcsInventoryPlan
* @return
*/
@PostMapping("/InventoryPlanIssuance")
public AjaxResult InventoryPlanIssuance(@RequestBody WCSInventoryPlan wcsInventoryPlan) {
String result= odsProcureOrderService.InventoryPlanIssuance(wcsInventoryPlan);
//托盘状态更新
return success(result);
}
//http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsOutBoundByPallet
/**
*
* @param wmsDesignatedPalle
* @return
*/
@PostMapping("/DesignatedPalletOutbound")
public AjaxResult DesignatedPalletOutbound(@RequestBody WMSDesignatedPalle wmsDesignatedPalle) {
String result= odsProcureOrderService.DesignatedPalletOutbound(wmsDesignatedPalle);
//托盘状态更新
return success(result);
}
} }

@ -141,6 +141,7 @@ public WmsToWCSDTO packingMaterialsOutBoundCompleted(@RequestBody WmsToWCSDTO wc
return success(); return success();
} }
/** /**
* *
*/ */

@ -0,0 +1,101 @@
package com.op.wms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WCSInventoryPlan {
private String reqCode;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date reqTime;//请求时间
private String rfidNo;//rfid编号
private String batchNo;//批次号
private String sku;////物料编码
private String location;//扫码获取
private String qty; //数量
private String qualityStatus;////质检状态
private String factoryCode;
private String createBy;
public String getCreateBy() {
return createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getReqCode() {
return reqCode;
}
public void setReqCode(String reqCode) {
this.reqCode = reqCode;
}
public Date getReqTime() {
return reqTime;
}
public void setReqTime(Date reqTime) {
this.reqTime = reqTime;
}
public String getRfidNo() {
return rfidNo;
}
public void setRfidNo(String rfidNo) {
this.rfidNo = rfidNo;
}
public String getBatchNo() {
return batchNo;
}
public void setBatchNo(String batchNo) {
this.batchNo = batchNo;
}
public String getSku() {
return sku;
}
public void setSku(String sku) {
this.sku = sku;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getQty() {
return qty;
}
public void setQty(String qty) {
this.qty = qty;
}
public String getQualityStatus() {
return qualityStatus;
}
public void setQualityStatus(String qualityStatus) {
this.qualityStatus = qualityStatus;
}
}

@ -0,0 +1,78 @@
package com.op.wms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WMSDesignatedPalle {
private String reqCode;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date reqTime;//请求时间
private String rfidNo;//rfid编号//如果是空托出库的话,这个字段就传固定的那个物料号
private String warehouseNo; //仓库编号
private String factoryCode;
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getWarehouseNo() {
return warehouseNo;
}
public void setWarehouseNo(String warehouseNo) {
this.warehouseNo = warehouseNo;
}
private String location;//填包装线
private String type; //类型1是托盘出库,2是空托出库计划下发
public String getReqCode() {
return reqCode;
}
public void setReqCode(String reqCode) {
this.reqCode = reqCode;
}
public Date getReqTime() {
return reqTime;
}
public void setReqTime(Date reqTime) {
this.reqTime = reqTime;
}
public String getRfidNo() {
return rfidNo;
}
public void setRfidNo(String rfidNo) {
this.rfidNo = rfidNo;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}

@ -0,0 +1,79 @@
package com.op.wms.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WMSTraystatus {
private String reqCode;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date reqTime;//请求时间
private String factoryCode;
private String rfidNo;
////0代表当前位置为空用于托盘被人拿走时的位置状态信息更新
private String locationStatus;
private String location;//当前托盘所处的具体的位置
//托盘类型:1空托盘 2.进入入库前整理区
private String palletType;
public String getFactoryCode() {
return factoryCode;
}
public void setFactoryCode(String factoryCode) {
this.factoryCode = factoryCode;
}
public String getReqCode() {
return reqCode;
}
public void setReqCode(String reqCode) {
this.reqCode = reqCode;
}
public Date getReqTime() {
return reqTime;
}
public void setReqTime(Date reqTime) {
this.reqTime = reqTime;
}
public String getRfidNo() {
return rfidNo;
}
public void setRfidNo(String rfidNo) {
this.rfidNo = rfidNo;
}
public String getLocationStatus() {
return locationStatus;
}
public void setLocationStatus(String locationStatus) {
this.locationStatus = locationStatus;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getPalletType() {
return palletType;
}
public void setPalletType(String palletType) {
this.palletType = palletType;
}
}

@ -2,8 +2,10 @@ package com.op.wms.mapper;
import java.util.List; import java.util.List;
import com.op.wms.domain.WCSInventoryPlan;
import com.op.wms.domain.WmsOdsEmStorageNews; import com.op.wms.domain.WmsOdsEmStorageNews;
import com.op.wms.domain.WmsOdsMateStorageNews; import com.op.wms.domain.WmsOdsMateStorageNews;
import com.op.wms.domain.WmsToWCSDTO;
/** /**
* Mapper * Mapper
@ -61,4 +63,7 @@ public interface WmsOdsMateStorageNewsMapper {
public int deleteWmsOdsMateStorageNewsByStorageIds(String[] storageIds); public int deleteWmsOdsMateStorageNewsByStorageIds(String[] storageIds);
WmsOdsMateStorageNews selectByWhCodeAndMate(WmsOdsEmStorageNews wmsOdsEmStorageNews); WmsOdsMateStorageNews selectByWhCodeAndMate(WmsOdsEmStorageNews wmsOdsEmStorageNews);
WmsOdsMateStorageNews selectBaseProductByCode(WCSInventoryPlan wcsInventoryPlan);
} }

@ -3,7 +3,9 @@ package com.op.wms.mapper;
import java.util.List; import java.util.List;
import com.op.wms.domain.WmsOdsEmStorageNews; import com.op.wms.domain.WmsOdsEmStorageNews;
import com.op.wms.domain.WmsOdsMateStorageNews;
import com.op.wms.domain.WmsOdsMateStorageNewsSn; import com.op.wms.domain.WmsOdsMateStorageNewsSn;
import com.op.wms.domain.WmsToWCSDTO;
/** /**
* Mapper * Mapper
@ -64,4 +66,6 @@ public interface WmsOdsMateStorageNewsSnMapper {
void updatekdd(WmsOdsEmStorageNews wmsOdsEmStorageNews); void updatekdd(WmsOdsEmStorageNews wmsOdsEmStorageNews);
WmsOdsMateStorageNewsSn selectwmsRfidNotwo(WmsToWCSDTO wcsdto);
} }

@ -2,6 +2,7 @@ package com.op.wms.mapper;
import java.util.List; import java.util.List;
import com.op.wms.domain.WCSInventoryPlan;
import com.op.wms.domain.WmsRawOrderInSn; import com.op.wms.domain.WmsRawOrderInSn;
import com.op.wms.domain.WmsToWCSDTO; import com.op.wms.domain.WmsToWCSDTO;
@ -64,5 +65,6 @@ public interface WmsRawOrderInSnMapper {
void updateU1Byid(WmsRawOrderInSn wmsRawOrderInSn); void updateU1Byid(WmsRawOrderInSn wmsRawOrderInSn);
WmsRawOrderInSn selectwmsRfidNotwo(WmsToWCSDTO wmsToWCSDTO);
} }

@ -3,6 +3,7 @@ package com.op.wms.service;
import java.util.List; import java.util.List;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
import com.op.common.core.web.domain.AjaxResult;
import com.op.wms.domain.*; import com.op.wms.domain.*;
/** /**
@ -75,4 +76,10 @@ public interface IOdsProcureOrderService {
OrderLine addPurchaseOrderOutbound(OrderLine orderLine); OrderLine addPurchaseOrderOutbound(OrderLine orderLine);
R sapPurchaseOrderSync(SapBackflushMPQuery sapPurchaseOrderQuery); R sapPurchaseOrderSync(SapBackflushMPQuery sapPurchaseOrderQuery);
void TraystatusUpdate(WMSTraystatus wmsTraystatus);
String InventoryPlanIssuance(WCSInventoryPlan wcsInventoryPlan);
String DesignatedPalletOutbound(WMSDesignatedPalle wmsDesignatedPalle);
} }

@ -1,5 +1,6 @@
package com.op.wms.service.impl; package com.op.wms.service.impl;
import com.alibaba.csp.sentinel.util.StringUtil;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
@ -7,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -14,8 +16,7 @@ import java.util.List;
import com.op.common.core.domain.R; import com.op.common.core.domain.R;
import com.op.common.core.web.domain.AjaxResult;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
@ -236,7 +237,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews); wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews);
} }
wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn); wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);
//修改库存--加,并且为冻结的,sap过账后再解
} }
@Override @Override
@ -268,7 +269,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
orderLine1.setOrderLineNo(String.format("%05d", orderItem)); orderLine1.setOrderLineNo(String.format("%05d", orderItem));
orderLine1.setBatchNo("00001"); orderLine1.setBatchNo("00001");
} }
String meg= addPurchaseOrderOutboundSAP(orderLine); String meg= addPurchaseOrderOutboundWCS(orderLine);
if ("OK".equals(meg)){//成功 if ("OK".equals(meg)){//成功
for (OrderLine orderLine1: for (OrderLine orderLine1:
orderList) { orderList) {
@ -389,8 +390,266 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
return R.ok(); return R.ok();
} }
@Override
public void TraystatusUpdate(WMSTraystatus wmsTraystatus) {
//空托从楼到楼locationStatus是palletType是
//空托就不用管了只给他们发消息就可以了半托的话从2楼到3楼返回后需要下发计划这样就需要下发入口任务
// if ("2".equals(wmsTraystatus.getPalletType())){//palletType是半托从2楼到3楼返回
// //这个进入入库前整理区--要记录在入库-取消在这里添加记录,在下发任务的时候在添加
//
// }
TraystatusUpdateWCS(wmsTraystatus);
}
@Override
public String InventoryPlanIssuance(WCSInventoryPlan wcsInventoryPlan) {
DynamicDataSourceContextHolder.push("ds_" + wcsInventoryPlan.getFactoryCode());
//根据对应物料编码查询物料名称--如果没有
String message ="";
WmsOdsMateStorageNews wmsOdsMateStorageNews= wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan);
//wms_raw_order_in_sn
if (wmsOdsMateStorageNews==null){
//null
message="物料号错误";
return message;
}
WmsRawOrderInSn wmsRawOrderInSn=new WmsRawOrderInSn();
wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID());
wmsRawOrderInSn.setUserDefined1("1");//出入库
wmsRawOrderInSn.setUserDefined2(wcsInventoryPlan.getBatchNo());//批次
wmsRawOrderInSn.setWhCode("WH02");//厂库编号
//wmsRawOrderInSn.setPoNo();//采购单号
// wmsRawOrderInSn.setPoLine(odsProcureOrder.getPoLine());//行项目
wmsRawOrderInSn.setMaterialCode(wcsInventoryPlan.getSku());
wmsRawOrderInSn.setMaterialDesc(wmsOdsMateStorageNews.getMaterialDesc());
wmsRawOrderInSn.setAmount(new BigDecimal(wcsInventoryPlan.getQty()));
wmsRawOrderInSn.setCreateBy(wcsInventoryPlan.getCreateBy());
wmsRawOrderInSn.setGmtCreate(new Date());
wmsRawOrderInSn.setActiveFlag("1");
wmsRawOrderInSn.setUserDefined4(wmsOdsMateStorageNews.getUserDefined1());//单位
wmsRawOrderInSn.setSn(wcsInventoryPlan.getRfidNo());//托盘号
wmsRawOrderInSn.setFactoryCode(wcsInventoryPlan.getFactoryCode());
//wmsRawOrderInSn.setUserDefined3(order.getID());//返库的入库记录
wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn);
String tem= InventoryPlanIssuanceWCS(wcsInventoryPlan);
if ("OK".equals(tem)){
message="操作成功";
}
return message;
}
@Override
public String DesignatedPalletOutbound(WMSDesignatedPalle wmsDesignatedPalle) {
DynamicDataSourceContextHolder.push("ds_" + wmsDesignatedPalle.getFactoryCode());
String result="";
if ("1".equals(wmsDesignatedPalle.getType())){//类型1是托盘出库,2是空托出库计划下发
String meg= DesignatedPalletOutboundWCS(wmsDesignatedPalle);
if ("OK".equals(meg)){//成功 rfidNo
WmsToWCSDTO wcsdto =new WmsToWCSDTO();
wcsdto.setRfidNo(wmsDesignatedPalle.getRfidNo());
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn= wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto);
WCSInventoryPlan wcsInventoryPlan=new WCSInventoryPlan();
wcsInventoryPlan.setSku(wmsOdsMateStorageNewsSn.getMaterialCode());
WmsOdsMateStorageNews wmsOdsMateStorageNews= wmsOdsMateStorageNewsMapper.selectBaseProductByCode(wcsInventoryPlan);
OdsProcureOutOrder odsProcureOutOrder=new OdsProcureOutOrder();
odsProcureOutOrder.setID(IdUtils.fastSimpleUUID());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
odsProcureOutOrder.setProduceCode("DE"+formattedDate);
odsProcureOutOrder.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode());
odsProcureOutOrder.setMaterialDesc(wmsOdsMateStorageNewsSn.getMaterialDesc());
odsProcureOutOrder.setPlanDate(new Date());
odsProcureOutOrder.setUnit(wmsOdsMateStorageNews.getUserDefined1());
odsProcureOutOrder.setProductionLineCode(wmsDesignatedPalle.getLocation());
odsProcureOutOrder.setUserDefined1(formattedDate);
odsProcureOutOrder.setActive("1");
odsProcureOutOrder.setOrderStatus("1");
odsProcureOutOrder.setPlanNumber(wmsOdsMateStorageNewsSn.getAmount());
odsProcureOutOrder.setUserDefined2("00001");//行项目
//odsProcureOutOrder.set
odsProcureOutOrderMapper.insertOdsProcureOutOrder(odsProcureOutOrder);
result="操作成功";
return result;
}
}else {
OrderLine orderLine=new OrderLine();
orderLine.setWarehouseNo("WH02");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
orderLine.setOrderNo(formattedDate);//,如果是空托盘垛的需求可以随机生成一个
List<OrderLine> list=new ArrayList<>();
Integer orderItem = 1;
OrderLine orderLine1=new OrderLine();
orderLine1.setOrderLineNo(String.format("%05d", orderItem));
orderLine1.setSku(wmsDesignatedPalle.getRfidNo());
list.add(orderLine1);
orderLine.setList(list);
String message= addPurchaseOrderOutboundTwoWCS(orderLine);
if ("OK".equals(message)) {//成功
result="操作成功";
return result;
}
}
return result;
}
public String DesignatedPalletOutboundWCS(WMSDesignatedPalle wmsDesignatedPalle){
// 定义请求的URL地址
String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsOutBoundByPallet";
// 创建OkHttpClient实例
OkHttpClient client = new OkHttpClient();
// 定义请求体的媒体类型为json
MediaType mediaType = MediaType.parse("application/json");
try {
// 创建JSON对象payload并设置请求参数
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
JSONObject payload = new JSONObject();
payload.put("reqCode", IdUtils.fastSimpleUUID());
payload.put("reqTime",formattedDate );
payload.put("warehouseNo", wmsDesignatedPalle.getWarehouseNo());
payload.put("rfidNo", wmsDesignatedPalle.getRfidNo());
payload.put("location", wmsDesignatedPalle.getLocation());
// 创建请求体将JSON对象转换为字符串
RequestBody body = RequestBody.create(mediaType, payload.toString());
// 创建POST请求
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
// 执行请求并获取响应
Response response = client.newCall(request).execute();
// 获取响应数据并转换为JSON对象
String responseData = response.body().string();
JSONObject result = JSONObject.parseObject(responseData);
// 获取返回结果结果JSON对象请求编码、状态码和消息
result.get("reqCode");
result.get("code");
String message= (String) result.get("message");
response.close();
return message;
} catch (IOException e) {
// 捕获IOException并处理异常
e.printStackTrace(); // 这里最好记录异常到日志文件或者进行其他处理
} finally {
// 关闭OkHttpClient
client.dispatcher().executorService().shutdown();
}
// 返回0
return null;
}
public String InventoryPlanIssuanceWCS(WCSInventoryPlan wcsInventoryPlan){
// 定义请求的URL地址
String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsInBoundTaskSend";
// 创建OkHttpClient实例
OkHttpClient client = new OkHttpClient();
// 定义请求体的媒体类型为json
MediaType mediaType = MediaType.parse("application/json");
try {
// 创建JSON对象payload并设置请求参数
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
JSONObject payload = new JSONObject();
payload.put("reqCode", IdUtils.fastSimpleUUID());
payload.put("reqTime",formattedDate );
payload.put("rfidNo", wcsInventoryPlan.getRfidNo());
payload.put("batchNo", wcsInventoryPlan.getBatchNo());
payload.put("sku", wcsInventoryPlan.getSku());
payload.put("location", wcsInventoryPlan.getLocation());
payload.put("qty", wcsInventoryPlan.getQty());
payload.put("qualityStatus", wcsInventoryPlan.getQualityStatus());
// 创建请求体将JSON对象转换为字符串
RequestBody body = RequestBody.create(mediaType, payload.toString());
// 创建POST请求
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
// 执行请求并获取响应
Response response = client.newCall(request).execute();
// 获取响应数据并转换为JSON对象
String responseData = response.body().string();
JSONObject result = JSONObject.parseObject(responseData);
// 获取返回结果结果JSON对象请求编码、状态码和消息
result.get("reqCode");
result.get("code");
String message= (String) result.get("message");
response.close();
return message;
} catch (IOException e) {
// 捕获IOException并处理异常
e.printStackTrace(); // 这里最好记录异常到日志文件或者进行其他处理
} finally {
// 关闭OkHttpClient
client.dispatcher().executorService().shutdown();
}
// 返回0
return null;
}
public String TraystatusUpdateWCS(WMSTraystatus wmsTraystatus){
// 定义请求的URL地址
String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsReturnTaskSend";
// 创建OkHttpClient实例
OkHttpClient client = new OkHttpClient();
// 定义请求体的媒体类型为json
MediaType mediaType = MediaType.parse("application/json");
try {
// 创建JSON对象payload并设置请求参数
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
JSONObject payload = new JSONObject();
payload.put("reqCode", IdUtils.fastSimpleUUID());
payload.put("reqTime",formattedDate );
payload.put("rfidNo", wmsTraystatus.getRfidNo());
payload.put("locationStatus", wmsTraystatus.getLocationStatus());
payload.put("location", wmsTraystatus.getLocation());
payload.put("palletType", wmsTraystatus.getPalletType());
// 创建请求体将JSON对象转换为字符串
RequestBody body = RequestBody.create(mediaType, payload.toString());
// 创建POST请求
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
// 执行请求并获取响应
Response response = client.newCall(request).execute();
// 获取响应数据并转换为JSON对象
String responseData = response.body().string();
JSONObject result = JSONObject.parseObject(responseData);
// 获取返回结果结果JSON对象请求编码、状态码和消息
result.get("reqCode");
result.get("code");
String message= (String) result.get("message");
response.close();
return message;
} catch (IOException e) {
// 捕获IOException并处理异常
e.printStackTrace(); // 这里最好记录异常到日志文件或者进行其他处理
} finally {
// 关闭OkHttpClient
client.dispatcher().executorService().shutdown();
}
// 返回0
return null;
}
//下发计划的接口 //下发计划的接口
public String addPurchaseOrderOutboundSAP(OrderLine orderLinete) { public String addPurchaseOrderOutboundWCS(OrderLine orderLinete) {
// 定义请求的URL地址 // 定义请求的URL地址
String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsOutBoundRequest"; String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsOutBoundRequest";
// 创建OkHttpClient实例 // 创建OkHttpClient实例
@ -452,5 +711,63 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
return null; return null;
} }
//空托下发计划的接口
public String addPurchaseOrderOutboundTwoWCS(OrderLine orderLinete) {
// 定义请求的URL地址
String url = "http://192.168.202.37:9001/api/v1/ReceiveMesMsg/packingMaterialsOutBoundRequest";
// 创建OkHttpClient实例
OkHttpClient client = new OkHttpClient();
// 定义请求体的媒体类型为json
MediaType mediaType = MediaType.parse("application/json");
try {
// 创建JSON对象payload并设置请求参数
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String formattedDate = dateFormat.format(date);
JSONObject payload = new JSONObject();
payload.put("reqCode", IdUtils.fastSimpleUUID());
payload.put("reqTime",formattedDate );
payload.put("warehouseNo", orderLinete.getWarehouseNo());
payload.put("orderNo", orderLinete.getOrderNo());
JSONArray orderLines = new JSONArray();
List<OrderLine> orderList= orderLinete.getList();
// 创建订单行数组,并将订单行对象添加到数组中
for (OrderLine orderLine1:
orderList ) {
JSONObject orderLine = new JSONObject();
orderLine.put("orderLineNo", orderLine1.getOrderLineNo());
orderLine.put("sku", orderLine1.getMaterialCode());
orderLines.add(orderLine);
}
payload.put("orderLines", orderLines);
// 创建请求体将JSON对象转换为字符串
RequestBody body = RequestBody.create(mediaType, payload.toString());
// 创建POST请求
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
// 执行请求并获取响应
Response response = client.newCall(request).execute();
// 获取响应数据并转换为JSON对象
String responseData = response.body().string();
JSONObject result = JSONObject.parseObject(responseData);
// 获取返回结果结果JSON对象请求编码、状态码和消息
result.get("reqCode");
result.get("code");
String message= (String) result.get("message");
response.close();
return message;
} catch (IOException e) {
// 捕获IOException并处理异常
e.printStackTrace(); // 这里最好记录异常到日志文件或者进行其他处理
} finally {
// 关闭OkHttpClient
client.dispatcher().executorService().shutdown();
}
// 返回0
return null;
}
} }

@ -65,6 +65,7 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService {
@Override @Override
public WmsToWCSDTO packingMaterialsInboundCompleted(WmsToWCSDTO wmsToWCSDTO) { public WmsToWCSDTO packingMaterialsInboundCompleted(WmsToWCSDTO wmsToWCSDTO) {
DynamicDataSourceContextHolder.push("ds_" + wmsToWCSDTO.getFactory()); DynamicDataSourceContextHolder.push("ds_" + wmsToWCSDTO.getFactory());
//wms_raw_order_in_sn
WmsRawOrderInSn wmsRawOrderInSn= wmsRawOrderInSnMapper.selectwmsRfidNo(wmsToWCSDTO); WmsRawOrderInSn wmsRawOrderInSn= wmsRawOrderInSnMapper.selectwmsRfidNo(wmsToWCSDTO);
wmsRawOrderInSn.setWhCode(wmsToWCSDTO.getWarehouseNo()); wmsRawOrderInSn.setWhCode(wmsToWCSDTO.getWarehouseNo());
wmsRawOrderInSn.setWlCode(wmsToWCSDTO.getLocation()); wmsRawOrderInSn.setWlCode(wmsToWCSDTO.getLocation());
@ -76,10 +77,12 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService {
wmsOdsMateStorageNewsSn.setSn(wmsRawOrderInSn.getSn()); wmsOdsMateStorageNewsSn.setSn(wmsRawOrderInSn.getSn());
wmsOdsMateStorageNewsSn.setAmount(wmsRawOrderInSn.getAmount()); wmsOdsMateStorageNewsSn.setAmount(wmsRawOrderInSn.getAmount());
wmsOdsMateStorageNewsSn.setCreateBy("AGV"); wmsOdsMateStorageNewsSn.setCreateBy("AGV");
wmsOdsMateStorageNewsSn.setActiveFlag("1");
wmsOdsMateStorageNewsSn.setGmtCreate(new Date()); wmsOdsMateStorageNewsSn.setGmtCreate(new Date());
wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID()); wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID());
wmsOdsMateStorageNewsSn.setFactoryCode(wmsToWCSDTO.getFactory()); wmsOdsMateStorageNewsSn.setFactoryCode(wmsToWCSDTO.getFactory());
wmsOdsMateStorageNewsSn.setSapFactoryCode(wmsToWCSDTO.getFactory()); wmsOdsMateStorageNewsSn.setSapFactoryCode(wmsToWCSDTO.getFactory());
//wms_ods_mate_storage_news_sn
wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn); wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn);
//修改库存 //修改库存
//修改库存加库存数量storage_amount = IFNULL(storage_amount, 0) + #{amount}, //修改库存加库存数量storage_amount = IFNULL(storage_amount, 0) + #{amount},
@ -128,15 +131,23 @@ public class WmsToWCSmissionServiceImpl implements IWmsToWCSmissionService {
//记录明细消减库存 //记录明细消减库存
DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory()); DynamicDataSourceContextHolder.push("ds_" + wcsdto.getFactory());
WmsRawOrderInSn wmsRawOrderInSn= wmsRawOrderInSnMapper.selectwmsRfidNotwo(wcsdto); WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn= wmsOdsMateStorageNewsSnMapper.selectwmsRfidNotwo(wcsdto);
//user_defined1='2'也就是查询的已经入库的托盘记录,再之后要进行标记备注5为1.不为空即是这,
// 或者直接在库存明细中查询这个托盘,然后后面对这条托盘明细进行标记处理,表示已经出库--用这个
//修改库存 //修改库存
//修改库存加库存数量storage_amount = IFNULL(storage_amount, 0) + #{amount}, //修改库存加库存数量storage_amount = IFNULL(storage_amount, 0) + #{amount},
WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews(); WmsOdsEmStorageNews wmsOdsEmStorageNews=new WmsOdsEmStorageNews();
wmsOdsEmStorageNews.setWhCode(wmsRawOrderInSn.getWhCode());//仓库编码 wmsOdsEmStorageNews.setWhCode(wmsOdsMateStorageNewsSn.getWhCode());//仓库编码
wmsOdsEmStorageNews.setWlCode(wmsRawOrderInSn.getWlCode());//库位编码 wmsOdsEmStorageNews.setWlCode(wmsOdsMateStorageNewsSn.getWlCode());//库位编码
wmsOdsEmStorageNews.setMaterialCode(wmsRawOrderInSn.getMaterialCode()); wmsOdsEmStorageNews.setMaterialCode(wmsOdsMateStorageNewsSn.getMaterialCode());
wmsOdsEmStorageNews.setAmount(wmsRawOrderInSn.getAmount()); wmsOdsEmStorageNews.setAmount(wmsOdsMateStorageNewsSn.getAmount());
wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews); wmsOdsMateStorageNewsSnMapper.updatekdd(wmsOdsEmStorageNews);
wmsOdsMateStorageNewsSn.setUserDefined1("1");
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn);
return wcsdto; return wcsdto;
} }

@ -210,7 +210,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{storageId} #{storageId}
</foreach> </foreach>
</delete> </delete>
<select id="selectByWhCodeAndMate"> <select id="selectByWhCodeAndMate" resultMap="WmsOdsMateStorageNewsResult">
select storage_id, wh_code, region_code, wa_code, storage_type, wl_code, material_code, material_desc, amount, storage_amount, occupy_amount, lpn, product_batch, receive_date, product_date, user_defined1, user_defined2, user_defined3, user_defined4, user_defined5, user_defined6, user_defined7, user_defined8, user_defined9, user_defined10, create_by, gmt_create, last_modified_by, gmt_modified, active_flag, factory_code, sap_factory_code, wl_name from wms_ods_mate_storage_news
where wh_code=#{whCode} and wl_code=#{wlCode} and material_code=#{materialCode}
</select>
<select id="selectBaseProductByCode" resultMap="WmsOdsMateStorageNewsResult">
select DISTINCT material_desc,user_defined1
from wms_ods_mate_storage_news where material_code=#{sku}
</select> </select>
</mapper> </mapper>

@ -205,4 +205,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectWmsOdsMateStorageNewsSnVo"/> <include refid="selectWmsOdsMateStorageNewsSnVo"/>
where mate_order_in_sn_id = #{mateOrderInSnId} where mate_order_in_sn_id = #{mateOrderInSnId}
</select> </select>
<select id="selectwmsRfidNotwo" parameterType="WmsOdsMateStorageNewsSn" resultMap="WmsOdsMateStorageNewsSnResult">
<include refid="selectWmsOdsMateStorageNewsSnVo"/>
WHERE
sn =#{ rfidNo }
AND active_flag = '1'
AND User_Defined1 IS NULL
</select>
</mapper> </mapper>

@ -193,18 +193,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
active_flag='1' active_flag='1'
and user_defined1='1' and user_defined1='1'
</select> </select>
<select id="selectwmsRfidNotwo" parameterType="com.op.wms.domain.WmsToWCSDTO" resultMap="WmsRawOrderInSnResult">
<include refid="selectWmsRawOrderInSnVo"/>
where
sn=#{rfidNo}
and
active_flag='1'
and user_defined1='2'
</select>
<update id="updateU1Byid"> <update id="updateU1Byid">
update wms_raw_order_in_sn update wms_raw_order_in_sn
set set
user_defined1 = '2' user_defined1 = '2'
where raw_order_in_sn_id=#{rawOrderInSnId} where raw_order_in_sn_id=#{rawOrderInSnId}
</update> </update>
</mapper> </mapper>

Loading…
Cancel
Save