Przeglądaj źródła

refactor(harrison): migrate module to mjava-ai

malk 1 miesiąc temu
rodzic
commit
928e2bb541
32 zmienionych plików z 1 dodań i 944 usunięć
  1. 0 54
      mjava-harrison/pom.xml
  2. 0 32
      mjava-harrison/src/main/java/com/malk/suodisi/Boot.java
  3. 0 22
      mjava-harrison/src/main/java/com/malk/suodisi/controller/DDController.java
  4. 0 109
      mjava-harrison/src/main/java/com/malk/suodisi/controller/HLController.java
  5. 0 140
      mjava-harrison/src/main/java/com/malk/suodisi/controller/SDSController.java
  6. 0 245
      mjava-harrison/src/main/java/com/malk/suodisi/controller/XYController.java
  7. 0 146
      mjava-harrison/src/main/java/com/malk/suodisi/entity/XyTodo.java
  8. 0 30
      mjava-harrison/src/main/java/com/malk/suodisi/server/XYR.java
  9. 0 90
      mjava-harrison/src/main/resources/application-dev.yml
  10. 0 39
      mjava-harrison/src/main/resources/application-prod.yml
  11. BIN
      mjava-harrison/src/main/resources/templates/FLOURISH 销售发票.xlsx
  12. BIN
      mjava-harrison/src/main/resources/templates/HARRISON 海运-物流服务.xlsx
  13. BIN
      mjava-harrison/src/main/resources/templates/HARRISON 贸易-吨度.xlsx
  14. BIN
      mjava-harrison/src/main/resources/templates/HARRISON 贸易-湿吨.xlsx
  15. BIN
      mjava-harrison/src/main/resources/templates/HARRISON 贸易-磅价.xlsx
  16. BIN
      mjava-harrison/src/main/resources/templates/HARRISON 通用-加工费.xlsx
  17. BIN
      mjava-harrison/src/main/resources/templates/HARRISON 通用模板.xlsx
  18. BIN
      mjava-harrison/src/main/resources/templates/VIC 贸易-吨度.xlsx
  19. BIN
      mjava-harrison/src/main/resources/templates/VIC 贸易-干吨价.xlsx
  20. BIN
      mjava-harrison/src/main/resources/templates/VIC 贸易-磅价.xlsx
  21. BIN
      mjava-harrison/src/main/resources/templates/VIC 通用-联检费.xlsx
  22. BIN
      mjava-harrison/src/main/resources/templates/VIC 通用模板.xlsx
  23. BIN
      mjava-harrison/src/main/resources/templates/VLINK 海运-拖车费.xlsx
  24. BIN
      mjava-harrison/src/main/resources/templates/VLINK 贸易-佣金.xlsx
  25. BIN
      mjava-harrison/src/main/resources/templates/VLINK 贸易-加工费.xlsx
  26. BIN
      mjava-harrison/src/main/resources/templates/VLINK 贸易-尾矿.xlsx
  27. BIN
      mjava-harrison/src/main/resources/templates/VLINK 贸易-干吨价.xlsx
  28. BIN
      mjava-harrison/src/main/resources/templates/VLINK 贸易-湿吨.xlsx
  29. BIN
      mjava-harrison/src/main/resources/templates/VLINK 通用模板.xlsx
  30. BIN
      mjava-harrison/src/main/resources/templates/ZEEK 物流-拖车费.xlsx
  31. 0 35
      mjava-harrison/src/test/resources/server.sh
  32. 1 2
      pom.xml

+ 0 - 54
mjava-harrison/pom.xml

@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>java-mcli</artifactId>
-        <groupId>com.malk</groupId>
-        <version>1.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>mjava-harrison</artifactId>
-    <description>索迪斯 poc 动态审批条件程序</description>
-
-    <properties>
-        <maven.compiler.source>8</maven.compiler.source>
-        <maven.compiler.target>8</maven.compiler.target>
-    </properties>
-
-    <dependencies>
-        <!-- 核心模块-->
-        <dependency>
-            <groupId>com.malk</groupId>
-            <artifactId>mjava</artifactId>
-            <version>${mjava.version}</version>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.1.1.RELEASE</version>
-                <configuration>
-                    <includeSystemScope>true</includeSystemScope>
-                    <!-- 如果没有该配置,devtools不会生效: 打包时关闭 -->
-                    <fork>false</fork>
-                    <!-- 避免中文乱码 -->
-                    <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
-                </configuration>
-                <!-- 允许生成可运行jar -->
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-        <finalName>${project.artifactId}</finalName>
-    </build>
-</project>

+ 0 - 32
mjava-harrison/src/main/java/com/malk/suodisi/Boot.java

