wangliang 1 anno fa
parent
commit
485b0cf44e

+ 1 - 43
sop-api/src/main/java/com/qmth/sop/server/api/TDFormWidgetController.java

@@ -1,36 +1,21 @@
 package com.qmth.sop.server.api;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.google.gson.reflect.TypeToken;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.sop.business.bean.result.FlowFormWidgetResult;
-import com.qmth.sop.business.bean.result.FlowTablePropResult;
-import com.qmth.sop.business.bean.result.FlowTdFormWidgetResult;
 import com.qmth.sop.business.bean.result.FormWidgetResult;
 import com.qmth.sop.business.cache.CommonCacheService;
-import com.qmth.sop.business.entity.TDFormWidget;
-import com.qmth.sop.business.entity.TDTableProp;
 import com.qmth.sop.business.service.TDFormWidgetService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.TFCustomTypeEnum;
-import com.qmth.sop.common.enums.WidgetCodeEnum;
-import com.qmth.sop.common.enums.WidgetTypeEnum;
-import com.qmth.sop.common.util.GsonUtil;
-import com.qmth.sop.common.util.JacksonUtil;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import io.swagger.annotations.*;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
-import java.util.stream.Collectors;
 
 @Api(tags = "系统控件Controller")
 @RestController
@@ -55,33 +40,6 @@ public class TDFormWidgetController {
     @RequestMapping(value = "/flow/select", method = RequestMethod.POST)
     public Result flowSelect(@ApiParam(value = "流程类型", required = true) @RequestParam TFCustomTypeEnum flowType,
                              @ApiParam(value = "表单步骤") @RequestParam(required = false) Integer formSetup) {
-        QueryWrapper<TDFormWidget> tdFormWidgetQueryWrapper = new QueryWrapper<>();
-        tdFormWidgetQueryWrapper.lambda().eq(TDFormWidget::getFlowType, flowType).eq(TDFormWidget::getType, WidgetTypeEnum.FORM);
-        if (Objects.nonNull(formSetup)) {
-            tdFormWidgetQueryWrapper.lambda().eq(TDFormWidget::getFormSetup, formSetup);
-        }
-        List<TDFormWidget> tdFormWidgetList = tdFormWidgetService.list(tdFormWidgetQueryWrapper);
-        List<FlowFormWidgetResult> flowFormWidgetResultList = null;
-        if (!CollectionUtils.isEmpty(tdFormWidgetList)) {
-            flowFormWidgetResultList = GsonUtil.fromJson(JacksonUtil.parseJson(tdFormWidgetList), new TypeToken<List<FlowFormWidgetResult>>() {
-            }.getType());
-            Set<FlowFormWidgetResult> flowFormWidgetResultSet = flowFormWidgetResultList.stream().filter(s -> s.getCode() == WidgetCodeEnum.TABLE).collect(Collectors.toSet());
-            if (!CollectionUtils.isEmpty(flowFormWidgetResultSet)) {
-                for (FlowFormWidgetResult f : flowFormWidgetResultSet) {
-                    List<TDTableProp> tdTablePropList = commonCacheService.tablePropCache(f.getId());
-                    if (!CollectionUtils.isEmpty(tdTablePropList)) {
-                        List<FlowTablePropResult> flowTablePropResultList = GsonUtil.fromJson(JacksonUtil.parseJson(tdTablePropList), new TypeToken<List<FlowTablePropResult>>() {
-                        }.getType());
-                        for (FlowTablePropResult tf : flowTablePropResultList) {
-                            TDFormWidget tdFormWidget = commonCacheService.formWidgetCache(tf.getEditWidgetId());
-                            FlowTdFormWidgetResult flowTdFormWidgetResult = GsonUtil.fromJson(GsonUtil.toJson(tdFormWidget), FlowTdFormWidgetResult.class);
-                            tf.setTdFormWidget(flowTdFormWidgetResult);
-                        }
-                        f.setTablePropList(flowTablePropResultList);
-                    }
-                }
-            }
-        }
-        return ResultUtil.ok(flowFormWidgetResultList);
+        return ResultUtil.ok(tdFormWidgetService.flowWidgetQuery(flowType, formSetup));
     }
 }

+ 4 - 4
sop-business/src/main/java/com/qmth/sop/business/activiti/listener/ProcessEventListener.java

@@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qmth.sop.business.bean.dto.FlowRejectSequenceDto;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.*;
-import com.qmth.sop.business.service.SysMessageService;
-import com.qmth.sop.business.service.TFCustomFlowEntityService;
-import com.qmth.sop.business.service.TFCustomFlowService;
-import com.qmth.sop.business.service.TSJobRemindService;
+import com.qmth.sop.business.service.*;
 import com.qmth.sop.business.util.SmsSendUtil;
 import com.qmth.sop.common.contant.SpringContextHolder;
 import com.qmth.sop.common.contant.SystemConstant;
