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.password=adm2024
#MQ
mq.url=192.168.1.73:5672
mq.username=zimes
mq.password=adm2024
mq.virtual-host=/zimes
#mq.url=192.168.1.73:5672
#mq.username=zimes
#mq.password=adm2024
#mq.virtual-host=/zimes

View File

@ -5947,9 +5947,9 @@ public class ToSAPServiceImpl {
.append(" m.MESSAGEID ,").append(SystemPropHelper.CR)
.append(" m.SALESHIPREQUESTNAME ,").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.OLDSALESHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR)
.append(" m.OLDSALESHIPREQUESTDETAILNAME").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.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 {
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 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" +
"\tm.STORAGENAME,\n" +
"\tm.STORAGENAME || ' ' || m.DESCRIPTION DESCRIPTION \n" +
@ -110,6 +110,7 @@ public class StorageController {
"\tAND m.AREANAME =:AREANAME\n" +
"ORDER BY\n" +
"\tSTORAGENAME ";*/
/*
String sql = " SELECT * FROM ( " +
" SELECT\n" +
"\tm.STORAGENAME,\n" +
@ -122,6 +123,8 @@ public class StorageController {
"ORDER BY\n" +
"\tSTORAGENAME" +
" ) WHERE ROWNUM <= 50 ";
*/
/*
switch (erpLocation) {
case "1010":
case "1020":
@ -142,9 +145,13 @@ public class StorageController {
default :
break;
}
*/
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("ERPLOCATION",erplocation);
/*
bindMap.put("SITENAME","SDK");
bindMap.put("AREANAME",areaName);
*/
List<Map<String,Object>> list = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, bindMap);
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 server = "LabelRequestURL";
String requestUrl = getRequestUrlByServer(server);
requestUrl = "0980b551-20a2-49ba-a1e8-950331ff9827";
// requestUrl = "0980b551-20a2-49ba-a1e8-950331ff9827";
List<String> params = getLabelAssignParameter("testLabel002");
String labelUrl = "";
String labelPath = getLabelAbsolutePath(labelAddress);
@ -1918,7 +1918,8 @@ public class BSLabelServiceImpl extends CommonServiceDAO<BSLabelKey, BSLabel> im
labelPrintPET.setStartTime("");
labelPrintPET.setEndTime("");
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);
}else {
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.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").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);
}else if ("胶水原材.btw".equals(labelAddress)){
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.setDescription(queryForListProduct.get(0).get("description") != null ? queryForListProduct.get(0).get("description").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);
}else {
throw new CustomException(CustomExceptionCode.DATA_NOT_FOUND, "未找到对应的标签模板");

View File

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

View File

@ -91,7 +91,7 @@ public class NoInvoiceManagerServiceImpl {
commitDate,opCode,costName,lifnr);
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
* @return
*/
AjaxResult workOrder_Request(JSONArray in);
AjaxResult workOrder_Request(JSONArray in) throws Exception;
@Transactional
AjaxResult materialConsumeRequestSapcprkUndo(String undoId, String user, String payMentDate) throws Exception;

View File

@ -685,6 +685,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) {