Просмотр исходного кода

【慧眼EIS接口,修改接口产品个参校验】

xiaost 1 месяц назад
Родитель
Сommit
bc5270ca1c
1 измененных файлов с 16 добавлено и 1 удалено
  1. 16 1
      src/main/java/com/uas/eis/serviceImpl/StepWorkServiceImpl.java

+ 16 - 1
src/main/java/com/uas/eis/serviceImpl/StepWorkServiceImpl.java

@@ -249,12 +249,27 @@ public class StepWorkServiceImpl implements StepWorkService {
         params.add(prodcode);
         params.add(macode);
 
+        StringBuilder sqlWhere2 = new StringBuilder(" where DeviceType=? and pd_makecode=? ");
+        List<Object> params2 = new ArrayList<>();
+        params2.add(prodcode);
+        params2.add(macode);
+        String err ="";
          // 将配置的所有字段作为等值条件加入查询
         for (String field : configFields) {
             Object val = inputMap.get(field);
             // 传入值必非空(已校验),直接做等值匹配
             sqlWhere.append(" and ").append(field).append("=? ");
             params.add(val.toString());
+            params2.add(val.toString());
+            Integer pd_id = baseDao.getJdbcTemplate().queryForObject("select max(pd_id) from PRODPARAMDATA "+sqlWhere2 +" and "+field+"=? ",
+                    Integer.class, params2.toArray()); // 根据实际 DAO 调整方法名
+            if (null == pd_id || pd_id <= 0) {
+                err += "个参-"+field+":"+val.toString()+",错误不存在!";
+            }
+            params2.remove(2);
+        }
+        if(!"".equals(err)){
+            return StepWorkApiResponse.failRsp(err);
         }
 
         String sql = "select max(pd_id) from PRODPARAMDATA " + sqlWhere.toString();
@@ -262,7 +277,7 @@ public class StepWorkServiceImpl implements StepWorkService {
         if (null != pd_id && pd_id > 0) {
             baseDao.execute("update PRODPARAMDATA set pd_checkcount=nvl(pd_checkcount,0)+1 where pd_id=?",pd_id);
         }else{
-            return StepWorkApiResponse.failRsp("工单[" + macode + "]+产品["+prodcode+"]中无任何个参数据与传入数据匹配!");
+            return StepWorkApiResponse.failRsp("工单[" + macode + "]+产品["+prodcode+"]中传入数据组合与个参数据不匹配!");
         }
        // ========== 所有校验通过,写入日志 ==========
         long id = baseDao.getSeqId("PRODPARAMCHECKLOGGER_SEQ"); // 请确认序列名