From 741a69a0b6f5d9446452b5ca6d9fa01f24ce6ae9 Mon Sep 17 00:00:00 2001 From: lvleigang <957075182@qq.com> Date: Tue, 8 Apr 2025 15:35:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E5=90=8C=E6=AD=A5=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=BF=AE=E6=94=B9=E4=BB=8E=E7=95=8C=E9=9D=A2=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IZjMaterielSynchronizationEventDao.java | 4 + ...ZjMaterielSynchronizationEventDaoImpl.java | 10 + .../ZjMaterielSynchronizationEventEntity.xml | 33 ++ ...terielSynchronizationEventServiceImpl.java | 215 ++++++++-- .../seeyon/service/ISeeYonInterFace.java | 22 +- .../service/impl/SeeYonInterFaceImpl.java | 393 +++++++++++------- 6 files changed, 478 insertions(+), 199 deletions(-) diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/IZjMaterielSynchronizationEventDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/IZjMaterielSynchronizationEventDao.java index f7656f51..3fbb1178 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/IZjMaterielSynchronizationEventDao.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/IZjMaterielSynchronizationEventDao.java @@ -26,5 +26,9 @@ public interface IZjMaterielSynchronizationEventDao extends IBaseDao queryById(ZjMaterielSynchronizationEventEntity entity1); + + List getmeiji(ZjMaterielSynchronizationEventEntity zjMaterielSynchronizationEventEntity); + + List getuser(ZjMaterielSynchronizationEventEntity user); } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/impl/ZjMaterielSynchronizationEventDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/impl/ZjMaterielSynchronizationEventDaoImpl.java index 612805ae..d322e61d 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/impl/ZjMaterielSynchronizationEventDaoImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/dao/impl/ZjMaterielSynchronizationEventDaoImpl.java @@ -44,5 +44,15 @@ public class ZjMaterielSynchronizationEventDaoImpl extends MybatisGenericDao queryById(ZjMaterielSynchronizationEventEntity entity) { return (List) super.selectList(getSqlIdPrifx() + "queryById",entity); } + @Override + @DS("#entity.dataSourceCode") + public List getmeiji(ZjMaterielSynchronizationEventEntity entity) { + return (List) super.selectList(getSqlIdPrifx() + "getmeiji",entity); + } + @Override + @DS("#entity.dataSourceCode") + public List getuser(ZjMaterielSynchronizationEventEntity entity) { + return (List) super.selectList(getSqlIdPrifx() + "getuser",entity); + } } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/entity/ZjMaterielSynchronizationEventEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/entity/ZjMaterielSynchronizationEventEntity.xml index 7cea0600..c857b339 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/entity/ZjMaterielSynchronizationEventEntity.xml +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/entity/ZjMaterielSynchronizationEventEntity.xml @@ -47,5 +47,38 @@ where id = #{id} + + + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/service/impl/ZjMaterielSynchronizationEventServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/service/impl/ZjMaterielSynchronizationEventServiceImpl.java index 518e54ac..b12a6b8d 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/service/impl/ZjMaterielSynchronizationEventServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/zjmaterielsynchronizationevent/service/impl/ZjMaterielSynchronizationEventServiceImpl.java @@ -1,5 +1,6 @@ package com.hzya.frame.plugin.zjmaterielsynchronizationevent.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.hzya.frame.basedao.service.impl.BaseService; @@ -61,18 +62,8 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService list = zjMaterielSynchronizationEventDao.queryById(entity); - if(list == null || list.size() == 0){ - return BaseResult.getFailureMessageEntity("onBeforeStart流程监听事件,未获取到明细数据"); - } - return checkData(list,false,null); + List list = getListData(businessDataStr); + //ZjMaterielSynchronizationEventEntity entity = new ZjMaterielSynchronizationEventEntity(); + //entity.setFormmain_id(formmain_id); + //entity.setDataSourceCode(zjoa); + //List list = zjMaterielSynchronizationEventDao.queryById(entity); + if (list == null || list.size() == 0) { + return BaseResult.getFailureMessageEntity(eventType + "流程监听事件,未获取到明细数据"); + } + List inventoryEntities12 = new ArrayList<>(); + + return checkData(list,false,inventoryEntities12); + + case "onBeforeFinishWorkitem": case "onProcessFinished"://流程结束事件,同步物料到U8C String id = getFormmain_id(businessDataStr); if(id == null || "".equals(id)){ - return BaseResult.getFailureMessageEntity("onProcessFinished流程监听事件,未获取到主表id"); + return BaseResult.getFailureMessageEntity(eventType+"流程监听事件,未获取到主表id"); } - ZjMaterielSynchronizationEventEntity entity1 = new ZjMaterielSynchronizationEventEntity(); - entity1.setFormmain_id(id); - entity1.setDataSourceCode(zjoa); - List list1 = zjMaterielSynchronizationEventDao.queryById(entity1); + List list1 = getListData(businessDataStr); + //ZjMaterielSynchronizationEventEntity entity1 = new ZjMaterielSynchronizationEventEntity(); + //entity1.setFormmain_id(id); + //entity1.setDataSourceCode(zjoa); + //List list1 = zjMaterielSynchronizationEventDao.queryById(entity1); if(list1 == null || list1.size() == 0){ - return BaseResult.getFailureMessageEntity("onProcessFinished流程监听事件,未获取到明细数据"); + return BaseResult.getFailureMessageEntity(eventType+"流程监听事件,未获取到明细数据"); } List inventoryEntities1 = new ArrayList<>(); JsonResultEntity jsonResultEntity = checkData(list1,true,inventoryEntities1); if(jsonResultEntity == null){ - return BaseResult.getFailureMessageEntity("onProcessFinished流程监听事件,校验发生系统错误"); + return BaseResult.getFailureMessageEntity(eventType+"流程监听事件,校验发生系统错误"); } if(!jsonResultEntity.isFlag()){ return jsonResultEntity; @@ -143,6 +140,156 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService getListData(JSONObject businessDataStr) { + Map mj = getmeiji(); + + List list = new ArrayList<>(); + JSONArray jsonArray = businessDataStr.getJSONArray("formson_0275"); + if(jsonArray!= null && jsonArray.size() > 0){ + for (int i = 0; i < jsonArray.size(); i++) { + JSONObject object = jsonArray.getJSONObject(i); + ZjMaterielSynchronizationEventEntity zjMaterielSynchronizationEventEntity = new ZjMaterielSynchronizationEventEntity(); + zjMaterielSynchronizationEventEntity.setId(object.getString("id")); + zjMaterielSynchronizationEventEntity.setFormmain_id(object.getString("formmain_id")); + zjMaterielSynchronizationEventEntity.setField0004(object.getString("field0004"));//序号1 + if(object.getString("field0038") != null ){ + zjMaterielSynchronizationEventEntity.setField0038(object.getString("field0038"));//是否更新 1是 0否 + zjMaterielSynchronizationEventEntity.setField0038code(mj.get(object.getString("field0038")));//是否更新 1是 0否 todo + } + + zjMaterielSynchronizationEventEntity.setField0005(object.getString("field0005"));//货品编码 + zjMaterielSynchronizationEventEntity.setField0006(object.getString("field0006"));//货品名称 + zjMaterielSynchronizationEventEntity.setField0007(object.getString("field0007"));//货品规格型号 + if(object.getString("field0008") != null ){ + zjMaterielSynchronizationEventEntity.setField0008(object.getString("field0008"));//品牌 + zjMaterielSynchronizationEventEntity.setField0008code(mj.get(object.getString("field0008")));//品牌 todo + } + if(object.getString("field0009") != null ){ + zjMaterielSynchronizationEventEntity.setField0009(object.getString("field0009"));//规格书 + zjMaterielSynchronizationEventEntity.setField0009code(mj.get(object.getString("field0009")));//规格书 todo + } + if(object.getString("field0010") != null ){ + zjMaterielSynchronizationEventEntity.setField0010(object.getString("field0010"));//环保报告 + zjMaterielSynchronizationEventEntity.setField0010code(mj.get(object.getString("field0010")));//环保报告 todo + } + + zjMaterielSynchronizationEventEntity.setField0011(object.getString("field0011"));//ERP中相同型号不同品牌的编码 + + if(object.getString("field0012") != null ){ + zjMaterielSynchronizationEventEntity.setField0012(object.getString("field0012"));//优选等级 + zjMaterielSynchronizationEventEntity.setField0012code(mj.get(object.getString("field0012")));//优选等级 todo + } + + zjMaterielSynchronizationEventEntity.setField0013(object.getString("field0013"));//适用产品 + if(object.getString("field0014") != null ){ + zjMaterielSynchronizationEventEntity.setField0014(object.getString("field0014"));//产品分类 + zjMaterielSynchronizationEventEntity.setField0014code(mj.get(object.getString("field0014")));//产品分类 todo + } + + zjMaterielSynchronizationEventEntity.setField0015(object.getString("field0015"));//备注 + zjMaterielSynchronizationEventEntity.setField0016(object.getString("field0016"));//最小包装量 + if(object.getString("field0017") != null ){ + zjMaterielSynchronizationEventEntity.setField0017(object.getString("field0017"));//封装分类 + zjMaterielSynchronizationEventEntity.setField0017code(mj.get(object.getString("field0017")));//封装分类 todo + } + if(object.getString("field0018") != null ){ + zjMaterielSynchronizationEventEntity.setField0018(object.getString("field0018"));//申请原因 + zjMaterielSynchronizationEventEntity.setField0018code(mj.get(object.getString("field0018")));//申请原因 todo + } + if(object.getString("field0019") != null ){ + zjMaterielSynchronizationEventEntity.setField0019(object.getString("field0019"));//潮敏等级 + zjMaterielSynchronizationEventEntity.setField0019code(mj.get(object.getString("field0019")));//潮敏等级 todo + } + if(object.getString("field0020") != null ){ + zjMaterielSynchronizationEventEntity.setField0020(object.getString("field0020"));//是否退税软件 + zjMaterielSynchronizationEventEntity.setField0020code(mj.get(object.getString("field0020")));//是否退税软件 todo + } + if(object.getString("field0022") != null ){ + zjMaterielSynchronizationEventEntity.setField0022(object.getString("field0022"));//是否委外 + zjMaterielSynchronizationEventEntity.setField0022code(mj.get(object.getString("field0022")));//是否委外 todo + } + + + + zjMaterielSynchronizationEventEntity.setField0030(object.getString("field0030"));//上传附件1 + zjMaterielSynchronizationEventEntity.setField0031(object.getString("field0031"));//上传附件2 + + if(object.getString("field0032") != null ){ + zjMaterielSynchronizationEventEntity.setField0032(object.getString("field0032"));//负责人. 选人 + ZjMaterielSynchronizationEventEntity user = new ZjMaterielSynchronizationEventEntity(); + user.setDataSourceCode(zjoa); + user.setId(object.getString("field0032")); + List entities = zjMaterielSynchronizationEventDao.getuser(user); + if(entities != null && entities.size() > 0){ + zjMaterielSynchronizationEventEntity.setField0032code(entities.get(0).getAccName());//负责人. 选人 todo + } + } + if(object.getString("field0033") != null ){ + zjMaterielSynchronizationEventEntity.setField0033(object.getString("field0033"));//产品阶段 + zjMaterielSynchronizationEventEntity.setField0033code(mj.get(object.getString("field0033")));//产品阶段 todo + } + + if(object.getString("field0034") != null ){ + zjMaterielSynchronizationEventEntity.setField0034(object.getString("field0034"));//客户名 + zjMaterielSynchronizationEventEntity.setField0034code(object.getString("field0034"));//客户名 todo + } + if(object.getString("field0035") != null ){ + + zjMaterielSynchronizationEventEntity.setField0035(object.getString("field0035"));//是否带入档案 + zjMaterielSynchronizationEventEntity.setField0035code(mj.get(object.getString("field0035")));//是否带入档案 todo + } + + zjMaterielSynchronizationEventEntity.setField0039(object.getString("field0039"));//开发号 + if(object.getString("field0040") != null ){ + zjMaterielSynchronizationEventEntity.setField0040(object.getString("field0040"));//仓库名称 + zjMaterielSynchronizationEventEntity.setField0040code(getSubstringBeforeDash(mj.get(object.getString("field0040"))));//仓库名称 todo + } + if(object.getString("field0042") != null ){ + zjMaterielSynchronizationEventEntity.setField0042(object.getString("field0042"));//物料属性 + zjMaterielSynchronizationEventEntity.setField0042code(mj.get(object.getString("field0042")));//物料属性 todo + } + + + zjMaterielSynchronizationEventEntity.setField0043(object.getString("field0043"));//物料中类编码 + zjMaterielSynchronizationEventEntity.setField0043code(getSubstringBeforeDash(object.getString("field0043")));//物料中类编码 todo + zjMaterielSynchronizationEventEntity.setField0044(object.getString("field0044"));//物料一级分类 + zjMaterielSynchronizationEventEntity.setField0045(object.getString("field0045"));//物料一级分类 + if(object.getString("field0047") != null ){ + zjMaterielSynchronizationEventEntity.setField0047(object.getString("field0047"));//物料类别 + zjMaterielSynchronizationEventEntity.setField0047code(mj.get(object.getString("field0047")));//物料类别 todo + } + if(object.getString("field0048") != null ){ + zjMaterielSynchronizationEventEntity.setField0048(object.getString("field0048"));//计量单位 + zjMaterielSynchronizationEventEntity.setField0048code(mj.get(object.getString("field0048")));//计量单位 todo + } + zjMaterielSynchronizationEventEntity.setAccName("UFDATA_997_2021.dbo."); + zjMaterielSynchronizationEventEntity.setCaccId("997"); + list.add(zjMaterielSynchronizationEventEntity); + } + } + return list; + } + + private Map getmeiji() { + ZjMaterielSynchronizationEventEntity zjMaterielSynchronizationEventEntity = new ZjMaterielSynchronizationEventEntity(); + zjMaterielSynchronizationEventEntity.setDataSourceCode(zjoa); + List entities = zjMaterielSynchronizationEventDao.getmeiji(zjMaterielSynchronizationEventEntity); + Map map = new HashMap<>(); + if(entities != null && entities.size() > 0){ + for (int i = 0; i < entities.size(); i++) { + map.put(entities.get(i).getId(),entities.get(i).getAccName()); + } + } + return map; + } + + public String getSubstringBeforeDash(String input) { + int index = input.indexOf('-'); + if (index != -1) { + return input.substring(0, index); + } + return input; + } /** * @Author lvleigang @@ -438,11 +585,11 @@ public class ZjMaterielSynchronizationEventServiceImpl extends BaseService attributeArray = JSON.parseArray(attributeArrayStr, JSONObject.class); JsonResultEntity result = null; if (ARCHIVESTYPE.equalsIgnoreCase(type)) { - switch (templateCode){ + switch (templateCode) { //预留的 case "abc123": break; @@ -198,13 +198,13 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { @Override - public JsonResultEntity thirdInterfaceSeeYonPlugInInterfaceEntrance(JSONObject requestData){ + public JsonResultEntity thirdInterfaceSeeYonPlugInInterfaceEntrance(JSONObject requestData) { String jsonStr = requestData.getString("jsonStr"); JSONObject jsonObject = requestData.getJSONObject("jsonStr"); - OAWorkflowEventDataEntity entity = JSON.parseObject(jsonStr,OAWorkflowEventDataEntity.class); - logger.info("监听OA事件入参:"+jsonObject.toJSONString()); + OAWorkflowEventDataEntity entity = JSON.parseObject(jsonStr, OAWorkflowEventDataEntity.class); + logger.info("监听OA事件入参:" + jsonObject.toJSONString()); JSONObject formBeanData = jsonObject.getJSONObject("businessDataStr"); - String eventType = jsonObject.getString("eventType") ; + String eventType = jsonObject.getString("eventType"); /** 流程ID*/ String summaryId = entity.getSummaryId(); /** 节点ID*/ @@ -223,73 +223,74 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { //formApp 最好过滤一下 - String result = null; + JsonResultEntity result = null; try { //流程事件处理 result = colEventPost(jsonStr, formApp, eventType); - }catch (Exception e){ - return BaseResult.getFailureMessageEntity("传递失败",e.getMessage()); - } - try { - /** 根据事件类型处理相关事件*/ - switch (eventType) { - /** 发起前事件*/ - case "onBeforeStart": - break; - /** 发起事件*/ - case "onStart": - //流程发起 新增grpu8单据 - break; - /** 终止前事件*/ - case "onBeforeStop": - break; - /** 终止事件*/ - case "onStop": - //流程终止,更新grpu8单据 - break; - /** 撤销前事件*/ - case "onBeforeCancel": - break; - /** 撤销事件*/ - case "onCancel": - //流程撤销,更新grpu8单据 - break; - /** 结束事件*/ - case "onProcessFinished": - break; - /** 处理前事件*/ - case "onBeforeFinishWorkitem": - /** 根据form处理相关业务表单的数据*/ - switch (formApp) { - case "abc123": - break; - default: - return BaseResult.getFailureMessageEntity("未匹配到表单!当前formID:" + formApp, ""); - } - break; - /** 处理事件*/ - case "onFinishWorkitem": - break; - /** 回退前事件*/ - case "onBeforeStepBack": - break; - /** 回退事件*/ - case "onStepBack": - break; - /** 取回前事件*/ - case "onBeforeTakeBack": - break; - /** 取回事件*/ - case "onTakeBack": - break; - default: -// throw new RuntimeException("传入了非法事件类型!请参照:" + eventTypeBuffer.toString()); - return BaseResult.getFailureMessageEntity("传入了非法事件类型!请参照:" + eventTypeBuffer.toString(), "", ""); - } - return BaseResult.getSuccessMessageEntity("传递成功", result); - }catch (Exception e){ - return BaseResult.getFailureMessageEntity("传递失败",e.getMessage()); + } catch (Exception e) { + return BaseResult.getFailureMessageEntity("传递失败", e.getMessage()); } + return result; +// try { +// /** 根据事件类型处理相关事件*/ +// switch (eventType) { +// /** 发起前事件*/ +// case "onBeforeStart": +// break; +// /** 发起事件*/ +// case "onStart": +// //流程发起 新增grpu8单据 +// break; +// /** 终止前事件*/ +// case "onBeforeStop": +// break; +// /** 终止事件*/ +// case "onStop": +// //流程终止,更新grpu8单据 +// break; +// /** 撤销前事件*/ +// case "onBeforeCancel": +// break; +// /** 撤销事件*/ +// case "onCancel": +// //流程撤销,更新grpu8单据 +// break; +// /** 结束事件*/ +// case "onProcessFinished": +// break; +// /** 处理前事件*/ +// case "onBeforeFinishWorkitem": +// /** 根据form处理相关业务表单的数据*/ +// switch (formApp) { +// case "abc123": +// break; +// default: +// return BaseResult.getFailureMessageEntity("未匹配到表单!当前formID:" + formApp, ""); +// } +// break; +// /** 处理事件*/ +// case "onFinishWorkitem": +// break; +// /** 回退前事件*/ +// case "onBeforeStepBack": +// break; +// /** 回退事件*/ +// case "onStepBack": +// break; +// /** 取回前事件*/ +// case "onBeforeTakeBack": +// break; +// /** 取回事件*/ +// case "onTakeBack": +// break; +// default: +//// throw new RuntimeException("传入了非法事件类型!请参照:" + eventTypeBuffer.toString()); +// return BaseResult.getFailureMessageEntity("传入了非法事件类型!请参照:" + eventTypeBuffer.toString(), "", ""); +// } +// return BaseResult.getSuccessMessageEntity("传递成功", result); +// }catch (Exception e){ +// return BaseResult.getFailureMessageEntity("传递失败",e.getMessage()); +// } } @@ -297,8 +298,8 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { public JsonResultEntity thirdInterfaceSeeYonDefinitionRePush(JSONObject jsonObject) throws Exception { JSONObject requestData = jsonObject.getJSONObject("jsonStr"); JSONArray resultEntityArray = new JSONArray(); - if(null == requestData){ - throw new BaseSystemException("参数传递错误需要jsonStr!"); + if (null == requestData) { + throw new BaseSystemException("参数传递错误需要jsonStr!"); } //表单模版ID String formAppId = requestData.getString("formAppId"); @@ -308,24 +309,24 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { String dataSourceCode = requestData.getString("dataSourceCode"); //主表ID集合 formMainIds JSONArray formMainIds = requestData.getJSONArray("formMainIds"); - if(StrUtil.isEmpty(eventType)){ - throw new BaseSystemException("需要传递eventType 参照致远OA事件!"); + if (StrUtil.isEmpty(eventType)) { + throw new BaseSystemException("需要传递eventType 参照致远OA事件!"); } - if(StrUtil.isEmpty(formAppId)){ - throw new BaseSystemException("需要传递formAppId 参照致远OA 表 CAP_FORM_DEFINITION!"); + if (StrUtil.isEmpty(formAppId)) { + throw new BaseSystemException("需要传递formAppId 参照致远OA 表 CAP_FORM_DEFINITION!"); } - if(StrUtil.isEmpty(dataSourceCode)){ - throw new BaseSystemException("需要传递dataSourceCode 参照中台表 sys_data_source!"); + if (StrUtil.isEmpty(dataSourceCode)) { + throw new BaseSystemException("需要传递dataSourceCode 参照中台表 sys_data_source!"); } - if(null == formMainIds || formMainIds.size() == 0){ - throw new BaseSystemException("需要传递业务主表数据id集合,不允许全量推送!"); + if (null == formMainIds || formMainIds.size() == 0) { + throw new BaseSystemException("需要传递业务主表数据id集合,不允许全量推送!"); } SeeYonInterFaceEntity seeYonInterFaceEntity = new SeeYonInterFaceEntity(); - BeanUtil.copyProperties(requestData,seeYonInterFaceEntity); + BeanUtil.copyProperties(requestData, seeYonInterFaceEntity); List seeYonInterFaceEntityList = seeYonInterFaceDao.queryDefinitionInfo(seeYonInterFaceEntity); - if(null != seeYonInterFaceEntityList && seeYonInterFaceEntityList.size() >0){ - for(SeeYonInterFaceEntity interFaceEntity : seeYonInterFaceEntityList){ + if (null != seeYonInterFaceEntityList && seeYonInterFaceEntityList.size() > 0) { + for (SeeYonInterFaceEntity interFaceEntity : seeYonInterFaceEntityList) { String field_info = interFaceEntity.getField_info(); JSONObject infoJson = JSON.parseObject(field_info); //获取主表信息 @@ -338,7 +339,7 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { /** 设置主表查询条件*/ interFaceEntity.setTabName(formMainTableName); interFaceEntity.setDataSourceCode(dataSourceCode); - interFaceEntity.setFormMainIds( formMainIds.toJavaList(String.class) ); + interFaceEntity.setFormMainIds(formMainIds.toJavaList(String.class)); List> forMainList = seeYonInterFaceDao.queryDefinitionData(interFaceEntity); for (Map forMainRow : forMainList) { @@ -350,11 +351,11 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { String forMainId = String.valueOf(forMainRow.get("ID")); //组装主表数据 for (Map.Entry entry : forMainRow.entrySet()) { - formMainObj.put(entry.getKey().toLowerCase(),entry.getValue()); - } + formMainObj.put(entry.getKey().toLowerCase(), entry.getValue()); + } //组装明细表数据 - if(null != formSons && formSons.size() > 0){ - for(Object formSon : formSons){ + if (null != formSons && formSons.size() > 0) { + for (Object formSon : formSons) { JSONObject son = JSON.parseObject(JSON.toJSONString(formSon)); //明细数据 String sonTableName = son.getString("tableName"); @@ -368,38 +369,38 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { //组装明细数据 JSONObject forSonJson = new JSONObject(); for (Map.Entry entry : forSons.entrySet()) { - forSonJson.put(entry.getKey().toLowerCase(),entry.getValue()); - } + forSonJson.put(entry.getKey().toLowerCase(), entry.getValue()); + } jsonArray.add(forSonJson); } //设置明细表数据 - seeYonBean.put(sonTableName,jsonArray); + seeYonBean.put(sonTableName, jsonArray); } } - seeYonBean.put(formMainTableName,formMainObj); + seeYonBean.put(formMainTableName, formMainObj); JSONObject rePushRequestData = new JSONObject(); JSONObject object = new JSONObject(); - object.put("formApp",formAppId); - object.put("eventType",eventType); - object.put("businessDataStr",seeYonBean.toJSONString()); - object.put("affairId",""); - object.put("summaryId",requestData.getString("summaryId")); - object.put("currentActivityId",""); - object.put("id",forMainId); - object.put("hzyaExtData",requestData.getJSONObject("hzyaExtData")); - logger.info("Method:thirdInterfaceSeeYonDefinitionRePush 组装seeYonBean DATA: {}",seeYonBean.toJSONString()); + object.put("formApp", formAppId); + object.put("eventType", eventType); + object.put("businessDataStr", seeYonBean.toJSONString()); + object.put("affairId", ""); + object.put("summaryId", requestData.getString("summaryId")); + object.put("currentActivityId", ""); + object.put("id", forMainId); + object.put("hzyaExtData", requestData.getJSONObject("hzyaExtData")); + logger.info("Method:thirdInterfaceSeeYonDefinitionRePush 组装seeYonBean DATA: {}", seeYonBean.toJSONString()); - rePushRequestData.put("jsonStr",object); + rePushRequestData.put("jsonStr", object); - JsonResultEntity resultEntity = thirdInterfaceSeeYonPlugInInterfaceEntrance(rePushRequestData); - if(null != resultEntity){ + JsonResultEntity resultEntity = thirdInterfaceSeeYonPlugInInterfaceEntrance(rePushRequestData); + if (null != resultEntity) { resultEntityArray.add(resultEntity.getAttribute()); - }else{ - JSONObject jsonResultEntity = new JSONObject(); - jsonResultEntity.put("msg","从新推送失败"); - jsonResultEntity.put("id",forMainId); + } else { + JSONObject jsonResultEntity = new JSONObject(); + jsonResultEntity.put("msg", "从新推送失败"); + jsonResultEntity.put("id", forMainId); resultEntityArray.add(jsonResultEntity); } @@ -407,11 +408,12 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { } } } - return BaseResult.getSuccessMessageEntity("从新推送执行结束",resultEntityArray); + return BaseResult.getSuccessMessageEntity("从新推送执行结束", resultEntityArray); } /** * seeyon流程事件监听前置方法,绑定数据源 + * * @param entity * @return * @throws Exception @@ -426,10 +428,10 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { sysApplicationDatabaseEntity.setAppId(applicationEntity.getId()); sysApplicationDatabaseEntity.setDataSourceCode("master"); List sysDataSourceEntities = sysApplicationDatabaseDao.queryDSBase(sysApplicationDatabaseEntity); - if(sysDataSourceEntities != null && sysDataSourceEntities.size() > 0){ + if (sysDataSourceEntities != null && sysDataSourceEntities.size() > 0) { String parm = entity.getBodys(); JSONObject jsonObject = JSONObject.parseObject(parm); - jsonObject.put("dataSourceCode",sysDataSourceEntities.get(0).getSourceCode()); + jsonObject.put("dataSourceCode", sysDataSourceEntities.get(0).getSourceCode()); entity.setBodys(jsonObject.toJSONString()); } } catch (Exception e) { @@ -448,24 +450,24 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { @Override public JsonResultEntity colEventListener(JSONObject jsonObject) throws Exception { try { - if (null != jsonObject && StrUtil.isNotEmpty(jsonObject.getString("jsonStr"))){ + if (null != jsonObject && StrUtil.isNotEmpty(jsonObject.getString("jsonStr"))) { SeeYonInterFaceEntity entity = jsonObject.getJSONObject("jsonStr").toJavaObject(SeeYonInterFaceEntity.class); JSONObject requestData = new JSONObject(); //表单模版ID requestData.put("formAppId", entity.getFormAppId()); //事件事件类型 - requestData.put("eventType",entity.getEventType()); + requestData.put("eventType", entity.getEventType()); //数据源编码 - requestData.put("dataSourceCode",entity.getDataSourceCode()); - requestData.put("formMainIds",entity.getFormMainIds()); - requestData.put("summaryId",entity.getSummaryId()); + requestData.put("dataSourceCode", entity.getDataSourceCode()); + requestData.put("formMainIds", entity.getFormMainIds()); + requestData.put("summaryId", entity.getSummaryId()); JSONObject jsonStr = new JSONObject(); - jsonStr.put("jsonStr",requestData); + jsonStr.put("jsonStr", requestData); thirdInterfaceSeeYonDefinitionRePush(jsonStr); } - }catch (Exception e){ - logger.error("流程事件通知接口出错:{}",e); - return BaseResult.getSuccessMessageEntity("失败",e.getMessage()); + } catch (Exception e) { + logger.error("流程事件通知接口出错:{}", e); + return BaseResult.getSuccessMessageEntity("失败", e.getMessage()); } return BaseResult.getSuccessMessageEntity("成功"); } @@ -480,28 +482,101 @@ public class SeeYonInterFaceImpl implements ISeeYonInterFace { * @throws Exception */ @Override - public String colEventPost(String jsonStr, String formAppId, String eventType) throws Exception { - if (StrUtil.isNotEmpty(jsonStr) && StrUtil.isNotEmpty(formAppId) && StrUtil.isNotEmpty(eventType)){ + public JsonResultEntity colEventPost(String jsonStr, String formAppId, String eventType) throws Exception { + if (StrUtil.isNotEmpty(jsonStr) && StrUtil.isNotEmpty(formAppId) && StrUtil.isNotEmpty(eventType)) { SysApplicationApiEntity sysApplicationApiEntity = new SysApplicationApiEntity(); - sysApplicationApiEntity.setHeaderIn(formAppId+"_"+eventType); + sysApplicationApiEntity.setHeaderIn(formAppId + "_" + eventType); List applist = sysApplicationApiService.queryLike(sysApplicationApiEntity); - if (CollectionUtil.isNotEmpty(applist)){ - if (applist.size() > 1){ - throw new BaseSystemException("根据formID:" + formAppId+"查询出多条数据"); + if (CollectionUtil.isNotEmpty(applist)) { + if (applist.size() > 1) { + throw new BaseSystemException("根据formID:" + formAppId + "查询出多条数据"); + } + if (applist.size() == 0 ) { + throw new BaseSystemException("根据formID:" + formAppId + "eventType:"+eventType+"未查询到API配置"); } SysApplicationApiEntity sysApp = applist.get(0); - Map headerMap = MapBuilder.create(true) - .put("apiCode", String.valueOf(sysApp.getApiCode())) - //这里用中台做为发送方 - .put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj") - .put("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") - .put("appId",String.valueOf(sysApp.getAppCode())) - .build(); - String body = HttpRequest.post("http://127.0.0.1:9999/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(headerMap).body(jsonStr).timeout(60000).execute().body(); - logger.info("调用中台返回的参数:{}",body); - return body; + JSONArray headerArray = JSONArray.parseArray(sysApp.getHeaderIn()); + if (null != headerArray && headerArray.size() > 0) { + String plugId = null; + for (int i = 0; i < headerArray.size(); i++) { + JSONObject querys = headerArray.getJSONObject(i); + //query 只有基本类型,不用循环判断下级 + //判断参数是否有值 + //获取对象下面的层级数据 + String parameterName = querys.getString("parameterName"); + if (null != parameterName && "plugId".equals(parameterName)) { + plugId = querys.getString("example"); + break; + } + } + if (null == plugId) { + throw new BaseSystemException("根据formID:" + formAppId + "未获取到head参数"); + } else { + PluginBaseEntity pluginBaseEntity = null; + JsonResultEntity result; + pluginBaseEntity = PluginUtils.getPluginsById(plugId); + if (null == pluginBaseEntity) { + throw new BaseSystemException("根据ID获取插件错误!请传入正确的 pluginId"); + } else { + //执行业务逻辑代码 + JSONObject reqJson = new JSONObject(); + reqJson.put("jsonStr",jsonStr); + reqJson.put("formAppId",formAppId); + reqJson.put("eventType",eventType); + result = pluginBaseEntity.executeBusiness(reqJson); + return result; + } + } + + + } else { + throw new BaseSystemException("根据formID:" + formAppId + "未获取到head参数"); + } + + +// Map headerMap = MapBuilder.create(true) +// .put("apiCode", String.valueOf(sysApp.getApiCode())) +// //这里用中台做为发送方 +// .put("publicKey","ZJYAWb7lhAUTYqekPkU+uHJv1/ObJxb7dT7sD8HPRDGAgyhCe7eDIk+3zDUT+v578prj") +// .put("secretKey","fviZnLBsQUAGF8w8FSOdJi7XlIm/XAZclMxRagDLfTyJFlvnIBF3w66Hrpfzs8cYj3JzOP8MtA1LSGvL+2BWG8c/o7DKi92S4mr3zcGearA=") +// .put("appId",String.valueOf(sysApp.getAppCode())) +// .build(); +// String body = HttpRequest.post("http://127.0.0.1:10086/kangarooDataCenterV3/entranceController/externalCallInterface").addHeaders(headerMap).body(jsonStr).timeout(60000).execute().body(); +// logger.info("调用中台返回的参数:{}",body); +// return body; } + }else{ + // StrUtil.isNotEmpty(jsonStr) && StrUtil.isNotEmpty(formAppId) && StrUtil.isNotEmpty(eventType) + logger.info("jsonStr,formAppId,eventType为空!执行错误"+jsonStr+formAppId+eventType); + throw new BaseSystemException("jsonStr,formAppId,eventType为空!执行错误"); } return null; } + + @Override + public JsonResultEntity chengeBody(JSONObject object) throws Exception { + JSONObject jsonstr = object.getJSONObject("jsonStr"); + PluginBaseEntity pluginBaseEntity = null; + JsonResultEntity result; + String pluginId = jsonstr.getString("plugId"); + pluginBaseEntity = PluginUtils.getPluginsById(pluginId); + if (null == pluginBaseEntity) { + throw new BaseSystemException("根据ID获取插件错误!请传入正确的 pluginId"); + } else { + //执行业务逻辑代码 + result = pluginBaseEntity.executeBusiness(object); + } + return result; + } + + @Override + public SysExtensionApiEntity chengeBodySetPlug(SysExtensionApiEntity entity) { + Map headers = entity.getHeaders(); + JSONObject jsonObject = JSONObject.parseObject(entity.getBodys()); + jsonObject.put("plugId", headers.get("plugId")); + entity.setBodys(jsonObject.toJSONString()); + return entity; + } + + }