This commit is contained in:
郭飞 2025-05-19 17:58:09 +08:00
commit e2e25a1e39
5 changed files with 140 additions and 5 deletions

View File

@ -555,7 +555,7 @@ public class MaterialReceiveActController {
EventInfoUtil util = new EventInfoUtil();
makeEventInfo = util.makeEventInfo("NormalStockInForSDK", user, "NormalStockInForSDK");
// 更新入库凭证
SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoId, makeEventInfo);
SDKMaterialPackingServiceImpl.updateUndoIdByReceive(receiveRequestName, undoId, makeEventInfo, sign);
/**
* updateUndoIdByReceive和updateStockState都在MATERIALPACKINGHISTORY表插入了数据导致有重复的入库记录
* 为了不影响后续通过undoId作为条件处理其它业务新建方法updateMaterialPackingUndoIdByReceive只更新undoId不插入MATERIALPACKINGHISTORY表

View File

@ -5,6 +5,7 @@ import java.util.*;
import java.util.stream.Collectors;
import com.cim.idm.framework.template.workflow.BpelExecuter;
import com.cim.idm.framework.util.sys.SystemPropHelper;
import com.cim.idm.model.ErpMessageLog;
import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult;
@ -1342,6 +1343,106 @@ public class QMSController {
bindMap.put("RESULTMESSAGE2", log.getReturnMsg2());// 返回结果的json
IDMFrameServiceProxy.getSqlTemplate().update(sql, bindMap);
}
/**
* 2025-05-19
* 接收物料组质检周期
* @param in 物料组
* @return 结果
* @throws Exception
*/
// @Transactional(isolation= Isolation.READ_COMMITTED)
@Transactional
@RequestMapping(value = "/materialSpecIQCFlag", method = RequestMethod.POST)
public AjaxResult MaterialSpecIQCFlag(@RequestBody JSONArray in) throws Exception {
AjaxResult result = new AjaxResult();
EventInfo makeEventInfo = new EventInfoUtil().makeEventInfo("materialSpecIQCFlag", "IQC", "materialSpecIQCFlag");
String siteName = "SDK";
ErpMessageLog loginfo = new ErpMessageLog();
loginfo.setServerName("QMSToWms");
loginfo.setMessageId("");
loginfo.setEventUser(makeEventInfo.getEventUser());
loginfo.setId(UUID.randomUUID().toString());
loginfo.setInterfaceTime(ConvertUtil.getCurrTime("yyyy-MM-dd HH:mm:ss"));
loginfo.setSendMsg(in.toJSONString());
loginfo.setEventName(makeEventInfo.getEventName());
Map<String, Object> updateMaterialSpecMap = new HashMap<String, Object>();
Map<String, Object> insertBsMaterialSpecIqcFlagMap = new HashMap<String, Object>();
Map<String, Object> updateBsMaterialSpecIqcFlagMap = new HashMap<String, Object>();
if(!in.isEmpty()){
String updateMaterialSpecSql = "UPDATE MATERIALSPEC SET IQCFLAG =:IQCFLAG WHERE MATERIALGROUP =:MATERIALGROUP AND SITENAME =:SITENAME";
String insertBsMaterialSpecIqcFlagSql = "INSERT INTO BS_MATERIALSPECIQCFLAG (SITENAME, MATERIALGROUP, IQCFLAG, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER, LASTEVENTCOMMENT, INSPECTIONCYCLE, ORGNO) " + SystemPropHelper.CR +
"VALUES(:SITENAME, :MATERIALGROUP, :IQCFLAG, :LASTEVENTNAME, :LASTEVENTTIMEKEY, :LASTEVENTTIME,:LASTEVENTUSER, :LASTEVENTCOMMENT, :INSPECTIONCYCLE, :ORGNO)";
String updateBsMaterialSpecIqcFlagSql = "UPDATE BS_MATERIALSPECIQCFLAG SET IQCFLAG = :IQCFLAG, INSPECTIONCYCLE =:INSPECTIONCYCLE, LASTEVENTNAME =:LASTEVENTNAME, LASTEVENTTIMEKEY =:LASTEVENTTIMEKEY, LASTEVENTTIME =:LASTEVENTTIME, LASTEVENTUSER =:LASTEVENTUSER, LASTEVENTCOMMENT =:LASTEVENTCOMMENT, ORGNO =:ORGNO WHERE SITENAME = :SITENAME AND MATERIALGROUP = :MATERIALGROUP";
for (int i = 0; i < in.size(); i++) {
JSONObject jb = in.getJSONObject(i);
String materialGroup = jb.get("materialGroup") == null ? "" : jb.get("materialGroup").toString();//物料组
String iqcFlag = jb.get("iqcFlag") == null ? "" : jb.get("iqcFlag").toString();//是否质检
String inspectionCycle = jb.get("inspectionCycle") == null ? "" : jb.get("inspectionCycle").toString();//检验周期
String orgno = jb.get("orgno") == null ? "" : jb.get("orgno").toString();//组织
if (StringUtils.isNotEmpty(materialGroup)) {
String selectBsMaterialSpecIqcFlagSql = " SELECT count(1) num FROM BS_MATERIALSPECIQCFLAG WHERE SITENAME = :SITENAME AND MATERIALGROUP = :MATERIALGROUP ";
Map<String, Object> bsMaterialSpecIqcFlagMap = new HashMap<String,Object> ();
bsMaterialSpecIqcFlagMap.put("SITENAME", siteName);
bsMaterialSpecIqcFlagMap.put("MATERIALGROUP", materialGroup);
List<Map<String, Object>> bsMaterialSpecIqcFlagList = IDMFrameServiceProxy.getSqlTemplate().queryForList(selectBsMaterialSpecIqcFlagSql, bsMaterialSpecIqcFlagMap);
String bsMaterialSpecIqcFlagNum = bsMaterialSpecIqcFlagList.get(0).get("NUM").toString();
if("0".equals(bsMaterialSpecIqcFlagNum)) {
//insert BS_MATERIALSPECIQCFLAG
insertBsMaterialSpecIqcFlagMap.put("SITENAME", siteName);
insertBsMaterialSpecIqcFlagMap.put("MATERIALGROUP", materialGroup);
insertBsMaterialSpecIqcFlagMap.put("IQCFLAG", iqcFlag);
insertBsMaterialSpecIqcFlagMap.put("INSPECTIONCYCLE", inspectionCycle);
insertBsMaterialSpecIqcFlagMap.put("ORGNO", orgno);
insertBsMaterialSpecIqcFlagMap.put("LASTEVENTTIMEKEY", makeEventInfo.getEventTimeKey());
insertBsMaterialSpecIqcFlagMap.put("LASTEVENTTIME", makeEventInfo.getEventTime());
insertBsMaterialSpecIqcFlagMap.put("LASTEVENTUSER", makeEventInfo.getEventUser());
insertBsMaterialSpecIqcFlagMap.put("LASTEVENTCOMMENT", makeEventInfo.getEventComment());
insertBsMaterialSpecIqcFlagMap.put("LASTEVENTNAME", makeEventInfo.getEventName());
IDMFrameServiceProxy.getSqlTemplate().update(insertBsMaterialSpecIqcFlagSql, insertBsMaterialSpecIqcFlagMap);
}
else {
//update BS_MATERIALSPECIQCFLAG
updateBsMaterialSpecIqcFlagMap.put("SITENAME", siteName);
updateBsMaterialSpecIqcFlagMap.put("MATERIALGROUP", materialGroup);
updateBsMaterialSpecIqcFlagMap.put("IQCFLAG", iqcFlag);
updateBsMaterialSpecIqcFlagMap.put("INSPECTIONCYCLE", inspectionCycle);
updateBsMaterialSpecIqcFlagMap.put("ORGNO", orgno);
updateBsMaterialSpecIqcFlagMap.put("LASTEVENTTIMEKEY", makeEventInfo.getEventTimeKey());
updateBsMaterialSpecIqcFlagMap.put("LASTEVENTTIME", makeEventInfo.getEventTime());
updateBsMaterialSpecIqcFlagMap.put("LASTEVENTUSER", makeEventInfo.getEventUser());
updateBsMaterialSpecIqcFlagMap.put("LASTEVENTCOMMENT", makeEventInfo.getEventComment());
updateBsMaterialSpecIqcFlagMap.put("LASTEVENTNAME", makeEventInfo.getEventName());
IDMFrameServiceProxy.getSqlTemplate().update(updateBsMaterialSpecIqcFlagSql, updateBsMaterialSpecIqcFlagMap);
//update MATERIALSPEC
updateMaterialSpecMap.put("SITENAME",siteName);
updateMaterialSpecMap.put("MATERIALGROUP",materialGroup);
updateMaterialSpecMap.put("IQCFLAG",iqcFlag);
IDMFrameServiceProxy.getSqlTemplate().update(updateMaterialSpecSql, updateMaterialSpecMap);
}
}else {
result = AjaxResult.me().setErrorCode(400).setMessage("materialGroupiqcFlaginspectionCycle属于必传字段");
loginfo.setResultCode("E");
loginfo.setReturnMsg(JSONObject.toJSONString(result));
saveMessageLog(loginfo);
return result;
}
}
result = AjaxResult.me().setSuccess(true).setMessage("接收物料组质检周期成功");
loginfo.setResultCode("success");
loginfo.setReturnMsg(JSONObject.toJSONString(result));
}else {
result = AjaxResult.me().setErrorCode(400).setMessage("未传入物料组质检周期信息");
loginfo.setResultCode("E");
loginfo.setReturnMsg(JSONObject.toJSONString(result));
}
// 消息保存日志erp推送wms的数据写入表BS_ERPMESSAGELOG中
saveMessageLog(loginfo);
return result;
}
}

