wms105过账bug

master
mengjiao 5 months ago
parent 430dec322b
commit 6ace161a53

@ -727,6 +727,7 @@ public class SapItemSyncImpl implements SapItemSyncService {
String MESSAGE= new String();
String MATERIALDOCUMENT = new String();
String MATDOCUMENTYEAR= new String();
String tem="0";
for (int i = 0; i < maraTable.getNumRows(); i++) {
mblnr = maraTable.getString("MBLNR"); // 物料凭证编号
mjahr = maraTable.getString("MJAHR"); // 物料凭证年度
@ -757,6 +758,12 @@ public class SapItemSyncImpl implements SapItemSyncService {
System.out.println("条目单位: " + erfme);
System.out.println("采购订单价格单位的数量: " + bpmng);
System.out.println("订单价格单位(采购): " + bprme);
//需要做判断
if (map.get("poNo").equals(ebeln)&&map.get("S_MATNR").equals(matnr)){//需要判断采购单和物料
tem="1";
}else {
continue;
}
JCoFunction func2 = repository.getFunction("ZMES_105_MIGO");
if (func2 == null) {
throw new RuntimeException("Function does not exist in SAP");

@ -341,6 +341,24 @@ public class WmsRawOrderIn extends BaseEntity {
private String activeFlag;
private String incomeBatchNo;
private String kem;
public String getKem() {
return kem;
}
public void setKem(String kem) {
this.kem = kem;
}
public String getIncomeBatchNo() {
return incomeBatchNo;
}
public void setIncomeBatchNo(String incomeBatchNo) {
this.incomeBatchNo = incomeBatchNo;
}
public void setRawOrderInId(String rawOrderInId) {
this.rawOrderInId = rawOrderInId;
}

@ -102,4 +102,5 @@ public interface OdsProcureOrderMapper {
List<OdsProcureOrder> getIdCardListTH(OdsProcureOrder order);
void deleteBatchPallet(@Param("list")List<OdsProcureOrder> dtos0);
}

@ -1175,7 +1175,51 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
odsProcureOrderMapper.addBatchPallet(dtos);
}
}else{
dtos.addAll(dtos0);
odsProcureOrderMapper.deleteBatchPallet(dtos0);
//说明生成过标识卡--那就删去重新生成
OdsProcureOrder pw = new OdsProcureOrder();
int i = 1;
String palletNum = baseProductAttacheds.get(0).getPalletNum();
Date nowDate = DateUtils.getNowDate();
if(palletNum!=null){
BigDecimal pall = order.getPlanNumber();
BigDecimal pn = new BigDecimal(palletNum);
while(pall.compareTo(BigDecimal.ZERO)>0){
pw = new OdsProcureOrder();
pw.setSiteCode(order.getSiteCode());
pw.setProcureCode(order.getProcureCode());
pw.setUserDefined3(order.getUserDefined3());//行项目
pw.setMaterialCode(order.getMaterialCode());
pw.setMaterialDesc(order.getMaterialDesc());
pw.setPlanNumber(pn);
pw.setSupplierCode(order.getSupplierCode());
pw.setSupplierName(order.getSupplierName());
pw.setUserDefined8(order.getUserDefined8());
pw.setUserDefined7(order.getUserDefined7());
pw.setUserDefined10("0");//标识卡状态0是未收货的
pw.setUserDefined11(order.getUserDefined11());
pw.setUserDefined4(odsProcureOrder.getID());
pw.setUnit(order.getUnit());
if(pall.compareTo(pn)<0) {//最后一托盘
pw.setPlanNumber(pall);
}else{
pw.setPlanNumber(pn);
}
pw.setCardNum(String.valueOf(i++));
String dateString = pw.getUserDefined11().replace("-", "");
pw.setUserDefined1(pw.getProcureCode()+"-"+pw.getUserDefined3()+"-"+pw.getUserDefined8()+"-"+dateString+"-"+odsProcureOrder.getID()+"-"+pw.getCardNum());//采购单+行项目+类型+日期+板次
pw.setCreateTime(nowDate);
pw.setActive("1");
dtos.add(pw);
pall = pall.subtract(pn);
}
}
if(!CollectionUtils.isEmpty(dtos)){
odsProcureOrderMapper.addBatchPallet(dtos);
}
}
for (OdsProcureOrder order1:
dtos ) {
@ -1422,60 +1466,68 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService {
@Override
@DS("#header.poolName")
public String sap105temporarilyCollected(List<OdsProcureOrder> odsProcureOrders) {
OdsProcureOrder odsProcureOrder = odsProcureOrders.get(0);
WmsRawOrderIn wmsRawOrderIn= wmsRawOrderInMapper.selectWmsRawOrderInByRawOrderInIdTWO(odsProcureOrder.getID());
Map paramMap=new HashMap<>();
List<Map> mapList = new ArrayList<>();
paramMap.put("S_MBLNR",wmsRawOrderIn.getUserDefined1());
paramMap.put("S_MJAHR",wmsRawOrderIn.getUserDefined2());
paramMap.put("S_MATNR",wmsRawOrderIn.getMaterialCode());
paramMap.put("incomeBatchNo",wmsRawOrderIn.getReturnName()); //批次
paramMap.put("ebelp",wmsRawOrderIn.getPoLine());
mapList.add(paramMap);
R result2 = remoteSapService.sap105temporarilyCollected(mapList);
if (result2.getCode()==200){
Map map = new HashMap();
map = (Map) result2.getData();
String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT");
String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR");
//成功了--成功了,根据
WmsRawOrderInSn wmsRawOrderInSn=new WmsRawOrderInSn();
wmsRawOrderInSn.setUserDefined5(wmsRawOrderIn.getDnNo());
wmsRawOrderInSn.setUserDefined1("1");//暂收
List<WmsRawOrderInSn> wmsRawOrderInSnList= wmsRawOrderInSnMapper.selectWmsRawOrderInSnList(wmsRawOrderInSn);
for (WmsRawOrderInSn wmsRawOrderInSn1:
wmsRawOrderInSnList) {
WmsOdsMateStorageNewsSn wmsRawOrderInNewsSn=new WmsOdsMateStorageNewsSn();
wmsRawOrderInNewsSn.setMaterialCode(wmsRawOrderInSn1.getMaterialCode());
wmsRawOrderInNewsSn.setWaCode(wmsRawOrderInSn1.getWaCode());
wmsRawOrderInNewsSn.setWhCode(wmsRawOrderInSn1.getWhCode());
wmsRawOrderInNewsSn.setWlCode(wmsRawOrderInSn1.getWlCode());
wmsRawOrderInNewsSn.setUserDefined3("1");
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsRawOrderInNewsSn);
wmsRawOrderInSn1.setUserDefined1("2");
wmsRawOrderInSnMapper.updateWmsRawOrderInSn(wmsRawOrderInSn1);
WmsOdsMateStorageNews wmsOdsMateStorageNews=new WmsOdsMateStorageNews();
wmsOdsMateStorageNews.setMaterialCode(wmsRawOrderInSn1.getMaterialCode());
wmsOdsMateStorageNews.setWaCode(wmsRawOrderInSn1.getWaCode());
wmsOdsMateStorageNews.setWlCode(wmsRawOrderInSn1.getWlCode());
wmsOdsMateStorageNews.setWhCode(wmsRawOrderInSn1.getWhCode());
wmsOdsMateStorageNews.setStorageAmount(wmsRawOrderInSn1.getAmount());
wmsOdsMateStorageNewsMapper.updateWmsOdsMateStorageNewsUpdateStorageAmount(wmsOdsMateStorageNews);
String result="操作完成";
for (OdsProcureOrder order: odsProcureOrders){
OdsProcureOrder odsProcureOrder = order;
WmsRawOrderIn wmsRawOrderIn= wmsRawOrderInMapper.selectWmsRawOrderInByRawOrderInIdTWO(odsProcureOrder.getID());
//这个地方
Map paramMap=new HashMap<>();
List<Map> mapList = new ArrayList<>();
paramMap.put("S_MBLNR",wmsRawOrderIn.getUserDefined1());
paramMap.put("S_MJAHR",wmsRawOrderIn.getUserDefined2());
paramMap.put("S_MATNR",wmsRawOrderIn.getMaterialCode());
paramMap.put("incomeBatchNo",wmsRawOrderIn.getIncomeBatchNo()); //批次
paramMap.put("ebelp",wmsRawOrderIn.getPoLine());
paramMap.put("poNo",wmsRawOrderIn.getPoNo());
mapList.add(paramMap);
R result2 = remoteSapService.sap105temporarilyCollected(mapList);
if (result2.getCode()==200){
Map map = new HashMap();
map = (Map) result2.getData();
String MATERIALDOCUMENT = (String) map.get("MATERIALDOCUMENT");
String MATDOCUMENTYEAR = (String) map.get("MATDOCUMENTYEAR");
//成功了--成功了,根据
WmsRawOrderInSn wmsRawOrderInSn=new WmsRawOrderInSn();
wmsRawOrderInSn.setUserDefined5(wmsRawOrderIn.getDnNo());
wmsRawOrderInSn.setUserDefined1("1");//暂收
wmsRawOrderInSn.setUserDefined3(wmsRawOrderIn.getKem());
List<WmsRawOrderInSn> wmsRawOrderInSnList= wmsRawOrderInSnMapper.selectWmsRawOrderInSnList(wmsRawOrderInSn);
for (WmsRawOrderInSn wmsRawOrderInSn1:
wmsRawOrderInSnList) {
WmsOdsMateStorageNewsSn wmsRawOrderInNewsSn=new WmsOdsMateStorageNewsSn();
wmsRawOrderInNewsSn.setMaterialCode(wmsRawOrderInSn1.getMaterialCode());
wmsRawOrderInNewsSn.setWaCode(wmsRawOrderInSn1.getWaCode());
wmsRawOrderInNewsSn.setWhCode(wmsRawOrderInSn1.getWhCode());
wmsRawOrderInNewsSn.setWlCode(wmsRawOrderInSn1.getWlCode());
wmsRawOrderInNewsSn.setUserDefined3("1");
wmsOdsMateStorageNewsSnMapper.updateWmsOdsMateStorageNewsSn(wmsRawOrderInNewsSn);
wmsRawOrderInSn1.setUserDefined1("2");
wmsRawOrderInSnMapper.updateWmsRawOrderInSn(wmsRawOrderInSn1);
WmsOdsMateStorageNews wmsOdsMateStorageNews=new WmsOdsMateStorageNews();
wmsOdsMateStorageNews.setMaterialCode(wmsRawOrderInSn1.getMaterialCode());
wmsOdsMateStorageNews.setWaCode(wmsRawOrderInSn1.getWaCode());
wmsOdsMateStorageNews.setWlCode(wmsRawOrderInSn1.getWlCode());
wmsOdsMateStorageNews.setWhCode(wmsRawOrderInSn1.getWhCode());
wmsOdsMateStorageNews.setStorageAmount(wmsRawOrderInSn1.getAmount());
wmsOdsMateStorageNewsMapper.updateWmsOdsMateStorageNewsUpdateStorageAmount(wmsOdsMateStorageNews);
}
wmsRawOrderIn.setOrderStatus("1");
wmsRawOrderIn.setAccountingTime(new Date());
wmsRawOrderIn.setAccountingMessage(result2.getMsg());
wmsRawOrderIn.setUserDefined4(MATERIALDOCUMENT);
wmsRawOrderIn.setUserDefined5(MATDOCUMENTYEAR);
wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn);
}else {
//失败了
wmsRawOrderIn.setAccountingTime(new Date());
wmsRawOrderIn.setAccountingMessage(result2.getMsg());
wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn);
}
wmsRawOrderIn.setOrderStatus("1");
wmsRawOrderIn.setAccountingTime(new Date());
wmsRawOrderIn.setAccountingMessage(result2.getMsg());
wmsRawOrderIn.setUserDefined4(MATERIALDOCUMENT);
wmsRawOrderIn.setUserDefined5(MATDOCUMENTYEAR);
wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn);
return result2.getMsg();
}else {
//失败了
wmsRawOrderIn.setAccountingTime(new Date());
wmsRawOrderIn.setAccountingMessage(result2.getMsg());
wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn);
return result2.getMsg();
}
return result;
}
@Override

@ -750,5 +750,11 @@
where User_Defined4=#{storageId} and User_Defined8='2'
</select>
<delete id="deleteBatchPallet" >
delete from ods_procure_order_card where ID in
<foreach item="list" collection="odsProcureOrder" open="(" separator="," close=")">
#{odsProcureOrder.ID}
</foreach>
</delete>
</mapper>

@ -54,7 +54,7 @@
<if test="waCode != null and waCode != ''">and wa_code = #{waCode}</if>
<if test="storageType != null and storageType != ''">and storage_type = #{storageType}</if>
<if test="wlCode != null and wlCode != ''">and wl_code = #{wlCode}</if>
<if test="materialCode != null and materialCode != ''">and material_code = #{materialCode}</if>
<if test="materialCode != null and materialCode != ''">and material_code like concat('%', #{materialCode}, '%')</if>
<if test="materialDesc != null and materialDesc != ''">and material_desc = #{materialDesc}</if>
<if test="amount != null ">and amount = #{amount}</if>
<if test="storageAmount != null ">and storage_amount = #{storageAmount}</if>
@ -81,6 +81,7 @@
<if test="sapFactoryCode != null and sapFactoryCode != ''">and sap_factory_code = #{sapFactoryCode}</if>
<if test="wlName != null and wlName != ''">and wl_name like concat('%', #{wlName}, '%')</if>
</where>
order by gmt_create desc
</select>
<select id="selectWmsOdsMateStorageNewslsList" parameterType="WmsOdsMateStorageNews"
resultMap="WmsOdsMateStorageNewsResult">

@ -58,6 +58,7 @@
<result property="gmtModified" column="gmt_modified"/>
<result property="activeFlag" column="active_flag"/>
<result property="incomeBatchNo" column="incomeBatchNo"/>
<result property="kem" column="kem"/>
</resultMap>
<sql id="selectWmsRawOrderInVo">
@ -133,8 +134,7 @@
where raw_order_in_id = #{rawOrderInId}
</select>
<select id="selectWmsRawOrderInByRawOrderInIdTWO" parameterType="String" resultMap="WmsRawOrderInResult">
SELECT DISTINCT
SELECT DISTINCT
wms_raw_order_in.raw_order_in_id,
wms_raw_order_in.factory_code,
wms_raw_order_in.wh_code,
@ -186,10 +186,13 @@
wms_raw_order_in.gmt_create,
wms_raw_order_in.last_modified_by,
wms_raw_order_in.gmt_modified,
wms_raw_order_in_sn.user_defined2 incomeBatchNo,
ods_procure_order.ID kem,
wms_raw_order_in.active_flag
FROM
wms_raw_order_in
LEFT JOIN wms_raw_order_in_sn ON wms_raw_order_in.dn_no=wms_raw_order_in_sn.user_defined5
LEFT JOIN wms_raw_order_in_sn ON wms_raw_order_in.dn_no=wms_raw_order_in_sn.user_defined5 AND wms_raw_order_in_sn.po_no=wms_raw_order_in.po_no
LEFT JOIN ods_procure_order ON ods_procure_order.ID= wms_raw_order_in_sn.user_defined3
where wms_raw_order_in.raw_order_in_id = #{rawOrderInId}
and wms_raw_order_in.order_status='0'
</select>

Loading…
Cancel
Save