wms包材退货和打印接口

master
mengjiao 7 months ago
parent 43d99edb29
commit 37df2b577d

@ -121,4 +121,17 @@ public class OdsProcureOutOrderController extends BaseController {
public AjaxResult remove(@PathVariable String[] IDs) {
return toAjax(odsProcureOutOrderService.deleteOdsProcureOutOrderByIDs(IDs));
}
//退货
@PostMapping("/listReturn")
public TableDataInfo listReturn( OdsProcureOutOrder odsProcureOutOrder) {
startPage();
List<OdsProcureOutOrder> list = odsProcureOutOrderService.selectOdsProcureReturnOrderListZC(odsProcureOutOrder);
return getDataTable(list);
}
@PostMapping("/addreturnderZC")
public AjaxResult addreturnderZC(@RequestBody List<OdsProcureOutOrder> orderList) {
String result = odsProcureOutOrderService.addreturnderZC(orderList);
return success(result);
}
}

@ -95,4 +95,10 @@ public class WmsOdsMateStorageNewsController extends BaseController {
public AjaxResult remove(@PathVariable String[] storageIds) {
return toAjax(wmsOdsMateStorageNewsService.deleteWmsOdsMateStorageNewsByStorageIds(storageIds));
}
@PostMapping("/addBS")
public AjaxResult addBS(@RequestBody WmsOdsMateStorageNews wmsOdsMateStorageNews) {
String result= wmsOdsMateStorageNewsService.addBS(wmsOdsMateStorageNews);
return success(result);
}
}

@ -91,4 +91,7 @@ public interface OdsProcureOrderMapper {
public List<OdsProcureOrder> selectOdsProcureOrderList1(OdsProcureOrder odsProcureOrder);
OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder);
List<OdsProcureOrder> getIdCardByIdList(@Param("storageId")String storageId);
}

@ -131,4 +131,6 @@ public interface OdsProcureOutOrderMapper {
String selectMesReportWorkConsume(OdsProcureOutOrder order);
List<OdsProcureOutOrder> selectMesReportWorkConsumeFC(@Param("userDefined4")String userDefined4,@Param("materialCode")String materialCode);
List<OdsProcureOutOrder> selectOdsProcureReturnOrderListZC(OdsProcureOutOrder odsProcureOutOrder);
}

@ -66,4 +66,8 @@ public interface IOdsProcureOutOrderService {
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder);
List<OdsProcureOutOrder> selectOdsProcureReturnOrderListZC(OdsProcureOutOrder odsProcureOutOrder);
String addreturnderZC(List<OdsProcureOutOrder> orderList);
}

@ -58,4 +58,6 @@ public interface IWmsOdsMateStorageNewsService {
* @return
*/
public int deleteWmsOdsMateStorageNewsByStorageId(String storageId);
String addBS(WmsOdsMateStorageNews wmsOdsMateStorageNews);
}

@ -1694,7 +1694,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
public void OutboundPostingzcSAPGY(List<OdsProcureOutOrder> orderList) {
//先根据出库单获取
// * 退料的移动类型为 262
// * 领料的移动类型为 261
// * 领料的移动类型为 261-- and wms_ods_procure_out_order.Order_Status='3'
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList);
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
@ -1941,7 +1941,8 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
}
for (OdsProcureOrder odsProcureOrder:
orderList1) {//单子
orderList1) {
//单子
BigDecimal czNumber=new BigDecimal("0");
for ( OdsProcureOrder order :
orderList) {

@ -1,6 +1,7 @@
package com.op.wms.service.impl;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@ -158,4 +159,29 @@ public class OdsProcureOutOrderServiceImpl implements IOdsProcureOutOrderService
return orderList;
}
@Override
@DS("#header.poolName")
public List<OdsProcureOutOrder> selectOdsProcureReturnOrderListZC(OdsProcureOutOrder odsProcureOutOrder) {
List<OdsProcureOutOrder> orderList = odsProcureOutOrderMapper.selectOdsProcureReturnOrderListZC(odsProcureOutOrder);
return orderList;
}
@Override
public String addreturnderZC(List<OdsProcureOutOrder> orderList) {
//生成退货单,并且在对应的订单上累加加上退货数量
String result="生成退货单成功";
//生成退货单
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
//TH ods_procure_order_card
for(OdsProcureOutOrder order:orderList){
}
return null;
}
}

@ -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();
}
}
}

@ -616,5 +616,44 @@
ods_procure_order_card.User_Defined1= #{userDefined6}
</select>
<select id="getIdCardByIdList" parameterType="OdsProcureOrder" resultMap="OdsProcureOrderResult">
SELECT
Site_code,
ID,
Procure_Code,
Material_Code,
Material_Desc,
Plan_Date,
Plan_Number,
Unit,
COALESCE ( Reality_Number, 0 ) Reality_Number,
card_num cardNum,
User_Defined1,
User_Defined2,
User_Defined3,
User_Defined4,
User_Defined5,
User_Defined6,
User_Defined7,
User_Defined8,
User_Defined9,
User_Defined10,
User_Defined11,
Supplier_Code,
Supplier_Name,
Remark,
Create_By,
Create_Date,
Last_Update_By,
Last_Update_Date,
Active,
Enterprise_Id,
Enterprise_Code,
COALESCE ( Operation_Number, 0 ) Operation_Number
FROM
ods_procure_order_card
where User_Defined4=#{storageId} and User_Defined8='2'
</select>
</mapper>

