diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java index df3b46c7e..2eaaa8714 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/OdsProcureOutOrderController.java @@ -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 list = odsProcureOutOrderService.selectOdsProcureReturnOrderListZC(odsProcureOutOrder); + return getDataTable(list); + } + @PostMapping("/addreturnderZC") + public AjaxResult addreturnderZC(@RequestBody List orderList) { + String result = odsProcureOutOrderService.addreturnderZC(orderList); + return success(result); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsController.java index 034e566e1..6001fdbf4 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsOdsMateStorageNewsController.java @@ -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); + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java index 4cce83fe8..b3b2f70b7 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOrderMapper.java @@ -91,4 +91,7 @@ public interface OdsProcureOrderMapper { public List selectOdsProcureOrderList1(OdsProcureOrder odsProcureOrder); OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder); + + + List getIdCardByIdList(@Param("storageId")String storageId); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java index 3f6c8f2d7..aaa94423f 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/mapper/OdsProcureOutOrderMapper.java @@ -131,4 +131,6 @@ public interface OdsProcureOutOrderMapper { String selectMesReportWorkConsume(OdsProcureOutOrder order); List selectMesReportWorkConsumeFC(@Param("userDefined4")String userDefined4,@Param("materialCode")String materialCode); + + List selectOdsProcureReturnOrderListZC(OdsProcureOutOrder odsProcureOutOrder); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java index e2a81275d..09d3c5226 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IOdsProcureOutOrderService.java @@ -66,4 +66,8 @@ public interface IOdsProcureOutOrderService { List selectOdsProcureOutOrderListZUfc(OdsProcureOutOrder odsProcureOutOrder); List selectOdsProcureOutOrderListZC(OdsProcureOutOrder odsProcureOutOrder); + + List selectOdsProcureReturnOrderListZC(OdsProcureOutOrder odsProcureOutOrder); + + String addreturnderZC(List orderList); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsService.java b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsService.java index 2bfb141a0..54dc791a2 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsService.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/IWmsOdsMateStorageNewsService.java @@ -58,4 +58,6 @@ public interface IWmsOdsMateStorageNewsService { * @return 结果 */ public int deleteWmsOdsMateStorageNewsByStorageId(String storageId); + + String addBS(WmsOdsMateStorageNews wmsOdsMateStorageNews); } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 07b9a5f29..dcd9c6be3 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -1694,7 +1694,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { public void OutboundPostingzcSAPGY(List orderList) { //先根据出库单获取 // * 退料的移动类型为 262 -// * 领料的移动类型为 261 +// * 领料的移动类型为 261-- and wms_ods_procure_out_order.Order_Status='3' List orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByIDs(orderList); List orderList2 = new ArrayList<>();//非反冲 List> 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) { diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java index e0b42ebda..449a2fc22 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOutOrderServiceImpl.java @@ -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 selectOdsProcureReturnOrderListZC(OdsProcureOutOrder odsProcureOutOrder) { + List orderList = odsProcureOutOrderMapper.selectOdsProcureReturnOrderListZC(odsProcureOutOrder); + return orderList; + } + + @Override + public String addreturnderZC(List orderList) { + //生成退货单,并且在对应的订单上累加加上退货数量 + String result="生成退货单成功"; + //生成退货单 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + //TH ods_procure_order_card + for(OdsProcureOutOrder order:orderList){ + + + + + } + + + return null; + } } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsServiceImpl.java index d65500a6d..e299c7c5d 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/WmsOdsMateStorageNewsServiceImpl.java @@ -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 dtos0= odsProcureOrderMapper.getIdCardByIdList(wmsOdsMateStorageNews.getStorageId()); + if (dtos0.size()>0){ + List 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 list = new ArrayList<>(); + Listdtos=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 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(); + } + } + + + } diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml index 028fd6d90..8c110c49c 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOrderMapper.xml @@ -616,5 +616,44 @@ ods_procure_order_card.User_Defined1= #{userDefined6} + diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml index 68b4164f3..2da0c3f3f 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml @@ -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} ) @@ -811,7 +813,7 @@ #{odsProcureOutOrder.ID} - and wms_ods_procure_out_order.Order_Status='3' + and wms_ods_procure_out_order.User_Defined10!='2' +