diff --git a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java index 9ecc9627..8d1f07b0 100644 --- a/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java +++ b/com.actionsoft.apps.coe.pal.publisher/src/com/actionsoft/apps/coe/pal/publisher/event/PublishFormBeforeSaveEvent.java @@ -22,6 +22,7 @@ import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; import com.actionsoft.bpms.bpmn.engine.listener.InterruptListener; import com.actionsoft.bpms.bpmn.engine.listener.InterruptListenerInterface; +import com.actionsoft.bpms.bpmn.engine.listener.ListenerConst; import com.actionsoft.bpms.commons.database.RowMap; import com.actionsoft.bpms.commons.mvc.view.ResponseObject; import com.actionsoft.bpms.util.DBSql; @@ -50,6 +51,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int /** + * * @param param * @return * @throws Exception @@ -58,34 +60,36 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int public boolean execute(ProcessExecutionContext param) throws Exception { - List gridNData = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(param.getProcessInstance().getId()).list(); - String bindid = param.getProcessInstance().getId(); - StringBuffer sb = new StringBuffer(); - StringBuffer sb1 = new StringBuffer(); + + List gridNData=SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(param.getProcessInstance().getId()).list(); + String bindid=param.getProcessInstance().getId(); + StringBuffer sb=new StringBuffer(); + StringBuffer sb1=new StringBuffer(); if (gridNData.size() > 0) { for (BO rowData : gridNData) { //下面一行示例代码,可以获取Ajax子表的每行记录的新建状态 String publishfileid = String.valueOf(rowData.getString("PUBLISHFILEID"));//注意:isCreate并不是BO的一个字段,该字段是有接口上层赋值的 - verifyPublish(publishfileid, rowData, bindid, sb, sb1, "1"); + verifyPublish(publishfileid,rowData,bindid,sb,sb1,"1"); } } //发布变更 - List gridCData = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(param.getProcessInstance().getId()).list(); + List gridCData=SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(param.getProcessInstance().getId()).list(); if (gridCData.size() > 0) { for (BO rowData : gridCData) { //下面一行示例代码,可以获取Ajax子表的每行记录的新建状态 String publishfileid = String.valueOf(rowData.getString("CHANGEDFILEIDNEW"));//注意:isCreate并不是BO的一个字段,该字段是有接口上层赋值的 - verifyPublish(publishfileid, rowData, bindid, sb, sb1, "2"); + verifyPublish(publishfileid,rowData,bindid,sb,sb1,"2"); + } } - } return true; } - public void verifyPublish(String publishfileid, BO rowData, String bindid, StringBuffer sb, StringBuffer sb1, String type) { + + public void verifyPublish(String publishfileid,BO rowData,String bindid,StringBuffer sb,StringBuffer sb1,String type){ defineQualityCheck(publishfileid); // 校验 PALRepositoryModel model = PALRepositoryCache.getCache().get(publishfileid); @@ -98,132 +102,135 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int for (PALRepositoryPropertyModel propertyModel : oldPropertyList) { //获取文件属性中支持文件 - if (propertyModel.getPropertyId().equals("support_files")) { + if(propertyModel.getPropertyId().equals("support_files")){ //获取关联模型id - String relationFileId = null; + String relationFileId= null; try { - String propertyValue = propertyModel.getPropertyValue(); - System.err.println("propertyValue========>" + propertyValue); - if (UtilString.isNotEmpty(propertyValue) && propertyValue.contains("{")) { - relationFileId = JSONObject.parseObject(propertyModel.getPropertyValue()).getString("relationFileId"); - } + String propertyValue = propertyModel.getPropertyValue(); + System.err.println("propertyValue========>"+propertyValue); + if(UtilString.isNotEmpty(propertyValue)&&propertyValue.contains("{")) { + relationFileId = JSONObject.parseObject(propertyModel.getPropertyValue()).getString("relationFileId"); + } } catch (Exception e) { - // e.printStackTrace(); + // e.printStackTrace(); throw new BPMNError("0313", sb.append("模型名称:").append(model.getName()).append("关联支持文件异常,请联系管理员!!!").append("
").toString()); } //获取关联表单模型id - List> fileElements; - if (UtilString.isNotEmpty(relationFileId)) { + List> fileElements ; + if(UtilString.isNotEmpty(relationFileId)){ - int len = relationFileId.split(",").length; + int len=relationFileId.split(",").length; - String[] splitRelationFileId = relationFileId.split(","); + String[] splitRelationFileId=relationFileId.split(","); - //如果当前使用中并且已发布给与通过 - if (splitRelationFileId.length > 0) { + //如果当前使用中并且已发布给与通过 + if(splitRelationFileId.length>0){ - for (int i = 0; i < splitRelationFileId.length; i++) { + for(int i=0;i"); - } - //如果当前不是使用中查找使用中版本 - } else if (isUse == false && publish == true) { + if (publishNrowMap == null && publishCrowMap == null) { + sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("
"); + } + //如果当前不是使用中查找使用中版本 + }else if(isUse==false && publish==true){ - List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); - if (versions.size() > 0) { - for (int k = 0; k < versions.size(); k++) { + List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); + if(versions.size()>0) { + for(int k=0;k"); + if (publishNrowMap == null && publishCrowMap == null) { + sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("
"); + } } } } - } - } else if (isUse == false && publish == false) { + }else if(isUse==false && publish==false) { - List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); - if (versions.size() > 0) { - for (int k = 0; k < versions.size(); k++) { + List versions = PALRepositoryCache.getByVersionId(model.getVersionId()); + if(versions.size()>0) { + for(int k=0;k"); + if (publishNrowMap == null && publishCrowMap == null) { + sb.append("模型名称:").append(model.getName()).append("关联文件模型名称:").append(onemodel.getName()).append("需进行选择发布!").append("
"); + } } } } + } + if(onemodel.getMethodId().equals("data.form")){ + fileElements = CoeDesignerUtil.getShapeMessageJson4(splitRelationFileId[i]); - } - if (onemodel.getMethodId().equals("data.form")) { - fileElements = CoeDesignerUtil.getShapeMessageJson4(splitRelationFileId[i]); + for (Map shape : fileElements) { + String tempShapeId = shape.get("id").toString(); - for (Map shape : fileElements) { - String tempShapeId = shape.get("id").toString(); + UpFileDao dao = new UpFileDao(); + // 文件:根据relationFileId 和 文件类型 查询 + List list2; - UpFileDao dao = new UpFileDao(); - // 文件:根据relationFileId 和 文件类型 查询 - List list2; + list2= dao.search(splitRelationFileId[i], tempShapeId, "s"); - list2 = dao.search(splitRelationFileId[i], tempShapeId, "s"); - - if (list2.size() == 0) { - String name = ""; - if (type == "1") { - name = rowData.getString("PUBLISHFILENAME"); - } else { - name = rowData.getString("CHANGEFILENAME"); + if(list2.size()==0){ + String name=""; + if (type == "1") { + name=rowData.getString("PUBLISHFILENAME"); + } else { + name=rowData.getString("CHANGEFILENAME"); + } + sb.append(name).append("关联模型名称:").append("
").append("【").append(shape.get("plName")).append("】").append("节点名称:").append("【"+shape.get("name")+"】").append("未上传附件,请检查!!!").append("
").append(","); } - sb.append(name).append("关联模型名称:").append("
").append("【").append(shape.get("plName")).append("】").append("节点名称:").append("【" + shape.get("name") + "】").append("未上传附件,请检查!!!").append("
").append(","); + } - } - } + + + + } + } } - } - } } @@ -237,18 +244,18 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int } + /** * 判断文件属性、数据属性校验 - * * @param uuid * @return */ - public void defineQualityCheck(String uuid) { + public void defineQualityCheck(String uuid){ PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid); - String vison = getVison(uuid); + String vison = getVison(uuid); List elements_fei = getShapeJsonToJsonObject2(vison); - StringBuffer sb6 = new StringBuffer(); + StringBuffer sb6= new StringBuffer(); StringBuilder sbs = new StringBuilder(); List list_linker = new LinkedList<>(); //连线数据增加 @@ -260,7 +267,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int String title = o.getString("title"); if (!shapeName.equals("linker")) { list_linker.add(shapeId); - json.put(shapeId, title); + json.put(shapeId,title); } } @@ -276,23 +283,23 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int String to_id = to.getString("id"); if (UtilString.isNotEmpty(from_id)) { list_linker.remove(from_id); - } else { + }else { JSONObject definition = JSONObject.parseObject(vison); JSONObject elements = definition.getJSONObject("elements"); JSONObject string = elements.getJSONObject(to_id); String title = string.getString("title"); - sb6.append("\"" + title + "\"").append("连线没有入线"); - list_linker.add("\"" + title + "\"" + "连线没有入线"); + sb6.append("\""+title+"\"").append("连线没有入线"); + list_linker.add("\""+title+"\""+"连线没有入线"); } if (UtilString.isNotEmpty(to_id)) { list_linker.remove(to_id); - } else { + }else { JSONObject definition = JSONObject.parseObject(vison); JSONObject elements = definition.getJSONObject("elements"); JSONObject string = elements.getJSONObject(from_id); String title = string.getString("title"); - sb6.append("\"" + title + "\"").append("连线没有出线"); - list_linker.add("\"" + title + "\"" + "连线没有出线"); + sb6.append("\""+title+"\"").append("连线没有出线"); + list_linker.add("\""+title+"\""+"连线没有出线"); } } //System.out.println("m的值>>>>>>>>>>>" + ms); @@ -309,9 +316,9 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int sb6.append("校验未通过,请检查模型是否都已连线!"); sbs.append(sb6); } - /*if (sbs.length()>0){ + if (sbs.length()>0){ throw new BPMNError("0313", sbs.toString()); - }*/ + } /************************************文件属性校验************************************/ ResponseObject ro = ResponseObject.newOkResponse(); @@ -331,14 +338,13 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int List propertys = dao.getPropertysByPlid(uuid, null); - Boolean flag1 = true; - Boolean flag2 = true; + Boolean flag1=true; + Boolean flag2=true; StringBuffer sb = new StringBuffer(); - StringBuffer sb1 = new StringBuffer(); - StringBuffer sb2 = new StringBuffer(); - StringBuffer sb3 = new StringBuffer(); - StringBuffer sb4 = new StringBuffer(); - ; + StringBuffer sb1=new StringBuffer(); + StringBuffer sb2=new StringBuffer(); + StringBuffer sb3=new StringBuffer(); + StringBuffer sb4 = new StringBuffer();; sb.append("质量校验
"); @@ -364,16 +370,16 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int flag1 = UtilString.isNotEmpty(property.getPropertyValue()); } if (!flag1) {// 校验不通过 - sb1.append("''" + attributeModel.getTitle() + "''").append(","); + sb1.append("''"+attributeModel.getTitle()+"''").append(","); flag1 = false; } } - if (sb1.length() > 0) { - sb.append("模型名称:【" + model.getName() + "】
"); + if(sb1.length()>0){ + sb.append("模型名称:【"+model.getName()+"】
"); sb.append("文件属性:
"); - sb.append(sb1.substring(0, sb1.length() - 1)); + sb.append(sb1.substring(0, sb1.length()-1)); sb.append("未填写,请检查!").append("
"); } @@ -424,26 +430,27 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int flag2 = UtilString.isNotEmpty(value); } if (!flag2) { - sb2.append("节点名称:" + "【" + text + "】").append("''" + attrModel.getNewTitle() + "''").append("
"); + sb2.append("节点名称:"+"【"+text+"】").append("''"+attrModel.getNewTitle()+"''").append("
"); } } } } - if (sb2.length() > 0) { + if(sb2.length()>0){ sb.append("数据属性:
"); - sb.append(sb2.substring(0, sb2.length() - 1)); + sb.append(sb2.substring(0, sb2.length()-1)); sb.append("未填写,请检查!"); } - int index = sb.indexOf("未填写"); - if (index != -1) { - ro.put("result", "error"); + int index=sb.indexOf("未填写"); + if(index!=-1){ + ro.put("result","error"); sb1 = sb.deleteCharAt(sb.length() - 1); throw new BPMNError("0313", sb1.toString()); } + } public static List getShapeJsonToJsonObject2(String messageJson) { @@ -455,7 +462,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int String key = ite.next(); JSONObject shape = elements.getJSONObject(key); String name = shape.getString("name"); - if ("linker".equals(name)) { + if ("linker".equals(name)){ JSONObject jsonObj = new JSONObject(); jsonObj.put("id", key); jsonObj.put("name", shape.getString("name")); @@ -522,11 +529,10 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int /** * 根据uuid寻找对应的json文件即图形文件 - * * @param uuid 文件id * @return json文件 */ - public String getVison(String uuid) { + public String getVison(String uuid) { List> fileElements = CoeDesignerUtil.getShapeMessageJson4(uuid); JSONObject definition = new JSONObject(new LinkedHashMap<>()); if (fileElements.size() > 0) { @@ -535,7 +541,7 @@ public class PublishFormBeforeSaveEvent extends InterruptListener implements Int BaseModel defineModel = CoeDesignerAPIManager.getInstance().getDefinition(uuid, 0); String define = defineModel.getDefinition(); - definition = JSONObject.parseObject(define); + definition = JSONObject.parseObject(define); } }