Procházet zdrojové kódy

优化空条码记数

yhluo před 2 týdny
rodič
revize
9fe44dd2fd

+ 75 - 68
src/main/java/com/uas/eis/serviceImpl/MESHelperServiceImpl.java

@@ -150,6 +150,7 @@ public class MESHelperServiceImpl implements MESHelperService {
 		Map<Object, Object> rmap = new HashMap<Object, Object>();
 		try {
 			JSONObject object = JSONObject.fromObject(data);
+			Object isStop = baseDao.getFieldDataByCondition("configs","decode(data,'0','0','1','-1') isStopObj","caller='MESSetting' and code='stopLine'");
 
 			if (!object.containsKey("SPIRecord") || object.get("SPIRecord") == null) {
 				rmap.put("code", "-1");
@@ -184,10 +185,7 @@ public class MESHelperServiceImpl implements MESHelperService {
 				StringBuilder un = new StringBuilder(Username);
 				Username = Track.contains("2") ? un.insert(4, Track).toString() : Username;
 
-				SqlRowList rs1=baseDao.queryForRowSet("SELECT sc_linecode FROM Source WHERE sc_code = '"+Username+"'");
-				if(rs1.next()){
-					LineNO = rs1.getString("sc_linecode");
-				}
+				LineNO = String.valueOf(baseDao.getFieldDataByCondition("Source","sc_linecode","sc_code = '"+Username+"'"));
 			}
 
 			if (Time.contains("T")) {
@@ -201,36 +199,35 @@ public class MESHelperServiceImpl implements MESHelperService {
 				return rmap;
 			}
 
-			SqlRowList rs=baseDao.queryForRowSet("SELECT devicetestinfo_seq.NEXTVAL seq FROM dual");
+			String seq = String.valueOf(baseDao.getFieldDataByCondition("dual","devicetestinfo_seq.NEXTVAL seq","1=1"));
 			Map<Object, Object> paramsMap = new HashMap<Object, Object>();
-			if(rs.next()){
-				paramsMap.put("DTI_ID",rs.getString("seq"));
-				paramsMap.put("DTI_SNCODE",Lotsn);
-				paramsMap.put("DTI_USERNAME",Username);
-				paramsMap.put("DTI_MACHINE",MachineNO);
-				paramsMap.put("DTI_LINECODE",LineNO);
-				paramsMap.put("DTI_RESULT",Result);
-
-				paramsMap.put("DTI_MAKECODE",Moname);
-				paramsMap.put("DTI_SHIFTNAME",Shiftname);
-				paramsMap.put("DTI_PROGRAM",procedure);
-				paramsMap.put("DTI_DEFECT",Defect);
-				paramsMap.put("DTI_TESTQTY",TestQTY);
-
-				paramsMap.put("DTI_MACHINETYPE","SPI");
-				paramsMap.put("DTI_TYPE","SPI");
-
-				paramsMap.put("DTI_TIME",Time);
-				paramsMap.put("DTI_SOURCECONTENT","");
-				paramsMap.put("dti_elementQTY",elementQTY);
-				paramsMap.put("dti_side",Side);
-
-				paramsMap.put("DTI_AREACPK",AreaCPK);
-				paramsMap.put("DTI_HEIGHTCPK",HeightCPK);
-				paramsMap.put("DTI_VOLUMECPK",VolumeCPK);
-				paramsMap.put("DTI_TRACK",Track);
-				baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap,"devicetestinfo"));
-			}
+			paramsMap.put("DTI_ID",seq);
+			paramsMap.put("DTI_SNCODE",Lotsn);
+			paramsMap.put("DTI_USERNAME",Username);
+			paramsMap.put("DTI_MACHINE",MachineNO);
+			paramsMap.put("DTI_LINECODE",LineNO);
+			paramsMap.put("DTI_RESULT",Result);
+
+			paramsMap.put("DTI_MAKECODE",Moname);
+			paramsMap.put("DTI_SHIFTNAME",Shiftname);
+			paramsMap.put("DTI_PROGRAM",procedure);
+			paramsMap.put("DTI_DEFECT",Defect);
+			paramsMap.put("DTI_TESTQTY",TestQTY);
+
+			paramsMap.put("DTI_MACHINETYPE","SPI");
+			paramsMap.put("DTI_TYPE","SPI");
+
+			paramsMap.put("DTI_TIME",Time);
+			paramsMap.put("DTI_SOURCECONTENT","");
+			paramsMap.put("dti_elementQTY",elementQTY);
+			paramsMap.put("dti_side",Side);
+
+			paramsMap.put("DTI_AREACPK",AreaCPK);
+			paramsMap.put("DTI_HEIGHTCPK",HeightCPK);
+			paramsMap.put("DTI_VOLUMECPK",VolumeCPK);
+			paramsMap.put("DTI_TRACK",Track);
+			baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap,"devicetestinfo"));
+
 			String oErrMessage=null;
 			List<String> list = new ArrayList<String>();
 			list = baseDao.callProcedureWithOut("CS_CHECKSTEPSNANDMACODE", new Object[]{
@@ -310,26 +307,38 @@ public class MESHelperServiceImpl implements MESHelperService {
 				StringBuilder un = new StringBuilder(Username);
 				Username = Track.contains("2") ? un.insert(4, Track).toString() : Username;
 
-				SqlRowList rs1=baseDao.queryForRowSet("SELECT sc_linecode FROM Source WHERE sc_code = '"+Username+"'");
-				if(rs1.next()){
-					LineNO = rs1.getString("sc_linecode");
-				}
+				LineNO = String.valueOf(baseDao.getFieldDataByCondition("Source","sc_linecode","sc_code = '"+Username+"'"));
 			}
 
 			if (Time.contains("T")) {
 				Time = Time.substring(0, 19).replaceAll("T", " ");
 			}
+			if((Lotsn == null || Lotsn.isEmpty())){
+				if( Defect != null || !Defect.isEmpty()){
+					rmap.put("code", "-1");
+					rmap.put("result", "NG");
+					rmap.put("message", "NG,空序列号,不良品不计入产出");
+					return rmap;
+				}
+
+				SqlRowList checkMhc = baseDao.queryForRowSet("SELECT ma_code,ma_qty,mhc_stepcode,SUM(mhc_qty) count FROM make LEFT JOIN makehourcount ON ma_code = mhc_macode " +
+						"WHERE ma_code = '"+Moname+"' AND mhc_sourcecode = '"+Username+"' GROUP BY ma_code,ma_qty,mhc_stepcode");
+				if(checkMhc.next()){
+					int maQty = checkMhc.getInt("ma_qty");
+					int mhcQty = checkMhc.getInt("count");
+					if(mhcQty + 1 > maQty){
+						rmap.put("code", "-1");
+						rmap.put("result", "NG");
+						rmap.put("message", "NG,空序列号,记数产出超过工单批量");
+						return rmap;
+					}
+				}
 
-			if(Lotsn == null || Lotsn.isEmpty()){
 				SqlRowList mhc = baseDao.queryForRowSet("SELECT * FROM(SELECT mhc_id, mhc_indate, trunc((sysdate - mhc_indate) * 1440) minute " +
 						"FROM makehourcount WHERE mhc_macode = '"+Moname+"' AND mhc_linecode = '"+LineNO+"' AND mhc_sourcecode = '"+Username+"' " +
 						"ORDER BY mhc_indate DESC) WHERE ROWNUM = 1");
 
-				SqlRowList sc = baseDao.queryForRowSet("select sc_stepcode,sc_stepname from Source where sc_code = '"+Username+"'");
-				String sc_stepcode="";
-				if(sc.next()){
-					sc_stepcode = sc.getString("sc_stepcode");
-				}
+				String sc_stepcode = String.valueOf(baseDao.getFieldDataByCondition("Source","sc_stepcode","sc_code = '"+Username+"'"));
 
 				if(mhc.next()){
 					if(mhc.getInt("minute") > 10){
@@ -370,32 +379,30 @@ public class MESHelperServiceImpl implements MESHelperService {
 				return rmap;
 			}
 
-			SqlRowList rs = baseDao.queryForRowSet("SELECT devicetestinfo_seq.NEXTVAL seq FROM dual");
+			String seq = String.valueOf(baseDao.getFieldDataByCondition("dual","devicetestinfo_seq.NEXTVAL seq","1=1"));
 			Map<Object, Object> paramsMap = new HashMap<Object, Object>();
-			if (rs.next()) {
-				paramsMap.put("DTI_ID", rs.getString("seq"));
-				paramsMap.put("DTI_SNCODE", Lotsn);
-				paramsMap.put("DTI_USERNAME", Username);
-				paramsMap.put("DTI_MACHINE", MachineNO);
-				paramsMap.put("DTI_LINECODE", LineNO);
-				paramsMap.put("DTI_RESULT", Result);
-
-				paramsMap.put("DTI_MAKECODE", Moname);
-				paramsMap.put("DTI_SHIFTNAME", Shiftname);
-				paramsMap.put("DTI_PROGRAM", procedure);
-				paramsMap.put("DTI_DEFECT", Defect);
-				paramsMap.put("DTI_TESTQTY", TestQTY);
-
-				paramsMap.put("DTI_MACHINETYPE", Type);
-				paramsMap.put("DTI_TYPE", "AOI");
-
-				paramsMap.put("DTI_TIME", Time);
-				paramsMap.put("DTI_SOURCECONTENT", "");
-				paramsMap.put("dti_elementQTY", elementQTY);
-				paramsMap.put("dti_side", Side);
-				paramsMap.put("DTI_TRACK",Track);
-				baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap, "devicetestinfo"));
-			}
+			paramsMap.put("DTI_ID", seq);
+			paramsMap.put("DTI_SNCODE", Lotsn);
+			paramsMap.put("DTI_USERNAME", Username);
+			paramsMap.put("DTI_MACHINE", MachineNO);
+			paramsMap.put("DTI_LINECODE", LineNO);
+			paramsMap.put("DTI_RESULT", Result);
+
+			paramsMap.put("DTI_MAKECODE", Moname);
+			paramsMap.put("DTI_SHIFTNAME", Shiftname);
+			paramsMap.put("DTI_PROGRAM", procedure);
+			paramsMap.put("DTI_DEFECT", Defect);
+			paramsMap.put("DTI_TESTQTY", TestQTY);
+
+			paramsMap.put("DTI_MACHINETYPE", Type);
+			paramsMap.put("DTI_TYPE", "AOI");
+
+			paramsMap.put("DTI_TIME", Time);
+			paramsMap.put("DTI_SOURCECONTENT", "");
+			paramsMap.put("dti_elementQTY", elementQTY);
+			paramsMap.put("dti_side", Side);
+			paramsMap.put("DTI_TRACK",Track);
+			baseDao.execute(SqlUtil.getInsertSqlByMap(paramsMap, "devicetestinfo"));
 
 			String oErrMessage=null;
 			List<String> list = new ArrayList<String>();