This commit is contained in:
郭飞 2025-05-26 14:15:01 +08:00
commit 388021590f
8 changed files with 129 additions and 17 deletions

View File

@ -22,7 +22,7 @@ db.Prd.url=jdbc:oracle:thin:@192.168.1.73:1526/test
db.Prd.username=ziwms_sap_test db.Prd.username=ziwms_sap_test
db.Prd.password=adm2024 db.Prd.password=adm2024
#MQ #MQ
mq.url=192.168.1.73:5672 #mq.url=192.168.1.73:5672
mq.username=zimes #mq.username=zimes
mq.password=adm2024 #mq.password=adm2024
mq.virtual-host=/zimes #mq.virtual-host=/zimes

View File

@ -5947,9 +5947,9 @@ public class ToSAPServiceImpl {
.append(" m.MESSAGEID ,").append(SystemPropHelper.CR) .append(" m.MESSAGEID ,").append(SystemPropHelper.CR)
.append(" m.SALESHIPREQUESTNAME ,").append(SystemPropHelper.CR) .append(" m.SALESHIPREQUESTNAME ,").append(SystemPropHelper.CR)
.append(" m.SALESHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR) .append(" m.SALESHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR)
.append(" sum(m.MATERIALQUANTITY) MATERIALQUANTITY").append(SystemPropHelper.CR) .append(" sum(m.MATERIALQUANTITY) MATERIALQUANTITY,").append(SystemPropHelper.CR)
.append(" m.OLDSALESHIPREQUESTNAME ,").append(SystemPropHelper.CR) .append(" m.OLDSALESHIPREQUESTNAME ,").append(SystemPropHelper.CR)
.append(" m.OLDSALESHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR) .append(" m.OLDSALESHIPREQUESTDETAILNAME").append(SystemPropHelper.CR)
.append(" FROM MATERIALPACKING m ").append(SystemPropHelper.CR) .append(" FROM MATERIALPACKING m ").append(SystemPropHelper.CR)
// .append(" WHERE m.RECEIVEACTNO = :RECEIVEACTNO AND m.SITENAME = :SITENAME ").append(SystemPropHelper.CR) // .append(" WHERE m.RECEIVEACTNO = :RECEIVEACTNO AND m.SITENAME = :SITENAME ").append(SystemPropHelper.CR)
.append(" WHERE m.MATERIALPACKINGNAME IN (:BOXLIST) AND m.SITENAME = :SITENAME").append(SystemPropHelper.CR) .append(" WHERE m.MATERIALPACKINGNAME IN (:BOXLIST) AND m.SITENAME = :SITENAME").append(SystemPropHelper.CR)

View File

@ -94,12 +94,12 @@ public class StorageController {
public AjaxResult getLocationName2(@RequestBody JSONObject in ) throws Exception { public AjaxResult getLocationName2(@RequestBody JSONObject in ) throws Exception {
StorageSpec storageSpec = JSON.toJavaObject(in, StorageSpec.class); StorageSpec storageSpec = JSON.toJavaObject(in, StorageSpec.class);
//String erplocation = storageSpec.getErpLocation(); String erplocation = storageSpec.getErpLocation();
String erpLocation = storageSpec.getErpLocation(); //String erpLocation = storageSpec.getErpLocation();
String areaName = ""; String areaName = "";
// String commitDate = storageSpec.getCommitDate(); // String commitDate = storageSpec.getCommitDate();
//判断条码是否存在且状态是在库 //判断条码是否存在且状态是在库
//String sql = "SELECT m.STORAGENAME ,m.DESCRIPTION || m.STORAGENAME DESCRIPTION FROM STORAGESPEC m WHERE m.ERPLOCATION = :ERPLOCATION ORDER BY STORAGENAME "; String sql = "SELECT m.STORAGENAME ,m.DESCRIPTION || m.STORAGENAME DESCRIPTION FROM STORAGESPEC m WHERE m.ERPLOCATION = :ERPLOCATION ORDER BY STORAGENAME ";
/*String sql = " SELECT\n" + /*String sql = " SELECT\n" +
"\tm.STORAGENAME,\n" + "\tm.STORAGENAME,\n" +
"\tm.STORAGENAME || ' ' || m.DESCRIPTION DESCRIPTION \n" + "\tm.STORAGENAME || ' ' || m.DESCRIPTION DESCRIPTION \n" +
@ -110,6 +110,7 @@ public class StorageController {
"\tAND m.AREANAME =:AREANAME\n" + "\tAND m.AREANAME =:AREANAME\n" +
"ORDER BY\n" + "ORDER BY\n" +
"\tSTORAGENAME ";*/ "\tSTORAGENAME ";*/
/*
String sql = " SELECT * FROM ( " + String sql = " SELECT * FROM ( " +
" SELECT\n" + " SELECT\n" +
"\tm.STORAGENAME,\n" + "\tm.STORAGENAME,\n" +
@ -122,6 +123,8 @@ public class StorageController {
"ORDER BY\n" + "ORDER BY\n" +
"\tSTORAGENAME" + "\tSTORAGENAME" +
" ) WHERE ROWNUM <= 50 "; " ) WHERE ROWNUM <= 50 ";
*/
/*
switch (erpLocation) { switch (erpLocation) {
case "1010": case "1010":
case "1020": case "1020":
@ -142,9 +145,13 @@ public class StorageController {
default : default :
break; break;
} }
*/
Map<String, Object> bindMap = new HashMap<String, Object>(); Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("ERPLOCATION",erplocation);
/*
bindMap.put("SITENAME","SDK"); bindMap.put("SITENAME","SDK");
bindMap.put("AREANAME",areaName); bindMap.put("AREANAME",areaName);
*/
List<Map<String,Object>> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap); List<Map<String,Object>> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap);
if(Objects.isNull(list) || list.isEmpty()) { if(Objects.isNull(list) || list.isEmpty()) {

View File

@ -1831,7 +1831,7 @@ public class BSLabelServiceImpl extends CommonServiceDAO<BSLabelKey, BSLabel> im
String printer = printName == null || "".equals(printName) ? getDefaultPrinter() : printName;// "\\\\ZXYNB10810864P.boe.com.cn\\TSC MA3400P"; String printer = printName == null || "".equals(printName) ? getDefaultPrinter() : printName;// "\\\\ZXYNB10810864P.boe.com.cn\\TSC MA3400P";
String server = "LabelRequestURL"; String server = "LabelRequestURL";
String requestUrl = getRequestUrlByServer(server); String requestUrl = getRequestUrlByServer(server);
requestUrl = "0980b551-20a2-49ba-a1e8-950331ff9827"; // requestUrl = "0980b551-20a2-49ba-a1e8-950331ff9827";
List<String> params = getLabelAssignParameter("testLabel002"); List<String> params = getLabelAssignParameter("testLabel002");
String labelUrl = ""; String labelUrl = "";
String labelPath = getLabelAbsolutePath(labelAddress); String labelPath = getLabelAbsolutePath(labelAddress);
@ -1918,7 +1918,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO<BSLabelKey, BSLabel> im
labelPrintPET.setStartTime(""); labelPrintPET.setStartTime("");
labelPrintPET.setEndTime(""); labelPrintPET.setEndTime("");
log.info("***************************PrintLabel Assign params is : " + params.toString()); log.info("***************************PrintLabel Assign params is : " + params.toString());
labelUrl = labelPrintRabbitMQ(labelPrintPET, requestUrl, pr, params); //labelUrl = labelPrintRabbitMQ(labelPrintPET, requestUrl, pr, params);
labelUrl = labelPrint(labelPrintPET, requestUrl, pr, params);
log.info("***************************PrintLabel Use URL is : " + requestUrl); log.info("***************************PrintLabel Use URL is : " + requestUrl);
}else { }else {
throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND,"Undefined Execute Type : "); throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND,"Undefined Execute Type : ");
@ -1994,7 +1995,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO<BSLabelKey, BSLabel> im
obj.setSupplierno(queryForListProduct.get(0).get("supplierNo") != null ? queryForListProduct.get(0).get("supplierNo").toString() : ""); obj.setSupplierno(queryForListProduct.get(0).get("supplierNo") != null ? queryForListProduct.get(0).get("supplierNo").toString() : "");
obj.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").toString() : ""); obj.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").toString() : "");
log.info("***************************PrintLabel Assign params is : " + params.toString()); log.info("***************************PrintLabel Assign params is : " + params.toString());
labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params); //labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params);
labelUrl = labelPrint(obj, requestUrl, pr, params);
log.info("***************************PrintLabel Use URL is : " + requestUrl); log.info("***************************PrintLabel Use URL is : " + requestUrl);
}else if ("胶水原材.btw".equals(labelAddress)){ }else if ("胶水原材.btw".equals(labelAddress)){
qeuryLabelDatasql = "SELECT\r\n" + qeuryLabelDatasql = "SELECT\r\n" +
@ -2066,7 +2068,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO<BSLabelKey, BSLabel> im
obj.setSupplierno(queryForListProduct.get(0).get("supplierNo") != null ? queryForListProduct.get(0).get("supplierNo").toString() : ""); obj.setSupplierno(queryForListProduct.get(0).get("supplierNo") != null ? queryForListProduct.get(0).get("supplierNo").toString() : "");
obj.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").toString() : ""); obj.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").toString() : "");
log.info("***************************PrintLabel Assign params is : " + params.toString()); log.info("***************************PrintLabel Assign params is : " + params.toString());
labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params); //labelUrl = labelPrintRabbitMQ(obj, requestUrl, pr, params);
labelUrl = labelPrint(obj, requestUrl, pr, params);
log.info("***************************PrintLabel Use URL is : " + requestUrl); log.info("***************************PrintLabel Use URL is : " + requestUrl);
}else { }else {
throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND, "未找到对应的标签模板"); throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND, "未找到对应的标签模板");

