add:备注未更新

This commit is contained in:
郭飞 2025-03-20 13:54:26 +08:00
parent bafdd39945
commit da6ae3fc74
3 changed files with 111 additions and 15 deletions

View File

@ -334,6 +334,67 @@ public class ToSAPServiceImpl {
}
return undoId;
}
public String FGStockIn2(String RECEIVEACTNO, String user) throws Exception {
StringBuffer sql = new StringBuffer();
sql.append(SystemPropHelper.CR)
.append("SELECT m.MATERIALSPECNAME ,").append(SystemPropHelper.CR)
.append(" m.PRODUCTORDER ,").append(SystemPropHelper.CR)
.append(" m.PACKINGGRADE ,").append(SystemPropHelper.CR)
.append(" m.ERPFACTORY ,").append(SystemPropHelper.CR)
.append(" m.ERPLOCATION ,").append(SystemPropHelper.CR)
.append(" m.UNIT ,").append(SystemPropHelper.CR)
.append(" m.PACKINGGRADE,").append(SystemPropHelper.CR)
.append(" m.MATERIALSPECTYPE,").append(SystemPropHelper.CR)
.append(" sum(m.MATERIALQUANTITY ) MATERIALQUANTITY ").append(SystemPropHelper.CR)
.append(" FROM MATERIALPACKING m ").append(SystemPropHelper.CR)
.append("LEFT JOIN BS_MES_SHIPPED bms ON m.materialpackingname = bms.lotname ").append(SystemPropHelper.CR)
.append(" WHERE bms.RECEIVE_FLAG <> 'Y' ").append(SystemPropHelper.CR)
.append(" AND m.STOCKSTATE = 'Created' ").append(SystemPropHelper.CR)
.append(" AND m.RECEIVEACTNO = :RECEIVEACTNO ").append(SystemPropHelper.CR)
.append("GROUP BY m.MATERIALSPECNAME ,m.PRODUCTORDER ,m.PACKINGGRADE ,m.ERPFACTORY ,m.ERPLOCATION ,m.UNIT ,").append(SystemPropHelper.CR)
.append(" m.PACKINGGRADE,m.MATERIALSPECTYPE ");
Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("RECEIVEACTNO", RECEIVEACTNO);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql.toString(), hashMap);
String makeFGStockIn = makeFGStockIn(queryForList, user, RECEIVEACTNO);
String sapreturn = "";
String rcode = "";
String rmsg = "";
String undoId = "";
try {
sapreturn = toSAPMessageUtil.sendHttpPost(toSAPMessageUtil.materialChangeLocationUrl, "",
makeFGStockIn);
org.json.JSONObject receiveJsonObject = new org.json.JSONObject(sapreturn);
org.json.JSONObject returnJsonObject = (org.json.JSONObject) receiveJsonObject.get("RETURN");
rcode = returnJsonObject.get("STATUS").toString();
rmsg = returnJsonObject.get("MSGTXT").toString();
if ("S".equals(rcode)) {
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
}
} catch (Exception e) {
log.error("WMS请求SAP异常:" + e.getMessage(), e);
throw new RuntimeException("WMS请求SAP异常:" + rmsg);
} finally {
// 将消息记录log表
ErpMessageLog erplog = new ErpMessageLog();
erplog.setEventUser(user);
erplog.setServerName("WmsToErp");
erplog.setEventName("FGStockIn");
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
erplog.setMessageId(RECEIVEACTNO);
erplog.setSendMsg2(makeFGStockIn);
erplog.setSendMsg(makeFGStockIn);
erplog.setReturnMsg2(sapreturn);
erplog.setResultCode(rcode);
MessageLogUtil.writeMessageLog(erplog);
}
if (!"S".equals(rcode)) {
throw new RuntimeException("SAP返回" + rmsg);
}
return undoId;
}
//取消成品入库接口zd.2024.8.29
public String cancelFGStockIn(List<String> boxList, String user,String siteName) throws Exception {

View File

@ -158,7 +158,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
bindMap.put("LOTNAME",materialPackingName);
List<Map<String,Object>> list2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql2, bindMap);
if(list2.size() < 1) {
throw new GlobalException( materialPackingName + "生产未完成入库,请联系IT处理");
throw new GlobalException( materialPackingName + "生产未完成入库,请联系生产确认");
}
String phase = (list2.get(0).get("PHASE") == null || "".equals(list2.get(0).get("PHASE"))) ? "" : list2.get(0).get("PHASE").toString();
String sdk_id = (list2.get(0).get("SDK_ID") == null || "~".equals(list2.get(0).get("SDK_ID"))) ? "" : list2.get(0).get("SDK_ID").toString();
@ -194,7 +194,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
bindMap.put("SDK_ID",sdk_id);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql3.toString(), bindMap);
if (queryForList == null || queryForList.size() < 1) {
throw new RuntimeException(materialPackingName.split("\\|")[0] + materialPackingName.split("\\|")[4] + "生产报告未完成,请联系IT处理");
throw new RuntimeException(materialPackingName.split("\\|")[0] + materialPackingName.split("\\|")[4] + "生产报告未完成,请联系生产确认");
}
EventInfo makeEventInfo = new EventInfoUtil().makeEventInfo("createfgBoxInfo", user, "createfgBoxInfo");
//IDMFrameServiceProxy.getTransactionManager().beginTransaction();
@ -293,7 +293,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
sql.append(" T.PACKINGGRADE , ");
sql.append(" T.SHIPTIME , ");
sql.append(" M3.MATERIALTYPE , ");
sql.append(" T.PHASE,T.CAREER_ASSISTANCE,T.DURABLETYPE ,T.BUSINESS_UNIT,T.SALESPERSON,T.MJPC ,T.TRUEGG,T.CHARGE,T.MAKEDATE, T.CUSTOMERNO ,"
sql.append(" T.REMARK,T.PHASE,T.CAREER_ASSISTANCE,T.DURABLETYPE ,T.BUSINESS_UNIT,T.SALESPERSON,T.MJPC ,T.TRUEGG,T.CHARGE,T.MAKEDATE, T.CUSTOMERNO ,"
+ "T.LK_DURABLENAME,T.LK_AREANAME,T.LK_PRODUCTLINE,T.LK_WIDTH ,T.LK_DEVIATION,T.LK_WEIGHT,T.LK_DIAMETER,T.LK_SHELFNAME ");
sql.append(" FROM ");
sql.append(" BS_MES_SHIPPED T ");
@ -428,7 +428,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
bindMap.put("productOrder", receiveRequestName);
bindMap.put("ReceiveRequestDetailName",receiveRequestDetailName);
bindMap.put("MakeDate", queryForList.get(0).get("MAKEDATE"));
bindMap.put("expiringDate", getExpridate(queryForList.get(0).get("MAKEDATE").toString(), queryForList.get(0).get("MATERIALSPECNAME").toString()));
bindMap.put("expiringDate", getExpridate(queryForList.get(0).get("MAKEDATE") == null ? "" : queryForList.get(0).get("MAKEDATE").toString(), queryForList.get(0).get("MATERIALSPECNAME").toString()));
bindMap.put("ReceiveTime", eventInfo.getEventTime());
bindMap.put("ReceiveUser", eventInfo.getEventUser());
bindMap.put("ShipTime",queryForList.get(0).get("SHIPTIME"));
@ -445,6 +445,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
bindMap.put("BUSINESS_UNIT", queryForList.get(0).get("BUSINESS_UNIT"));//业务
bindMap.put("SALESPERSON", queryForList.get(0).get("SALESPERSON"));//事业部
bindMap.put("MJPC", queryForList.get(0).get("MJPC"));//母卷批次
bindMap.put("remark", queryForList.get(0).get("REMARK"));//备注
if("Y".equals(is_oven)) {
bindMap.put("MATURATIONINTIME", eventInfo.getEventTime());//熟化入库时间
}
@ -685,26 +686,59 @@ public class ProductIntoServiceImpl implements FGStockInService {
List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
if (queryForList != null && queryForList.size() > 0) {
return queryForList.get(0).get("EXP").toString();
return queryForList.get(0).get("EXP") == null ? "" : queryForList.get(0).get("EXP").toString();
}
return "";
}
public boolean fgStockIn (String RECEIVEACTNO, String eventUser) throws Exception {
//根据抬头文本获取批次集合
List<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
String sql = "SELECT * FROM MATERIALPACKING WHERE RECEIVEACTNO = :RECEIVEACTNO";
// List<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
// String sql = "SELECT * FROM MATERIALPACKING WHERE RECEIVEACTNO = :RECEIVEACTNO";
// Map<String, Object> hashMap = new HashMap<String,Object> ();
// hashMap.put("RECEIVEACTNO", RECEIVEACTNO);
// List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
// for (Map<String, Object> map : queryForList) {
// MaterialPackingKey materialPackingKey = new MaterialPackingKey();
// materialPackingKey.setMaterialPackingName(map.get("MATERIALPACKINGNAME").toString());
// materialPackingKey.setSiteName(map.get("SITENAME").toString());
// MaterialPacking materialPacking = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
// boxList.add(materialPacking);
// }
// fgStockInNew(boxList, eventUser, RECEIVEACTNO, "", "");
String billCode = toSAPService.FGStockIn2(RECEIVEACTNO, eventUser);
if (billCode == null) {
throw new GlobalException("报送ERP失败,请联系IT处理");
}
EventInfo makeEventInfo = EventInfoUtil.makeEventInfo("FGStockIn", eventUser, "FGStockIn", "", "");
//更新抬头文本状态和Box状态
String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME FROM MATERIALPACKING M WHERE M.RECEIVEACTNO = :RECEIVEACTNO";
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("RECEIVEACTNO", RECEIVEACTNO);
List<Map<String,Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
for (Map<String, Object> map : queryForList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey();
materialPackingKey.setMaterialPackingName(map.get("MATERIALPACKINGNAME").toString());
materialPackingKey.setSiteName(map.get("SITENAME").toString());
MaterialPacking materialPacking = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey);
boxList.add(materialPacking);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(),map.get("MATERIALPACKINGNAME").toString());
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("unDoID", billCode);
bindMap.put("StockState", "Stocked");
setEventInfo.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
String sql2 = "UPDATE BS_MES_SHIPPED T SET T.RECEIVE_FLAG = 'Y', T.RECEIVE_TIME = SYSDATE WHERE T.LOTNAME = :LOTNAME";
Map<String, Object> hashMap2 = new HashMap<String,Object> ();
hashMap2.put("LOTNAME", map.get("MATERIALPACKINGNAME").toString());
IDMFrameServiceProxy.getSqlTemplate().update(sql2, hashMap2);
String sql3 = "UPDATE MATERIALRECEIVEACT SET RECEIVEACTSTATE = 'Received' WHERE RECEIVEACTNO = :RECEIVEACTNO";
IDMFrameServiceProxy.getSqlTemplate().update(sql3, hashMap);
}
fgStockInNew(boxList, eventUser, RECEIVEACTNO, "", "");
String commitDate=TimeStampUtil.getCurrentTime("yyyy-MM-dd");
SaveUnDoInfo( billCode, commitDate);
//更新MES标识
return true;
}

