update 备货出库,点击出库按钮,需要二次确认,更新标签状态为StockPending。
This commit is contained in:
parent
ff6484dcae
commit
e8e1635248
@ -343,7 +343,7 @@ public class ConstantMap extends com.cim.idm.wmspackage.generic.master.ConstantM
|
||||
public String STOCKSTATE_STOCKED = "Stocked";
|
||||
public String STOCKSTATE_STOCKOUT = "StockOut";
|
||||
public String STOCKSTATE_RELEASED = "Released";
|
||||
|
||||
public String STOCKSTATE_STOCKPENDING = "StockPending";
|
||||
|
||||
private Map<String, String> constantDefsMap = new HashMap<String, String>();
|
||||
|
||||
|
@ -2118,7 +2118,7 @@ public class ToSAPServiceImpl {
|
||||
" WHERE \r\n" +
|
||||
" T.SHIPREQUESTNAME = :SHIPREQUESTNAME\r\n" +
|
||||
" AND T.SITENAME = :SITENAME\r\n" +
|
||||
" AND T.STOCKSTATE = 'Stocked'\r\n" +
|
||||
" AND T.STOCKSTATE = 'StockPending'\r\n" +
|
||||
" AND T.MATERIALPACKINGNAME IN (:BOXLIST)\r\n" +
|
||||
" GROUP BY\r\n" +
|
||||
" t.MATERIALSPECNAME,\r\n" +
|
||||
|
@ -23,6 +23,7 @@ import com.cim.idm.utils.AjaxResult;
|
||||
import com.cim.idm.utils.CodeGenerator;
|
||||
import com.cim.idm.utils.CommonUtils;
|
||||
import com.cim.idm.utils.EventInfoUtil;
|
||||
import com.cim.idm.wmsextend.generic.GenericServiceProxy;
|
||||
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
|
||||
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
|
||||
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
|
||||
@ -3159,6 +3160,14 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
*/
|
||||
//抛送MES数据
|
||||
untils.sendMaterialInfoToMES_NEW2(shipRequestName, "", materialPackingKeyList);
|
||||
//更新BOX状态
|
||||
EventInfo mesEventInfo = eventInfoUtil.makeEventInfo("CompletedShipRequestMES", eventUser, "CompletedShipRequestMES");
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
Map<String, Object> hashMapPack = new HashMap<String,Object> ();
|
||||
hashMapPack.put("stockState", GenericServiceProxy.getConstantMap().STOCKSTATE_STOCKPENDING);
|
||||
hashMapPack.put("oldStockState", GenericServiceProxy.getConstantMap().STOCKSTATE_STOCKED);
|
||||
setEventInfo.setUserColumns(hashMapPack);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(arrayList, mesEventInfo, setEventInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -181,7 +181,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
|
||||
String billCode = new ToSAPServiceImpl().ProductionStockOut_NEW(shipRequestName, "SDK", "MES", boxIdList);
|
||||
|
||||
EventInfo makeEventInfo = new EventInfoUtil().makeEventInfo("CompleteShipRequest", "MES", "CompleteShipRequest:MES Receive");
|
||||
new CommonUtils().SaveUnDoInfo_ForSap(boxIdList, billCode, makeEventInfo);
|
||||
new CommonUtils().SaveUnDoInfoByStockPending(boxIdList, billCode, makeEventInfo);
|
||||
|
||||
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功");
|
||||
loginfo.setResultCode("S");
|
||||
|
@ -721,6 +721,93 @@ public void SaveUnDoInfo_ForSap(List<String> list, String undoid, EventInfo mak
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新BOX信息并插入UNDOINFO
|
||||
* @param list 标签ID
|
||||
* @param undoid 物料凭证
|
||||
* @param makeEventInfo 事件信息
|
||||
*/
|
||||
public void SaveUnDoInfoByStockPending(List<String> list, String undoid, EventInfo makeEventInfo) {
|
||||
|
||||
|
||||
// 更新事件名
|
||||
// 此SQL语句用于更新物料包装的最后事件名称、评论和时间
|
||||
String sqlu="UPDATE MATERIALPACKING m SET m.LASTEVENTNAME=:LASTEVENTNAME,m.LASTEVENTCOMMENT =:LASTEVENTCOMMENT,m.LASTEVENTTIME =SYSDATE \r\n" +
|
||||
" WHERE m.SITENAME =:SITENAME AND m.MATERIALPACKINGNAME in (:BOXLIST)";
|
||||
Map<String,Object> bpu = new HashMap<String,Object> ();
|
||||
bpu.put("LASTEVENTNAME", makeEventInfo.getEventName());
|
||||
bpu.put("LASTEVENTCOMMENT", makeEventInfo.getEventComment());
|
||||
bpu.put("SITENAME", "SDK");
|
||||
bpu.put("BOXLIST", list);
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(sqlu, bpu);
|
||||
|
||||
// 销售交货单不返回凭证
|
||||
// 如果undoid不等于"S",则执行更新和插入操作,以记录undo信息
|
||||
if(!StringUtils.equals("S", undoid))
|
||||
{
|
||||
// 更新undo信息
|
||||
// 此SQL语句用于更新物料包装的undoid,仅当库存状态为'Stocked'时
|
||||
String updateUndoInfo = "UPDATE MATERIALPACKING T SET T.unDoID = :unDoID WHERE T.MATERIALPACKINGNAME in (:MATERIALPACKINGNAME) "
|
||||
+ " AND STOCKSTATE = 'StockPending'";
|
||||
|
||||
Map<String,Object> map = new HashMap<String,Object> ();
|
||||
map.put("MATERIALPACKINGNAME", list);
|
||||
map.put("unDoID", undoid);
|
||||
IDMFrameServiceProxy.getSqlTemplate().update(updateUndoInfo, map);
|
||||
|
||||
|
||||
// 插入undo物料包装信息
|
||||
// 此SQL语句用于插入新的记录到BS_MATERIALPACKINGUNDOINFO表中,记录详细的undo信息
|
||||
String insertUnDOMaterialPackingInfo = "insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE,"
|
||||
+ "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,"
|
||||
+ "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,"
|
||||
+ "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"
|
||||
+ "DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,"
|
||||
+ "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,"
|
||||
+ "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,"
|
||||
+ "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG)"
|
||||
+ "select unDoID,'' as preundoid,UNDODETAILNAME,'Created' as undoidstate,:UNDOIDDATE AS UNDOIDDATE," //
|
||||
+ "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,"
|
||||
+ "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,"
|
||||
+ "DECODE(MATERIALQUANTITY2,0,MATERIALQUANTITY,MATERIALQUANTITY2) MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"
|
||||
+ "DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,"
|
||||
+ "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,"
|
||||
+ "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,"
|
||||
+ "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG"
|
||||
+ " from MATERIALPACKING "
|
||||
+ " where unDoID=:UNDOID";
|
||||
|
||||
Map<String, Object> bindMap_insert = new HashMap<String, Object>();
|
||||
bindMap_insert.put("UNDOIDDATE", "");
|
||||
bindMap_insert.put("UNDOID", undoid);
|
||||
IDMFrameServiceProxy.getSqlTemplate()
|
||||
.update(insertUnDOMaterialPackingInfo, bindMap_insert);
|
||||
}
|
||||
// 更新Box状态
|
||||
// 根据物料数量和包装数量,更新物料包装的状态和相关属性
|
||||
for (String s : list) {
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",s);
|
||||
com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking selectByKey = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
|
||||
double materialQuantity = selectByKey.getMaterialQuantity();
|
||||
double materialQuantity2 = selectByKey.getMaterialQuantity2();
|
||||
BigDecimal fmaterialQuantity = new BigDecimal(materialQuantity);
|
||||
BigDecimal fmaterialQuantity2 = new BigDecimal(materialQuantity2);
|
||||
if (fmaterialQuantity.compareTo(fmaterialQuantity2) > 0 && fmaterialQuantity2.compareTo(BigDecimal.ZERO) != 0) {
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("materialQuantity", fmaterialQuantity.subtract(fmaterialQuantity2));
|
||||
hashMap.put("materialQuantity2", 0);
|
||||
hashMap.put("shipRequestName", "");
|
||||
hashMap.put("shipRequestDetailName", "");
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
setEventInfo.setUserColumns(hashMap);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
|
||||
} else {
|
||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
||||
hashMap.put("stockState", "StockOut");
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
setEventInfo.setUserColumns(hashMap);
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user