View File

@ -53,6 +53,8 @@ public class MESToWMSServiceImpl implements MESToWMSService {
@Autowired @Autowired
private MesToWmsDao mesToWmsDao; private MesToWmsDao mesToWmsDao;
@Autowired
private InvoiceServiceImpl invoiceService;
@Override @Override
@Transactional @Transactional
@ -666,7 +668,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
*/ */
@Override @Override
@Transactional @Transactional
public AjaxResult workOrder_Request(JSONArray in) { public AjaxResult workOrder_Request(JSONArray in) throws Exception {
//转工单按照批次先传MDC消耗请求SAP出库再生成入库信息传SAP入库 //转工单按照批次先传MDC消耗请求SAP出库再生成入库信息传SAP入库
log.info("Received work order request: {}", in.toJSONString()); log.info("Received work order request: {}", in.toJSONString());
//转换前工单formOrder转换后工单toOrder料号 materialSpecname批次 charge //转换前工单formOrder转换后工单toOrder料号 materialSpecname批次 charge
@ -707,7 +709,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
* 出库方法 * 出库方法
*/ */
@Transactional @Transactional
public String materialOutByMES(List<String> materialSpecnameList, List<String> chargeList) { public String materialOutByMES(List<String> materialSpecnameList, List<String> chargeList) throws Exception {
String result = ""; String result = "";
//调用Mybatis方法查询当前可出库存 //调用Mybatis方法查询当前可出库存
List<changeOrderDto> materialPackingList = mesToWmsDao.getMaterialPackingList(materialSpecnameList, chargeList); List<changeOrderDto> materialPackingList = mesToWmsDao.getMaterialPackingList(materialSpecnameList, chargeList);
@ -716,6 +718,15 @@ public class MESToWMSServiceImpl implements MESToWMSService {
materialPackingList, materialPackingList,
"MES" "MES"
); );
if (undoid != null) {
// 冲销
String undo = invoiceService.cancelShipInter(undoid, "MES");
if (undo == null || undo.isEmpty()) {
throw new GlobalException("下发mes失败后冲销失败");
} else {
throw new GlobalException("发送到mes失败");
}
}
//更新MDC表状态 //更新MDC表状态
mesToWmsDao.updateMDCFlag(materialSpecnameList, chargeList, "T"); mesToWmsDao.updateMDCFlag(materialSpecnameList, chargeList, "T");
return undoid; return undoid;

View File

@ -91,7 +91,7 @@ public class NoInvoiceManagerServiceImpl {
commitDate,opCode,costName,lifnr); commitDate,opCode,costName,lifnr);
SDKMaterialPackingServiceImpl.updateUndoIdInByList(list, undoid, makeEventInfo,opCode); SDKMaterialPackingServiceImpl.updateUndoIdInByList(list, undoid, makeEventInfo,opCode);
//更新库存状态 //更新库存状态
commonUtils.SaveUnDoInfo_ForSap(strings,undoid,makeEventInfo); commonUtils.SaveUnDoInfo_ForSap_qtr(strings,undoid,makeEventInfo);
} }

View File

@ -40,7 +40,7 @@ public interface MESToWMSService {
* @param in * @param in
* @return * @return
*/ */
AjaxResult workOrder_Request(JSONArray in); AjaxResult workOrder_Request(JSONArray in) throws Exception;
@Transactional @Transactional
AjaxResult materialConsumeRequestSapcprkUndo(String undoId, String user, String payMentDate) throws Exception; AjaxResult materialConsumeRequestSapcprkUndo(String undoId, String user, String payMentDate) throws Exception;

View File

@ -684,6 +684,97 @@ public void SaveUnDoInfo_ForSap(List<String> list, String undoid, EventInfo mak
} }
} }
}
/**
* 保存undo信息
* 该方法用于更新和插入与物料包装相关的undo信息根据提供的参数执行不同的数据库操作
*
* @param list 包含物料包装名称的列表
* @param undoid undo的标识符用于区分不同的undo操作
* @param makeEventInfo 包含事件信息的对象用于更新物料包装的最后事件信息
*/
public void SaveUnDoInfo_ForSap_qtr(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 = 'Stocked'";
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,PREERPLOCATION,PRELOCATIONNAME,"
+ "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, PREERPLOCATION,PRELOCATIONNAME,"
+ "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", "Stocked");
SetEventInfo setEventInfo = new SetEventInfo();
setEventInfo.setUserColumns(hashMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo);
}
}
} }
public void SaveSplitUnDoInfo_ForSap(List<String> list, String undoid, EventInfo makeEventInfo) { public void SaveSplitUnDoInfo_ForSap(List<String> list, String undoid, EventInfo makeEventInfo) {