@ -404,6 +404,7 @@
factory_code,
active_flag,
create_by,
Site_code,
gmt_create
)values (
#{ID},
@ -420,6 +421,7 @@
#{factoryCode},
#{Active},
#{createBy},
#{siteCode},
#{createDate} )
</insert>
@ -811,7 +813,7 @@
<foreach item="odsProcureOutOrder" collection="list" open="(" separator="," close=")">
#{odsProcureOutOrder.ID}
</foreach>
and wms_ods_procure_out_order.Order_Status='3'
and wms_ods_procure_out_order.User_Defined10!='2'
</select>
<select id="selectWmsOdsProcureOutOrder" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT
@ -1152,4 +1154,79 @@
mpd.factory_code,mpd.recoil
order by mpd.material_code
</select>
<select id="selectOdsProcureReturnOrderListZC" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT
Site_code,
ID,
Produce_Code,
Material_Code,
Material_Desc,
Plan_Date,
Plan_Number,
Unit,
COALESCE ( Out_Number, 0 ) AS Out_Number,
Loc_Code,
Loc_Desc,
Production_Line_Desc,
Production_Line_Code,
Order_Status,
User_Defined1,
User_Defined2,
User_Defined3,
User_Defined4,
User_Defined5,
User_Defined6,
User_Defined7,
User_Defined8,
User_Defined9,
User_Defined10,
User_Defined11,
Supplier_Code,
Supplier_Name,
Create_By,
Create_Date,
Last_Update_By,
Last_Update_Date,
Active,
Enterprise_Id,
Enterprise_Code
FROM
wms_ods_procure_return_order
<where>
<if test="siteCode != null and siteCode != ''"> and Site_code = #{siteCode}</if>
<if test="produceCode != null and produceCode != ''"> and Produce_Code = #{produceCode}</if>
<if test="materialCode != null and materialCode != ''"> and Material_Code = #{materialCode}</if>
<if test="materialDesc != null and materialDesc != ''"> and Material_Desc = #{materialDesc}</if>
<if test="planDate != null "> and Plan_Date = #{planDate}</if>
<if test="planNumber != null "> and Plan_Number = #{planNumber}</if>
<if test="Unit != null and Unit != ''"> and Unit = #{Unit}</if>
<if test="outNumber != null "> and Out_Number = #{outNumber}</if>
<if test="locCode != null and locCode != ''"> and Loc_Code = #{locCode}</if>
<if test="locDesc != null and locDesc != ''"> and Loc_Desc = #{locDesc}</if>
<if test="productionLineDesc != null and productionLineDesc != ''"> and Production_Line_Desc = #{productionLineDesc}</if>
<if test="productionLineCode != null and productionLineCode != ''"> and Production_Line_Code = #{productionLineCode}</if>
<if test="orderStatus != null and orderStatus != ''"> and Order_Status = #{orderStatus}</if>
<if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if>
<if test="userDefined2 != null and userDefined2 != ''"> and User_Defined2 = #{userDefined2}</if>
<if test="userDefined3 != null and userDefined3 != ''"> and User_Defined3 = #{userDefined3}</if>
<if test="userDefined4 != null and userDefined4 != ''"> and User_Defined4 = #{userDefined4}</if>
<if test="userDefined5 != null and userDefined5 != ''"> and User_Defined5 = #{userDefined5}</if>
<if test="userDefined6 != null and userDefined6 != ''"> and User_Defined6 = #{userDefined6}</if>
<if test="userDefined7 != null and userDefined7 != ''"> and User_Defined7 = #{userDefined7}</if>
<if test="userDefined8 != null and userDefined8 != ''"> and User_Defined8 = #{userDefined8}</if>
<if test="userDefined9 != null and userDefined9 != ''"> and User_Defined9 = #{userDefined9}</if>
<if test="userDefined10 != null and userDefined10 != ''"> and User_Defined10 = #{userDefined10}</if>
<if test="userDefined11 != null and userDefined11 != ''"> and User_Defined11 = #{userDefined11}</if>
<if test="supplierCode != null and supplierCode != ''"> and Supplier_Code = #{supplierCode}</if>
<if test="supplierName != null and supplierName != ''"> and Supplier_Name like concat('%', #{supplierName}, '%')</if>
<if test="createBy != null and createBy != ''"> and Create_By = #{createBy}</if>
<if test="createDate != null "> and Create_Date = #{createDate}</if>
<if test="lastUpdateBy != null and lastUpdateBy != ''"> and Last_Update_By = #{lastUpdateBy}</if>
<if test="lastUpdateDate != null "> and Last_Update_Date = #{lastUpdateDate}</if>
<if test="Active != null and Active != ''"> and Active = #{Active}</if>
<if test="enterpriseId != null and enterpriseId != ''"> and Enterprise_Id = #{enterpriseId}</if>
<if test="enterpriseCode != null and enterpriseCode != ''"> and Enterprise_Code = #{enterpriseCode}</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save