@@ -182,6 +179,7 @@ public class ProcessEventListener implements ActivitiEventListener, Serializable
     protected void parseXml(String xml, ResourceEntity resourceEntity) {
 //        log.info("ENTITY_CREATED,xml:{}", xml);
         try {
+//            TDFormWidgetService tdFormWidgetService = SpringContextHolder.getBean(TDFormWidgetService.class);
             Document doc = DocumentHelper.parseText(xml);
             Element rootElement = doc.getRootElement();
             // 通过element对象的elementIterator方法获取迭代器
@@ -224,6 +222,8 @@ public class ProcessEventListener implements ActivitiEventListener, Serializable
                                 } else if (Objects.equals(attr.getName(), SystemConstant.FORM_KEY) && SystemConstant.FLOW_MAP.containsKey(resourceEntity.getDeploymentId() + SystemConstant.FLOW_FORM_ID_SPACE + attr.getValue())) {
                                     if (Objects.equals(node.getName(), SystemConstant.USER_TASK) || Objects.equals(node.getName(), SystemConstant.END_EVENT)) {
                                         flowTaskResult.setFormKey(attr.getValue());
+                                        //从数据库取
+//                                        List<FlowFormWidgetResult> listData = tdFormWidgetService.flowWidgetQuery(customTypeEnum, flowTaskResult.getSetup());
                                         List<String> list = SystemConstant.FLOW_MAP.get(resourceEntity.getDeploymentId() + SystemConstant.FLOW_FORM_ID_SPACE + attr.getValue());
                                         String data = list.get(list.size() - 1);
                                         List<FlowFormWidgetResult> listData = JSONArray.parseArray(data, FlowFormWidgetResult.class);

+ 12 - 0
sop-business/src/main/java/com/qmth/sop/business/service/TDFormWidgetService.java

@@ -1,7 +1,11 @@
 package com.qmth.sop.business.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.sop.business.bean.result.FlowFormWidgetResult;
 import com.qmth.sop.business.entity.TDFormWidget;
+import com.qmth.sop.common.enums.TFCustomTypeEnum;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,12 @@ import com.qmth.sop.business.entity.TDFormWidget;
  */
 public interface TDFormWidgetService extends IService<TDFormWidget> {
 
+    /**
+     * 流程控件查询
+     *
+     * @param flowType
+     * @param formSetup
+     * @return
+     */
+    List<FlowFormWidgetResult> flowWidgetQuery(TFCustomTypeEnum flowType, Integer formSetup);
 }

+ 60 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TDFormWidgetServiceImpl.java

@@ -1,10 +1,29 @@
 package com.qmth.sop.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.gson.reflect.TypeToken;
+import com.qmth.sop.business.bean.result.FlowFormWidgetResult;
+import com.qmth.sop.business.bean.result.FlowTablePropResult;
+import com.qmth.sop.business.bean.result.FlowTdFormWidgetResult;
+import com.qmth.sop.business.cache.CommonCacheService;
 import com.qmth.sop.business.entity.TDFormWidget;
+import com.qmth.sop.business.entity.TDTableProp;
 import com.qmth.sop.business.mapper.TDFormWidgetMapper;
 import com.qmth.sop.business.service.TDFormWidgetService;
+import com.qmth.sop.common.enums.TFCustomTypeEnum;
+import com.qmth.sop.common.enums.WidgetCodeEnum;
+import com.qmth.sop.common.enums.WidgetTypeEnum;
+import com.qmth.sop.common.util.GsonUtil;
+import com.qmth.sop.common.util.JacksonUtil;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +36,45 @@ import org.springframework.stereotype.Service;
 @Service
 public class TDFormWidgetServiceImpl extends ServiceImpl<TDFormWidgetMapper, TDFormWidget> implements TDFormWidgetService {
 
+    @Resource
+    CommonCacheService commonCacheService;
+
+    /**
+     * 流程控件查询
+     *
+     * @param flowType
+     * @param formSetup
+     * @return
+     */
+    @Override
+    public List<FlowFormWidgetResult> flowWidgetQuery(TFCustomTypeEnum flowType, Integer formSetup) {
+        QueryWrapper<TDFormWidget> tdFormWidgetQueryWrapper = new QueryWrapper<>();
+        tdFormWidgetQueryWrapper.lambda().eq(TDFormWidget::getFlowType, flowType).eq(TDFormWidget::getType, WidgetTypeEnum.FORM);
+        if (Objects.nonNull(formSetup)) {
+            tdFormWidgetQueryWrapper.lambda().eq(TDFormWidget::getFormSetup, formSetup);
+        }
+        List<TDFormWidget> tdFormWidgetList = this.list(tdFormWidgetQueryWrapper);
+        List<FlowFormWidgetResult> flowFormWidgetResultList = null;
+        if (!CollectionUtils.isEmpty(tdFormWidgetList)) {
+            flowFormWidgetResultList = GsonUtil.fromJson(JacksonUtil.parseJson(tdFormWidgetList), new TypeToken<List<FlowFormWidgetResult>>() {
+            }.getType());
+            Set<FlowFormWidgetResult> flowFormWidgetResultSet = flowFormWidgetResultList.stream().filter(s -> s.getCode() == WidgetCodeEnum.TABLE).collect(Collectors.toSet());
+            if (!CollectionUtils.isEmpty(flowFormWidgetResultSet)) {
+                for (FlowFormWidgetResult f : flowFormWidgetResultSet) {
+                    List<TDTableProp> tdTablePropList = commonCacheService.tablePropCache(f.getId());
+                    if (!CollectionUtils.isEmpty(tdTablePropList)) {
+                        List<FlowTablePropResult> flowTablePropResultList = GsonUtil.fromJson(JacksonUtil.parseJson(tdTablePropList), new TypeToken<List<FlowTablePropResult>>() {
+                        }.getType());
+                        for (FlowTablePropResult tf : flowTablePropResultList) {
+                            TDFormWidget tdFormWidget = commonCacheService.formWidgetCache(tf.getEditWidgetId());
+                            FlowTdFormWidgetResult flowTdFormWidgetResult = GsonUtil.fromJson(GsonUtil.toJson(tdFormWidget), FlowTdFormWidgetResult.class);
+                            tf.setTdFormWidget(flowTdFormWidgetResult);
+                        }
+                        f.setTablePropList(flowTablePropResultList);
+                    }
+                }
+            }
+        }
+        return flowFormWidgetResultList;
+    }
 }