/** * 获取旧供应商信息 * @param json * @return * @throws ActiveRecordException */ public Record getSuppRec(JSONArray json,String suppliersName) throws ActiveRecordException{ Record supp = null; //默认不存在 if(json == null || json.size() == 0){ return supp; } String beforeName = " "; for (int j = 0; j < json.size(); j++) { //获取当前循环的JSON对象 JSONObject obj = JSONObject.parseObject(json.getString(j)); //获取BeforeContent信息 String BeforeContent=obj.getString("BeforeContent"); //获取afterContent信息 String afterContent=obj.getString("AfterContent"); if (StringUtils.notBlank(BeforeContent)){ //通过beforename查询供应商名称是否存在 BeforeContent = BeforeContent.replace(" ", ""); String[] nameArray = BeforeContent.split(":"); beforeName = nameArray[1].trim().substring(0,nameArray[1].length() - 1); Record rec = null; rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and suppliers_name=?",beforeName); if(rec == null){ rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and (suppliers_name=? or suppliers_name=?)",BCConvertUtils.bj2qj(beforeName),BCConvertUtils.qj2bj(beforeName)); } if(rec != null){ supp = rec; break; } } if (StringUtils.notBlank(afterContent)) { //通过aftername查询供应商名称是否存在 afterContent = afterContent.replace(" ", ""); String[] nameArray = afterContent.split(":"); beforeName = nameArray[1].trim().substring(0,nameArray[1].length() - 1); Record rec = null; rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and suppliers_name=?",beforeName); if(rec == null){ rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and (suppliers_name=? or suppliers_name=?)",BCConvertUtils.bj2qj(beforeName),BCConvertUtils.qj2bj(beforeName)); } if(rec != null){ supp = rec; break; } } // if (obj.getString("ProjectName")!=null && (obj.getString("ProjectName").startsWith("名称变更") || obj.getString("ProjectName").equals("企业名称") // || obj.getString("ProjectName").equals("名称"))) { // if(obj.getString("BeforeContent").lastIndexOf("企业名称")>-1) // { // String[] array = BCConvertUtils.qj2bj(obj.getString("AfterContent")).split(";"); // for(String name:array) // { // if(name.lastIndexOf("企业名称")>-1) // { // name = name.replace(" ", ""); // String[] nameArray = name.split(":"); // beforeName = nameArray[1].trim(); // } // } // } // else // { // beforeName = obj.getString("BeforeContent"); // } // //通过beforename查询供应商名称是否存在 // Record rec = null; // rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and suppliers_name=?",beforeName); // if(rec == null){ // rec = Db.findFirst("select uuid,suppliers_name,certificates_no,op_from,op_to from biz_suppliers where sys_status=1 and (suppliers_name=? or suppliers_name=?)",BCConvertUtils.bj2qj(beforeName),BCConvertUtils.qj2bj(beforeName)); // } // if(rec != null){ // supp = rec; // break; // } // } } return supp; } /** * 这是以变更之前供应商名字来查的数据 (beforeSuppliersName 用改前的名字,来找他,改后的名字) * 获取工商接口中改动后的供应商名称 * @param json 工商接口返回的数据 * @param oldSuppliersName 审核的供应商名字(未改动之前) * @return * @throws ActiveRecordException */ public static String getNewSuppRec(JSONArray json ,String beforeSuppliersName) throws ActiveRecordException{ String afterContent= beforeSuppliersName; boolean flag = false; for (int j = 0; j < json.size();j++) { // 获取当前的循环的JSON对象 JSONObject obj = JSONObject.parseObject(json.getString(j)); // 获取当前循环的未改动以前的数据 String beforeContent=obj.getString("BeforeContent"); // 如果当前循环的未改动以前的数据含 审核的供应商名字 if (beforeContent.contains(beforeSuppliersName)) { // 则获取当前循环改动后的数据 afterContent=obj.getString("AfterContent"); flag = true; break; } } // 标志位为false,直接结束 if (!flag) { return afterContent ; } return getNewSuppRec( json , afterContent); } public static void main(String[] args) throws ActiveRecordException { String lo = "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门3垒智建设有限公司,","BeforeContent":"名称:厦门2垒智建设有限公司,"}"; String lo1 = "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门2垒智建设有限公司,","BeforeContent":"名称:厦门1垒智建设有限公司,"}"; String lo2 = "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门1垒智建设有限公司,","BeforeContent":"名称:厦门垒智建设有限公司,"}"; // String lo3 = "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门4垒智建设有限公司,","BeforeContent":"名称:厦门3垒智建设有限公司,"}"; // String lo4 = "{"ProjectName":"企业基本信息","ChangeDate":"2019-06-21","AfterContent":"名称:厦门5垒智建设有限公司,","BeforeContent":"名称:厦门4垒智建设有限公司,"}"; JSONObject json = JSONObject.parseObject(lo); JSONObject json1 = JSONObject.parseObject(lo1); JSONObject json2 = JSONObject.parseObject(lo2); // JSONObject json3 = JSONObject.parseObject(lo3); // JSONObject json4 = JSONObject.parseObject(lo4); JSONArray jsonArray = new JSONArray(); jsonArray.add(json); jsonArray.add(json1); jsonArray.add(json2); // jsonArray.add(json3); // jsonArray.add(json4); // 这是用改前的名字,来找他,改后的名字 String abc = getNewSuppRec(jsonArray,"厦门垒智建设有限公司"); // abc 与 厦门垒智建设有限公司 这个厦门垒智建设有限公司 是最新的 // abc 与 厦门垒智建设有限公司 这个厦门垒智建设有限公司 是不一样最新的 String bc = getNewSuppRec(jsonArray,"厦门垒智建设有限公司"); // 如果 abc 为空,说明 System.out.println(abc); }