|
|
|
@ -1,9 +1,22 @@
|
|
|
|
|
package com.op.wms.service.impl;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
|
|
import com.op.common.core.utils.uuid.IdUtils;
|
|
|
|
|
import com.op.common.security.utils.SecurityUtils;
|
|
|
|
|
import com.op.wms.domain.OdsProcureOrder;
|
|
|
|
|
import com.op.wms.domain.ProOrderWorkorder;
|
|
|
|
|
import com.op.wms.domain.WmsOdsMateStorageNewsSn;
|
|
|
|
|
import com.op.wms.mapper.OdsProcureOrderMapper;
|
|
|
|
|
import com.op.wms.mapper.WmsOdsMateStorageNewsSnMapper;
|
|
|
|
|
import okhttp3.*;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import com.op.wms.mapper.WmsOdsMateStorageNewsMapper;
|
|
|
|
|
import com.op.wms.domain.WmsOdsMateStorageNews;
|
|
|
|
@ -19,6 +32,13 @@ import com.op.wms.service.IWmsOdsMateStorageNewsService;
|
|
|
|
|
public class WmsOdsMateStorageNewsServiceImpl implements IWmsOdsMateStorageNewsService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private WmsOdsMateStorageNewsMapper wmsOdsMateStorageNewsMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private OdsProcureOrderMapper odsProcureOrderMapper;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private WmsOdsMateStorageNewsSnMapper wmsOdsMateStorageNewsSnMapper;
|
|
|
|
|
@Value("${dayin.url1}")
|
|
|
|
|
private String dayinUrl1;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询包材库存主表
|
|
|
|
@ -91,4 +111,151 @@ public class WmsOdsMateStorageNewsServiceImpl implements IWmsOdsMateStorageNewsS
|
|
|
|
|
public int deleteWmsOdsMateStorageNewsByStorageId(String storageId) {
|
|
|
|
|
return wmsOdsMateStorageNewsMapper.deleteWmsOdsMateStorageNewsByStorageId(storageId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@DS("#header.poolName")
|
|
|
|
|
public String addBS(WmsOdsMateStorageNews wmsOdsMateStorageNews) {
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
|
Date date = new Date();
|
|
|
|
|
String formattedDate = dateFormat.format(date);
|
|
|
|
|
List<OdsProcureOrder> dtos0= odsProcureOrderMapper.getIdCardByIdList(wmsOdsMateStorageNews.getStorageId());
|
|
|
|
|
if (dtos0.size()>0){
|
|
|
|
|
List<OdsProcureOrder> list = new ArrayList<>();
|
|
|
|
|
OdsProcureOrder odsProcureOrder= dtos0.get(0);
|
|
|
|
|
String userDefined10= wmsOdsMateStorageNews.getUserDefined10();//打印次数
|
|
|
|
|
int printCount = Integer.parseInt(userDefined10);
|
|
|
|
|
for (int i = 0; i < printCount; i++) {
|
|
|
|
|
// 将 odsProcureOrder 对象复制一份,并添加到列表中。
|
|
|
|
|
// 假设 OdsProcureOrder 类具有一个复制构造函数或 clone 方法来创建对象的副本。
|
|
|
|
|
list.add(odsProcureOrder);
|
|
|
|
|
}
|
|
|
|
|
String msg= dayin(list);
|
|
|
|
|
return msg;
|
|
|
|
|
}else {
|
|
|
|
|
WmsOdsMateStorageNews wmsOdsMateStorageNews1= wmsOdsMateStorageNewsMapper.selectWmsOdsMateStorageNewsByStorageId(wmsOdsMateStorageNews.getStorageId());
|
|
|
|
|
//标识卡就用id和物料码组成
|
|
|
|
|
List<OdsProcureOrder> list = new ArrayList<>();
|
|
|
|
|
List<OdsProcureOrder>dtos=new ArrayList<>();
|
|
|
|
|
OdsProcureOrder pw = new OdsProcureOrder();
|
|
|
|
|
pw.setSiteCode(wmsOdsMateStorageNews1.getFactoryCode());
|
|
|
|
|
pw.setProcureCode(wmsOdsMateStorageNews1.getMaterialCode());//
|
|
|
|
|
//pw.setUserDefined3(order.getUserDefined3());//行项目
|
|
|
|
|
pw.setMaterialCode(wmsOdsMateStorageNews1.getMaterialCode());
|
|
|
|
|
pw.setMaterialDesc(wmsOdsMateStorageNews1.getMaterialDesc());
|
|
|
|
|
pw.setPlanNumber(wmsOdsMateStorageNews1.getAmount());
|
|
|
|
|
pw.setSupplierCode(wmsOdsMateStorageNews1.getUserDefined2());
|
|
|
|
|
pw.setSupplierName(wmsOdsMateStorageNews1.getUserDefined3());
|
|
|
|
|
pw.setUserDefined8("2");
|
|
|
|
|
pw.setUserDefined7(formattedDate+wmsOdsMateStorageNews1.getMaterialCode());//批次
|
|
|
|
|
pw.setUserDefined10("0");//标识卡状态0是未收货的
|
|
|
|
|
// pw.setUserDefined11("");
|
|
|
|
|
pw.setUserDefined4(wmsOdsMateStorageNews1.getStorageId());
|
|
|
|
|
pw.setUnit(wmsOdsMateStorageNews1.getUserDefined1());
|
|
|
|
|
pw.setCardNum("1");
|
|
|
|
|
// String dateString = pw.getUserDefined11().replace("-", "");
|
|
|
|
|
pw.setUserDefined1(pw.getMaterialCode()+"-"+wmsOdsMateStorageNews1.getStorageId()+"-"+pw.getCardNum());//采购单+行项目+类型+日期+板次
|
|
|
|
|
pw.setCreateTime(new Date());
|
|
|
|
|
pw.setActive("1");
|
|
|
|
|
dtos.add(pw);
|
|
|
|
|
odsProcureOrderMapper.addBatchPallet(dtos);
|
|
|
|
|
WmsOdsMateStorageNews wmsOdsMateStorageNews2=new WmsOdsMateStorageNews();
|
|
|
|
|
wmsOdsMateStorageNews2.setStorageId(wmsOdsMateStorageNews.getStorageId());
|
|
|
|
|
wmsOdsMateStorageNews2.setWlCode(pw.getUserDefined1());
|
|
|
|
|
wmsOdsMateStorageNewsMapper.updateWmsOdsMateStorageNews(wmsOdsMateStorageNews2);
|
|
|
|
|
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn();
|
|
|
|
|
wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setWhCode("WH02");//仓库编码
|
|
|
|
|
// wmsOdsMateStorageNewsSn.setWaCode(pw.getUserDefined1());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setWlCode(pw.getUserDefined1());//库位编码-
|
|
|
|
|
wmsOdsMateStorageNewsSn.setMaterialCode(wmsOdsMateStorageNews1.getMaterialCode());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setMaterialDesc(wmsOdsMateStorageNews1.getMaterialDesc());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setSn(pw.getUserDefined1());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setAmount(wmsOdsMateStorageNews1.getAmount());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setCreateBy(SecurityUtils.getUsername());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setGmtCreate(new Date());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined2(pw.getUserDefined7());//批次
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined1("RK");
|
|
|
|
|
wmsOdsMateStorageNewsSn.setUserDefined3("1");//0是暂收,1是真收
|
|
|
|
|
wmsOdsMateStorageNewsSn.setFactoryCode(wmsOdsMateStorageNews1.getFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setSapFactoryCode(wmsOdsMateStorageNews1.getFactoryCode());
|
|
|
|
|
wmsOdsMateStorageNewsSn.setActiveFlag("1");
|
|
|
|
|
wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn);
|
|
|
|
|
OdsProcureOrder odsProcureOrder= dtos.get(0);
|
|
|
|
|
String userDefined10= wmsOdsMateStorageNews.getUserDefined10();//打印次数
|
|
|
|
|
int printCount = Integer.parseInt(userDefined10);
|
|
|
|
|
for (int i = 0; i < printCount; i++) {
|
|
|
|
|
// 将 odsProcureOrder 对象复制一份,并添加到列表中。
|
|
|
|
|
// 假设 OdsProcureOrder 类具有一个复制构造函数或 clone 方法来创建对象的副本。
|
|
|
|
|
list.add(odsProcureOrder);
|
|
|
|
|
}
|
|
|
|
|
String msg= dayin(list);
|
|
|
|
|
return msg;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String dayin( List<OdsProcureOrder> orderList) {
|
|
|
|
|
// 定义请求的URL地址
|
|
|
|
|
String url = dayinUrl1;
|
|
|
|
|
// 打印输出url的值
|
|
|
|
|
System.out.println(url);
|
|
|
|
|
// 创建OkHttpClient实例,用于发送HTTP请求
|
|
|
|
|
OkHttpClient client = new OkHttpClient();
|
|
|
|
|
|
|
|
|
|
// 定义请求体的媒体类型为json
|
|
|
|
|
MediaType mediaType = MediaType.parse("application/json");
|
|
|
|
|
|
|
|
|
|
// 创建一个JSONArray,用于存储多个订单的信息
|
|
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
|
|
try {
|
|
|
|
|
// 创建JSON对象payload,并设置请求参数
|
|
|
|
|
// 遍历传入的订单列表
|
|
|
|
|
for (OdsProcureOrder order : orderList) {
|
|
|
|
|
|
|
|
|
|
JSONObject payload = new JSONObject();
|
|
|
|
|
|
|
|
|
|
payload.put("supplier", order.getSupplierName());
|
|
|
|
|
|
|
|
|
|
payload.put("itemName", order.getMaterialDesc());
|
|
|
|
|
|
|
|
|
|
payload.put("itemCode", order.getMaterialCode());
|
|
|
|
|
|
|
|
|
|
payload.put("warehousingDate", order.getUserDefined11());
|
|
|
|
|
|
|
|
|
|
payload.put("batch", order.getUserDefined7());
|
|
|
|
|
|
|
|
|
|
payload.put("number", order.getPlanNumber());
|
|
|
|
|
payload.put("qrcode", order.getUserDefined1());
|
|
|
|
|
// 将当前订单的JSON对象添加到JSONArray中
|
|
|
|
|
jsonArray.add(payload);
|
|
|
|
|
}
|
|
|
|
|
// 创建请求体,将JSONArray转换为字符串
|
|
|
|
|
RequestBody body = RequestBody.create(mediaType, jsonArray.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对象,请求编码、状态码和消息
|
|
|
|
|
Map map = new HashMap();
|
|
|
|
|
map = result;
|
|
|
|
|
String message = (String) map.get("msg");
|
|
|
|
|
response.close();
|
|
|
|
|
return message;
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
// 捕获IOException并处理异常
|
|
|
|
|
e.printStackTrace(); // 在控制台打印异常信息,建议记录到日志文件
|
|
|
|
|
return "请求失败,异常信息:" + e.getMessage(); // 返回异常信息
|
|
|
|
|
} finally {
|
|
|
|
|
// 关闭OkHttpClient
|
|
|
|
|
client.dispatcher().executorService().shutdown();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|