Ver código fonte

流程修改

wangliang 1 ano atrás
pai
commit
2739801c54

+ 30 - 10
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBSopInfoServiceImpl.java

@@ -19,7 +19,6 @@ import com.qmth.sop.common.util.ServletUtil;
 import org.activiti.engine.TaskService;
 import org.activiti.engine.task.IdentityLink;
 import org.activiti.engine.task.Task;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -102,14 +101,31 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
                     && f.getCode() != WidgetCodeEnum.BUTTON && f.getCode() != WidgetCodeEnum.IMG
                     && f.getCode() != WidgetCodeEnum.LABEL && f.getCode() != WidgetCodeEnum.SIGN
                     && f.getCode() != WidgetCodeEnum.OTHER) {
-                if (Objects.nonNull(f.getValue()) && f.getValue().startsWith("[") && f.getValue().endsWith("]")) {
-                    f.setValue(f.getValue().replaceAll("\\[", "").replaceAll("\\]", ""));
-                    formFieldMap.put(f.getFormId(), StringUtils.join(Arrays.asList(f.getValue()), SystemConstant.LIST_JOIN_SPLIT));
+                if (f.getInputType() != WidgetInputTypeEnum.ARRAY) {
+                    if (!f.getValue().contains("null")) {
+                        JSONObject jsonObject = JSONObject.parseObject(f.getValue());
+                        String value = jsonObject.getString(SystemConstant.VALUE);
+                        formFieldMap.put(f.getFormId(), value);
+                    }
                 } else {
-                    if (Objects.nonNull(f.getValue()) && !Objects.equals(f.getValue(), "null")) {
-                        formFieldMap.put(f.getFormId(), f.getValue());
+                    if (!f.getValue().contains("null")) {
+                        JSONObject jsonObject = JSONObject.parseObject(f.getValue());
+                        JSONArray jsonArray = jsonObject.getJSONArray(SystemConstant.VALUE);
+                        StringJoiner stringJoiner = new StringJoiner(",");
+                        for (int i = 0; i < jsonArray.size(); i++) {
+                            stringJoiner.add(jsonArray.getString(i));
+                        }
+                        formFieldMap.put(f.getFormId(), stringJoiner.toString());
                     }
                 }
+//                if (Objects.nonNull(f.getValue()) && f.getValue().startsWith("[") && f.getValue().endsWith("]")) {
+//                    f.setValue(f.getValue().replaceAll("\\[", "").replaceAll("\\]", ""));
+//                    formFieldMap.put(f.getFormId(), StringUtils.join(Arrays.asList(f.getValue()), SystemConstant.LIST_JOIN_SPLIT));
+//                } else {
+//                    if (Objects.nonNull(f.getValue()) && !f.getValue().contains("null")) {
+//                        formFieldMap.put(f.getFormId(), f.getValue());
+//                    }
+//                }
             }
         }
         //首先查询动态表里是否有当前表单的数据,没有插入,有则更新
@@ -223,8 +239,8 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
     @Transactional
     public Boolean sopApprove(FlowApproveParam flowApproveParam) throws InterruptedException {
         Optional.ofNullable(flowApproveParam.getTaskId()).orElseThrow(() -> ExceptionResultEnum.FLOW_TASK_ID_IS_NULL.exception());
-        if (flowApproveParam.getApprove() != FlowApprovePassEnum.PASS && flowApproveParam.getApprove() != FlowApprovePassEnum.REJECT && flowApproveParam.getApprove() != FlowApprovePassEnum.DRAFT) {
-            throw ExceptionResultEnum.PARAMS_ERROR.exception("sop填报只能为通过或驳回或草稿");
+        if (flowApproveParam.getApprove() != FlowApprovePassEnum.PASS && flowApproveParam.getApprove() != FlowApprovePassEnum.REJECT && flowApproveParam.getApprove() != FlowApprovePassEnum.DRAFT && flowApproveParam.getApprove() != FlowApprovePassEnum.START) {
+            throw ExceptionResultEnum.PARAMS_ERROR.exception("sop填报只能为通过或驳回或草稿或提交");
         }
         Optional.ofNullable(flowApproveParam.getFormProperties()).orElseThrow(() -> ExceptionResultEnum.FLOW_FORM_PROPERTIES_IS_NULL.exception());
         if (flowApproveParam.getApprove() == FlowApprovePassEnum.REJECT && Objects.isNull(flowApproveParam.getSetup())) {
@@ -481,7 +497,7 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
             if (f.getFormId().contains(SystemConstant.ASSISTANT_ENGINEER_USER_ID) && Objects.nonNull(f.getValue())) {
 //                String string = f.getValue().replaceAll("\\[", "").replaceAll("\\]", "");
 //                assistantEngineerUserIds = StringUtils.join(Arrays.asList(string), SystemConstant.LIST_JOIN_SPLIT);
-                if (f.getInputType() == WidgetInputTypeEnum.ARRAY) {
+                if (f.getInputType() == WidgetInputTypeEnum.ARRAY && Objects.nonNull(f.getValue()) && !f.getValue().contains("null")) {
                     JSONObject jsonObject = JSONObject.parseObject(f.getValue());
                     JSONArray jsonArray = jsonObject.getJSONArray(SystemConstant.VALUE);
                     StringJoiner stringJoiner = new StringJoiner(",");
@@ -798,7 +814,11 @@ public class TBSopInfoServiceImpl extends ServiceImpl<TBSopInfoMapper, TBSopInfo
         List<FlowFormWidgetResult> formProperty = flowTaskResult.getFormProperty();
         for (FlowFormWidgetResult f : formProperty) {
             if (f.getFormId().contains(fieldId) && Objects.nonNull(f.getValue())) {
-                processLimitedTime = Long.parseLong(f.getValue());
+                if (!f.getValue().contains("null")) {
+                    JSONObject jsonObject = JSONObject.parseObject(f.getValue());
+                    String value = jsonObject.getString(SystemConstant.VALUE);
+                    processLimitedTime = Long.parseLong(value);
+                }
                 break;
             }
         }