View File

@ -329,7 +329,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
sql.append(" M4.EXPIRINGDATE , ");
sql.append(" NVL(M4.MAKEDATE ,T.MAKEDATE ) SHIPTIME , ");
sql.append(" M3.MATERIALTYPE , ");
sql.append(" T.PHASE, T.RETURNPC,T.MJPC ");
sql.append(" T.REMARK, T.PHASE, T.RETURNPC,T.MJPC ");
sql.append(" FROM ");
sql.append(" BS_MES_SHIPPED T LEFT JOIN MATERIALPACKING M4 ON T.RETURNPC = M4.CHARGE AND T.PRODUCTSPECNAME = M4.MATERIALSPECNAME ");
sql.append(" LEFT JOIN MATERIALSHIPREQUEST M ON ");
@ -431,6 +431,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
bindMap.put("BUSINESS_UNIT", queryForList.get(0).get("BUSINESS_UNIT"));//业务
bindMap.put("SALESPERSON", queryForList.get(0).get("SALESPERSON"));//事业部
bindMap.put("CUSTOMNO", queryForList.get(0).get("CUSTOMNO"));//客户
bindMap.put("remark", queryForList.get(0).get("REMARK"));//备注
createInfo.setUserColumns(bindMap);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName,materialPackingName);
MaterialPackingServiceProxy.getMaterialPackingService().create(