wms包材退货过账接口修改

master
mengjiao 9 months ago
parent d9fdb56d9d
commit 0e7cf9b438

@ -141,4 +141,10 @@ public interface OdsProcureOutOrderMapper {
void updateOdsProcureOutOrderByPcAndMc(OdsProcureOutOrder order);
void updateWmsOdsProcureReturnOrderByID(OdsProcureOrder order1);
List<OdsProcureOutOrder> selectWmsOdsProcureReturnOrderStatus(OdsProcureOutOrder order);
List<OdsProcureOutOrder> selectWmsOdsProcureReturnOrderByID(List<OdsProcureOutOrder> orderList);
void updateWMSOdsProcureReturnOrderByids(@Param("order") OdsProcureOutOrder order, @Param("list") List<OdsProcureOutOrder> sapMaterialPostingList);
}

@ -2218,6 +2218,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
@Override
public String addReturnSC(List<OdsProcureOutOrder> orderList) {
String result="操作成功";
String produceCode = null;
String factoryCode = orderList.get(0).getFactoryCode();
DynamicDataSourceContextHolder.push("ds_" + factoryCode);
for (OdsProcureOutOrder odsProcureOutOrder :
@ -2226,6 +2227,7 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
String userDefined3= odsProcureOutOrder.getUserDefined3();//退料单id
OdsProcureOrder order1= odsProcureOrderMapper.selectWMSOdsProcureReturnOrderByID(userDefined3);
String createBy= odsProcureOutOrder.getCreateBy();//操作人
produceCode= order1.getProcureCode();
String userDefined6= odsProcureOutOrder.getUserDefined6();//标识卡
String waCode= odsProcureOutOrder.getWaCode();
String whCode= odsProcureOutOrder.getWhCode();
@ -2237,7 +2239,24 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
String userDefined1= order1.getUnit();//单位
String userDefined2= odsProcureOutOrder.getUserDefined5();//批次
//接下来我就要调整库存--修改订单
OdsProcureOutOrder order = new OdsProcureOutOrder();
order.setProduceCode(produceCode);//领料单
order.setMaterialCode(materialCode);//
order.setMaterialDesc(materialDesc);
order.setUserDefined1(userDefined2);//批次
order.setUserDefined2(whCode);
order.setUserDefined3(wlCode);
order.setSn(sn);
order.setPlanNumber(amount);
order.setLocCode(waCode);//库区
order.setID(IdUtils.fastSimpleUUID());
order.setUnit(userDefined1);
order.setFactoryCode(factoryCode);
order.setActive("1");
order.setCreateBy(createBy);
order.setCreateDate(new Date());
order.setSiteCode(factoryCode);
odsProcureOutOrderMapper.insertWmsRawMissionOut(order);
BigDecimal returnNumber= order1.getReturnNumber();
order1.setReturnNumber(returnNumber.add(amount));
if(order1.getPlanNumber().compareTo(order1.getReturnNumber())<=0){
@ -2246,9 +2265,9 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
order1.setOrderStatus("2");
}
odsProcureOutOrderMapper.updateWmsOdsProcureReturnOrderByID(order1);
OdsProcureOrder order =new OdsProcureOrder();
order.setUserDefined6(userDefined6);
odsProcureOrderMapper.updateodsProcureOrderCard(order);
OdsProcureOrder order2 =new OdsProcureOrder();
order2.setUserDefined6(userDefined6);
odsProcureOrderMapper.updateodsProcureOrderCard(order2);
//库存
//收货
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn();
@ -2302,11 +2321,18 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews);
}
}
// OdsProcureOutOrder order=new OdsProcureOutOrder();
// List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureOutOrderByOrderStatus(order);
// if (orderList1.size()>0){
// OutboundPostingzcSAPGY(orderList1);
// }
OdsProcureOutOrder order=new OdsProcureOutOrder();
order.setProduceCode(produceCode);
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureReturnOrderStatus(order);
String fx="";
for(OdsProcureOutOrder order1:orderList1){
if(order1.getProduceCode().length()<=11){
fx="X";
}
}
if (!fx.equals("X")){
OutboundPostingzcSAPGYTH(orderList1);
}
return result;
}
@ -2834,7 +2860,67 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
return null;
}
public void OutboundPostingzcSAPGYTH(List<OdsProcureOutOrder> orderList){
//先根据出库单获取
// * 退料的移动类型为 262
// * 领料的移动类型为 261-- and wms_ods_procure_out_order.Order_Status='3'
List<OdsProcureOutOrder> orderList1 = odsProcureOutOrderMapper.selectWmsOdsProcureReturnOrderByID(orderList);
List<OdsProcureOutOrder> orderList2 = new ArrayList<>();//非反冲
List<Map<String, Object>> mapList = new ArrayList<>();//非反冲
List<SapBackflushMPQuery> sapMaterialPostingFCList = new ArrayList<>();//反冲
List<OdsProcureOutOrder> orderList2FC = new ArrayList<>();//反冲
for (OdsProcureOutOrder odsProcureOutOrder :
orderList1) {
Map<String, Object> map = new HashMap<>();
map.put("AUFNR", odsProcureOutOrder.getProduceCode());
map.put("PLANT", odsProcureOutOrder.getSiteCode());
String lgort = baseWarehouseMapper.selectByCode(odsProcureOutOrder.getLocCode());
map.put("LGORT", lgort);
map.put("MATNR", odsProcureOutOrder.getMaterialCode());
map.put("QUANTITY", odsProcureOutOrder.getReturnNumber().toString());
map.put("MEINS", odsProcureOutOrder.getUnit());
mapList.add(map);
orderList2.add(odsProcureOutOrder);
}
if (mapList.size() > 0) {
//非反冲过账
SapMaterialPosting sapMaterialPosting = new SapMaterialPosting();
sapMaterialPosting.setPostingType("262");
sapMaterialPosting.setMapList(mapList);
R result = remoteSapService.sapMaterialPosting(sapMaterialPosting);
OdsProcureOutOrder order = new OdsProcureOutOrder();
int code = result.getCode();
String msg = result.getMsg();
//order.setSapMaterialPostingList(sapMaterialPostingList);
order.setUserDefined11(msg);
if (code == 200) {
//过账成功
Map map = new HashMap();
map = (Map) result.getData();
String userDefined9 = (String) map.get("MATERIALDOCUMENT");
order.setUserDefined9(userDefined9);
order.setUserDefined10("2");//成功
odsProcureOutOrderMapper.updateWMSOdsProcureReturnOrderByids(order, orderList2);
for (OdsProcureOutOrder order1:
orderList2) {
//过账成功--减库存
List<WmsOdsMateStorageNews> odsEmStorageNews= odsProcureOutOrderMapper.selectWmsRawMissionOutByPrdAndMa(order1);
for (WmsOdsMateStorageNews wmsOdsMateStorageNews:
odsEmStorageNews) {
//wmsOdsMateStorageNews
wmsOdsMateStorageNews.setLastModifiedBy(SecurityUtils.getUsername());
wmsOdsMateStorageNewsSnMapper.updatesub(wmsOdsMateStorageNews);//库存调整
}
}
} else {
//
order.setUserDefined9("");
order.setUserDefined10("3");//失败
odsProcureOutOrderMapper.updateWMSOdsProcureReturnOrderByids(order, orderList2);
}
}
}
//空托下发计划的接口
public String addPurchaseOrderOutboundTwoWCS(OrderLine orderLinete) {
// 定义请求的URL地址

@ -458,7 +458,16 @@
#{item.ID}
</foreach>
</update>
<update id="updateWMSOdsProcureReturnOrderByids">
update wms_ods_procure_return_order
set User_Defined10 = #{order.userDefined10},
User_Defined9 = #{order.userDefined9},
User_Defined11 = #{order.userDefined11}
where ID in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item.ID}
</foreach>
</update>
<update id="updateOdsProcureOutOrderByidsfc">
update ods_procure_out_order_fc
set User_Defined10 = #{order.userDefined10},
@ -821,6 +830,52 @@
</foreach>
and wms_ods_procure_out_order.User_Defined10!='2'
</select>
<select id="selectWmsOdsProcureReturnOrderByID" resultMap="OdsProcureOutOrderResult">
SELECT DISTINCT
wms_ods_procure_return_order.Site_code,
wms_ods_procure_return_order.ID,
wms_ods_procure_return_order.Produce_Code,
wms_ods_procure_return_order.Material_Code,
wms_ods_procure_return_order.Material_Desc,
wms_ods_procure_return_order.Plan_Date,
wms_ods_procure_return_order.Plan_Number,
wms_ods_procure_return_order.Unit,
COALESCE ( wms_ods_procure_return_order.Return_Number, 0 ) AS Return_Number,
wms_raw_mission_out.user_defined2 Loc_Code,
wms_ods_procure_return_order.Loc_Desc,
wms_ods_procure_return_order.Production_Line_Desc,
wms_ods_procure_return_order.Production_Line_Code,
wms_ods_procure_return_order.Order_Status,
wms_ods_procure_return_order.User_Defined1,
wms_ods_procure_return_order.User_Defined2,
wms_ods_procure_return_order.User_Defined3,
wms_ods_procure_return_order.User_Defined4,
wms_ods_procure_return_order.User_Defined5,
wms_ods_procure_return_order.User_Defined6,
wms_ods_procure_return_order.User_Defined7,
wms_ods_procure_return_order.User_Defined8,
wms_ods_procure_return_order.User_Defined9,
wms_ods_procure_return_order.User_Defined10,
wms_ods_procure_return_order.User_Defined11,
wms_ods_procure_return_order.Supplier_Code,
wms_ods_procure_return_order.Supplier_Name,
wms_ods_procure_return_order.Create_By,
wms_ods_procure_return_order.Create_Date,
wms_ods_procure_return_order.Last_Update_By,
wms_ods_procure_return_order.Last_Update_Date,
wms_ods_procure_return_order.Active,
wms_ods_procure_return_order.Enterprise_Id,
wms_ods_procure_return_order.Enterprise_Code
FROM
wms_ods_procure_return_order
LEFT JOIN wms_raw_mission_out ON wms_raw_mission_out.prd_order = wms_ods_procure_return_order.Produce_Code
AND wms_raw_mission_out.material_code = wms_ods_procure_return_order.Material_Code
where wms_ods_procure_return_order.ID IN
<foreach item="odsProcureOutOrder" collection="list" open="(" separator="," close=")">
#{odsProcureOutOrder.ID}
</foreach>
and wms_ods_procure_return_order.User_Defined10!='2'
</select>
<select id="selectWmsOdsProcureOutOrder" parameterType="OdsProcureOutOrder" resultMap="OdsProcureOutOrderResult">
SELECT
Site_code,
@ -1186,6 +1241,50 @@
where Order_Status='3' and Active='1'
and User_Defined10='1'
</select>
<select id="selectWmsOdsProcureReturnOrderStatus" 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_out_order
where Order_Status='3' and Active='1'
and User_Defined10='1' and Produce_Code=#{produceCode}
</select>
<select id="selectMesReportWorkConsume" resultType="java.lang.String">
SELECT
quantity

Loading…
Cancel
Save