Jelajahi Sumber

[微浦MES]飞达绑定增加目前物料BOM校验,不在BOM中物料无法绑定

caosy 2 tahun lalu
induk
melakukan
f8c4c6c8cd

+ 2 - 2
src/com/uas/mes/api/pda/PdaSMTController.java

@@ -298,8 +298,8 @@ public class PdaSMTController extends BaseApiController{
 	 SMT-根据条码号获取站位
 	 */
 	@RequestMapping(value="/bindFeederBarcode.action",method = RequestMethod.POST)
-	public ModelMap bindFeederBarcode(String barcode,String fe_code){
-		return success(pdaSMTService.bindFeederBarcode(barcode,fe_code));
+	public ModelMap bindFeederBarcode(String barcode,String fe_code,String prodcode){
+		return success(pdaSMTService.bindFeederBarcode(barcode,fe_code,prodcode));
 	}
 
 	/**

+ 1 - 1
src/com/uas/mes/pda/service/PdaSMTService.java

@@ -67,7 +67,7 @@ public interface PdaSMTService {
 
 	Map<String, Object> barcodeGetLocation(String barcode,String devicelineinfo);
 
-	Map<String, Object> bindFeederBarcode(String barcode,String fe_code);
+	Map<String, Object> bindFeederBarcode(String barcode,String fe_code,String prodcode);
 
 	Map<String, Object> getFeederLocation(String fe_code);
 

+ 15 - 5
src/com/uas/mes/pda/service/impl/PdaSMTServiceImpl.java

@@ -186,11 +186,13 @@ public class PdaSMTServiceImpl implements PdaSMTService {
 		//传的字段 DL_ID,DL_DECODE,DL_LINECODE,DL_MACODE,DL_TABLE,DL_STATUSCODE,DL_STATUS,PS_ID,MA_ID
 		SqlRowList rs = null;
 		//判断料卷号工单号不为空
-		Object bar_code = map1.get("dsl_barcode");
+
+
 		Object dl_macode = map.get("DL_MACODE");
 		Object linecode= map.get("DL_LINECODE"),location = map1.get("dsl_location");
 		Object table = map.get("DL_TABLE");
-		Object fe_code = map1.get("dsl_fecode");
+		Object fe_code = map1.get("dsl_barcode");
+		Object bar_code = map1.get("dsl_barcode");
 		String type="barcode",ps_prodcode = null;
 		int has_make=0;
 		String handleType = "上料";
@@ -219,7 +221,7 @@ public class PdaSMTServiceImpl implements PdaSMTService {
 		if(rs.next()){
 			showSmtError(APIErrorCode.DATA_NOT_FOUND,"该站位已上料",handleType,linecode,location,ps_prodcode,"",bool,table);
 		}
-		rs=baseDao.queryForRowSet("select fe_code,fe_location,fe_barcode from feeder where fe_code='"+fe_code+"'");
+		rs=baseDao.queryForRowSet("select fe_code,fe_location,fe_barcode from feeder where fe_code='"+fe_code+"' and fe_code is not null");
 		//验证飞达是否存在
 		if(rs.next()){
             String fe_location=rs.getString("fe_location");
@@ -2038,12 +2040,16 @@ public class PdaSMTServiceImpl implements PdaSMTService {
 		}
 
 		@Override
-		public Map<String, Object> bindFeederBarcode(String barcode,String fe_code) {
+		public Map<String, Object> bindFeederBarcode(String barcode,String fe_code,String prodcode) {
 			Map<String, Object> map = new HashMap<String, Object>();
-			SqlRowList rs=baseDao.queryForRowSet("select fe_location,fe_barcode from feeder where fe_code='"+fe_code+"'");
+			SqlRowList rs=baseDao.queryForRowSet("select fe_festatus,fe_location,fe_barcode from feeder where fe_code='"+fe_code+"'");
 			if(!rs.next()){
 				throw new APIErrorException(APIErrorCode.DATA_NOT_FOUND, "飞达"+fe_code+"不存在");
+			}else if (!rs.getString("fe_festatus").contains("正常"))
+			{
+				throw new APIErrorException(APIErrorCode.DATA_NOT_FOUND, "飞达"+fe_code+"状态为"+rs.getString("fe_festatus")+",不可操作");
 			}
+
 			String fe_location=rs.getString("fe_location");
 			//如果飞达已经绑定站位则不能再绑定料卷,需要下料
 			if(fe_location!=null&&!fe_location.equals("")) {
@@ -2058,6 +2064,10 @@ public class PdaSMTServiceImpl implements PdaSMTService {
 			if(!rs.next()){
 				throw new APIErrorException(APIErrorCode.DATA_NOT_FOUND, "料卷"+barcode+"不存在");
 			}
+			SqlRowList rsb = baseDao.queryForRowSet(" select * from bomdetail left join bom on bd_bomid = bo_id where bo_mothercode = '"+prodcode+"' and (bd_soncode = '"+rs.getString("bar_prodcode")+"' OR bd_repcode LIKE '%"+rs.getString("bar_prodcode")+"%') ");
+			if(!rsb.next()){
+				throw new APIErrorException(APIErrorCode.DATA_NOT_FOUND, "料卷"+barcode+"对应料号"+rs.getString("bar_prodcode")+"不存在与产品"+prodcode+"BOM中,不允许采集");
+			}
 			if(rs.getDouble("bar_remain") <= 0){
 				throw new APIErrorException(APIErrorCode.DATA_NOT_FOUND,"料卷号数量必须大于0");
 			}else if(!"1".equals(rs.getString("bar_place"))){