diff --git a/WebContent/ProductManage/ComponentConfig/ComponentRule.jsp b/WebContent/ProductManage/ComponentConfig/ComponentRule.jsp index 158814a95..455bda6cb 100644 --- a/WebContent/ProductManage/ComponentConfig/ComponentRule.jsp +++ b/WebContent/ProductManage/ComponentConfig/ComponentRule.jsp @@ -129,7 +129,9 @@ } } //利率类型JS校验 - checkValueIsadjustInterest(); + if("ADJUST_INTEREST" == "<%=componentID%>") { + checkValueIsadjustInterest(); + } }) //利率类型JS校验 diff --git a/src_prd/com/amarsoft/app/als/businesscomponent/config/processor/BusinessComponentProcess.java b/src_prd/com/amarsoft/app/als/businesscomponent/config/processor/BusinessComponentProcess.java index 4ff1d849c..b28e8a680 100644 --- a/src_prd/com/amarsoft/app/als/businesscomponent/config/processor/BusinessComponentProcess.java +++ b/src_prd/com/amarsoft/app/als/businesscomponent/config/processor/BusinessComponentProcess.java @@ -40,37 +40,24 @@ public class BusinessComponentProcess extends ALSBusinessProcess implements Busi String xmlFile = this.asPage.getAttribute("XMLFile"); String xmlTags = this.asPage.getAttribute("XMLTags"); String keys = this.asPage.getAttribute("Keys"); - - //List components = XMLHelper.getBusinessObjectList(xmlFile, xmlTags, keys); - List components = new ArrayList(); - BizObjectManager bomLPI = JBOFactory.getBizObjectManager(LB_PRODUCT_INFO.CLASS_NAME); - BizObject boLPI = bomLPI.createQuery("ID=:ID").setParameter("ID", xmlFile).getSingleResult(true); - String pData = boLPI.getAttribute("PRODUCT_DATA").getString(); - String id = xmlTags.substring(xmlTags.indexOf("'")+1,xmlTags.lastIndexOf("'")); + boolean flagXml = false; + String pData = ""; + String id = ""; + BizObjectManager bomLPI = null; + BizObject boLPI = null; int n = 0; - if("".equals(pData)){ - }else{ - JSONArray jsonArray = JSONArray.fromObject(pData); - Iterator it = jsonArray.iterator(); - while(it.hasNext()){ - JSONObject jo = (JSONObject)it.next().get("jbo.sample.Component"); - if(id.equals(jo.get("ID"))){ - Object obj = jo.get("jbo.sample.Component"); - JSONArray ja = JSONArray.fromObject(obj); - BusinessObject b = BusinessObject.createBusinessObject("Component"); - b.setAttributes(jo); - components.add(b); - break; - } - n++; - } + if(xmlFile.endsWith(".xml")){ + flagXml = true; } - BusinessObject component = components.get(0); - String componentFormat = component.getString("Format"); - if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_PARAMETER_SET) || componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_COMPLEX)){ -/* List componentParameters = XMLHelper.getBusinessObjectList(xmlFile, xmlTags+"//Parameters//Parameter", "PARAMETERID");*/ - - List componentParameters = new ArrayList(); + List components = null; + if(flagXml){ + components = XMLHelper.getBusinessObjectList(xmlFile, xmlTags, keys); + }else{ + components = new ArrayList(); + bomLPI = JBOFactory.getBizObjectManager(LB_PRODUCT_INFO.CLASS_NAME); + boLPI = bomLPI.createQuery("ID=:ID").setParameter("ID", xmlFile).getSingleResult(true); + pData = boLPI.getAttribute("PRODUCT_DATA").getString(); + id = xmlTags.substring(xmlTags.indexOf("'")+1,xmlTags.lastIndexOf("'")); if("".equals(pData)){ }else{ JSONArray jsonArray = JSONArray.fromObject(pData); @@ -78,13 +65,40 @@ public class BusinessComponentProcess extends ALSBusinessProcess implements Busi while(it.hasNext()){ JSONObject jo = (JSONObject)it.next().get("jbo.sample.Component"); if(id.equals(jo.get("ID"))){ - JSONArray pJson = jo.getJSONArray("Parameter"); - Object[] oJson = pJson.toArray(); - for(Object o:oJson){ - JSONObject oValue = (JSONObject)o; - BusinessObject b = BusinessObject.createBusinessObject("Parameter"); - b.setAttributes(oValue.getJSONObject("jbo.sample.Parameter")); - componentParameters.add(b); + Object obj = jo.get("jbo.sample.Component"); + JSONArray ja = JSONArray.fromObject(obj); + BusinessObject b = BusinessObject.createBusinessObject("Component"); + b.setAttributes(jo); + components.add(b); + break; + } + n++; + } + } + } + BusinessObject component = components.get(0); + String componentFormat = component.getString("Format"); + if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_PARAMETER_SET) || componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_COMPLEX)){ + List componentParameters = null; + if(flagXml){ + componentParameters = XMLHelper.getBusinessObjectList(xmlFile, xmlTags+"//Parameters//Parameter", "PARAMETERID"); + }else{ + componentParameters = new ArrayList(); + if("".equals(pData)){ + }else{ + JSONArray jsonArray = JSONArray.fromObject(pData); + Iterator it = jsonArray.iterator(); + while(it.hasNext()){ + JSONObject jo = (JSONObject)it.next().get("jbo.sample.Component"); + if(id.equals(jo.get("ID"))){ + JSONArray pJson = jo.getJSONArray("Parameter"); + Object[] oJson = pJson.toArray(); + for(Object o:oJson){ + JSONObject oValue = (JSONObject)o; + BusinessObject b = BusinessObject.createBusinessObject("Parameter"); + b.setAttributes(oValue.getJSONObject("jbo.sample.Parameter")); + componentParameters.add(b); + } } } } @@ -99,52 +113,54 @@ public class BusinessComponentProcess extends ALSBusinessProcess implements Busi } } } - - //XMLHelper.saveBusinessObjectList(xmlFile, xmlTags+"//Parameters//Parameter", "PARAMETERID", componentParameters); - JSONArray ja = JSONArray.fromObject(pData); - JSONObject jo = (JSONObject)ja.get(n); - ja.remove(jo); - JSONObject j = (JSONObject)jo.get("jbo.sample.Component"); - jo.remove("jbo.sample.Component"); - JSONArray newJA = new JSONArray(); - for(BusinessObject b:componentParameters){ - JSONObject newJO = new JSONObject(); - if(j.containsKey("Parameter")){ - JSONArray djson = j.getJSONArray("Parameter"); - boolean flag = false; - newJA = djson; - if(newJA.size() == 0){ - flag = true; - } - Map bMap = b.convertToMap(); - Object[] obj = djson.toArray(); - for(Object o:obj){ - JSONObject ov = (JSONObject)o; - JSONObject dValue = ov.getJSONObject("jbo.sample.Parameter"); - if(dValue.opt("PARAMETERID").equals(bMap.get("PARAMETERID"))){ - newJA.remove(o); - newJO.element("jbo.sample.Parameter", b.convertToMap()); - newJA.add(newJO); - flag = false; - break; - }else{ + if(flagXml){ + XMLHelper.saveBusinessObjectList(xmlFile, xmlTags+"//Parameters//Parameter", "PARAMETERID", componentParameters); + }else{ + JSONArray ja = JSONArray.fromObject(pData); + JSONObject jo = (JSONObject)ja.get(n); + ja.remove(jo); + JSONObject j = (JSONObject)jo.get("jbo.sample.Component"); + jo.remove("jbo.sample.Component"); + JSONArray newJA = new JSONArray(); + for(BusinessObject b:componentParameters){ + JSONObject newJO = new JSONObject(); + if(j.containsKey("Parameter")){ + JSONArray djson = j.getJSONArray("Parameter"); + boolean flag = false; + newJA = djson; + if(newJA.size() == 0){ flag = true; } - } - if(flag){ + Map bMap = b.convertToMap(); + Object[] obj = djson.toArray(); + for(Object o:obj){ + JSONObject ov = (JSONObject)o; + JSONObject dValue = ov.getJSONObject("jbo.sample.Parameter"); + if(dValue.opt("PARAMETERID").equals(bMap.get("PARAMETERID"))){ + newJA.remove(o); + newJO.element("jbo.sample.Parameter", b.convertToMap()); + newJA.add(newJO); + flag = false; + break; + }else{ + flag = true; + } + } + if(flag){ + newJO.element("jbo.sample.Parameter", b.convertToMap()); + newJA.add(newJO); + } + }else{ newJO.element("jbo.sample.Parameter", b.convertToMap()); newJA.add(newJO); } - }else{ - newJO.element("jbo.sample.Parameter", b.convertToMap()); - newJA.add(newJO); } + j.put("Parameter",newJA); + jo.accumulate("jbo.sample.Component", j); + ja.add(jo); + boLPI.setAttributeValue("PRODUCT_DATA", ja.toString()); + bomLPI.saveObject(boLPI); } - j.put("Parameter",newJA); - jo.accumulate("jbo.sample.Component", j); - ja.add(jo); - boLPI.setAttributeValue("PRODUCT_DATA", ja.toString()); - bomLPI.saveObject(boLPI); } else if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_DECISION_TABLE)){ List ls = new ArrayList(); @@ -175,51 +191,54 @@ public class BusinessComponentProcess extends ALSBusinessProcess implements Busi ls.add(bo1); - //XMLHelper.saveBusinessObjectList(xmlFile, xmlTags+"//DecisionTables//DecisionTable", "ID", ls); - JSONArray ja = JSONArray.fromObject(pData); - JSONObject jo = (JSONObject)ja.get(n); - ja.remove(jo); - JSONObject j = (JSONObject)jo.get("jbo.sample.Component"); - jo.remove("jbo.sample.Component"); - JSONArray newJA = new JSONArray(); - for(BusinessObject b:ls){ - JSONObject newJO = new JSONObject(); - if(j.containsKey("DecisionTable")){ - JSONArray djson = j.getJSONArray("DecisionTable"); - boolean flag = false; - newJA = djson; - if(newJA.size() == 0){ - flag = true; - } - Map bMap = b.convertToMap(); - Object[] obj = djson.toArray(); - for(Object o:obj){ - JSONObject ov = (JSONObject)o; - JSONObject dValue = ov.getJSONObject("jbo.sample.DecisionTable"); - if(dValue.opt("ID").equals(bMap.get("ID"))){ - newJA.remove(o); - newJO.element("jbo.sample.DecisionTable", b.convertToMap()); - newJA.add(newJO); - flag = false; - break; - }else{ + if(flagXml){ + XMLHelper.saveBusinessObjectList(xmlFile, xmlTags+"//DecisionTables//DecisionTable", "ID", ls); + }else{ + JSONArray ja = JSONArray.fromObject(pData); + JSONObject jo = (JSONObject)ja.get(n); + ja.remove(jo); + JSONObject j = (JSONObject)jo.get("jbo.sample.Component"); + jo.remove("jbo.sample.Component"); + JSONArray newJA = new JSONArray(); + for(BusinessObject b:ls){ + JSONObject newJO = new JSONObject(); + if(j.containsKey("DecisionTable")){ + JSONArray djson = j.getJSONArray("DecisionTable"); + boolean flag = false; + newJA = djson; + if(newJA.size() == 0){ flag = true; } - } - if(flag){ + Map bMap = b.convertToMap(); + Object[] obj = djson.toArray(); + for(Object o:obj){ + JSONObject ov = (JSONObject)o; + JSONObject dValue = ov.getJSONObject("jbo.sample.DecisionTable"); + if(dValue.opt("ID").equals(bMap.get("ID"))){ + newJA.remove(o); + newJO.element("jbo.sample.DecisionTable", b.convertToMap()); + newJA.add(newJO); + flag = false; + break; + }else{ + flag = true; + } + } + if(flag){ + newJO.element("jbo.sample.DecisionTable", b.convertToMap()); + newJA.add(newJO); + } + }else{ newJO.element("jbo.sample.DecisionTable", b.convertToMap()); newJA.add(newJO); } - }else{ - newJO.element("jbo.sample.DecisionTable", b.convertToMap()); - newJA.add(newJO); } + j.put("DecisionTable",newJA); + jo.accumulate("jbo.sample.Component", j); + ja.add(jo); + boLPI.setAttributeValue("PRODUCT_DATA", ja.toString()); + bomLPI.saveObject(boLPI); } - j.put("DecisionTable",newJA); - jo.accumulate("jbo.sample.Component", j); - ja.add(jo); - boLPI.setAttributeValue("PRODUCT_DATA", ja.toString()); - bomLPI.saveObject(boLPI); } else if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_DECISION_TREE)){ //待实现 @@ -414,34 +433,40 @@ public class BusinessComponentProcess extends ALSBusinessProcess implements Busi String xmlFile = this.asPage.getAttribute("XMLFile"); String xmlTags = this.asPage.getAttribute("XMLTags"); String keys = this.asPage.getAttribute("Keys"); - - //List components = XMLHelper.getBusinessObjectList(xmlFile, xmlTags, keys); - //对数据库进行删除 - List components = new ArrayList(); - BizObjectManager bomLPI = JBOFactory.getBizObjectManager(LB_PRODUCT_INFO.CLASS_NAME); - BizObject boLPI = bomLPI.createQuery("ID=:ID").setParameter("ID", xmlFile).getSingleResult(true); - String pData = boLPI.getAttribute("PRODUCT_DATA").getString(); - String id = xmlTags.substring(xmlTags.indexOf("'")+1,xmlTags.lastIndexOf("'")); + List components = null; + BizObjectManager bomLPI = null; + BizObject boLPI = null; + String pData = ""; + String id = ""; int n = 0; - if("".equals(pData)){ + if(xmlFile.endsWith(".xml")){ + components = XMLHelper.getBusinessObjectList(xmlFile, xmlTags, keys); }else{ - JSONArray jsonArray = JSONArray.fromObject(pData); - Iterator it = jsonArray.iterator(); - while(it.hasNext()){ - JSONObject jo = (JSONObject)it.next().get("jbo.sample.Component"); - if(id.equals(jo.get("ID"))){ - Object obj = jo.get("jbo.sample.Component"); - JSONArray ja = JSONArray.fromObject(obj); - BusinessObject b = BusinessObject.createBusinessObject("Component"); - b.setAttributes(jo); - components.add(b); - break; + //对数据库进行删除 + components = new ArrayList(); + bomLPI = JBOFactory.getBizObjectManager(LB_PRODUCT_INFO.CLASS_NAME); + boLPI = bomLPI.createQuery("ID=:ID").setParameter("ID", xmlFile).getSingleResult(true); + pData = boLPI.getAttribute("PRODUCT_DATA").getString(); + id = xmlTags.substring(xmlTags.indexOf("'")+1,xmlTags.lastIndexOf("'")); + if("".equals(pData)){ + }else{ + JSONArray jsonArray = JSONArray.fromObject(pData); + Iterator it = jsonArray.iterator(); + while(it.hasNext()){ + JSONObject jo = (JSONObject)it.next().get("jbo.sample.Component"); + if(id.equals(jo.get("ID"))){ + Object obj = jo.get("jbo.sample.Component"); + JSONArray ja = JSONArray.fromObject(obj); + BusinessObject b = BusinessObject.createBusinessObject("Component"); + b.setAttributes(jo); + components.add(b); + break; + } + n++; } - n++; } } - BusinessObject component = components.get(0); String componentFormat = component.getString("Format"); if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_PARAMETER_SET) || componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_COMPLEX)){ @@ -450,39 +475,42 @@ public class BusinessComponentProcess extends ALSBusinessProcess implements Busi else if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_DECISION_TABLE)){ List ls = new ArrayList(); ls.add(businessObject); - //XMLHelper.deleteBusinessObjectList(xmlFile, xmlTags+"//DecisionTables//DecisionTable", "ID",ls); - JSONArray ja = JSONArray.fromObject(pData); - JSONObject jo = (JSONObject)ja.get(n); - ja.remove(jo); - JSONObject j = (JSONObject)jo.get("jbo.sample.Component"); - jo.remove("jbo.sample.Component"); - JSONArray newJA = new JSONArray(); - for(BusinessObject b:ls){ - JSONObject newJO = new JSONObject(); - if(j.containsKey("DecisionTable")){ - JSONArray djson = j.getJSONArray("DecisionTable"); - boolean flag = false; - newJA = djson; - if(newJA.size() == 0){ - flag = true; - } - Map bMap = b.convertToMap(); - Object[] obj = djson.toArray(); - for(Object o:obj){ - JSONObject ov = (JSONObject)o; - JSONObject dValue = ov.getJSONObject("jbo.sample.DecisionTable"); - if(dValue.opt("ID").equals(bMap.get("ID"))){ - newJA.remove(o); - break; + if(xmlFile.endsWith(".xml")){ + XMLHelper.deleteBusinessObjectList(xmlFile, xmlTags+"//DecisionTables//DecisionTable", "ID",ls); + }else{ + JSONArray ja = JSONArray.fromObject(pData); + JSONObject jo = (JSONObject)ja.get(n); + ja.remove(jo); + JSONObject j = (JSONObject)jo.get("jbo.sample.Component"); + jo.remove("jbo.sample.Component"); + JSONArray newJA = new JSONArray(); + for(BusinessObject b:ls){ + JSONObject newJO = new JSONObject(); + if(j.containsKey("DecisionTable")){ + JSONArray djson = j.getJSONArray("DecisionTable"); + boolean flag = false; + newJA = djson; + if(newJA.size() == 0){ + flag = true; + } + Map bMap = b.convertToMap(); + Object[] obj = djson.toArray(); + for(Object o:obj){ + JSONObject ov = (JSONObject)o; + JSONObject dValue = ov.getJSONObject("jbo.sample.DecisionTable"); + if(dValue.opt("ID").equals(bMap.get("ID"))){ + newJA.remove(o); + break; + } } } } + j.put("DecisionTable",newJA); + jo.accumulate("jbo.sample.Component", j); + ja.add(jo); + boLPI.setAttributeValue("PRODUCT_DATA", ja.toString()); + bomLPI.saveObject(boLPI); } - j.put("DecisionTable",newJA); - jo.accumulate("jbo.sample.Component", j); - ja.add(jo); - boLPI.setAttributeValue("PRODUCT_DATA", ja.toString()); - bomLPI.saveObject(boLPI); } else if(componentFormat.equals(BusinessComponentConfig.BUSINESS_COMPONENT_FORMAT_DECISION_TREE)){ //待实现