Browse Source

Merge branch 'master' of http://47.108.172.52:3000/dayou/item-management-1phase

GouGengquan 1 năm trước cách đây
mục cha
commit
f1aeff3b22

+ 5 - 5
biz-base/src/main/java/com/dayou/controller/BusinessProductionController.java

@@ -5,10 +5,7 @@ import com.dayou.dto.NameUrlDTO;
 import com.dayou.dto.OrderProductionsBag;
 import com.dayou.dto.OrderReportDTO;
 import com.dayou.dto.ReportDTO;
-import com.dayou.service.IBusinessProductionService;
-import com.dayou.service.IFinanceClaimService;
-import com.dayou.service.IMajorProductionService;
-import com.dayou.service.IPersonalProductionService;
+import com.dayou.service.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -39,6 +36,9 @@ public class BusinessProductionController {
     @Autowired
     private IFinanceClaimService financeClaimService;
 
+    @Autowired
+    private IPersonalService personalService;
+
     /**
      * 大中型产品包
      */
@@ -115,7 +115,7 @@ public class BusinessProductionController {
      */
     @PostMapping("/allotRealAmount/personal")
     public RestResponse<Boolean> personalAllotRealAmount(@RequestBody List<OrderReportDTO> claimOrders){
-        Boolean ret = financeClaimService.personalAllotRealAmount(claimOrders);
+        Boolean ret = personalService.personalAllotRealAmount(claimOrders);
         return RestResponse.data(ret);
     }
 }

+ 354 - 354
biz-base/src/test/java/Test.java

@@ -1,354 +1,354 @@
-
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.text.StrBuilder;
-import cn.hutool.core.util.RandomUtil;
-import cn.hutool.core.util.StrUtil;
-import com.dayou.BaseApplication;
-import com.power.doc.builder.DocBuilderTemplate;
-import com.power.doc.builder.HtmlApiDocBuilder;
-import com.power.doc.builder.ProjectDocConfigBuilder;
-import com.power.doc.model.*;
-import com.power.doc.template.IDocBuildTemplate;
-import com.power.doc.template.SpringBootDocBuildTemplate;
-import com.power.doc.utils.BeetlTemplateUtil;
-import com.thoughtworks.qdox.JavaProjectBuilder;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.beetl.core.Template;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.StandardCopyOption;
-import java.util.ArrayList;
-import java.util.List;
-
-import static com.power.doc.constants.DocGlobalConstants.*;
-
-/**
- * spring环境测试和用于文档生成
- *
- * @author wucl
- * @version 1.0
- * @date 2020/8/21 10:15
- */
-@Slf4j
-@SpringBootTest(classes = BaseApplication.class)
-@RunWith(SpringJUnit4ClassRunner.class)
-public class Test {
-    private static String INDEX_HTML = "index.html";
-
-    /**
-     * 生成文档
-     */
-    @org.junit.Test
-    public void genHTMLDoc() throws IOException, InterruptedException {
-        doHtmlGen();
-    }
-
-    /**
-     * 生成SDK文档
-     */
-    @org.junit.Test
-    public void genSdkDoc() throws InterruptedException {
-        // generateSdkDoc();
-    }
-
-    /**
-     * 生成API接口列表
-     */
-    @org.junit.Test
-    public void genApiList() throws IOException, InterruptedException {
-        //doHtmlGen();
-    }
-
-    private void doHtmlGen() throws IOException, InterruptedException {
-        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
-        ApiConfig config = new ApiConfig();
-        String serverUrl = "http://127.0.0.1:8088/api";
-        config.setServerUrl(serverUrl);
-
-        //设置不为严格模式
-        config.setStrict(false);
-
-        config.setAllInOne(true);
-        config.setProjectName("DY-API");
-        RevisionLog relog = new RevisionLog();
-        relog.setAuthor("WUCL");
-        relog.setRemarks("四川大友主营业务平台接口文档");
-        relog.setRevisionTime(DateUtil.now());
-        relog.setVersion("v2_app");
-        relog.setStatus("进行中");
-
-        config.setRevisionLogs(relog);
-
-        // 源代码路径
-        config.setOutPath(base + "\\biz-base\\src\\main\\resources\\static\\doc");
-
-        // 设置接口包扫描路径过滤,如果不配置则Smart-doc默认扫描所有的接口类 配置多个报名有英文逗号隔开
-        config.setPackageFilters("com.dayou.controller");
-
-        // 多模块时源代码路径
-        SourceCodePath paths = new SourceCodePath();
-        paths.setPath(base + "\\biz-base\\src\\main\\java");
-        SourceCodePath paths1 = new SourceCodePath();
-        paths1.setPath(base + "\\common\\src\\main\\java");
-        SourceCodePath paths2 = new SourceCodePath();
-        paths2.setPath(base + "\\domain\\src\\main\\java");
-        SourceCodePath paths3 = new SourceCodePath();
-        paths3.setPath(base + "\\service\\src\\main\\java");
-
-
-        config.setSourceCodePaths(paths, paths1, paths2, paths3);
-
-        System.out.println("文档努力扫描生成中 请稍等..");
-
-        //生成HTML5文件
-        HtmlApiDocBuilder.buildApiDoc(config);
-
-        Thread.sleep(1000);
-
-        //生成变更日志
-        genChangeLog();
-
-        System.out.println("生成html5 文档成功");
-        System.out.println("生成changelog 成功");
-    }
-
-    private void generateApiList() {
-        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
-        SourceCodePath paths = new SourceCodePath();
-        paths.setPath(base + "\\biz-base\\src\\main\\java");
-    }
-    private static void genChangeLog() throws IOException {
-        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
-        List<String> changeList = FileUtil.readLines(new File(base + "\\biz-base\\src\\main\\resources\\doc_changelog.txt"), "utf-8");
-        String id = "changelog";
-        String temple = "<div id=\"" + id + "\" style=\"margin-left: 60px\" > <h1 >变更记录<p  style=\"color:green;font-size:15px;\">文档更新时间:%s</p></h1> <ul>%s</ul> </div>";
-        StrBuilder strBuilder = new StrBuilder();
-        for (int i = 0; i < changeList.size(); i++) {
-            String text = changeList.get(i);
-            if (StrUtil.isBlank(text) || StrUtil.isBlank(text.trim())) {
-                continue;
-            }
-            strBuilder.append("<li  style=\"color:#9f1717;font-size:22px;\" >");
-            strBuilder.append(text.trim());
-            strBuilder.append("</li>");
-        }
-
-        temple = String.format(temple, DateUtil.now(), strBuilder.toString());
-
-        String pathname = base + "\\biz-base\\src\\main\\resources\\static\\doc\\index.html";
-        File file = new File(pathname);
-        Document doc = Jsoup.parse(file, "UTF-8");
-        Element changelogDiv = doc.getElementById(id);
-        if (changelogDiv != null) {
-            changelogDiv.remove();
-        }
-        Element header = doc.getElementById("header");
-        header.before(temple);
-        String html = doc.html();
-        String[] split = html.split("</body>");
-        // 插入 debug js
-        String debugHtml = split[0] + "<script src=\"./debug.js\"></script>\n" +
-                "  <style type=\"text/css\">\n" +
-                "  </style>" + "</body> " + split[1];
-        String tmp = base + "\\doc_temp" + RandomUtil.randomString(32) + ".html";
-        File tmpFile = FileUtil.writeString(debugHtml, tmp, "utf-8");
-        FileUtil.copyFile(tmpFile, file, StandardCopyOption.REPLACE_EXISTING);
-        tmpFile.delete();
-    }
-
-
-
-    private String handlePath(String path) {
-        if (path.endsWith("/")) {
-            return StringUtils.removeEnd(path, "/");
-        }
-        return path;
-    }
-
-    private boolean checkSkip(ApiDoc doc) {
-        List<ApiMethodDoc> methodDocs = doc.getList();
-        if (methodDocs == null || methodDocs.isEmpty()) {
-            return true;
-        }
-
-        if (methodDocs.get(0).getPath().contains("/sdk")) {
-            return true;
-        }
-
-        return false;
-    }
-
-    private String handleModuleName(String desc, String controllerName) {
-        if (StringUtils.isNotBlank(desc)) {
-            return StringUtils.deleteWhitespace(desc).replaceAll("前端控制器", "管理")
-                    .replaceAll("&lt;p&gt;", "")
-                    .replaceAll("&lt;/p&gt;", "")
-                    .replaceAll(",", ",");
-        } else {
-            return controllerName;
-        }
-    }
-
-    private String handleMethodName(String desc, String methodName) {
-        if (StringUtils.isNotBlank(desc)) {
-            return StringUtils.deleteWhitespace(desc)
-                    .replaceAll("&lt;p&gt;", "")
-                    .replaceAll("&lt;/p&gt;", "")
-                    .replaceAll(",", ",");
-        } else {
-            switch (methodName) {
-                case "page":
-                    return "分页查询";
-                case "detail":
-                    return "详情查询";
-                case "save":
-                    return "新增";
-                case "update":
-                    return "编辑";
-                case "delete":
-                    return "删除";
-                case "simpleAll":
-                    return "下拉列表";
-                case "importTemplate":
-                    return "导入模板下载";
-                case "importExcel":
-                    return "导入";
-                case "export":
-                    return "导出";
-                case "batchAdd":
-                    return "批量新增";
-                default:
-                    return methodName;
-            }
-        }
-    }
-
-    private ApiConfig getBaseConfig() {
-        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
-        ApiConfig config = new ApiConfig();
-        String serverUrl = "http://127.0.0.1:8088/api";
-        config.setServerUrl(serverUrl);
-
-        //设置不为严格模式
-        config.setStrict(false);
-
-        config.setAllInOne(true);
-        config.setProjectName("DY-API");
-        RevisionLog relog = new RevisionLog();
-        relog.setAuthor("WUCL");
-        relog.setRemarks("四川大友主营业务平台接口文档");
-        relog.setRevisionTime(DateUtil.now());
-        relog.setVersion("v4");
-        relog.setStatus("进行中");
-
-        config.setRevisionLogs(relog);
-
-        // 源代码路径
-        config.setOutPath(base + "\\biz-base\\src\\main\\resources\\static\\doc");
-
-        // 设置接口包扫描路径过滤,如果不配置则Smart-doc默认扫描所有的接口类 配置多个报名有英文逗号隔开
-        config.setPackageFilters("com.dayou.controller");
-
-        return config;
-    }
-
-    private void generateSdkDoc() throws InterruptedException {
-        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
-        ApiConfig config = new ApiConfig();
-        String serverUrl = "http://119.27.160.97:8534/api/sdk";
-        config.setServerUrl(serverUrl);
-
-        //设置不为严格模式
-        config.setStrict(false);
-
-        config.setAllInOne(true);
-        config.setProjectName("学校API");
-        RevisionLog relog = new RevisionLog();
-        relog.setAuthor("xysy");
-        relog.setRemarks("学校4期接口文档");
-        relog.setRevisionTime(DateUtil.now());
-        relog.setVersion("v4");
-        relog.setStatus("进行中");
-
-        config.setRevisionLogs(relog);
-
-        // 源代码路径
-        config.setOutPath(base + "\\biz-base\\src\\main\\resources\\static\\doc\\sdk");
-
-        // 设置接口包扫描路径过滤,如果不配置则Smart-doc默认扫描所有的接口类 配置多个报名有英文逗号隔开
-        config.setPackageFilters("com.dayou.controller");
-
-        // 多模块时源代码路径
-        SourceCodePath paths = new SourceCodePath();
-        paths.setPath(base + "\\biz-base\\src\\main\\java");
-        SourceCodePath paths1 = new SourceCodePath();
-        paths1.setPath(base + "\\common\\src\\main\\java");
-        SourceCodePath paths2 = new SourceCodePath();
-        paths2.setPath(base + "\\domain\\src\\main\\java");
-        SourceCodePath paths3 = new SourceCodePath();
-        paths3.setPath(base + "\\service\\src\\main\\java");
-
-        SourceCodePath pathsUis = new SourceCodePath();
-        pathsUis.setPath(base + "\\biz-custom\\biz-uis\\src\\main\\java");
-
-        config.setSourceCodePaths(paths, paths1, paths2, paths3, pathsUis);
-
-        System.out.println("文档努力扫描生成中 请稍等..");
-
-        //生成HTML5文件
-        buildSdkApiDoc(config);
-
-        Thread.sleep(1000);
-
-        System.out.println("生成html5 文档成功");
-    }
-
-    private void buildSdkApiDoc(ApiConfig config) {
-        JavaProjectBuilder javaProjectBuilder = new JavaProjectBuilder();
-        buildSdkApiDoc(config, javaProjectBuilder);
-    }
-
-    private void buildSdkApiDoc(ApiConfig config, JavaProjectBuilder javaProjectBuilder) {
-        DocBuilderTemplate builderTemplate = new DocBuilderTemplate();
-        builderTemplate.checkAndInit(config);
-        config.setParamsDataToTree(false);
-        ProjectDocConfigBuilder configBuilder = new ProjectDocConfigBuilder(config, javaProjectBuilder);
-        IDocBuildTemplate docBuildTemplate = new SpringBootDocBuildTemplate();
-        List<ApiDoc> initApiDoc = docBuildTemplate.getApiData(configBuilder);
-        //TODO: 这里可以过滤处理对外开放的api接口列表
-        List<ApiDoc> apiDocList = new ArrayList<>();
-        if (initApiDoc != null && !initApiDoc.isEmpty()) {
-            for (ApiDoc doc : initApiDoc) {
-                if (checkSkip(doc)) {
-                    continue;
-                }
-
-                doc.setDesc(handleModuleName(doc.getDesc(), doc.getName()));
-                List<ApiMethodDoc> methodDocs = doc.getList();
-                if (methodDocs != null && !methodDocs.isEmpty()) {
-                    for (ApiMethodDoc methodDoc : methodDocs) {
-                        methodDoc.setDesc(handleMethodName(methodDoc.getDesc(), methodDoc.getName()));
-                    }
-                }
-                apiDocList.add(doc);
-            }
-        }
-
-        Template indexCssTemplate = BeetlTemplateUtil.getByName(ALL_IN_ONE_CSS);
-        com.power.common.util.FileUtil.nioWriteFile(indexCssTemplate.render(), config.getOutPath() + FILE_SEPARATOR + ALL_IN_ONE_CSS);
-        if (StringUtils.isNotEmpty(config.getAllInOneDocFileName())) {
-            INDEX_HTML = config.getAllInOneDocFileName();
-        }
-        builderTemplate.buildAllInOne(apiDocList, config, javaProjectBuilder, ALL_IN_ONE_HTML_TPL, INDEX_HTML);
-    }
-}
+//
+//import cn.hutool.core.date.DateUtil;
+//import cn.hutool.core.io.FileUtil;
+//import cn.hutool.core.text.StrBuilder;
+//import cn.hutool.core.util.RandomUtil;
+//import cn.hutool.core.util.StrUtil;
+//import com.dayou.BaseApplication;
+//import com.power.doc.builder.DocBuilderTemplate;
+//import com.power.doc.builder.HtmlApiDocBuilder;
+//import com.power.doc.builder.ProjectDocConfigBuilder;
+//import com.power.doc.model.*;
+//import com.power.doc.template.IDocBuildTemplate;
+//import com.power.doc.template.SpringBootDocBuildTemplate;
+//import com.power.doc.utils.BeetlTemplateUtil;
+//import com.thoughtworks.qdox.JavaProjectBuilder;
+//import lombok.extern.slf4j.Slf4j;
+//import org.apache.commons.lang3.StringUtils;
+//import org.beetl.core.Template;
+//import org.jsoup.Jsoup;
+//import org.jsoup.nodes.Document;
+//import org.jsoup.nodes.Element;
+//import org.junit.runner.RunWith;
+//import org.springframework.boot.test.context.SpringBootTest;
+//import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+//import org.springframework.test.context.junit4.SpringRunner;
+//
+//import java.io.File;
+//import java.io.IOException;
+//import java.nio.file.StandardCopyOption;
+//import java.util.ArrayList;
+//import java.util.List;
+//
+//import static com.power.doc.constants.DocGlobalConstants.*;
+//
+///**
+// * spring环境测试和用于文档生成
+// *
+// * @author wucl
+// * @version 1.0
+// * @date 2020/8/21 10:15
+// */
+//@Slf4j
+//@SpringBootTest(classes = BaseApplication.class)
+//@RunWith(SpringJUnit4ClassRunner.class)
+//public class Test {
+//    private static String INDEX_HTML = "index.html";
+//
+//    /**
+//     * 生成文档
+//     */
+//    @org.junit.Test
+//    public void genHTMLDoc() throws IOException, InterruptedException {
+//        doHtmlGen();
+//    }
+//
+//    /**
+//     * 生成SDK文档
+//     */
+//    @org.junit.Test
+//    public void genSdkDoc() throws InterruptedException {
+//        // generateSdkDoc();
+//    }
+//
+//    /**
+//     * 生成API接口列表
+//     */
+//    @org.junit.Test
+//    public void genApiList() throws IOException, InterruptedException {
+//        //doHtmlGen();
+//    }
+//
+//    private void doHtmlGen() throws IOException, InterruptedException {
+//        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
+//        ApiConfig config = new ApiConfig();
+//        String serverUrl = "http://127.0.0.1:8088/api";
+//        config.setServerUrl(serverUrl);
+//
+//        //设置不为严格模式
+//        config.setStrict(false);
+//
+//        config.setAllInOne(true);
+//        config.setProjectName("DY-API");
+//        RevisionLog relog = new RevisionLog();
+//        relog.setAuthor("WUCL");
+//        relog.setRemarks("四川大友主营业务平台接口文档");
+//        relog.setRevisionTime(DateUtil.now());
+//        relog.setVersion("v2_app");
+//        relog.setStatus("进行中");
+//
+//        config.setRevisionLogs(relog);
+//
+//        // 源代码路径
+//        config.setOutPath(base + "\\biz-base\\src\\main\\resources\\static\\doc");
+//
+//        // 设置接口包扫描路径过滤,如果不配置则Smart-doc默认扫描所有的接口类 配置多个报名有英文逗号隔开
+//        config.setPackageFilters("com.dayou.controller");
+//
+//        // 多模块时源代码路径
+//        SourceCodePath paths = new SourceCodePath();
+//        paths.setPath(base + "\\biz-base\\src\\main\\java");
+//        SourceCodePath paths1 = new SourceCodePath();
+//        paths1.setPath(base + "\\common\\src\\main\\java");
+//        SourceCodePath paths2 = new SourceCodePath();
+//        paths2.setPath(base + "\\domain\\src\\main\\java");
+//        SourceCodePath paths3 = new SourceCodePath();
+//        paths3.setPath(base + "\\service\\src\\main\\java");
+//
+//
+//        config.setSourceCodePaths(paths, paths1, paths2, paths3);
+//
+//        System.out.println("文档努力扫描生成中 请稍等..");
+//
+//        //生成HTML5文件
+//        HtmlApiDocBuilder.buildApiDoc(config);
+//
+//        Thread.sleep(1000);
+//
+//        //生成变更日志
+//        genChangeLog();
+//
+//        System.out.println("生成html5 文档成功");
+//        System.out.println("生成changelog 成功");
+//    }
+//
+//    private void generateApiList() {
+//        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
+//        SourceCodePath paths = new SourceCodePath();
+//        paths.setPath(base + "\\biz-base\\src\\main\\java");
+//    }
+//    private static void genChangeLog() throws IOException {
+//        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
+//        List<String> changeList = FileUtil.readLines(new File(base + "\\biz-base\\src\\main\\resources\\doc_changelog.txt"), "utf-8");
+//        String id = "changelog";
+//        String temple = "<div id=\"" + id + "\" style=\"margin-left: 60px\" > <h1 >变更记录<p  style=\"color:green;font-size:15px;\">文档更新时间:%s</p></h1> <ul>%s</ul> </div>";
+//        StrBuilder strBuilder = new StrBuilder();
+//        for (int i = 0; i < changeList.size(); i++) {
+//            String text = changeList.get(i);
+//            if (StrUtil.isBlank(text) || StrUtil.isBlank(text.trim())) {
+//                continue;
+//            }
+//            strBuilder.append("<li  style=\"color:#9f1717;font-size:22px;\" >");
+//            strBuilder.append(text.trim());
+//            strBuilder.append("</li>");
+//        }
+//
+//        temple = String.format(temple, DateUtil.now(), strBuilder.toString());
+//
+//        String pathname = base + "\\biz-base\\src\\main\\resources\\static\\doc\\index.html";
+//        File file = new File(pathname);
+//        Document doc = Jsoup.parse(file, "UTF-8");
+//        Element changelogDiv = doc.getElementById(id);
+//        if (changelogDiv != null) {
+//            changelogDiv.remove();
+//        }
+//        Element header = doc.getElementById("header");
+//        header.before(temple);
+//        String html = doc.html();
+//        String[] split = html.split("</body>");
+//        // 插入 debug js
+//        String debugHtml = split[0] + "<script src=\"./debug.js\"></script>\n" +
+//                "  <style type=\"text/css\">\n" +
+//                "  </style>" + "</body> " + split[1];
+//        String tmp = base + "\\doc_temp" + RandomUtil.randomString(32) + ".html";
+//        File tmpFile = FileUtil.writeString(debugHtml, tmp, "utf-8");
+//        FileUtil.copyFile(tmpFile, file, StandardCopyOption.REPLACE_EXISTING);
+//        tmpFile.delete();
+//    }
+//
+//
+//
+//    private String handlePath(String path) {
+//        if (path.endsWith("/")) {
+//            return StringUtils.removeEnd(path, "/");
+//        }
+//        return path;
+//    }
+//
+//    private boolean checkSkip(ApiDoc doc) {
+//        List<ApiMethodDoc> methodDocs = doc.getList();
+//        if (methodDocs == null || methodDocs.isEmpty()) {
+//            return true;
+//        }
+//
+//        if (methodDocs.get(0).getPath().contains("/sdk")) {
+//            return true;
+//        }
+//
+//        return false;
+//    }
+//
+//    private String handleModuleName(String desc, String controllerName) {
+//        if (StringUtils.isNotBlank(desc)) {
+//            return StringUtils.deleteWhitespace(desc).replaceAll("前端控制器", "管理")
+//                    .replaceAll("&lt;p&gt;", "")
+//                    .replaceAll("&lt;/p&gt;", "")
+//                    .replaceAll(",", ",");
+//        } else {
+//            return controllerName;
+//        }
+//    }
+//
+//    private String handleMethodName(String desc, String methodName) {
+//        if (StringUtils.isNotBlank(desc)) {
+//            return StringUtils.deleteWhitespace(desc)
+//                    .replaceAll("&lt;p&gt;", "")
+//                    .replaceAll("&lt;/p&gt;", "")
+//                    .replaceAll(",", ",");
+//        } else {
+//            switch (methodName) {
+//                case "page":
+//                    return "分页查询";
+//                case "detail":
+//                    return "详情查询";
+//                case "save":
+//                    return "新增";
+//                case "update":
+//                    return "编辑";
+//                case "delete":
+//                    return "删除";
+//                case "simpleAll":
+//                    return "下拉列表";
+//                case "importTemplate":
+//                    return "导入模板下载";
+//                case "importExcel":
+//                    return "导入";
+//                case "export":
+//                    return "导出";
+//                case "batchAdd":
+//                    return "批量新增";
+//                default:
+//                    return methodName;
+//            }
+//        }
+//    }
+//
+//    private ApiConfig getBaseConfig() {
+//        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
+//        ApiConfig config = new ApiConfig();
+//        String serverUrl = "http://127.0.0.1:8088/api";
+//        config.setServerUrl(serverUrl);
+//
+//        //设置不为严格模式
+//        config.setStrict(false);
+//
+//        config.setAllInOne(true);
+//        config.setProjectName("DY-API");
+//        RevisionLog relog = new RevisionLog();
+//        relog.setAuthor("WUCL");
+//        relog.setRemarks("四川大友主营业务平台接口文档");
+//        relog.setRevisionTime(DateUtil.now());
+//        relog.setVersion("v4");
+//        relog.setStatus("进行中");
+//
+//        config.setRevisionLogs(relog);
+//
+//        // 源代码路径
+//        config.setOutPath(base + "\\biz-base\\src\\main\\resources\\static\\doc");
+//
+//        // 设置接口包扫描路径过滤,如果不配置则Smart-doc默认扫描所有的接口类 配置多个报名有英文逗号隔开
+//        config.setPackageFilters("com.dayou.controller");
+//
+//        return config;
+//    }
+//
+//    private void generateSdkDoc() throws InterruptedException {
+//        String base = new File("").getAbsolutePath().split("\\\\biz-base")[0];
+//        ApiConfig config = new ApiConfig();
+//        String serverUrl = "http://119.27.160.97:8534/api/sdk";
+//        config.setServerUrl(serverUrl);
+//
+//        //设置不为严格模式
+//        config.setStrict(false);
+//
+//        config.setAllInOne(true);
+//        config.setProjectName("学校API");
+//        RevisionLog relog = new RevisionLog();
+//        relog.setAuthor("xysy");
+//        relog.setRemarks("学校4期接口文档");
+//        relog.setRevisionTime(DateUtil.now());
+//        relog.setVersion("v4");
+//        relog.setStatus("进行中");
+//
+//        config.setRevisionLogs(relog);
+//
+//        // 源代码路径
+//        config.setOutPath(base + "\\biz-base\\src\\main\\resources\\static\\doc\\sdk");
+//
+//        // 设置接口包扫描路径过滤,如果不配置则Smart-doc默认扫描所有的接口类 配置多个报名有英文逗号隔开
+//        config.setPackageFilters("com.dayou.controller");
+//
+//        // 多模块时源代码路径
+//        SourceCodePath paths = new SourceCodePath();
+//        paths.setPath(base + "\\biz-base\\src\\main\\java");
+//        SourceCodePath paths1 = new SourceCodePath();
+//        paths1.setPath(base + "\\common\\src\\main\\java");
+//        SourceCodePath paths2 = new SourceCodePath();
+//        paths2.setPath(base + "\\domain\\src\\main\\java");
+//        SourceCodePath paths3 = new SourceCodePath();
+//        paths3.setPath(base + "\\service\\src\\main\\java");
+//
+//        SourceCodePath pathsUis = new SourceCodePath();
+//        pathsUis.setPath(base + "\\biz-custom\\biz-uis\\src\\main\\java");
+//
+//        config.setSourceCodePaths(paths, paths1, paths2, paths3, pathsUis);
+//
+//        System.out.println("文档努力扫描生成中 请稍等..");
+//
+//        //生成HTML5文件
+//        buildSdkApiDoc(config);
+//
+//        Thread.sleep(1000);
+//
+//        System.out.println("生成html5 文档成功");
+//    }
+//
+//    private void buildSdkApiDoc(ApiConfig config) {
+//        JavaProjectBuilder javaProjectBuilder = new JavaProjectBuilder();
+//        buildSdkApiDoc(config, javaProjectBuilder);
+//    }
+//
+//    private void buildSdkApiDoc(ApiConfig config, JavaProjectBuilder javaProjectBuilder) {
+//        DocBuilderTemplate builderTemplate = new DocBuilderTemplate();
+//        builderTemplate.checkAndInit(config);
+//        config.setParamsDataToTree(false);
+//        ProjectDocConfigBuilder configBuilder = new ProjectDocConfigBuilder(config, javaProjectBuilder);
+//        IDocBuildTemplate docBuildTemplate = new SpringBootDocBuildTemplate();
+//        List<ApiDoc> initApiDoc = docBuildTemplate.getApiData(configBuilder);
+//        //TODO: 这里可以过滤处理对外开放的api接口列表
+//        List<ApiDoc> apiDocList = new ArrayList<>();
+//        if (initApiDoc != null && !initApiDoc.isEmpty()) {
+//            for (ApiDoc doc : initApiDoc) {
+//                if (checkSkip(doc)) {
+//                    continue;
+//                }
+//
+//                doc.setDesc(handleModuleName(doc.getDesc(), doc.getName()));
+//                List<ApiMethodDoc> methodDocs = doc.getList();
+//                if (methodDocs != null && !methodDocs.isEmpty()) {
+//                    for (ApiMethodDoc methodDoc : methodDocs) {
+//                        methodDoc.setDesc(handleMethodName(methodDoc.getDesc(), methodDoc.getName()));
+//                    }
+//                }
+//                apiDocList.add(doc);
+//            }
+//        }
+//
+//        Template indexCssTemplate = BeetlTemplateUtil.getByName(ALL_IN_ONE_CSS);
+//        com.power.common.util.FileUtil.nioWriteFile(indexCssTemplate.render(), config.getOutPath() + FILE_SEPARATOR + ALL_IN_ONE_CSS);
+//        if (StringUtils.isNotEmpty(config.getAllInOneDocFileName())) {
+//            INDEX_HTML = config.getAllInOneDocFileName();
+//        }
+//        builderTemplate.buildAllInOne(apiDocList, config, javaProjectBuilder, ALL_IN_ONE_HTML_TPL, INDEX_HTML);
+//    }
+//}

+ 2 - 0
dao/src/main/java/com/dayou/mapper/WorkNodeMapper.java

@@ -20,4 +20,6 @@ public interface WorkNodeMapper extends CustomBaseMapper<WorkNode> {
     List<WorkNodeDTO> getFlowNodes(@Param("flowId") Long flowId,@Param("businessType") String businessType);
 
     List<WorkNode> getNodesByMainBusiness(@Param("businessType") String businessType);
+
+    WorkNode getUniqueNodeByFlowNameAndNodeName(@Param("businessEnum")String businessEnum, @Param("nodeEnum")String nodeEnum);
 }

+ 11 - 0
dao/src/main/resources/mapper/WorkNodeMapper.xml

@@ -55,4 +55,15 @@
     <select id="getNodesByMainBusiness" parameterType="java.lang.String" resultType="com.dayou.entity.WorkNode">
         select name ,code  from work_node where flow_id = (select id from work_flow where code=#{businessType} AND deleted = 0 and state = 0) and deleted = 0
     </select>
+
+    <select id="getUniqueNodeByFlowNameAndNodeName" resultType="com.dayou.entity.WorkNode">
+        SELECT
+            *
+        FROM
+            work_node
+        WHERE
+                flow_id = ( SELECT id FROM `work_flow` WHERE CODE = #{businessEnum} AND deleted = 0 AND state = 0 )
+          AND CODE = #{nodeEnum}
+          AND deleted = 0
+    </select>
 </mapper>

+ 14 - 1
service/src/main/java/com/dayou/service/IFinanceClaimService.java

@@ -43,7 +43,20 @@ public interface IFinanceClaimService extends IService<FinanceClaim> {
     Boolean personalClaimByTemplate(MultipartFile file,Long financeFundId);
 
     Boolean doClaimByTemplateDTO(List<PersonalClaimDTO> personalClaimDTOS, Long financeFundId, BigDecimal residueAmount);
+
+    /**
+     * 检查实收款剩余金额
+     * @param financeFundId
+     * @return
+     */
+    BigDecimal checkFinanceFound(Long financeFundId);
+
+    /**
+     * 获取实收款剩余金额
+     * @param financeFundId
+     * @return
+     */
     BigDecimal residueAmount(Long financeFundId);
 
-    Boolean personalAllotRealAmount(List<OrderReportDTO> claimOrders);
+
 }

+ 5 - 0
service/src/main/java/com/dayou/service/IPersonalService.java

@@ -1,4 +1,5 @@
 package com.dayou.service;
+import com.dayou.dto.OrderReportDTO;
 import com.dayou.dto.TaskRecordDTO;
 import com.dayou.dto.WorkNodeCommit;
 import com.dayou.entity.Personal;
@@ -48,4 +49,8 @@ public interface IPersonalService extends IService<Personal> {
     Page<PersonalVO> saveFileDone(Page page, PersonalVO personal);
 
     Page<PersonalVO> myOrder(Page page, PersonalVO personal);
+
+    Boolean personalAllotRealAmount(List<OrderReportDTO> claimOrders);
+
+    Boolean doPersonalAllotRealAmount(List<OrderReportDTO> claimOrders);
 }

+ 2 - 7
service/src/main/java/com/dayou/service/impl/FinanceClaimServiceImpl.java

@@ -19,7 +19,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.ExcelUtil;
 import com.dayou.utils.LoginContext;
 import com.dayou.vo.FinanceClaimVO;
-import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -170,13 +169,9 @@ public class FinanceClaimServiceImpl extends ServiceImpl<FinanceClaimMapper, Fin
         return financeClaimMapper.residueAmount(financeFundId);
     }
 
-    @Override
-    public Boolean personalAllotRealAmount(List<OrderReportDTO> claimOrders) {
-        //todo
-        return null;
-    }
 
-    private BigDecimal checkFinanceFound(Long financeFundId) {
+    @Override
+    public synchronized BigDecimal checkFinanceFound(Long financeFundId) {
         BigDecimal residueAmount = residueAmount(financeFundId);
         if (residueAmount==null){
             ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"未查询到此笔实收款");

+ 2 - 6
service/src/main/java/com/dayou/service/impl/MajorProductionServiceImpl.java

@@ -378,13 +378,9 @@ public class MajorProductionServiceImpl extends ServiceImpl<MajorProductionMappe
         if (CollectionUtil.isNotEmpty(claimOrders)){
             //先校验各订单此次认领金额之和是否大于这笔实收款的剩余金额
             Long financeFundId = claimOrders.get(0).getFinanceFundId();
-            BigDecimal claimed = financeClaimService.list(new LambdaQueryWrapper<FinanceClaim>().select(FinanceClaim::getClaimAmount)
-                            .eq(FinanceClaim::getRealFundId, financeFundId).eq(BaseEntity::getDeleted, Boolean.FALSE))
-                    .stream().map(FinanceClaim::getClaimAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-            BigDecimal total = financeRealFundService.getById(financeFundId).getAmount();
-            BigDecimal notClaim = total.subtract(claimed);
+            BigDecimal residueAmount = financeClaimService.checkFinanceFound(financeFundId);
             BigDecimal thisTimeTotalAmount = claimOrders.stream().map(OrderReportDTO::getThisTimeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
-            if (thisTimeTotalAmount.compareTo(notClaim)>0){
+            if (thisTimeTotalAmount.compareTo(residueAmount)>0){
                 ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"本次订单认领之和大于实收款剩余金额,请检查后再认领。");
                 return Boolean.FALSE;
             }

+ 97 - 6
service/src/main/java/com/dayou/service/impl/PersonalServiceImpl.java

@@ -5,23 +5,23 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.dayou.common.BaseEntity;
-import com.dayou.dto.TaskRecordDTO;
-import com.dayou.dto.WorkNodeCommit;
+import com.dayou.dto.*;
 import com.dayou.entity.*;
 import com.dayou.enums.CertificateEnum;
 import com.dayou.enums.GlobalConfigEnum;
 import com.dayou.enums.MainBusinessEnum;
+import com.dayou.enums.workflow.HandlerPermissionEnum;
 import com.dayou.enums.workflow.NodeLogEnum;
 import com.dayou.enums.workflow.NodeStateEnum;
+import com.dayou.enums.workflow.WorkflowNodeEnum;
 import com.dayou.exception.ErrorCode;
-import com.dayou.mapper.PersonalMapper;
-import com.dayou.mapper.WorkFlowLogMapper;
-import com.dayou.mapper.WorkFlowNodeInstanceMapper;
-import com.dayou.mapper.WorkTaskRecordMapper;
+import com.dayou.mapper.*;
 import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.service.workflow.IWorkFlowNodeInstanceService;
 import com.dayou.service.workflow.IWorkFlowService;
+import com.dayou.service.workflow.IWorkNodeService;
+import com.dayou.service.workflow.IWorkNodeTaskService;
 import com.dayou.utils.LoginContext;
 import com.dayou.vo.PersonalVO;
 import com.dayou.vo.TaskTodoVO;
@@ -30,8 +30,11 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import org.springframework.transaction.annotation.Transactional;
@@ -79,6 +82,24 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
     @Autowired
      private WorkFlowLogMapper workFlowLogMapper;
 
+    @Autowired
+    private IPersonalService personalService;
+
+    @Autowired
+    private IFinanceClaimService financeClaimService;
+
+    @Autowired
+    private IOrderFundService orderFundService;
+
+    @Autowired
+    private OrderFundMapper orderFundMapper;
+
+    @Autowired
+    private IWorkNodeTaskService workNodeTaskService;
+
+    @Autowired
+    private IWorkNodeService workNodeService;
+
     @Override
     @SuppressWarnings("unchecked")
     public Page<PersonalVO> selectPage(Page page, PersonalVO personal){
@@ -98,6 +119,8 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
         personal.setOrderId(businessNumberService.takeOrderNumber());
         //确定内业人员
         personal.setInwardStaff(nextInwardStaff());
+        //确定定价内业人员
+        personal.setPricingStaff(aimPriceStaff());
         this.save(personal);
         //创建估价对象
         PersonalTarget pt = new PersonalTarget();
@@ -233,6 +256,10 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
         return pages;
     }
 
+    /**
+     * 确定内业人员
+     * @return
+     */
     private synchronized Long nextInwardStaff(){
         GlobalConfig inwardStaffRoll = globalConfigService.getGlobalConfig(GlobalConfigEnum.DEPARTMENT_TURNS.getCode(), GlobalConfigEnum.DepartmentTurns.INWARD_STAFF_ROLL.getCode());
         List<User> users = userService.simplePostName(PERSONAL_INWARD);
@@ -255,4 +282,68 @@ public class PersonalServiceImpl extends ServiceImpl<PersonalMapper, Personal> i
         globalConfigService.update(inwardStaffRoll);
         return nextStaffId;
     }
+
+    /**
+     * 确定定价内业
+     * @return
+     */
+    private Long aimPriceStaff(){
+        WorkNode workNode = workNodeService.getUniqueNodeByFlowNameAndNodeName(MainBusinessEnum.PERSONAL_BUSINESS, WorkflowNodeEnum.DETERMINE_PRICE);
+        if (workNode!=null){
+            WorkNodeTask latestNodeTask = workNodeTaskService.getLatestNodeTask(workNode.getId());
+            if (latestNodeTask!=null){
+                if (StrUtil.isNotBlank(latestNodeTask.getHandlerPermission())){
+                    HandlerPermissionDTO permission = JSON.parseObject(latestNodeTask.getHandlerPermission(), HandlerPermissionDTO.class);
+                    if (permission.getName().equals(HandlerPermissionEnum.EMPLOYEE)){
+                        return permission.getPowerId();
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public synchronized Boolean personalAllotRealAmount(List<OrderReportDTO> claimOrders) {
+        return personalService.doPersonalAllotRealAmount(claimOrders);
+    }
+
+    @Transactional
+    @Override
+    public Boolean doPersonalAllotRealAmount(List<OrderReportDTO> claimOrders){
+        if (CollectionUtil.isNotEmpty(claimOrders)){
+            //先校验各订单此次认领金额之和是否大于这笔实收款的剩余金额
+            Long financeFundId = claimOrders.get(0).getFinanceFundId();
+            BigDecimal residueAmount = financeClaimService.checkFinanceFound(financeFundId);
+            BigDecimal thisTimeTotalAmount = claimOrders.stream().map(OrderReportDTO::getThisTimeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+            if (thisTimeTotalAmount.compareTo(residueAmount)>0){
+                ErrorCode.throwBusinessException(ErrorCode.CUSTOM_ERROR,"本次订单认领之和大于实收款剩余金额,请检查后再认领。");
+            }
+            claimOrders.stream().forEach(x->{
+                //检查该订单是否创建应收款记录
+                OrderFund orderFund = orderFundService.getOne(new LambdaQueryWrapper<OrderFund>().eq(OrderFund::getOrderId, x.getOrderId())
+                        .eq(OrderFund::getBusinessId,x.getId()).eq(OrderFund::getBusinessType,MainBusinessEnum.PERSONAL_BUSINESS.name())
+                        .eq(BaseEntity::getDeleted, Boolean.FALSE));
+                if (orderFund==null){
+                    orderFund = new OrderFund();
+                    orderFund.setOrderId(x.getOrderId());
+                    orderFund.setBusinessType(MainBusinessEnum.PERSONAL_BUSINESS.name());
+                    orderFund.setBusinessId(x.getId());
+                    orderFund.setOrderName(x.getOrderName());
+                    orderFundService.save(orderFund);
+                }
+                FinanceClaim financeClaim = new FinanceClaim();
+                financeClaim.setRealFundId(financeFundId);
+                financeClaim.setOrderFundId(orderFund.getId());
+                financeClaim.setClaimId(LoginContext.getCurrentUserId());
+                financeClaim.setClaimDatetime(LocalDateTime.now());
+                financeClaim.setClaimAmount(x.getThisTimeAmount());
+                financeClaimService.save(financeClaim);
+                //更新订单认领总金额
+                orderFundMapper.updateRealAmount(orderFund.getId(),x.getThisTimeAmount());
+            });
+            return Boolean.TRUE;
+        }
+        return Boolean.FALSE;
+    }
 }

+ 1 - 0
service/src/main/java/com/dayou/service/workflow/IWorkFlowService.java

@@ -38,4 +38,5 @@ public interface IWorkFlowService extends IService<WorkFlow> {
     Boolean commit(WorkNodeCommit workNodeCommit);
 
     WorkNodeCommit openingOrder(MainBusinessEnum mainBusinessEnum, Long businessId, String businessSubId,String remark);
+
 }

+ 2 - 0
service/src/main/java/com/dayou/service/workflow/IWorkNodeService.java

@@ -83,4 +83,6 @@ public interface IWorkNodeService extends IService<WorkNode> {
     List<WorkNode> getNodesByMainBusiness(String businessType);
 
     void removeNodeCache(Long flowId);
+
+    WorkNode getUniqueNodeByFlowNameAndNodeName(MainBusinessEnum personalBusiness, WorkflowNodeEnum determinePrice);
 }

+ 1 - 1
service/src/main/java/com/dayou/service/workflow/IWorkNodeTaskService.java

@@ -30,5 +30,5 @@ public interface IWorkNodeTaskService extends IService<WorkNodeTask> {
 
         List<NameCodeVO> allHandlerPermission();
 
-
+        WorkNodeTask getLatestNodeTask(Long nodeId);
 }

+ 5 - 0
service/src/main/java/com/dayou/service/workflow/WorkNodeServiceImpl.java

@@ -329,6 +329,11 @@ public class WorkNodeServiceImpl extends ServiceImpl<WorkNodeMapper, WorkNode> i
         workflowCache.invalidate(flowId);
     }
 
+    @Override
+    public WorkNode getUniqueNodeByFlowNameAndNodeName(MainBusinessEnum businessEnum, WorkflowNodeEnum nodeEnum) {
+        return workNodeMapper.getUniqueNodeByFlowNameAndNodeName(businessEnum.name(),nodeEnum.name());
+    }
+
 
     private WorkNodeDTO findNext(Long priviousId, List<WorkNodeDTO> nodes) {
         Optional<WorkNodeDTO> target = nodes.stream().filter(n -> n.getPriviousNodeId() != null)

+ 10 - 0
service/src/main/java/com/dayou/service/workflow/WorkNodeTaskServiceImpl.java

@@ -1,6 +1,9 @@
 package com.dayou.service.workflow;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.dayou.common.BaseEntity;
 import com.dayou.entity.WorkNodeTask;
+import com.dayou.enums.workflow.NodeTaskVersion;
 import com.dayou.mapper.WorkNodeTaskMapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.vo.NameCodeVO;
@@ -80,4 +83,11 @@ public class WorkNodeTaskServiceImpl extends ServiceImpl<WorkNodeTaskMapper, Wor
         }).collect(Collectors.toList());
     }
 
+    @Override
+    public WorkNodeTask getLatestNodeTask(Long nodeId) {
+        WorkNodeTask task = this.getOne(new LambdaQueryWrapper<WorkNodeTask>().eq(WorkNodeTask::getNodeId, nodeId)
+                .eq(WorkNodeTask::getVersion, NodeTaskVersion.LATEST.name()).eq(BaseEntity::getDeleted, Boolean.FALSE));
+        return task;
+    }
+
 }

+ 1 - 1
service/src/main/java/com/dayou/workflow/annotation/WorkflowControl.java

@@ -5,7 +5,7 @@ import com.dayou.enums.workflow.CallbackEnum;
 import java.lang.annotation.*;
 
 /**
- * 类说明:工作流日志记录器
+ * 类说明:工作流日志记录器 (后期将删除此类)
  *
  * @author: wucl
  * @since: 2023/10/27

+ 1 - 1
service/src/main/java/com/dayou/workflow/config/WorkflowConfig.java

@@ -14,7 +14,7 @@ import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 /**
- * 类说明:
+ * 类说明: (后期将删除此类)
  *
  * @author: wucl
  * @since: 2023/10/27

+ 1 - 1
service/src/main/java/com/dayou/workflow/config/WorkflowInterceptor.java

@@ -42,7 +42,7 @@ import static com.dayou.enums.workflow.NodeLogEnum.PASS;
 
 
 /**
- * 类说明:
+ * 类说明:(后期将删除此类)
  *
  * @author: wucl
  * @since: 2023/10/27