@@ -1,32 +0,0 @@
-package com.malk.suodisi;
-
-import com.querydsl.jpa.impl.JPAQueryFactory;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.Bean;
-import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
-
-import javax.persistence.EntityManager;
-
-/**
- * corp项目: 扫描公共模块
- * -
- * 若是无需数据库模块, 配置无效地址也可启动, 引入mjava不支持直接 @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) 配置
- * 需要配置 jpa.hibernate.ddl-auto 为 none. 标识对表没有任何操作. 若不设置为 none, flyway.enabled 配置会无效, 在没有数库连接情况下程序无法启动
- */
-@EnableJpaAuditing
-@SpringBootApplication(scanBasePackages = {"com.malk"})
-public class Boot {
-
-    public static void main(String... args) {
-        SpringApplication.run(Boot.class, args);
-    }
-
-    /**
-     * 让Spring管理JPAQueryFactory [不使用Qualifier详见mjava-Boot]
-     */
-    @Bean
-    public JPAQueryFactory jpaQueryFactory(EntityManager entityManager) {
-        return new JPAQueryFactory(entityManager);
-    }
-}

+ 0 - 22
mjava-harrison/src/main/java/com/malk/suodisi/controller/DDController.java

@@ -1,22 +0,0 @@
-package com.malk.suodisi.controller;
-
-import com.malk.controller.DDCallbackController;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 钉钉事件回调 3_1
- * -
- * [子项目直接继承即可有调用, 无需实现]
- * -
- * 注解 @RequestMapping 路径不能重复 [主子项目属同一个项目];
- * 获取项目回调请求地址, https://mc.cloudpure.cn/frp/xxx/dd/callback [调试代理: frp + nginx]
- */
-@Slf4j
-@RestController
-@RequestMapping("/dd")
-public class DDController extends DDCallbackController {
-
-
-}

+ 0 - 109
mjava-harrison/src/main/java/com/malk/suodisi/controller/HLController.java

