Browse Source

fix: 提报优化

gufj 5 tháng trước cách đây
mục cha
commit
f9f38efcc6

+ 11 - 3
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomizeProcessController.java

@@ -2,6 +2,7 @@ package com.wx.blink.backend.controller;
 
 import com.cloud.sa.flow.commom.aspect.EventProgram;
 import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.backend.domain.process.LoanApplyVO;
 import com.wx.blink.backend.service.IBlinkCustomizeProcessService;
 import com.wx.blink.base.common.annoation.NoNeedLogin;
 import com.wx.blink.base.common.domain.ResponseDTO;
@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * @author gufj
@@ -33,11 +35,17 @@ public class BlinkCustomizeProcessController {
     //------------------------------借款申请流程----------------------------------------
 
     @GetMapping("/supports/process/loan/apply/handle")
-    public ResponseDTO<String> supportProcessLoanApplyHandle(String loginName) {
-        String userCode = BlinkRequestUtil.getRequestUserCode();
-        return processService.supportProcessLoanApplyHandle(loginName);
+    public ResponseDTO<String> supportProcessLoanApplyHandle(String applicant) {
+        return processService.supportProcessLoanApplyHandle(applicant);
     }
 
+    @GetMapping("/supports/process/query/loan/apply/list")
+    public ResponseDTO<List<LoanApplyVO>> supportProcessQueryLoanApplyList(String applicant) {
+        return processService.supportProcessQueryLoanApplyList(applicant);
+    }
+
+    //------------------------------处理售后问题的json----------------------------------------
+
     @GetMapping("/supports/process/analysis")
     @NoNeedLogin
     public ResponseDTO<String> supportProcessAnalysis() {

+ 62 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/MateStaffEfficiencyController.java

@@ -4,13 +4,23 @@ import com.alibaba.fastjson.JSONObject;
 import com.wx.blink.backend.domain.dto.MateStaffEfficiencyDTO;
 import com.wx.blink.backend.domain.qry.MateStaffEfficiencyQry;
 import com.wx.blink.backend.service.IMateStaffEfficiencyService;
+import com.wx.blink.base.common.annoation.NoNeedLogin;
 import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
 import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.*;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
 
 import javax.annotation.Resource;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
 
 /**
  * 月度人效
@@ -36,7 +46,58 @@ public class MateStaffEfficiencyController {
     @GetMapping("/mate/staff/efficiency/Item/queryPage")
     public ResponseDTO<JSONObject> mateStaffEfficiencyItemQueryPage(MateStaffEfficiencyQry qry) {
         JSONObject obj = new JSONObject();
-        obj.put("list",staffEfficiencyService.mateStaffEfficiencyItemQueryPage(qry));
+        obj.put("list", staffEfficiencyService.mateStaffEfficiencyItemQueryPage(qry));
         return ResponseDTO.ok(obj);
     }
+
+    @Resource
+    private RedisTemplate<String, String> redisTemplate;
+    @Resource
+    private RestTemplate restTemplate;
+
+    @Operation(summary = "月度人效列表")
+    @GetMapping("/mate/staff/efficiency/Item/queryPage1")
+    @NoNeedLogin
+    public ResponseDTO<JSONObject> mateStaffEfficiencyItemQueryPage1(MateStaffEfficiencyQry qry) throws UnsupportedEncodingException {
+        //1、首先获取mate系统的token
+        String accessToken;
+        String accessTokenKey = "mate" + "_access_token";
+        if (redisTemplate.opsForValue().get(accessTokenKey) != null) {
+            accessToken = redisTemplate.opsForValue().get(accessTokenKey);
+        } else {
+            //首先获取mate系统的token
+            RestTemplate restTemplate = new RestTemplate();
+            String url = "http://epros-metabiz.jecn.com.cn:30081/api/auth:signIn";
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            Map<String, String> body = new HashMap<>();
+            body.put("account", "qingdao");
+            body.put("password", "jecn@123");
+            JSONObject result = restTemplate.postForObject(url, body, JSONObject.class);
+            accessToken = result.getJSONObject("data").get("token").toString();
+            //redis设置失效时间为1小时
+            redisTemplate.opsForValue().set(accessTokenKey, accessToken, 3600L, TimeUnit.SECONDS);
+        }
+
+        //2、获取售后问题列表数据
+        RestTemplate restTemplate = new RestTemplate();
+
+        String baseUrl = "http://epros-metabiz.jecn.com.cn:30081/api/mz_tasks:list";
+
+        String filterJson = "{\"$and\":[{\"$and\":[{\"status\":{\"$in\":[\"todo\",\"in_progress\",\"blocked\",\"completed\",\"cancelled\",\"keep_watch\"]}}]},{\"$or\":[{\"assignee\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}},{\"participant\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}},{\"feature_owner\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}},{\"aftersales_enginer\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}}]}]}";
+
+        String encodedFilter = URLEncoder.encode(filterJson, String.valueOf(StandardCharsets.UTF_8));
+
+        String url = baseUrl + "?sort[]=-planned_end_date&pageSize=200&tree=true&appends[]=project&appends[]=assignee&appends[]=participant&appends[]=createdBy&page=1&filter=" + encodedFilter;
+
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Authorization", "Bearer " + accessToken);
+
+        HttpEntity<String> entity = new HttpEntity<>(headers);
+
+        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
+        System.out.println(response.getBody());
+
+        return ResponseDTO.ok();
+    }
 }

+ 32 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/process/LoanApplyExpenseStatementVO.java

@@ -0,0 +1,32 @@
+package com.wx.blink.backend.domain.process;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 借款申请流程报销明细
+ */
+@Data
+public class LoanApplyExpenseStatementVO {
+
+    /**
+     * 流水号
+     */
+    private String sequenceNo;
+
+    /**
+     * 实例id
+     */
+    private String bizObjectId;
+
+    /**
+     * 冲抵借款金额
+     */
+    private BigDecimal offsetLoanAmount;
+
+    /**
+     * 流程状态
+     */
+    private Integer state;
+}

+ 29 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/process/LoanApplyVO.java

@@ -0,0 +1,29 @@
+package com.wx.blink.backend.domain.process;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class LoanApplyVO {
+
+    /**
+     * 流水号
+     */
+    private String sequenceNo;
+
+    /**
+     * 实例id
+     */
+    private String bizObjectId;
+
+    /**
+     * 借款金额
+     */
+    private BigDecimal loanAmount;
+
+    /**
+     * 剩余借款金额
+     */
+    private BigDecimal surplusLoanAmount;
+}

+ 68 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/job/SyncMateDataTask.java

@@ -0,0 +1,68 @@
+package com.wx.blink.backend.job;
+
+import com.alibaba.fastjson.JSONObject;
+import com.wx.blink.base.module.support.job.core.SmartJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * @author gufj
+ * 同步mate系统数据
+ */
+@Slf4j
+@Service
+public class SyncMateDataTask implements SmartJob {
+
+    @Resource
+    private RedisTemplate<String, String> redisTemplate;
+    @Resource
+    private RestTemplate restTemplate;
+
+    //目前只同步售后类问题的数据
+    @Override
+    public String run(String param) {
+        //1、首先获取mate系统的token
+        String accessToken;
+        String accessTokenKey = "mate" + "_access_token";
+        if (redisTemplate.opsForValue().get(accessTokenKey) != null) {
+            accessToken = redisTemplate.opsForValue().get(accessTokenKey);
+        } else {
+            //首先获取mate系统的token
+            RestTemplate restTemplate = new RestTemplate();
+            String url = "http://epros-metabiz.jecn.com.cn:30081/api/auth:signIn";
+            HttpHeaders headers = new HttpHeaders();
+            Map<String, Object> paramMap = new HashMap<>();
+            paramMap.put("account", "qingdao");
+            paramMap.put("password", "jecn@123");
+            String requestJson = JSONObject.toJSONString(paramMap);
+            HttpEntity<String> entity = new HttpEntity<>(requestJson, headers);
+            JSONObject result = restTemplate.postForObject(url, entity, JSONObject.class);
+
+            accessToken = result.get("access_token").toString();
+            //redis设置失效时间为1小时
+            redisTemplate.opsForValue().set(accessTokenKey, accessToken, 3600L, TimeUnit.SECONDS);
+        }
+
+        //2、获取售后问题列表数据
+        restTemplate = new RestTemplate();
+        String url = "http://epros-metabiz.jecn.com.cn:30081/api/mz_tasks:list?sort[]=-planned_end_date&pageSize=20&tree=true&appends[]" +
+                "=project&appends[]=assignee&appends[]=participant&appends[]=createdBy&page=1&filter=" +
+                "{\"$and\":[{\"$and\":[{\"status\":{\"$in\":[\"todo\",\"in_progress\",\"blocked\",\"completed\",\"cancelled\",\"keep_watch\"]}}]}" +
+                ",{\"$or\":[{\"assignee\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}},{\"participant\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}}" +
+                ",{\"feature_owner\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}},{\"aftersales_enginer\":{\"id\":{\"$eq\":\"{{$user.id}}\"}}}]}]}\n";
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("authorization", "Bearer " + accessToken);
+        System.out.println(restTemplate.getForObject(url, String.class));
+        return "1";
+    }
+}

+ 72 - 4
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomizeProcessServiceImpl.java

@@ -1,11 +1,15 @@
 package com.wx.blink.backend.manager;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.backend.domain.process.LoanApplyExpenseStatementVO;
+import com.wx.blink.backend.domain.process.LoanApplyVO;
 import com.wx.blink.backend.factory.CustomizeProcessFactory;
 import com.wx.blink.backend.handler.CustomizeProcessEventHandler;
 import com.wx.blink.backend.repository.BlinkCustomerRepository;
+import com.wx.blink.backend.repository.BlinkCustomizeProcessRepository;
 import com.wx.blink.backend.service.IBlinkCustomizeProcessService;
 import com.wx.blink.base.common.code.SystemErrorCode;
 import com.wx.blink.base.common.domain.ResponseDTO;
@@ -14,7 +18,10 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.nio.charset.StandardCharsets;
+import java.util.List;
 
 import static com.google.common.io.ByteStreams.toByteArray;
 
@@ -23,6 +30,8 @@ public class BlinkCustomizeProcessServiceImpl implements IBlinkCustomizeProcessS
 
     @Resource
     private BlinkCustomerRepository customerRepository;
+    @Resource
+    private BlinkCustomizeProcessRepository processRepository;
 
     @Override
     public ResponseDTO<String> supportCommonProcessHandle(StInstanceEvent event) {
@@ -41,10 +50,45 @@ public class BlinkCustomizeProcessServiceImpl implements IBlinkCustomizeProcessS
     }
 
     @Override
-    public ResponseDTO<String> supportProcessLoanApplyHandle(String loginName) {
+    public ResponseDTO<String> supportProcessLoanApplyHandle(String applicant) {
         JSONObject obj = new JSONObject();
-        obj.put("lj", "123");
-        obj.put("zs", "231");
+        //获取该申请人已办结流程借款金额明细
+        List<LoanApplyVO> completeLoanApplyList = processRepository.queryCompleteLoanApplyList(applicant);
+        if (CollectionUtil.isEmpty(completeLoanApplyList)) {
+            BigDecimal loanAmount = completeLoanApplyList.stream()
+                    .map(LoanApplyVO::getLoanAmount)
+                    .filter(amount -> amount != null)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add)
+                    .setScale(2, RoundingMode.HALF_UP);
+            obj.put("accumulateLoanAmount", loanAmount);
+
+            for (int i = 0; i < completeLoanApplyList.size(); i++) {
+                LoanApplyVO loanApply = completeLoanApplyList.get(i);
+                //在手借款金额 = 借款金额 - 报销流程进行中和办结的冲抵的借款金额和
+                List<LoanApplyExpenseStatementVO> offsetLoanAmountList = processRepository.queryTotalOffsetLoanAmountByExpenseStatement(loanApply.getBizObjectId());
+                if (CollectionUtil.isNotEmpty(offsetLoanAmountList)) {
+                    BigDecimal offsetLoanAmount = offsetLoanAmountList.stream()
+                            .map(LoanApplyExpenseStatementVO::getOffsetLoanAmount)
+                            .filter(amount -> amount != null)
+                            .reduce(BigDecimal.ZERO, BigDecimal::add)
+                            .setScale(2, RoundingMode.HALF_UP);
+                    loanApply.setSurplusLoanAmount(loanApply.getLoanAmount().subtract(offsetLoanAmount));
+                } else {
+                    loanApply.setSurplusLoanAmount(BigDecimal.ZERO);
+                }
+
+                BigDecimal surplusLoanAmount = completeLoanApplyList.stream()
+                        .map(LoanApplyVO::getSurplusLoanAmount)
+                        .filter(amount -> amount != null)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add)
+                        .setScale(2, RoundingMode.HALF_UP);
+                obj.put("surplusLoanAmount", surplusLoanAmount);
+            }
+
+        } else {
+            obj.put("accumulateLoanAmount", BigDecimal.ZERO);
+            obj.put("surplusLoanAmount", BigDecimal.ZERO);
+        }
         return ResponseDTO.ok(obj.toJSONString());
     }
 
@@ -76,8 +120,32 @@ public class BlinkCustomizeProcessServiceImpl implements IBlinkCustomizeProcessS
             String createdBy = obj.getJSONObject("createdBy").getString("nickname");
 
             System.out.println(number + "------" + name + "------" + type + "------" + dev_status + "------" + projectName + "------" + createdBy);
-            customerRepository.createProjectBug(number,name,type,dev_status,projectName,createdBy);
+            customerRepository.createProjectBug(number, name, type, dev_status, projectName, createdBy);
         }
         return null;
     }