View File

@ -95,9 +95,9 @@ public class SAPToWMSController {
ArrayList<Map<String,Object>> data = request.getBODY();
// 主表
String insertSql="INSERT INTO MATERIALSPEC (sitename, materialspecname, materialgroup, materialgroupdescription, materialunit, materialunitdesc, deliverycycle, minorderqty, phase, materialtype, mstae, oldmaterialspecname, highvalueflag, commonmaterialflag, purchasetype, width, financialtype, createtime, createuser, lasteventtime, lasteventuser, lasteventtimekey, lasteventname, lasteventcomment,desc_en,IS_CON_TEMP ,MATURATIONTIME ,MATURATIONFLAG ,DEGREE,EXPIRATION_RULES, ZTURENAME, ZMDQ, IS_CON_TEMP_T, MATURATIONTIME_T, MATURATIONFLAG_T, EXPIRATIONDATEFLAG, EXPIRATIONDAY) " + SystemPropHelper.CR +
"VALUES(:sitename, :materialspecname, :materialgroup, :materialgroupdescription, :materialunit, :materialunitdesc,:deliverycycle, :minorderqty, :phase, :materialtype, :mstae, :oldmaterialspecname, :highvalueflag, :commonmaterialflag, :purchasetype, :width, :financialtype, :createtime, :createuser, :lasteventtime, :lasteventuser, :lasteventtimekey, :lasteventname, :lasteventcomment,:desc_en,:IS_CON_TEMP ,:MATURATIONTIME ,:MATURATIONFLAG ,:DEGREE,:EXPIRATION_RULES, :zturename, :zmdq, :IS_CON_TEMP_T, :MATURATIONTIME_T, :MATURATIONFLAG_T, :EXPIRATIONDATEFLAG, :EXPIRATIONDAY)";
String updateSql = "UPDATE MATERIALSPEC SET materialgroup = :materialgroup,desc_en=:desc_en,IS_CON_TEMP=:IS_CON_TEMP ,MATURATIONTIME=:MATURATIONTIME ,MATURATIONFLAG=:MATURATIONFLAG ,DEGREE=:DEGREE,EXPIRATION_RULES=:EXPIRATION_RULES, materialgroupdescription = :materialgroupdescription, materialunit = :materialunit, materialunitdesc = :materialunitdesc, deliverycycle = :deliverycycle, minorderqty = :minorderqty, phase = :phase, materialtype = :materialtype, mstae = :mstae, oldmaterialspecname = :oldmaterialspecname, highvalueflag = highvalueflag, commonmaterialflag = :commonmaterialflag, purchasetype = :purchasetype, width = :width, financialtype = :financialtype, createtime = :createtime, createuser = :createuser, lasteventtime = :lasteventtime, lasteventuser = :lasteventuser, lasteventtimekey = :lasteventtimekey, lasteventname = :lasteventname, lasteventcomment = :lasteventcomment, zturename = :zturename, zmdq = :zmdq, IS_CON_TEMP_T = :IS_CON_TEMP_T, MATURATIONTIME_T = :MATURATIONTIME_T, MATURATIONFLAG_T = :MATURATIONFLAG_T, EXPIRATIONDATEFLAG = :EXPIRATIONDATEFLAG, EXPIRATIONDAY = :EXPIRATIONDAY where materialspecname = :materialspecname and sitename = :sitename";
String insertSql="INSERT INTO MATERIALSPEC (sitename, materialspecname, materialgroup, materialgroupdescription, materialunit, materialunitdesc, deliverycycle, minorderqty, phase, materialtype, mstae, oldmaterialspecname, highvalueflag, commonmaterialflag, purchasetype, width, financialtype, createtime, createuser, lasteventtime, lasteventuser, lasteventtimekey, lasteventname, lasteventcomment,desc_en,IS_CON_TEMP ,MATURATIONTIME ,MATURATIONFLAG ,DEGREE,EXPIRATION_RULES, ZTURENAME, ZMDQ, IS_CON_TEMP_T, MATURATIONTIME_T, MATURATIONFLAG_T, EXPIRATIONDATEFLAG, EXPIRATIONDAY, IS_BATCH, IQCFLAG) " + SystemPropHelper.CR +
"VALUES(:sitename, :materialspecname, :materialgroup, :materialgroupdescription, :materialunit, :materialunitdesc,:deliverycycle, :minorderqty, :phase, :materialtype, :mstae, :oldmaterialspecname, :highvalueflag, :commonmaterialflag, :purchasetype, :width, :financialtype, :createtime, :createuser, :lasteventtime, :lasteventuser, :lasteventtimekey, :lasteventname, :lasteventcomment,:desc_en,:IS_CON_TEMP ,:MATURATIONTIME ,:MATURATIONFLAG ,:DEGREE,:EXPIRATION_RULES, :zturename, :zmdq, :IS_CON_TEMP_T, :MATURATIONTIME_T, :MATURATIONFLAG_T, :EXPIRATIONDATEFLAG, :EXPIRATIONDAY, :IS_BATCH, :IQCFLAG)";
String updateSql = "UPDATE MATERIALSPEC SET materialgroup = :materialgroup,desc_en=:desc_en,IS_CON_TEMP=:IS_CON_TEMP ,MATURATIONTIME=:MATURATIONTIME ,MATURATIONFLAG=:MATURATIONFLAG ,DEGREE=:DEGREE,EXPIRATION_RULES=:EXPIRATION_RULES, materialgroupdescription = :materialgroupdescription, materialunit = :materialunit, materialunitdesc = :materialunitdesc, deliverycycle = :deliverycycle, minorderqty = :minorderqty, phase = :phase, materialtype = :materialtype, mstae = :mstae, oldmaterialspecname = :oldmaterialspecname, highvalueflag = highvalueflag, commonmaterialflag = :commonmaterialflag, purchasetype = :purchasetype, width = :width, financialtype = :financialtype, createtime = :createtime, createuser = :createuser, lasteventtime = :lasteventtime, lasteventuser = :lasteventuser, lasteventtimekey = :lasteventtimekey, lasteventname = :lasteventname, lasteventcomment = :lasteventcomment, zturename = :zturename, zmdq = :zmdq, IS_CON_TEMP_T = :IS_CON_TEMP_T, MATURATIONTIME_T = :MATURATIONTIME_T, MATURATIONFLAG_T = :MATURATIONFLAG_T, EXPIRATIONDATEFLAG = :EXPIRATIONDATEFLAG, EXPIRATIONDAY = :EXPIRATIONDAY, IS_BATCH =:IS_BATCH, IQCFLAG =:IQCFLAG where materialspecname = :materialspecname and sitename = :sitename";
// 附加单位
String insertMarmSql = "insert into BS_MATERIALUNIT (materialspecname, additionalunit, modulecule, denominator) "
+ "VALUES(:materialspecname, :additionalunit, :modulecule, :denominator)";
@ -153,6 +153,8 @@ public class SAPToWMSController {
String ZZBZQ = MapUtils.getString(materialSpec, "ZZBZQ");//保质期
String EXPIRATIONDATEFLAG = "";//是否启用保质期管理
String EXPIRATIONDAY = "";//保质期
String IS_BATCH = "";//启用批次管理
String IQCFLAG = "";//是否质检
// 预留字段
ZRSV01 = MapUtils.getString(materialSpec, "ZRSV01") != null ? MapUtils.getString(materialSpec, "ZRSV01") : "";
ZRSV02 = MapUtils.getString(materialSpec, "ZRSV02") != null ? MapUtils.getString(materialSpec, "ZRSV02") : "";
@ -258,6 +260,34 @@ public class SAPToWMSController {
//2025-04-24 添加缺少字段
map.put("EXPIRATIONDAY", EXPIRATIONDAY);//保质期
map.put("EXPIRATIONDATEFLAG", EXPIRATIONDATEFLAG);//是否启用保质期管理
/**
* 2025-05-19
* 增加物料是否批次管理按以下规则:
* 1.Z008所有物料;Z001下105开头的不启用批次其他所有料号启用批次管理
*/
if(mtart.equals("Z008") || (mtart.equals("Z001") && matkl.startsWith("105"))){
IS_BATCH = "N";
}else {
IS_BATCH = "Y";
}
map.put("IS_BATCH", IS_BATCH);//启用批次管理
/**
* 2025-05-19
* 增加物料是否质检
* 1.按照QMS提供对应关系维护到基础表(新增)料号下发时取值
*/
String selectIQCFlagSql = " SELECT SITENAME, MATERIALGROUP, IQCFLAG FROM BS_MATERIALSPECIQCFLAG WHERE SITENAME =:SITENAME AND MATERIALGROUP =:MATERIALGROUP ";
Map<String, Object> IQCFlagMap = new HashMap<String,Object> ();
IQCFlagMap.put("MATERIALGROUP", matkl);
IQCFlagMap.put("SITENAME", materialSpecSiteName);
List<Map<String, Object>> selectIQCFlagList = IDMFrameServiceProxy.getSqlTemplate().queryForList(selectIQCFlagSql, IQCFlagMap);
if(null != selectIQCFlagList && selectIQCFlagList.size() > 0){
IQCFLAG = selectIQCFlagList.get(0).get("IQCFLAG") == null ? "N" : selectIQCFlagList.get(0).get("IQCFLAG").toString();
}else {
IQCFLAG = "N";
}
map.put("IQCFLAG", IQCFLAG);//是否质检
if("X".equals(lvorm)) {
//IDMFrameServiceProxy.getSqlTemplate().update(insertHistorySql, map);

View File

@ -304,6 +304,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
Map<String, Object> stringObjectMap = MapUtils.entityToMap(packingList.get(i));
CreateInfo packingList1 = new CreateInfo();
packingList1.setSiteName("SDK");
packingList1.setMaterialPackingType(packingList.get(i).getMaterialPackingType());
packingList1.setMaterialPackingName(packingList.get(i).getMaterialPackingName());
packingList1.setUserColumns(stringObjectMap);

View File

@ -389,7 +389,7 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
}
public void updateUndoIdByReceive (String receiveRequestName,String UNDOID,EventInfo eventInfo) {
public void updateUndoIdByReceive (String receiveRequestName,String UNDOID,EventInfo eventInfo, String sign) {
String sql = "SELECT MATERIALPACKINGNAME, SITENAME FROM MATERIALPACKING WHERE RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND STOCKSTATE = 'Created' ";
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("RECEIVEREQUESTNAME", receiveRequestName);
@ -398,6 +398,9 @@ public class SDKMaterialPackingServiceImpl extends CommonServiceDAO<MaterialPack
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("unDoID",UNDOID);
if ("app".equals(sign)) {
bindMap.put("shipRequestName", "");
}
setEventInfo.setUserColumns(bindMap);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);