Переглянути джерело

+号被解析为空格问题

wangxichen 2 тижнів тому
батько
коміт
4d013f7276

+ 10 - 0
src/main/java/com/jeesite/modules/mes/service/MesProductHbService.java

@@ -141,6 +141,16 @@ public class MesProductHbService extends CrudService<MesProductHbDao, MesProduct
 	public void upload(List<MesProductHb> list) {
 		list.forEach(item -> {
 			if (item.getLaMaoId() != null && !StringUtils.isEmpty(item.getOprno())) {//两台拉铆机工位不一
+				// 修复HTTP传输中+号变空格的问题
+				String snValue = item.getSn();
+				if(snValue != null && snValue.startsWith(" ")) {
+					item.setSn("+" + snValue.trim());
+				}
+				String oprnoValue = item.getOprno();
+				if(oprnoValue != null && oprnoValue.startsWith(" ")) {
+					item.setOprno("+" + oprnoValue.trim());
+				}
+				
 				MesProductHb mesProductHb = mesProductHbDao.selectByLaMaoId(item);
 				if (mesProductHb == null) {
 					if ("1".equals(item.getResult())){

+ 13 - 2
src/main/java/com/jeesite/modules/mes/web/MesProductCmtController.java

@@ -153,9 +153,20 @@ public class MesProductCmtController extends BaseController {
 			// 获取每个元素(JSONObject)并打印其属性值
 			JSONObject obj = jsonArr.getJSONObject(i);
 
+			// 修复HTTP传输中+号变空格的问题
+			String snValue = obj.getString("sn");
+			if(snValue != null && snValue.startsWith(" ")) {
+				snValue = "+" + snValue.trim();
+			}
+			
+			String oprnoValue = obj.getString("oprno");
+			if(oprnoValue != null && oprnoValue.startsWith(" ")) {
+				oprnoValue = "+" + oprnoValue.trim();
+			}
+
 			MesProductCmt mesProductFsw = new MesProductCmt();
-			mesProductFsw.setSn(obj.getString("sn"));
-			mesProductFsw.setOprno(obj.getString("oprno"));
+			mesProductFsw.setSn(snValue);
+			mesProductFsw.setOprno(oprnoValue);
 			mesProductFsw.setLineSn(obj.getString("lineSn"));
 			mesProductFsw.setContent(obj.getString("content"));
 			mesProductCmtService.save(mesProductFsw);

+ 13 - 2
src/main/java/com/jeesite/modules/mes/web/MesProductProdController.java

@@ -162,9 +162,20 @@ public class MesProductProdController extends BaseController {
 			// 获取每个元素(JSONObject)并打印其属性值
 			JSONObject obj = jsonArr.getJSONObject(i);
 
+			// 修复HTTP传输中+号变空格的问题
+			String snValue = obj.getString("sn");
+			if(snValue != null && snValue.startsWith(" ")) {
+				snValue = "+" + snValue.trim();
+			}
+			
+			String gwValue = obj.getString("gw");
+			if(gwValue != null && gwValue.startsWith(" ")) {
+				gwValue = "+" + gwValue.trim();
+			}
+
 			MesProductProd mesProductFsw = new MesProductProd();
-			mesProductFsw.setSn(obj.getString("sn"));
-			mesProductFsw.setOprno(obj.getString("gw"));
+			mesProductFsw.setSn(snValue);
+			mesProductFsw.setOprno(gwValue);
 			mesProductFsw.setLineSn(obj.getString("lineSn"));
 			mesProductFsw.setCreateBy(obj.getString("ucode"));
 			mesProductFsw.setType(obj.getString("type"));

+ 5 - 0
src/main/java/com/jeesite/modules/mes/web/MesProductRecordController.java

@@ -376,6 +376,11 @@ public class MesProductRecordController extends BaseController {
 
 		String sn = mesProductRecord.getSn();
 		if(!StringUtils.isEmpty(sn)){
+			// 处理URL编码问题:+ 号会被解析为空格,需要还原
+			if(sn.startsWith(" ")) {
+				sn = "+" + sn.trim();
+				mesProductRecord.setSn(sn);
+			}
 //			mesProductRecord.getSqlMap().getWhere().and("a.sn", QueryType.LIKE, sn);
 //			mesProductRecord.setSn("");
 		}