@@ -1,109 +0,0 @@
-package com.malk.suodisi.controller;
-
-import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.ExcelWriter;
-import com.alibaba.excel.write.metadata.WriteSheet;
-import com.alibaba.fastjson.JSON;
-import com.malk.server.aliwork.YDConf;
-import com.malk.server.aliwork.YDParam;
-import com.malk.server.common.McException;
-import com.malk.server.common.McR;
-import com.malk.server.dingtalk.DDConf;
-import com.malk.service.aliwork.YDClient;
-import com.malk.suodisi.server.XYR;
-import com.malk.utils.*;
-import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.InputStream;
-import java.util.*;
-import java.util.stream.Collectors;
-
-/**
- * 错误抛出与拦截详见 CatchException
- */
-@Slf4j
-@RestController
-@RequestMapping("/harrison")
-public class HLController {
-
-    @Autowired
-    private YDClient ydClient;
-
-    @Autowired
-    private DDConf ddConf;
-
-    // prd: 物流类型打印模板 业务类型 中文->英文 对照
-    private static final Map<String, String> PART_EN = new HashMap<>();
-
-    static {
-        PART_EN.put("内陆运输", "TRANSPORTATION");
-        PART_EN.put("THC", "TERMINAL HANDLING CHARGES");
-        PART_EN.put("港口货代", "TNPA CARGO DUES");
-        PART_EN.put("海运", "OCEAN FREIGHT");
-        PART_EN.put("检测", "SAMPLING AND ANALYSIS");
-        PART_EN.put("单证", "DOCUMENTATION FEE");
-        PART_EN.put("保险", "OCEAN INSURANCE");
-    }
-
-    @PostMapping("/invoice")
-    McR HL_invoice(@RequestBody Map data, HttpServletResponse response, HttpServletRequest request) {
-
-//        data.putAll(UtilMap.map("type, abbr, formId", "销售发票, FLOURISH, 4070f44f-72da-4beb-b4b4-64d65d70c271"));
-        log.info("invoice, {}", data);
-
-        McException.assertParamException_Null(data, "formId, abbr, type");
-
-        String formId = UtilMap.getString(data, "formId");
-        Map formData = ydClient.queryData(YDParam.builder()
-                .formInstId(formId)
-                .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
-
-        /// 字段: 销售方, 购买方, 发票号, 合同号, 付款条款, 船名, 提单号, 原厂地(国家), 装货港, 卸货港, 包装方式, 贸易方式, 提单日期, 品名
-        Map printData = UtilMap.map("seller, buyer, invoice, contract, payment, vessel, lading, origin, ladP, disP, packing, trade, bDate, commodity",
-                "selectField_mgvg350c, selectField_mgvh3io0, textField_l6q5sysr, selectField_mkdpx3e7, selectField_l5rljms7, selectField_migsdo11, textField_migsdo16, textField_migsdo17, selectField_mkdpx3e8, selectField_mkdpx3e9, textareaField_migsdo1a, textField_migsdo1b, dateField_migsdo1e, selectField_l6mztuvx",
-                formData);
-        printData.put("date", UtilDateTime.formatDate(new Date(UtilMap.getLong(formData, "dateField_mgvqvr4l")))); // 开票日期
-        String title = UtilMap.getString(formData, "selectField_mgvqvr4j").equals("最终发票") ? "FINAL COMMERCIAL INVOICE" : "PROVISIONAL COMMERCIAL INVOICE";
-        printData.put("title", title); // 发票类型
-        String[] sAddrs = UtilMap.getString(formData, "textareaField_migsdo0w").split("\\|");
-        for (int i = 0; i < sAddrs.length; i++) {
-            printData.put("sAddr" + i, sAddrs[i]); // 销售方-地址
-        }
-        String[] bAddrs = UtilMap.getString(formData, "textareaField_migsdo0x").split("\\|");
-        for (int i = 0; i < bAddrs.length; i++) {
-            printData.put("bAddr" + i, bAddrs[i]); // 购买方-地址
-        }
-        List<Map> details =  UtilMap.getList(formData, "tableField_mgvqvr53");
-        List<Map> dataList = details.stream().map(item-> {
-            // 字段: 业务-业务类型, 吨数-结算吨数, 单价-发票金额(原币), 总价-发票合计(原币)
-            Map row = UtilMap.map("part, num, price, amount, rate",
-                    "selectField_mgugk66v, numberField_mgvqvr58, numberField_l5ryl6qe, numberField_l5m487p0, numberField_mgugk673",
-                    item);
-            String part = UtilMap.getString(item, "selectField_mgugk66v");
-            row.put("part", PART_EN.getOrDefault(part, part)); // prd: 物流类型模板展示英文业务类型, 命中映射才替换
-            row.put("quantity", UtilMap.getFloat(item, "numberField_mgvqvr58") + "MT");
-            row.put("exchange", UtilNumber.formatPrecisionString(UtilMap.getFloat(item, "numberField_l5ryl6qe") * UtilMap.getFloat(item, "numberField_mgugk673")));
-            row.put("empty", ""); // ppExt: 添加了子表, 若模板未用到会异常, 添加标注
-            return row;
-        }).collect(Collectors.toList());
-        printData.put("oTotal", UtilMap.getFloat(formData, "numberField_mhek85oq")); // 发票金额合计-原币
-        log.info("printData, {}", printData);
-
-        String type = UtilMap.getString(data, "type"); // 模板类型
-        String abbr = UtilMap.getString(data, "abbr"); // 公司简称
-        String fileName = abbr + " " + title;
-        UtilExcel.exportMapAndListByTemplate(response, printData, dataList, Map.class, fileName, abbr + " " + type + ".xlsx");
-        return  McR.success();
-    }
-
-}
-
-

+ 0 - 140
mjava-harrison/src/main/java/com/malk/suodisi/controller/SDSController.java

@@ -1,140 +0,0 @@
-package com.malk.suodisi.controller;
-
-import cn.hutool.core.util.ObjectUtil;
-import com.alibaba.fastjson.JSON;
-import com.malk.server.aliwork.YDConf;
-import com.malk.server.aliwork.YDParam;
-import com.malk.server.common.McException;
-import com.malk.server.dingtalk.DDConf;
-import com.malk.service.aliwork.YDClient;
-import com.malk.utils.UtilServlet;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.*;
-
-/**
- * 错误抛出与拦截详见 CatchException
- */
-@Slf4j
-@RestController
-@RequestMapping("/suodisi")
-public class SDSController {
-
-    @Autowired
-    private YDClient ydClient;
-
-    @Autowired
-    private DDConf ddConf;
-
-    /**
-     * 动态审批人
-     */
-    @PostMapping("sds/test")
-    List<String> sdsTest(HttpServletRequest request) {
-        Map param = UtilServlet.getParamMap(request);
-
-        if (true) {
-            return Arrays.asList(ddConf.getOperator());
-        }
-
-        McException.assertParamException_Null(param, "compId", "BusinessType");
-        Map condition = new HashMap();
-
-        String compId = param.get("compId").toString();
-        //数据条件参数
-        condition.put("textField_lisbeacj", param.get("BusinessType"));
-        condition.put("selectField_lisbeack", param.get("City"));
-        condition.put("selectField_lisbeacm", param.get("CompanyCode"));
-        //宜搭参数赋值
-        YDParam ydParam = YDParam.builder()
-                .formUuid("FORM-PR8667D1QWKB5AYJEKDJ18IKE6IE3JUNDBSIL2")
-                .searchFieldJson(JSON.toJSONString(condition))
-                .build();
-        List<Map> list = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
-
-        return emailList(list, ydParam, compId);
-    }
-
-    //获取人员ID的公用方法
-    List<String> emailList(List<Map> list, YDParam ydParam, String ProcessCoding) {
-        List<String> userIds = new ArrayList<>();
-        for (Map row : list) {
-            Map mailCondition = new HashMap();
-            Map formData = (Map) row.get("formData");
-            //String mail1 = String.valueOf(formData.getDefault("textField_lisbeacp"));
-            String mail1 = String.valueOf(formData.get(ProcessCoding));
-            for (String mail : mail1.split(";#")) {
-                if (mail.contains("@")) {
-                    mailCondition.put("textField_lg22sfep", mail);
-                    ydParam.setFormUuid("FORM-MFA66S91RAO8YAB1CUTCED77NK9133TR5XQEL8");
-                    ydParam.setSearchFieldJson(JSON.toJSONString(mailCondition));
-                    //调用宜搭接口
-                    List<Map> users = (List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_search_form).getData();
-                    if (users.size() > 0) {
-                        Map userData = (Map) users.get(0).get("formData");
-                        List<String> userId = (List<String>) userData.get("employeeField_lisbbxca_id");
-                        userIds.addAll(userId);
-                    }
-                }
-            }
-        }
-        return userIds;
-    }
-
-    /**
-     * 回写招聘子表
-     */
-    @PostMapping("sds/update")
-    Map sdsUpdate(HttpServletRequest request) {
-
-        // 查询招聘申请
-        Map param = UtilServlet.getParamMap(request);
-        McException.assertParamException_Null(param, "formInstId");
-        YDParam ydParam = YDParam.builder()
-                .appType("APP_Y75CEY3YR30YOLEWETJJ")
-                .systemToken("BY866R813JM8XVLGD7YELCPDH9IL29Z5BQQEL48")
-                .formInstId(String.valueOf(param.get("formInstId")))
-                .build();
-        Map rsp = (Map) ydClient.operateData(ydParam, YDConf.FORM_OPERATION.update);
-        Map formData = (Map) rsp.get("formData");
-        log.info("索迪斯回写子表, {}, {}", param, formData);
-
-        // 组装分发子表数据
-        Map detail = new HashMap();
-        detail.put("associationFormField_lf7pkag4", JSON.parse(String.valueOf(formData.get("associationFormField_lg54gbt9_id")))); // 职位组
-        detail.put("textField_lf7pkag5", formData.get("textField_lg54gbta")); // 新员工姓名
-        detail.put("dateField_lf7pkag6", formData.get("dateField_lg54gbtf")); // 入职日期
-
-        // todo: 成员, 附件, 关联表单
-        List<Map> association = JSON.parseArray(String.valueOf(JSON.parse(String.valueOf(formData.get("associationFormField_lg0gmbi8_id")))), Map.class);
-        String formInstId = String.valueOf(association.get(0).get("instanceId"));
-        ydParam.setFormInstId(formInstId);
-        Map rspSrc = (Map) ydClient.operateData(ydParam, YDConf.FORM_OPERATION.update);
-        Map formDataSrc = (Map) rspSrc.get("formData");
-        List<Map> list = new ArrayList<>();
-        if (ObjectUtil.isNotNull(formDataSrc.get("tableField_lf7pkag3"))) {
-            list = (List<Map>) formDataSrc.get("tableField_lf7pkag3");
-        }
-
-        // 更新流程数据
-        Map form = new HashMap();
-        list.add(detail);
-        form.put("tableField_lf7pkag3", list);
-        form.put("numberField_lfj9d501", 2);
-        ydParam.setUpdateFormDataJson(JSON.toJSONString(form));
-        ydClient.operateData(ydParam, YDConf.FORM_OPERATION.update);
-
-        log.info("更新, {}, {}", formInstId, form);
-
-        Map r = new HashMap();
-        r.put("success", true);
-        return r;
-    }
-}
-
-

+ 0 - 245
mjava-harrison/src/main/java/com/malk/suodisi/controller/XYController.java

@@ -1,245 +0,0 @@
-package com.malk.suodisi.controller;
-
-import com.alibaba.fastjson.JSONObject;
-import com.malk.server.aliwork.YDConf;
-import com.malk.server.common.McR;
-import com.malk.server.dingtalk.DDR_New;
-import com.malk.service.aliwork.YDClient;
-import com.malk.service.dingtalk.DDClient;
-import com.malk.suodisi.entity.XyTodo;
-import com.malk.suodisi.server.XYR;
-import com.malk.utils.UtilDateTime;
-import com.malk.utils.UtilHttp;
-import com.malk.utils.UtilMap;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.logging.log4j.util.Strings;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 错误抛出与拦截详见 CatchException
- */
-@Slf4j
-@RestController
-@RequestMapping("/xy")
-public class XYController {
-    @Autowired
-    private DDClient ddClient;
-
-    @Autowired
-    private YDClient ydClient;
-
-    @Autowired
-    private YDConf ydConf;
-
-    final static String XY_sys = "XYDING";
-    final static String XY_secure = "51d7cbff-806f-4bc9-aca8-7a26fdd6327c";
-
-    private static Map<Integer, String> DD_category = new HashMap<>();
-
-    static {
-        DD_category.put(0, "钉钉,宜搭");
-        DD_category.put(1, "钉钉,待办");
-    }
-
-    private static String getXyUrl(String path) {
-        return "http://xyapiuat.xiangyu.cn:8000/xmxyg/todo/epi" + path;
-//        return "http://10.16.8.160:8011/TODO/rest/ofs/ProxyServices" + path;
-//        return "https://xyesb.xiangyu.com:8011/TODO/rest/ofs/ProxyServices" + path;
-    }
-
-    /**
-     * 创建象屿统一待办
-     * - prd
-     * 1. 待办创建, 更新均需要传递全部参数 (目前仅会校验审批时间不能小于历史数据)
-     * 2. 接收人存在多人时, 统一待办会自动拆分为多个 (待办中心以 业务单据号 + 用户域账号)
-     */
-    private void syncXyTodo(XyTodo todo) {
-        try {
-            Map body = todo.toMap();
-            XYR r = (XYR) UtilHttp.doPost(getXyUrl("/push"), UtilMap.map("deipaaskeyauth","XahX56IIQ27SQ9hiKcp3T031A23bB4fw"), body, XYR.class);
-
-            log.info("创建统一待办, {}", r);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * 删除象屿统一待办
-     */
-    private void deleteXyTodo(String busNo) {
-        try {
-            XYR r = (XYR) UtilHttp.doPost(getXyUrl("/delete"), null, UtilMap.map("busNo",busNo), XYR.class);
-
-            log.info("删除统一待办, {}", r);
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    /**
-     * 宜搭待办
-     */
-    @PostMapping("/sync")
-    McR sync(@RequestBody Map map) {
-        String formInstId = UtilMap.getString(map, "formInstId");//审批实例id
-
-        String busNo = UtilMap.getString(map, "busNo");//唯一流水号
-
-        String boName = UtilMap.getString(map,"boName");//单据名称
-
-        String pcUrl = "https://xiangyu.aliwork.com/"+ydConf.getAppType()+"/processDetail?procInsId="+formInstId;
-        String appUrl = "https://xiangyu.aliwork.com/"+ydConf.getAppType()+"/processDetail?procInsId="+formInstId;
-
-        //查询宜搭审批记录, 完成回调, 完成更新
-        Map<String,Object> param = new HashMap<>();
-        param.put("appType",ydConf.getAppType());
-        param.put("systemToken",ydConf.getSystemToken());
-        param.put("userId","yida_pub_account");
-        param.put("processInstanceId",formInstId);
-
-        Map<String,Object> result = (Map<String,Object>) JSONObject.parse(UtilHttp.doGet("https://api.dingtalk.com/v1.0/yida/processes/operationRecords", ddClient.initTokenHeader(), param));
-
-        List<Map<String,Object>> operationRecords = UtilMap.getList(result,"result");
-
-        XyTodo xyTodo = new XyTodo(XY_sys,XY_secure,DD_category.get(0));
-
-        xyTodo.setBusNo(busNo);//唯一流水号
-        xyTodo.setCreateDateTime(UtilDateTime.formatDateTime(new Date()));//创建时间
-        xyTodo.setPcUrl(pcUrl);
-        xyTodo.setAppUrl(appUrl);
-        xyTodo.setOptType(2);//操作类型:1、待办;2、已办;3、待阅
-        xyTodo.setCreateDateTime(UtilDateTime.formatDateTime(new Date()));//创建时间
-        xyTodo.setReceiveDateTime(UtilDateTime.formatDateTime(new Date()));//接收时间
-        xyTodo.setApproveDateTime(UtilDateTime.formatDateTime(new Date()));//审批时间
-
-        boolean isFirst = true;
-
-        //创建人、接收人账号应取象屿平台账号,若找不到账号则固定人员:陈文良
-        for (Map<String,Object> operationRecord : operationRecords) {
-            //第一条审批记录为发起节点
-            if (isFirst) {
-
-                String creatorName = UtilMap.getString(operationRecord, "operatorName");
-                String ddUserId = UtilMap.getString(operationRecord, "operatorUserId");
-                String creator = getXyUserId(ddUserId);
-
-                //若无域账号
-                if (Strings.isBlank(creator)){
-                    creator = "wl.chen";//创建人域账号
-                    creatorName = "陈文良";//创建人姓名
-                }
-
-                xyTodo.setCreator(creator);
-                xyTodo.setCreatorName(creatorName);
-                xyTodo.setTitle(boName + "-" + creatorName + "-" + busNo);//标题
-
-                isFirst = false;
-
-                continue;
-            }
-
-            String type = UtilMap.getString(operationRecord, "type");
-
-            switch (type){
-                case "HISTORY":
-                    //统一待办仅展示最新 暂不考虑历史记录
-                    /*xyTodo.setOptType(2);
-
-                    xyTodo.setReceivers(UtilMap.getString(operationRecord,"operatorUserId"));//接收人域账号
-                    xyTodo.setReceiverNames(UtilMap.getString(operationRecord,"operatorName"));//接收人姓名
-                    xyTodo.setApproveDateTime(convertDateTime(UtilMap.getString(operationRecord, "operateTimeGMT")));//审批时间
-
-                    //若该代办已存在,则拼接接收人  若该代办不存在,添加该代办
-                    if (!isExist(xyTodoList, xyTodo)) {
-                        xyTodoList.add(xyTodo);
-                    }*/
-
-                    break;
-                case "TODO":
-                    xyTodo.setOptType(1);
-                    xyTodo.setCurrentStatus(UtilMap.getString(operationRecord,"showName"));//当前状况(流程描述)
-
-                    String ddUserId = UtilMap.getString(operationRecord, "operatorUserId");
-                    String receiversName = UtilMap.getString(operationRecord, "operatorName");
-                    String receivers = getXyUserId(ddUserId);
-
-                    //若无域账号
-                    if (Strings.isBlank(receivers)){
-                        receivers = "wl.chen";
-                        receiversName = "陈文良";
-                    }
-                    xyTodo.setReceivers(receivers);//接收人域账号
-                    xyTodo.setReceiverNames(receiversName);//接收人姓名
-
-                    break;
-                case "FORCAST":break;
-                default:break;
-            }
-        }
-
-        //全部已办
-        if (Strings.isBlank(xyTodo.getReceivers())){
-            //最后一个审批记录审批人设为接收人
-            Map<String, Object> operationRecord = operationRecords.get(operationRecords.size() - 1);
-
-            String ddUserId = UtilMap.getString(operationRecord, "operatorUserId");
-            String receiversName = UtilMap.getString(operationRecord, "operatorName");
-            String receivers = getXyUserId(ddUserId);
-            //若无域账号
-            if (Strings.isBlank(receivers)){
-                receivers = "wl.chen";
-                receiversName = "陈文良";
-            }
-
-            xyTodo.setReceivers(receivers);//接收人域账号
-            xyTodo.setReceiverNames(receiversName);//接收人姓名
-            xyTodo.setCurrentStatus(UtilMap.getString(operationRecord,"showName"));//当前状况(流程描述)
-
-        }
-
-        syncXyTodo(xyTodo);
-
-        return McR.success();
-    }
-
-    /**
-     * 删除宜搭待办
-     */
-    @PostMapping("/delete")
-    McR delete(@RequestBody Map map) {
-        String busNo = UtilMap.getString(map, "busNo");//唯一流水号
-
-        deleteXyTodo(busNo);
-
-        return McR.success();
-    }
-
-    @GetMapping("/test")
-    McR test(){
-        return McR.success("111");
-    }
-
-    //钉钉userId查询象屿域账号(钉钉工号)
-    private String getXyUserId(String userId){
-        DDR_New ddrNew = (DDR_New) UtilHttp.doPost("https://oapi.dingtalk.com/topapi/v2/user/get", null, ddClient.initTokenParams(), UtilMap.map("userid", userId), DDR_New.class);
-
-        Map result = (Map) ddrNew.getResult();
-
-        String xyUserId = UtilMap.getString(result, "job_number");
-
-        return xyUserId;//接收人域账号
-    }
-
-
-
-
-}
-
-

+ 0 - 146
mjava-harrison/src/main/java/com/malk/suodisi/entity/XyTodo.java

@@ -1,146 +0,0 @@
-package com.malk.suodisi.entity;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import lombok.Data;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-
-@Data
-public class XyTodo {
-    //系统标识(每个系统和环境不同,需要联系管理员获取)
-    private String sysCode;
-
-    //密钥(每个系统和环境不同,需要联系管理员获取)
-    private String secureCode;
-
-    //唯一流水号
-    private String busNo;
-
-    //标题
-    private String title;
-
-    //业务层级类型,例如:"人力资源流程,员工出差申请",层级必须不少于二级。
-    private String busType;
-
-    //当前状况(流程描述,即当前节点名称)
-    private String currentStatus;
-
-    //待办 PC 地址,传输相对路径时需要向管理员提供唯一地址前缀,该地址需能过 OA 单点进行跳转
-    private String pcUrl;
-
-    //待办 APP 地址,传输相对路径时需要向管理员提供唯一地址前缀,该地址需能过 OA 单点进行跳转
-    private String appUrl;
-
-    //操作类型:1、待办;2、已办;3、待阅
-    //如果新的推送类型一样,本次推送不生效,所以不能通过重复推送的办法去修改例如标题,审批状态等数据,如果需要修改数据,请对接专门的修改接口
-    private int optType;
-
-    //创建人域账号
-    private String creator;
-
-    //创建人姓名
-    private String creatorName;
-
-    //创建时间,样例 : "yyyy-MM-dd HH:mm:ss"
-    private String createDateTime;
-
-    //接收人域账号,字符串形式,支持多人逗号隔开
-    private String receivers;
-
-    //接收人姓名,字符串形式,支持多人逗号隔开
-    private String receiverNames;
-
-    //接收时间,样例 : "yyyy-MM-dd HH:mm:ss"
-    private String receiveDateTime;
-
-    //是否支持批量操作
-    private boolean isSupportBatch;
-
-    //审批时间,新的数据必须大于等于数据库中的旧数据,本次推送才生效
-    private String approveDateTime;
-
-    //关键字字段(该字段为搜索条件,对单据进行定位)
-    private List<String> keywords;
-
-    //流程 id(主要用于统一待办添加关注功能,以及催办功能)
-    private String flowId;
-
-    public Map toMap() throws Exception {
-        ObjectMapper mapper = new ObjectMapper();
-        // 禁用属性名自动检测,直接使用字段名
-        mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
-        mapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE);
-        return mapper.convertValue(this, Map.class);
-    }
-
-    public XyTodo() {
-    }
-
-    public XyTodo(String sysCode, String secureCode, String busType) {
-        this.sysCode = sysCode;
-        this.secureCode = secureCode;
-        this.busType = busType;
-    }
-
-    public void setCurrentStatus(String currentStatus) {
-        if (Objects.nonNull(this.currentStatus)){
-            String[] split = this.currentStatus.split(",");
-
-            boolean isExist = false;
-            for (String s : split) {
-                if (s.equals(currentStatus)) {
-                    isExist = true;
-                }
-            }
-
-            if (!isExist) {
-                this.currentStatus += "," + currentStatus;
-            }
-        }else {
-            this.currentStatus = currentStatus;
-        }
-    }
-
-    public void setReceiverNames(String receiverNames) {
-        if (Objects.nonNull(this.receiverNames)){
-            String[] split = this.receiverNames.split(",");
-
-            boolean isExist = false;
-            for (String s : split) {
-                if (s.equals(receiverNames)) {
-                    isExist = true;
-                }
-            }
-
-            if (!isExist) {
-                this.receiverNames += "," + receiverNames;
-            }
-        }else {
-            this.receiverNames = receiverNames;
-        }
-    }
-
-    public void setReceivers(String receivers) {
-        if (Objects.nonNull(this.receivers)){
-            String[] split = this.receivers.split(",");
-
-            boolean isExist = false;
-            for (String s : split) {
-                if (s.equals(receivers)) {
-                    isExist = true;
-                }
-            }
-
-            if (!isExist) {
-                this.receivers += "," + receivers;
-            }
-        }else{
-            this.receivers = receivers;
-        }
-
-    }
-}

+ 0 - 30
mjava-harrison/src/main/java/com/malk/suodisi/server/XYR.java

@@ -1,30 +0,0 @@
-package com.malk.suodisi.server;
-
-import com.malk.server.common.McException;
-import com.malk.server.common.VenR;
-import lombok.Data;
-
-/**
- * 返回数据_阿里云
- */
-@Data
-public class XYR<T> extends VenR {
-
-    private boolean result;
-
-    private String code;
-
-    private String message;
-
-    private String description;
-
-    private T data;
-
-    /**
-     * 断言错误信息
-     */
-    @Override
-    public void assertSuccess() {
-        McException.assertException(!result, code, message + " >>> " + description, "象屿统一待办");
-    }
-}

+ 0 - 90
mjava-harrison/src/main/resources/application-dev.yml

@@ -1,90 +0,0 @@
-# 环境配置
-server:
-  port: 9001
-  servlet:
-    context-path: /api
-
-# condition
-spel:
-  scheduling: false        # 定时任务是否执行
-  multiSource: false       # 是否多数据源配置
-
-spring:
-  # database
-  datasource:
-    hikari:
-      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    username: root
-    password: mu123
-    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
-  jpa:
-    hibernate:
-      ddl-auto: none      # JPA对表没有任何操作
-    show-sql: true
-    database: MYSQL
-    database-platform: org.hibernate.dialect.MySQL57Dialect
-
-# filepath
-file:
-  path:
-    file: /Users/malk/server/_Tool/var/mjava/tmp/file/
-    image: /Users/malk/server/_Tool/var/mjava/tmp/image/
-    tmp: /Users/malk/server/_Tool/var/mjava/tmp/
-  source:
-    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
-logging:
-  file:
-    path: /Users/malk/server/_Tool/var/mjava/log
-
-## 索迪斯
-
-## dingtalk
-#dingtalk:
-#  agentId: 1963716187
-#  appKey: ding8qyulwwmad6j7k6c
-#  appSecret: e_hRHuubw-Xi0OuPJOYdXSElVzOC0IPgMrHQTBuAM9BqW-DFnrcsSyBHi7Me3xSv
-#  corpId: ding321c72787fffc78b35c2f4657eb6378f
-#  aesKey:
-#  token:
-#  operator: "095358016629044412"   # 牧语[开头需要转一下字符串], OA管理员账号
-#
-## aliwork
-#aliwork:
-#  appType: APP_YH7W0E5637YUBU5UJ837
-#  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9
-
-
-### 厦门象屿 - 股份门户
-## dingtalk
-#dingtalk:
-#  agentId: 4091040619
-#  appKey: ding7mjaj6fjhuzyij8k
-#  appSecret: j9L0F3yzN4gpdMDpuCxW0dVSOwFHEfmrPUMtNXFu5IWvQDu0qGdfZ9-R3SO_LBa5
-#  corpId: dingb68b6b0ff271114ff2c783f7214b6d69
-#  aesKey: n7HjQmK8EKFWgEZyU13FQtbIeFcKueRsh82DhaMWvmu
-#  token: JjrmLlIUrBCBFhGEnX3xaK7vXobGwd
-#  operator: ""   # 林壹[开头需要转一下字符串], OA管理员账号
-#
-## aliwork
-#aliwork:
-#  appType: APP_YH7W0E5637YUBU5UJ837
-#  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9
-
-## harrison - 发票模板
-# dingtalk
-dingtalk:
-  agentId: 4091040619
-  appKey: dinglu5ea0vlsmy2ys0q
-  appSecret: dev5GRm6pTC9XJbcu_sEyFpm8hatYl9nNkMZ4ILV72omQZZYyC83fv_hB4J-tnyd
-  corpId: ding97f04d85a46b5149a39a90f97fcb1e09
-  aesKey:
-  token:
-  operator: ""   # 林壹[开头需要转一下字符串], OA管理员账号
-
-# aliwork
-aliwork:
-  appType: APP_CPWWGT5FEIH6EYXJZLDR
-  systemToken: P9966091SLBZXORGEO00WCMYKK2A3GWWNUBGM26H
-
-

+ 0 - 39
mjava-harrison/src/main/resources/application-prod.yml

@@ -1,39 +0,0 @@
-# 环境配置
-server:
-  port: 9099
-  servlet:
-    context-path: /api
-
-# condition
-spel:
-  scheduling: false       # 定时任务是否执行
-  multiSource: false      # 是否多数据源配置
-
-spring:
-  # database
-  datasource:
-    hikari:
-      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    username: root
-    password: mu123
-    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
-  jpa:
-    database: MYSQL
-    database-platform: org.hibernate.dialect.MySQL57Dialect
-
-## harrison - 发票模板
-# dingtalk
-dingtalk:
-  agentId: 4091040619
-  appKey: dinglu5ea0vlsmy2ys0q
-  appSecret: dev5GRm6pTC9XJbcu_sEyFpm8hatYl9nNkMZ4ILV72omQZZYyC83fv_hB4J-tnyd
-  corpId: ding97f04d85a46b5149a39a90f97fcb1e09
-  aesKey:
-  token:
-  operator: ""   # 林壹[开头需要转一下字符串], OA管理员账号
-
-# aliwork
-aliwork:
-  appType: APP_CPWWGT5FEIH6EYXJZLDR
-  systemToken: P9966091SLBZXORGEO00WCMYKK2A3GWWNUBGM26H

BIN
mjava-harrison/src/main/resources/templates/FLOURISH 销售发票.xlsx


BIN
mjava-harrison/src/main/resources/templates/HARRISON 海运-物流服务.xlsx


BIN
mjava-harrison/src/main/resources/templates/HARRISON 贸易-吨度.xlsx


BIN
mjava-harrison/src/main/resources/templates/HARRISON 贸易-湿吨.xlsx


BIN
mjava-harrison/src/main/resources/templates/HARRISON 贸易-磅价.xlsx


BIN
mjava-harrison/src/main/resources/templates/HARRISON 通用-加工费.xlsx


BIN
mjava-harrison/src/main/resources/templates/HARRISON 通用模板.xlsx


BIN
mjava-harrison/src/main/resources/templates/VIC 贸易-吨度.xlsx


BIN
mjava-harrison/src/main/resources/templates/VIC 贸易-干吨价.xlsx


BIN
mjava-harrison/src/main/resources/templates/VIC 贸易-磅价.xlsx


BIN
mjava-harrison/src/main/resources/templates/VIC 通用-联检费.xlsx


BIN
mjava-harrison/src/main/resources/templates/VIC 通用模板.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 海运-拖车费.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 贸易-佣金.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 贸易-加工费.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 贸易-尾矿.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 贸易-干吨价.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 贸易-湿吨.xlsx


BIN
mjava-harrison/src/main/resources/templates/VLINK 通用模板.xlsx


BIN
mjava-harrison/src/main/resources/templates/ZEEK 物流-拖车费.xlsx


+ 0 - 35
mjava-harrison/src/test/resources/server.sh

@@ -1,35 +0,0 @@
-#!/bin/bash
-appname='mjava-suodisi'
-if [ "$1" == "dev" ]; then
-  java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=dev
-else
-  if [ "$1" == "start" ]; then
-    nohup java -Xms256m -Xmx256m -jar $appname.jar &
-    echo "server prod is starting"
-  else
-    if [ "$1" == "test" ]; then
-      nohup java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=test &
-      echo "server test is starting"
-    else
-      if [ "$1" == "stop" ]; then
-        PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
-        if [ -z "$PID" ]; then
-          echo "server is already stopped"
-        else
-          echo kill $PID
-          kill $PID
-        fi
-      else
-        if [ "$1" == "status" ]; then
-          PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
-          if [ -z "$PID" ]; then
-            echo "server is stopped"
-          else
-            echo "server is running"
-            echo $PID
-          fi
-        fi
-      fi
-    fi
-  fi
-fi

+ 1 - 2
pom.xml

@@ -13,7 +13,6 @@
         <module>mjava-hangshi</module>
         <module>mjava-guyuan</module>
         <module>mjava-mcli</module>
-        <module>mjava-harrison</module>
         <module>mjava-cloudpure</module>
         <module>mjava-zhuogao</module>
         <module>mjava-fengkaili</module>
@@ -453,4 +452,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
+</project>