+
+    @Override
+    public ResponseDTO<List<LoanApplyVO>> supportProcessQueryLoanApplyList(String applicant) {
+        List<LoanApplyVO> completeLoanApplyList = processRepository.queryCompleteLoanApplyList(applicant);
+        if (CollectionUtil.isNotEmpty(completeLoanApplyList)) {
+            //计算每个借款申请流程的剩余借款金额
+            for (int i = 0; i < completeLoanApplyList.size(); i++) {
+                LoanApplyVO loanApply = completeLoanApplyList.get(i);
+                //剩余借款金额 = 借款金额 - 报销流程进行中和办结的冲抵的借款金额和
+                List<LoanApplyExpenseStatementVO> offsetLoanAmountList = processRepository.queryTotalOffsetLoanAmountByExpenseStatement(loanApply.getBizObjectId());
+                if (CollectionUtil.isNotEmpty(offsetLoanAmountList)) {
+                    BigDecimal offsetLoanAmount = offsetLoanAmountList.stream()
+                            .map(LoanApplyExpenseStatementVO::getOffsetLoanAmount)
+                            .filter(amount -> amount != null)
+                            .reduce(BigDecimal.ZERO, BigDecimal::add)
+                            .setScale(2, RoundingMode.HALF_UP);
+                    loanApply.setSurplusLoanAmount(loanApply.getLoanAmount().subtract(offsetLoanAmount));
+                } else {
+                    loanApply.setSurplusLoanAmount(BigDecimal.ZERO);
+                }
+            }
+        }
+        return ResponseDTO.ok(completeLoanApplyList);
+    }
 }

