wms包材接口修改

master
mengjiao 7 months ago
parent e1aa0eef08
commit 0cf33db060

@ -828,6 +828,10 @@ public class WmsToWCSmissionController {
String result = odsProcureOrderService.addOrderCard(odsProcureOrder);
return success(result);
}
@PostMapping("/addOrderCardX")
public AjaxResult addOrderCardX(@RequestBody List<OdsProcureOrder> orderList) {
String result = odsProcureOrderService.addOrderCardX(orderList);
return success(result);
}
}

@ -89,4 +89,6 @@ public interface OdsProcureOrderMapper {
* @return
*/
public List<OdsProcureOrder> selectOdsProcureOrderList1(OdsProcureOrder odsProcureOrder);
OdsProcureOrder selectOdsProcureOrderCardByUserDefined1(OdsProcureOrder odsProcureOrder);
}

@ -129,4 +129,6 @@ public interface IOdsProcureOrderService {
String NewConMaterialOutSC(List<OdsProcureOutOrder> odsProcureOutOrder);
void OutboundPostingzcSAP(List<OdsProcureOutOrder> orderList);
String addOrderCardX(List<OdsProcureOrder> orderList);
}

@ -1911,6 +1911,220 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
}
}
@Override
public String addOrderCardX(List<OdsProcureOrder> orderList) {
String factoryCode = orderList.get(0).getFactoryCode();
//现在是传了个list标识卡集合
String result1="操作成功";
DynamicDataSourceContextHolder.push("ds_" + factoryCode);
//如果这样的话,就区分出来单子和对应的物料。然后根据集合放入暂收集合中
List<OdsProcureOrder> orderList1=new ArrayList<>();//
for (OdsProcureOrder order:
orderList) {
OdsProcureOrder order1= odsProcureOrderMapper.selectOdsProcureOrderCardByUserDefined1(order);
order.setUserDefined7(order1.getUserDefined7());//批次
order.setPoLine(order1.getUserDefined3());
order.setUnit(order1.getUnit());
order.setID(order1.getID());
if (orderList1.size()>0){
String tem="0";
for (OdsProcureOrder odsProcureOrder:orderList1){
if (odsProcureOrder.getID().equals(order1.getID())){
tem="1";//已经保存对应订单了
}
}
if (tem.equals("0")){
orderList1.add(order1);
}
}else {
orderList1.add(order1);
}
}
for (OdsProcureOrder odsProcureOrder:
orderList1) {//单子
BigDecimal czNumber=new BigDecimal("0");
for ( OdsProcureOrder order :
orderList) {
if (order.getID().equals(odsProcureOrder.getID())){
czNumber=czNumber.add(order.getPlanNumber());
}
}
odsProcureOrder.setCzNumber(czNumber);
}
Map paramMap=new HashMap<>();
List<Map> mapList = new ArrayList<>();
for (OdsProcureOrder order :
orderList1) {
paramMap.put("EBELN",order.getProcureCode());//
paramMap.put("EBELP",order.getUserDefined3());//行项目
paramMap.put("MATNR",order.getMaterialCode());//物料
paramMap.put("WERKS",order.getSiteCode());//工厂
paramMap.put("QUANTITY",order.getCzNumber());//数量
paramMap.put("P_LFSNR",order.getUserDefined5());//送
mapList.add(paramMap);
}
R result2 = remoteSapService.temporarilyCollected(mapList);
int code = result2.getCode();
if (code == 200){
//对应采购单的标识卡
for (OdsProcureOrder order1k:
orderList) {
//标识卡信息
//wms_raw_order_in_sn
WmsRawOrderInSn wmsRawOrderInSn = new WmsRawOrderInSn();
wmsRawOrderInSn.setRawOrderInSnId(IdUtils.fastSimpleUUID());
wmsRawOrderInSn.setUserDefined1("1");//1是收货,2是入库
wmsRawOrderInSn.setUserDefined2(order1k.getUserDefined7());//批次
wmsRawOrderInSn.setWhCode(order1k.getWhCode());//厂库编号
wmsRawOrderInSn.setWaCode(order1k.getWaCode());
wmsRawOrderInSn.setWlCode(order1k.getSn());//库位设置为托盘
wmsRawOrderInSn.setPoNo(order1k.getProcureCode());//采购单号
wmsRawOrderInSn.setPoLine(order1k.getUserDefined3());//行项目
wmsRawOrderInSn.setMaterialCode(order1k.getMaterialCode());
wmsRawOrderInSn.setMaterialDesc(order1k.getMaterialDesc());
wmsRawOrderInSn.setAmount(order1k.getPlanNumber());//实际输入数量
wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode());
wmsRawOrderInSn.setCreateBy(order1k.getCreateBy());
wmsRawOrderInSn.setGmtCreate(new Date());
wmsRawOrderInSn.setActiveFlag("1");
wmsRawOrderInSn.setUserDefined4(order1k.getUnit());//单位
wmsRawOrderInSn.setSn(order1k.getSn());//托盘号
wmsRawOrderInSn.setFactoryCode(order1k.getFactoryCode());
wmsRawOrderInSn.setUserDefined3(order1k.getID());
wmsRawOrderInSn.setUserDefined5(order1k.getReceiptNoCode());
wmsRawOrderInSn.setUserDefined6(order1k.getUserDefined6());//标识码绑定
wmsRawOrderInSnMapper.insertWmsRawOrderInSn(wmsRawOrderInSn);
//标识码绑定
if (order1k.getUserDefined6()!=null){
WmsLogotypeTable wmsLogotypeTable=new WmsLogotypeTable();
wmsLogotypeTable.setId(IdUtils.fastSimpleUUID());
wmsLogotypeTable.setLogotype(order1k.getUserDefined6());
wmsLogotypeTable.setSn(order1k.getSn());
wmsLogotypeTable.setActiveFlag("1");
wmsRawOrderInSnMapper.insertWmsLogotypeTable(wmsLogotypeTable);
}
odsProcureOrderMapper.updateodsProcureOrderCard(order1k);
}
Map map = new HashMap();
map = (Map) result2.getData();
String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT");
String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR");
for (OdsProcureOrder odsProcureOrder:
orderList1) {
BigDecimal planNumber= odsProcureOrder.getPlanNumber();
;//操作数量
odsProcureOrder.setOrderStatus("1");
BigDecimal result = odsProcureOrder.getRealityNumber().add(odsProcureOrder.getCzNumber());
System.out.println(result);
if (result.compareTo(planNumber)== 0) {
odsProcureOrder.setOrderStatus("2");
}
odsProcureOrder.setPlanNumber(odsProcureOrder.getCzNumber());
odsProcureOrderMapper.updateRealityNuById(odsProcureOrder);
}
for (OdsProcureOrder odsProcureOrder:
orderList1) {
//标识卡记录已经录入,订单已经修改完成
OdsProcureOrder order1 = odsProcureOrderMapper.selectOdsProcureOrderByID(odsProcureOrder.getID());
order1.setSapTempInfor(result2.getMsg());
WmsRawOrderIn wmsRawOrderIn=new WmsRawOrderIn();
wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID());
wmsRawOrderIn.setFactoryCode(odsProcureOrder.getFactoryCode());
wmsRawOrderIn.setDnNo(odsProcureOrder.getReceiptNoCode());
wmsRawOrderIn.setPoNo(odsProcureOrder.getProcureCode());
wmsRawOrderIn.setPoLine(odsProcureOrder.getUserDefined3());
wmsRawOrderIn.setMaterialCode(odsProcureOrder.getMaterialCode());
wmsRawOrderIn.setMaterialDesc(odsProcureOrder.getMaterialDesc());
wmsRawOrderIn.setRequestAmount(odsProcureOrder.getCzNumber());
wmsRawOrderIn.setUnit(odsProcureOrder.getUnit());
wmsRawOrderIn.setRequestTime(new Date());
wmsRawOrderIn.setOrderStatus("0");//暂收
wmsRawOrderIn.setActiveFlag("1");
wmsRawOrderIn.setSupplyCode(odsProcureOrder.getSupplierCode());
//wmsRawOrderIn.setUserDefined1();
wmsRawOrderIn.setAccountingStatus("0");//0是暂收
wmsRawOrderIn.setUserDefined1(MATERIALDOCUMENT);//物料凭证编号
wmsRawOrderIn.setUserDefined2(MATDOCUMENTYEAR);//年凭证号
wmsRawOrderIn.setUserDefined3(result2.getMsg());//暂收信息
//wmsRawOrderIn.setAccountingMessage(result2.getMsg());
wmsRawOrderIn.setSapFactoryCode(odsProcureOrder.getFactoryCode());
wmsRawOrderIn.setCreateBy(odsProcureOrder.getCreateBy());
wmsRawOrderIn.setGmtCreate(new Date());
wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn);
order1.setSapTempStatus("1");//0是失败。1是成功
odsProcureOrderMapper.updateOdsProcureOrder(order1);
}
for (OdsProcureOrder odsProcureOrder1:orderList){
//收货
WmsOdsMateStorageNewsSn wmsOdsMateStorageNewsSn = new WmsOdsMateStorageNewsSn();
wmsOdsMateStorageNewsSn.setMateOrderInSnId(IdUtils.fastSimpleUUID());
wmsOdsMateStorageNewsSn.setWhCode(odsProcureOrder1.getWhCode());//仓库编码
wmsOdsMateStorageNewsSn.setWaCode(odsProcureOrder1.getWaCode());
wmsOdsMateStorageNewsSn.setWlCode(odsProcureOrder1.getSn());//库位编码-
wmsOdsMateStorageNewsSn.setMaterialCode(odsProcureOrder1.getMaterialCode());
wmsOdsMateStorageNewsSn.setMaterialDesc(odsProcureOrder1.getMaterialDesc());
wmsOdsMateStorageNewsSn.setSn(odsProcureOrder1.getSn());
wmsOdsMateStorageNewsSn.setAmount(odsProcureOrder1.getPlanNumber());
wmsOdsMateStorageNewsSn.setCreateBy(odsProcureOrder1.getCreateBy());
wmsOdsMateStorageNewsSn.setGmtCreate(new Date());
wmsOdsMateStorageNewsSn.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次
wmsOdsMateStorageNewsSn.setUserDefined1("RK");
wmsOdsMateStorageNewsSn.setUserDefined3("0");//0是暂收1是真收
wmsOdsMateStorageNewsSn.setFactoryCode(odsProcureOrder1.getFactoryCode());
wmsOdsMateStorageNewsSn.setSapFactoryCode(odsProcureOrder1.getFactoryCode());
wmsOdsMateStorageNewsSn.setActiveFlag("1");
wmsOdsMateStorageNewsSnMapper.insertWmsOdsMateStorageNewsSn(wmsOdsMateStorageNewsSn);
//修改库存
//2,修改库存---/加库存数量-/-冻结数量
WmsOdsEmStorageNews wmsOdsEmStorageNews = new WmsOdsEmStorageNews();
wmsOdsEmStorageNews.setWhCode(odsProcureOrder1.getWhCode());//仓库编码
wmsOdsEmStorageNews.setWlCode(odsProcureOrder1.getSn());//库位编码
wmsOdsEmStorageNews.setWaCode(odsProcureOrder1.getWaCode());//库位编码
wmsOdsEmStorageNews.setMaterialCode(odsProcureOrder1.getMaterialCode());
wmsOdsEmStorageNews.setUserDefined2(odsProcureOrder1.getUserDefined7());//批次
wmsOdsEmStorageNews.setAmount(odsProcureOrder1.getPlanNumber());
//添加库存--这个要有个判断有没有这个库存如果没有的话,就插入
WmsOdsMateStorageNews wmsOdsMateStorageNews = wmsOdsMateStorageNewsMapper.selectByWhCodeAndMate(wmsOdsEmStorageNews);
if (wmsOdsMateStorageNews == null) {
WmsOdsMateStorageNews wmsOdsMateStorageNews1 = new WmsOdsMateStorageNews();
wmsOdsMateStorageNews1.setStorageId(IdUtils.fastSimpleUUID());
wmsOdsMateStorageNews1.setWhCode(odsProcureOrder1.getWhCode());
wmsOdsMateStorageNews1.setWlCode(odsProcureOrder1.getSn());
wmsOdsMateStorageNews1.setWaCode(odsProcureOrder1.getWaCode());
wmsOdsMateStorageNews1.setAmount(odsProcureOrder1.getPlanNumber());
wmsOdsMateStorageNews1.setStorageAmount(odsProcureOrder1.getPlanNumber());
wmsOdsMateStorageNews1.setMaterialCode(odsProcureOrder1.getMaterialCode());
wmsOdsMateStorageNews1.setMaterialDesc(odsProcureOrder1.getMaterialDesc());
wmsOdsMateStorageNews1.setStorageType("BC");
wmsOdsMateStorageNews1.setCreateBy(odsProcureOrder1.getCreateBy());
wmsOdsMateStorageNews1.setGmtCreate(new Date());
wmsOdsMateStorageNews1.setActiveFlag("1");
wmsOdsMateStorageNews1.setFactoryCode(odsProcureOrder1.getFactoryCode());
wmsOdsMateStorageNews1.setSapFactoryCode(odsProcureOrder1.getFactoryCode());
wmsOdsMateStorageNews1.setUserDefined1(odsProcureOrder1.getUnit());//单位
wmsOdsMateStorageNewsMapper.insertWmsOdsMateStorageNews(wmsOdsMateStorageNews1);
} else {
wmsOdsMateStorageNewsSnMapper.updateAdd(wmsOdsEmStorageNews);
}
// wmsRawOrderInSnMapper.updateU1Byid(wmsRawOrderInSn);//入库
}
}else {////失败|
result1="暂收失败";
for (OdsProcureOrder order :
orderList1) {
OdsProcureOrder order2 = odsProcureOrderMapper.selectOdsProcureOrderByID(order.getID());
order2.setSapTempInfor(result2.getMsg());
order2.setSapTempStatus("0");//0是失败。1是成功
odsProcureOrderMapper.updateOdsProcureOrder(order2);
}
return result1;
}
return result1;
}
public String dayin( List<OdsProcureOrder> orderList) {
// 定义请求的URL地址

@ -575,5 +575,46 @@
SET User_Defined10 = '1'
where User_Defined1 = #{userDefined6}
</update>
<select id="selectOdsProcureOrderCardByUserDefined1" parameterType="OdsProcureOrder" resultMap="OdsProcureOrderResult">
SELECT
ods_procure_order.Site_code,
ods_procure_order.ID,
ods_procure_order.Procure_Code,
ods_procure_order.Material_Code,
ods_procure_order.Material_Desc,
ods_procure_order.Plan_Date,
ods_procure_order.Plan_Number,
ods_procure_order.Unit,
COALESCE ( ods_procure_order.Reality_Number, 0 ) Reality_Number,
ods_procure_order.Order_Status,
ods_procure_order.User_Defined1,
ods_procure_order.User_Defined2,
ods_procure_order.User_Defined3,
ods_procure_order.User_Defined4,
ods_procure_order.User_Defined5,
ods_procure_order.User_Defined6,
ods_procure_order.User_Defined7,
ods_procure_order.User_Defined8,
ods_procure_order.User_Defined9,
ods_procure_order.User_Defined10,
ods_procure_order.User_Defined11,
ods_procure_order.Supplier_Code,
ods_procure_order.Supplier_Name,
ods_procure_order.Remark,
ods_procure_order.Create_By,
ods_procure_order.Create_Date,
ods_procure_order.Last_Update_By,
ods_procure_order.Last_Update_Date,
ods_procure_order.Active,
ods_procure_order.Enterprise_Id,
ods_procure_order.Enterprise_Code,
COALESCE ( ods_procure_order.Operation_Number, 0 ) Operation_Number
FROM
ods_procure_order_card
LEFT JOIN ods_procure_order ON ods_procure_order_card.User_Defined4= ods_procure_order.ID
WHERE
ods_procure_order_card.User_Defined1= #{userDefined6}
</select>
</mapper>

@ -1045,6 +1045,7 @@
<if test="userDefined1 != null and userDefined1 != ''"> and User_Defined1 = #{userDefined1}</if>
<if test="Active != null and Active != ''"> and Active = #{Active}</if>
</where>
ORDER BY Create_Date DESC
</select>
<select id="selectWmsRawMissionOutByPrdAndMa" resultType="com.op.wms.domain.WmsOdsMateStorageNews">
SELECT

@ -432,7 +432,7 @@
pro_order_workorder_batch_pallet.workorder_code= #{workOrder}
AND pro_order_workorder_batch_pallet.batch_code= #{batchNumber}
AND pro_order_workorder_batch_pallet.pallet_num= #{pallet}
AND pro_order_workorder_batch_pallet.del_flag = '0'
</select>
<select id="selectProOrderWorkorderBatchPalletcode" resultMap="WmsProductPutResult">

Loading…
Cancel
Save