+ 33 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkCustomizeProcessRepository.java

@@ -0,0 +1,33 @@
+package com.wx.blink.backend.repository;
+
+import com.wx.blink.backend.domain.process.LoanApplyExpenseStatementVO;
+import com.wx.blink.backend.domain.process.LoanApplyVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author gufj
+ */
+@Mapper
+@Component
+public interface BlinkCustomizeProcessRepository {
+
+    /**
+     * 获取申请人已办结借款申请流程信息
+     *
+     * @param applicant
+     * @return
+     */
+    List<LoanApplyVO> queryCompleteLoanApplyList(String applicant);
+
+
+    /**
+     * 报销流程进行中和办结的冲抵的借款金额和
+     *
+     * @param bizObjectId
+     * @return
+     */
+    List<LoanApplyExpenseStatementVO> queryTotalOffsetLoanAmountByExpenseStatement(String bizObjectId);
+}

+ 13 - 2
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomizeProcessService.java

@@ -1,8 +1,11 @@
 package com.wx.blink.backend.service;
 
 import com.cloud.sa.flow.commom.domain.virentity.StInstanceEvent;
+import com.wx.blink.backend.domain.process.LoanApplyVO;
 import com.wx.blink.base.common.domain.ResponseDTO;
 
+import java.util.List;
+
 public interface IBlinkCustomizeProcessService {
 
 
@@ -18,11 +21,19 @@ public interface IBlinkCustomizeProcessService {
     /**
      * 获取该借款人累计借款金额
      *
-     * @param loginName
+     * @param applicant
      * @return
      */
-    ResponseDTO<String> supportProcessLoanApplyHandle(String loginName);
+    ResponseDTO<String> supportProcessLoanApplyHandle(String applicant);
 
 
     ResponseDTO<String> supportProcessAnalysis();
+
+
+    /**
+     * 统一获取借款申请流程
+     *
+     * @return
+     */
+    ResponseDTO<List<LoanApplyVO>> supportProcessQueryLoanApplyList(String applicant);
 }

+ 14 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkCustomizeProcessRepositoryMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.wx.blink.backend.repository.BlinkCustomizeProcessRepository">
+
+    <select id="queryCompleteLoanApplyList" resultType="com.wx.blink.backend.domain.process.LoanApplyVO">
+        select t2.sequence_no sequenceNo,t2.biz_objectid bizObjectId,loan_amount loanAmount from l_loan_apply t1 left join st_instance t2 on t1.flow_id = t2.biz_objectid
+        where state = 4 and applicant = #{applicant}
+    </select>
+
+    <select id="queryTotalOffsetLoanAmountByExpenseStatement" resultType="com.wx.blink.backend.domain.process.LoanApplyExpenseStatementVO">
+        select t2.sequence_no sequenceNo,t2.biz_objectid bizObjectId, IFNULL(offset_loan_amount,0) offsetLoanAmount,state from l_expense_statement t1 left join st_instance t2 on t1.flow_id = t2.biz_objectid
+        where state = 4 or state = 2 and loan_instance_id = #{bizObjectId}
+    </select>
+</mapper>

+ 3 - 1
bound-link-api/blink-start/src/main/resources/prod/application.yaml

@@ -5,7 +5,7 @@ project:
 
 # 项目端口和url根路径
 server:
-  port: 6008
+  port: 2024
   servlet:
     context-path: /
 
@@ -13,3 +13,5 @@ server:
 spring:
   profiles:
     active: '@profiles.active@'
+  main:
+    allow-circular-references: true

+ 8 - 10
bound-link-api/sa-flow-api/src/main/java/com/cloud/sa/api/AppEngineController.java

@@ -1,21 +1,19 @@
 package com.cloud.sa.api;
 
 import com.alibaba.fastjson.JSONObject;
-import com.cloud.sa.flow.commom.aspect.EventProgram;
-import com.cloud.sa.flow.commom.domain.UserTaskQueryForm;
 import com.cloud.sa.flow.commom.common.model.StCodeMsg;
 import com.cloud.sa.flow.commom.common.model.StResult;
 import com.cloud.sa.flow.commom.common.utils.StString;
-import com.cloud.sa.flow.commom.domain.virentity.ViewFormTop;
-import com.cloud.sa.flow.commom.service.setting.StSettingService;
-import com.cloud.sa.flow.engine.service.StFlowService;
-import com.cloud.sa.flow.commom.service.flow.StTaskItemService;
+import com.cloud.sa.flow.commom.domain.UserTaskQueryForm;
 import com.cloud.sa.flow.commom.domain.entity.StFlowMenu;
 import com.cloud.sa.flow.commom.domain.entity.StFlowTemplate;
 import com.cloud.sa.flow.commom.domain.entity.StTaskitem;
 import com.cloud.sa.flow.commom.domain.virentity.FlowEnteredParam;
+import com.cloud.sa.flow.commom.domain.virentity.ViewFormTop;
 import com.cloud.sa.flow.commom.service.StMenuService;
-import com.wx.blink.base.common.annoation.NoNeedLogin;
+import com.cloud.sa.flow.commom.service.flow.StTaskItemService;
+import com.cloud.sa.flow.commom.service.setting.StSettingService;
+import com.cloud.sa.flow.engine.service.StFlowService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
@@ -64,7 +62,7 @@ public class AppEngineController {
         StTaskitem taskitem = null;
         if (flowEnteredParam.getIsBatches() == false && flowEnteredParam.getTableData() != null && flowEnteredParam.getTableData().length() > 0) {
             //如果不是批量的审批通过,则先走一下保存
-            taskitem = flowService.Save(flowEnteredParam,false);
+            taskitem = flowService.Save(flowEnteredParam, false);
             flowEnteredParam.setTaskid(taskitem.getObjectid());
         }
         try {
@@ -82,7 +80,7 @@ public class AppEngineController {
         StTaskitem taskitem = null;
         if (flowEnteredParam.getIsBatches() == false && flowEnteredParam.getTableData() != null && flowEnteredParam.getTableData().length() > 0) {
             //如果不是批量的审批通过,则先走一下保存
-            taskitem = flowService.Save(flowEnteredParam,true);
+            taskitem = flowService.Save(flowEnteredParam, true);
             flowEnteredParam.setTaskid(taskitem.getObjectid());
         }
         try {
@@ -108,7 +106,7 @@ public class AppEngineController {
      */
     @PostMapping("/instance/save")
     public StResult SaveInstance(@Validated @RequestBody FlowEnteredParam flowEnteredParam) {
-        StTaskitem taskitem = flowService.Save(flowEnteredParam,true);
+        StTaskitem taskitem = flowService.Save(flowEnteredParam, true);
         return StResult.success(taskitem);
     }
 

BIN
bound-link-api/sa-flow-api/src/main/resources/lib/sa-flow-engine-3.0.0.jar