gongdecai 4 lat temu
rodzic
commit
1ae9494b0f
28 zmienionych plików z 1467 dodań i 0 usunięć
  1. 21 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractProcessInfoController.java
  2. 79 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractProcessInfo.java
  3. 16 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractProcessInfoMapper.java
  4. 16 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractProcessInfoService.java
  5. 20 0
      src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractProcessInfoServiceImpl.java
  6. 5 0
      src/main/resources/mapper/ContractProcessInfoMapper.xml
  7. 39 0
      winsea-haixin-plugin-yiliangyiyun/pom.xml
  8. 155 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/GeneratorCodeByTables.java
  9. 21 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractGoodsInfoController.java
  10. 21 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractManagementInfoController.java
  11. 21 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractProcessInfoController.java
  12. 92 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractGoodsInfo.java
  13. 165 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractManagementInfo.java
  14. 84 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractProcessInfo.java
  15. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractGoodsInfoMapper.java
  16. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractManagementInfoMapper.java
  17. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractProcessInfoMapper.java
  18. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractGoodsInfoService.java
  19. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractManagementInfoService.java
  20. 16 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractProcessInfoService.java
  21. 20 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractGoodsInfoServiceImpl.java
  22. 20 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractManagementInfoServiceImpl.java
  23. 20 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractProcessInfoServiceImpl.java
  24. 505 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/CrewUtils.java
  25. 36 0
      winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/EntityAnalyse.java
  26. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractGoodsInfoMapper.xml
  27. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractManagementInfoMapper.xml
  28. 5 0
      winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractProcessInfoMapper.xml

+ 21 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractProcessInfoController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 合同流程信息 前端控制器
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@RestController
+@RequestMapping("/contractProcessInfo")
+public class ContractProcessInfoController {
+
+}
+

+ 79 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractProcessInfo.java

@@ -0,0 +1,79 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import BaseModel;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.Version;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 合同流程信息
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+public class ContractProcessInfo extends BaseModel<ContractProcessInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    private String id;
+    /**
+     * 公司
+     */
+    private String compId;
+    /**
+     * 合同ID
+     */
+    private String contractId;
+    /**
+     * 合同收入(元)
+     */
+    private Double goodsNameKey;
+    /**
+     * 已开发票
+     */
+    private Double goodsName;
+    /**
+     * 合同外支出
+     */
+    private Double waterContent;
+    /**
+     * 未开发票
+     */
+    private Double impurity;
+    /**
+     * 未收款
+     */
+    private Double mildewGrain;
+    /**
+     * 已完成发运量(吨)
+     */
+    private Float imperfectGrain;
+    /**
+     * 双章原件回收情况key
+     */
+    private String gradeKey;
+    /**
+     * 双章原件回收情况
+     */
+    private String grade;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractProcessInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractProcessInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 合同流程信息 Mapper 接口
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface ContractProcessInfoMapper extends BaseMapper<ContractProcessInfo> {
+
+}

+ 16 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractProcessInfoService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractProcessInfo;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 合同流程信息 服务类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface IContractProcessInfoService extends IService<ContractProcessInfo> {
+
+}

+ 20 - 0
src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractProcessInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractProcessInfo;
+import com.yh.saas.plugin.yiliangyiyun.mapper.ContractProcessInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IContractProcessInfoService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 合同流程信息 服务实现类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Service
+public class ContractProcessInfoServiceImpl extends ServiceImpl<ContractProcessInfoMapper, ContractProcessInfo> implements IContractProcessInfoService {
+
+}

+ 5 - 0
src/main/resources/mapper/ContractProcessInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.yh.saas.plugin.yiliangyiyun.mapper.ContractProcessInfoMapper">
+
+</mapper>

+ 39 - 0
winsea-haixin-plugin-yiliangyiyun/pom.xml

@@ -0,0 +1,39 @@
+<?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>winsea-haixin</artifactId>
+        <groupId>com.yh.haixin</groupId>
+        <version>0.7.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>winsea-haixin-plugin-yiliangyiyun</artifactId>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.yh.haixin</groupId>
+            <artifactId>winsea-haixin-plugin-base</artifactId>
+            <version>0.7.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>ooxml-schemas</artifactId>
+            <version>1.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot</artifactId>
+            <version>2.1.1.RELEASE</version>
+        </dependency>
+    </dependencies>
+
+
+</project>

+ 155 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/GeneratorCodeByTables.java

@@ -0,0 +1,155 @@
+package com.yh.saas.plugin.yiliangyiyun;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.FileOutConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.TemplateConfig;
+import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.DbType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+
+/**
+ * 生成代码
+ *
+ * @author SunTianjun
+ */
+public class GeneratorCodeByTables {
+
+    private static final String DATA_SOURCE_PREFIX = "spring.datasource.";
+
+    private static final String DATA_SOURCE_URL = "jdbc:mysql://47.100.3.209:3306/yilaingyiyun?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=UTC";
+
+    private static final String DATA_SOURCE_USERNAME = "root";
+
+    private static final String DATA_SOURCE_CIPHER_CODE = "Ccj841968545";
+
+    private static final String DATA_SOURCE_DRIVER_CLASS_NAME = "com.mysql.cj.jdbc.Driver";
+
+    private static Properties properties;
+
+    static {
+        try {
+        	properties = new Properties();
+            properties.put(DATA_SOURCE_PREFIX + "url", DATA_SOURCE_URL);
+            properties.put(DATA_SOURCE_PREFIX + "username", DATA_SOURCE_USERNAME);
+            properties.put(DATA_SOURCE_PREFIX + "password", DATA_SOURCE_CIPHER_CODE);
+            properties.put(DATA_SOURCE_PREFIX + "driver-class-name", DATA_SOURCE_DRIVER_CLASS_NAME);
+        } catch (Exception e) {
+            
+
+        }
+    }
+
+    public static void main(String[] args) throws IOException {
+//        generateByTables("Gongdc", "com.yh.saas.plugin.crew","crew_interview_info");
+        generateByTables("Gongdc", "com.yh.saas.plugin.yiliangyiyun","contract_process_info");
+    }
+
+    /**
+     * 通过表生成类
+     *
+     * @param author      作者
+     * @param packageName 包名
+     * @param tableNames  表名,不传创建所有
+     * @throws IOException
+     */
+    private static void generateByTables(String author, String packageName, String... tableNames) throws IOException {
+        GlobalConfig config = new GlobalConfig();
+
+        String dbUrl = properties.getProperty(DATA_SOURCE_PREFIX + "url");
+        String dbUsername = properties.getProperty(DATA_SOURCE_PREFIX + "username");
+        String dbPassword = properties.getProperty(DATA_SOURCE_PREFIX + "password");
+        String dbDriverName = properties.getProperty(DATA_SOURCE_PREFIX + "driver-class-name");
+
+        DataSourceConfig dataSourceConfig = new DataSourceConfig();
+        dataSourceConfig.setDbType(DbType.MYSQL).setUrl(dbUrl).setUsername(dbUsername).setPassword(dbPassword)
+                .setDriverName(dbDriverName);
+        StrategyConfig strategyConfig = new StrategyConfig();
+        strategyConfig.setEntityLombokModel(true)
+                .setSuperEntityColumns("create_date", "create_user_id", "update_date", "update_user_id", "update_flag",
+                        "delete_flag", "update_count", "now_version_no", "prev_version_no")
+                .setSuperEntityClass("BaseModel").setRestControllerStyle(true).setCapitalMode(true)
+                .setDbColumnUnderline(true).setNaming(NamingStrategy.underline_to_camel).setInclude(tableNames);// 修改替换成你需要的表名,多个表名传数组
+        config.setActiveRecord(true).setAuthor(author).setOutputDir(new File("src/main/java").getCanonicalPath())
+                .setFileOverride(false).setEnableCache(false);
+
+        TemplateConfig templateConfig = new TemplateConfig();
+        templateConfig.setXml(null);
+        new MyAutoGenerator().setGlobalConfig(config).setDataSource(dataSourceConfig).setStrategy(strategyConfig)
+                .setCfg(crateInjectionConfig()).setTemplate(templateConfig)
+                .setPackageInfo(
+                        new PackageConfig().setParent(packageName).setController("controller").setEntity("entity"))
+                .execute();
+    }
+
+    /**
+     * 获取应用配置
+     *
+     * @return 应用配置
+     * @throws IOException
+     */
+    private static Properties getApplicationProperties() throws IOException {
+        Properties properties = new Properties();
+        properties.load(GeneratorCodeByTables.class.getClassLoader().getResourceAsStream("application.properties"));
+        return properties;
+    }
+
+    /**
+     * 生成自定义配置
+     *
+     * @return 自定义配置
+     */
+    private static InjectionConfig crateInjectionConfig() {
+
+        InjectionConfig cfg = new InjectionConfig() {
+
+            @Override
+            public void initMap() {
+                // ignore
+            }
+        };
+
+        List<FileOutConfig> focList = new ArrayList<>();
+        focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
+
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                String mapperBasePath = "/";
+                try {
+                    mapperBasePath = new File("src/main/resources/mapper").getCanonicalPath();
+                } catch (IOException e) {
+                    // ignore
+                }
+                return mapperBasePath + "/" + tableInfo.getEntityName() + "Mapper.xml";
+            }
+        });
+
+        cfg.setFileOutConfigList(focList);
+        return cfg;
+    }
+
+    public static class MyAutoGenerator extends AutoGenerator {
+
+        @Override
+        protected ConfigBuilder pretreatmentConfigBuilder(ConfigBuilder config) {
+            ConfigBuilder myConfig = super.pretreatmentConfigBuilder(config);
+
+            myConfig.getTableInfoList().stream()
+                    .forEach(tableInfo -> tableInfo.setImportPackages(Serializable.class.getCanonicalName()));
+
+            return myConfig;
+        }
+    }
+}

+ 21 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractGoodsInfoController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 合同货物信息 前端控制器
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@RestController
+@RequestMapping("/contractGoodsInfo")
+public class ContractGoodsInfoController {
+
+}
+

+ 21 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractManagementInfoController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 合同管理 前端控制器
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@RestController
+@RequestMapping("/contractManagementInfo")
+public class ContractManagementInfoController {
+
+}
+

+ 21 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/ContractProcessInfoController.java

@@ -0,0 +1,21 @@
+package com.yh.saas.plugin.yiliangyiyun.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 合同流程信息 前端控制器
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@RestController
+@RequestMapping("/contractProcessInfo")
+public class ContractProcessInfoController {
+
+}
+

+ 92 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractGoodsInfo.java

@@ -0,0 +1,92 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.annotations.Version;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 合同货物信息
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("contract_goods_info")
+public class ContractGoodsInfo extends BaseModel<ContractGoodsInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 公司
+     */
+    private String compId;
+    /**
+     * 合同ID
+     */
+    private String contractId;
+    /**
+     * 货名key
+     */
+    private String goodsNameKey;
+    /**
+     * 货名
+     */
+    private String goodsName;
+    /**
+     * 水分
+     */
+    private String waterContent;
+    /**
+     * 杂质
+     */
+    private String impurity;
+    /**
+     * 霉变粒
+     */
+    private String mildewGrain;
+    /**
+     * 不完善粒
+     */
+    private String imperfectGrain;
+    /**
+     * 容重
+     */
+    private String bulkDensity;
+    /**
+     * 焦糊粒
+     */
+    private String jiaorenli;
+    /**
+     * 品级key
+     */
+    private String gradeKey;
+    /**
+     * 品级
+     */
+    private String grade;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 165 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractManagementInfo.java

@@ -0,0 +1,165 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import java.util.Date;
+import com.baomidou.mybatisplus.activerecord.Model;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.annotations.Version;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 合同管理
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("contract_management_info")
+public class ContractManagementInfo extends BaseModel<ContractManagementInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 公司
+     */
+    private String compId;
+    /**
+     * 合同号
+     */
+    private String contractNo;
+    /**
+     * 合同类型(1销售2采购)
+     */
+    private String contractType;
+    /**
+     * 运输方式
+     */
+    private String shippingType;
+    /**
+     * 结算方式
+     */
+    private String settlementMethod;
+    /**
+     * 买方
+     */
+    private String buyer;
+    /**
+     * 卖方
+     */
+    private String seller;
+    /**
+     * 买方电话
+     */
+    private String buyerPhone;
+    /**
+     * 卖方电话
+     */
+    private String sellerPhone;
+    /**
+     * 货源地
+     */
+    private String sourceGoods;
+    /**
+     * 交货地
+     */
+    private String placeDelivery;
+    /**
+     * 包装方式key
+     */
+    private String packingMethodKey;
+    /**
+     * 包装方式
+     */
+    private String packingMethod;
+    /**
+     * 重量(吨)
+     */
+    private Float weight;
+    /**
+     * 验收方式key
+     */
+    private String acceptanceMethodKey;
+    /**
+     * 验收方式
+     */
+    private String acceptanceMethod;
+    /**
+     * 溢短装
+     */
+    private Float overShort;
+    /**
+     * 交货日期(起)
+     */
+    private Date deliveryDateStart;
+    /**
+     * 交货日期(止)
+     */
+    private Date deliveryDateEnd;
+    /**
+     * 合同单价(元/每吨)
+     */
+    private Double unitContractPrice;
+    /**
+     * 合同总价
+     */
+    private Double totalContractPrice;
+    /**
+     * 签订日期
+     */
+    private Date signingDate;
+    /**
+     * 状态标识
+     */
+    private String statusFlag;
+    /**
+     * 状态
+     */
+    private String status;
+    /**
+     * 状态英文
+     */
+    private String statusEn;
+    /**
+     * 审核状态
+     */
+    private String approveStatus;
+    /**
+     * 审核状态英文
+     */
+    private String approveStatusEn;
+    /**
+     * 工作流ID
+     */
+    private String workflowId;
+    /**
+     * 附件地址
+     */
+    private String addressUrl;
+    /**
+     * 备注
+     */
+    private String remarks;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 84 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/ContractProcessInfo.java

@@ -0,0 +1,84 @@
+package com.yh.saas.plugin.yiliangyiyun.entity;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.annotations.Version;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import com.yh.saas.common.support.entity.BaseModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 合同流程信息
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("contract_process_info")
+public class ContractProcessInfo extends BaseModel<ContractProcessInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @TableId(type = IdType.UUID)
+    private String id;
+    /**
+     * 公司
+     */
+    private String compId;
+    /**
+     * 合同ID
+     */
+    private String contractId;
+    /**
+     * 合同收入(元)
+     */
+    private Double goodsNameKey;
+    /**
+     * 已开发票
+     */
+    private Double goodsName;
+    /**
+     * 合同外支出
+     */
+    private Double waterContent;
+    /**
+     * 未开发票
+     */
+    private Double impurity;
+    /**
+     * 未收款
+     */
+    private Double mildewGrain;
+    /**
+     * 已完成发运量(吨)
+     */
+    private Float imperfectGrain;
+    /**
+     * 双章原件回收情况key
+     */
+    private String gradeKey;
+    /**
+     * 双章原件回收情况
+     */
+    private String grade;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractGoodsInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractGoodsInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 合同货物信息 Mapper 接口
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface ContractGoodsInfoMapper extends BaseMapper<ContractGoodsInfo> {
+
+}

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractManagementInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractManagementInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 合同管理 Mapper 接口
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface ContractManagementInfoMapper extends BaseMapper<ContractManagementInfo> {
+
+}

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/ContractProcessInfoMapper.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.mapper;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractProcessInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 合同流程信息 Mapper 接口
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface ContractProcessInfoMapper extends BaseMapper<ContractProcessInfo> {
+
+}

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractGoodsInfoService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractGoodsInfo;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 合同货物信息 服务类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface IContractGoodsInfoService extends IService<ContractGoodsInfo> {
+
+}

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractManagementInfoService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractManagementInfo;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 合同管理 服务类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface IContractManagementInfoService extends IService<ContractManagementInfo> {
+
+}

+ 16 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IContractProcessInfoService.java

@@ -0,0 +1,16 @@
+package com.yh.saas.plugin.yiliangyiyun.service;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractProcessInfo;
+import com.baomidou.mybatisplus.service.IService;
+
+/**
+ * <p>
+ * 合同流程信息 服务类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+public interface IContractProcessInfoService extends IService<ContractProcessInfo> {
+
+}

+ 20 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractGoodsInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractGoodsInfo;
+import com.yh.saas.plugin.yiliangyiyun.mapper.ContractGoodsInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IContractGoodsInfoService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 合同货物信息 服务实现类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Service
+public class ContractGoodsInfoServiceImpl extends ServiceImpl<ContractGoodsInfoMapper, ContractGoodsInfo> implements IContractGoodsInfoService {
+
+}

+ 20 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractManagementInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractManagementInfo;
+import com.yh.saas.plugin.yiliangyiyun.mapper.ContractManagementInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IContractManagementInfoService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 合同管理 服务实现类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Service
+public class ContractManagementInfoServiceImpl extends ServiceImpl<ContractManagementInfoMapper, ContractManagementInfo> implements IContractManagementInfoService {
+
+}

+ 20 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/ContractProcessInfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.yh.saas.plugin.yiliangyiyun.service.impl;
+
+import com.yh.saas.plugin.yiliangyiyun.entity.ContractProcessInfo;
+import com.yh.saas.plugin.yiliangyiyun.mapper.ContractProcessInfoMapper;
+import com.yh.saas.plugin.yiliangyiyun.service.IContractProcessInfoService;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 合同流程信息 服务实现类
+ * </p>
+ *
+ * @author Gongdc
+ * @since 2021-05-17
+ */
+@Service
+public class ContractProcessInfoServiceImpl extends ServiceImpl<ContractProcessInfoMapper, ContractProcessInfo> implements IContractProcessInfoService {
+
+}

+ 505 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/CrewUtils.java

@@ -0,0 +1,505 @@
+package com.yh.saas.plugin.yiliangyiyun.util;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang3.StringUtils;
+
+import com.winsea.svc.base.base.util.DateUtils;
+
+/**
+ * 计算工作时长的公用方法
+ *
+ * @author XinGuang
+ */
+public class CrewUtils {
+
+    /**
+     * 获取年龄
+     *
+     * @param birthDay
+     * @return
+     */
+    public static String getAge(Date birthDay) {
+        Calendar cal = Calendar.getInstance();
+        if (cal.before(birthDay)) { // 出生日期晚于当前时间,无法计算
+            throw new IllegalArgumentException("The birthDay is before Now.It's unbelievable!");
+        }
+        int yearNow = cal.get(Calendar.YEAR); // 当前年份
+        int monthNow = cal.get(Calendar.MONTH); // 当前月份
+        int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH); // 当前日期
+        cal.setTime(birthDay);
+        int yearBirth = cal.get(Calendar.YEAR);
+        int monthBirth = cal.get(Calendar.MONTH);
+        int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
+        int age = yearNow - yearBirth; // 计算整岁数
+        if (monthNow <= monthBirth) {
+            if (monthNow == monthBirth) {
+                if (dayOfMonthNow < dayOfMonthBirth)
+                    age--;// 当前日期在生日之前,年龄减一
+            } else {
+                age--;// 当前月份在生日之前,年龄减一
+            }
+        }
+        return String.valueOf(age);
+    }
+
+    /**
+     * 获取合同的下船日期
+     *
+     * @param beginDate
+     * @param monthNum
+     * @return
+     */
+    public static Date getEndDate(Date beginDate, int monthNum) {
+
+        SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.DATE_FMT_YYYY_MM_DD);
+        String beginTime = sdf.format(beginDate);
+        String[] times = beginTime.split("-");
+        String year = times[0];
+        String month = times[1];
+        String day = times[2];
+        year = String.valueOf(Integer.parseInt(year) + (monthNum / 12));
+        month = String.valueOf(Integer.parseInt(month) + (monthNum % 12));
+        String yearMonth = year + "-" + month;
+        switch (month) {
+            case "2":
+                if (Integer.parseInt(day) > 28) {
+                    return DateUtils.getMonthLastDay(yearMonth);
+                }
+                break;
+            case "4":
+                if ("31".equals(day)) {
+                    return DateUtils.getMonthLastDay(yearMonth);
+                }
+                break;
+            case "6":
+                if ("31".equals(day)) {
+                    return DateUtils.getMonthLastDay(yearMonth);
+                }
+                break;
+            case "9":
+                if ("31".equals(day)) {
+                    return DateUtils.getMonthLastDay(yearMonth);
+                }
+                break;
+            case "11":
+                if ("31".equals(day)) {
+                    return DateUtils.getMonthLastDay(yearMonth);
+                }
+                break;
+            default:
+                break;
+        }
+
+        try {
+            return sdf.parse(yearMonth + "-" + day);
+        } catch (Exception e) {
+            return null;
+        }
+
+    }
+
+    /**
+     * 首字母转大写
+     *
+     * @param str
+     * @return
+     */
+    public static String getConvert(String str) {
+        String first = str.substring(0, 1);
+        String after = str.substring(1); // substring(1),获取索引位置1后面所有剩余的字符串
+        first = first.toUpperCase();
+        str = first + after;
+        return str;
+    }
+
+    /**
+     * 获取行列
+     *
+     * @param str
+     * @return
+     */
+    public static List<String> getCellRowColumn(String str) {
+
+        StringBuilder strBuilder = new StringBuilder();
+        StringBuilder numBuilder = new StringBuilder();
+
+        for (int i = 0; i < str.length(); i++) { // 循环遍历字符串
+            if (Character.isDigit(str.charAt(i))) { // 用char包装类中的判断数字的方法判断每一个字符
+                numBuilder.append(str.charAt(i));
+            }
+            if (Character.isLetter(str.charAt(i))) { // 用char包装类中的判断字母的方法判断每一个字符
+                strBuilder.append(str.charAt(i));
+            }
+        }
+        List<String> list = new ArrayList<>();
+        list.add(strBuilder.toString());
+        list.add(numBuilder.toString());
+        return list;
+    }
+
+    /**
+     * 获取列数
+     *
+     * @param str
+     * @return
+     */
+    public static int getColumnNum(String str) {
+        str = str.toUpperCase();
+        char[] ch = str.toCharArray();
+        int a = 0;
+        for (int i = 0; i < ch.length; i++) {
+            a += getNum(ch[i]) * (int) Math.pow(26, ch.length - i - 1);
+        }
+        return a;
+    }
+
+    /**
+     * 获取字母
+     *
+     * @param ch
+     * @return
+     */
+    public static int getNum(char ch) {
+        int index = (char) ch;
+        if (index >= 97) {
+            index = index - (97 - 65);
+        }
+        return index - 64;
+    }
+
+    /**
+     * 获取首字母对应的数字
+     *
+     * @return
+     */
+    public static Integer getStrNum(String str) {
+        String first = str.substring(0, 1).toUpperCase();
+
+        int num = (int) first.getBytes()[0];
+        return num - 64;
+    }
+
+    private CrewUtils() {
+    }
+
+    /**
+     * 获取时间
+     *
+     * @param nextDate     后一个时间
+     * @param previousDate 前一个时间
+     * @return
+     */
+    public static String getTimes(Date nextDate, Date previousDate) {
+        String times = "";
+        Calendar c1 = Calendar.getInstance();
+        Calendar c2 = Calendar.getInstance();
+        c1.setTime(nextDate);
+        c2.setTime(previousDate);
+        int[] timeArr = getTimeIntervalArray(c1, c2);
+        if (timeArr[0] > 0) {
+            times += timeArr[0] + "个月";
+        }
+        if (timeArr[0] >= 0 && timeArr[1] > 0) {
+            times += timeArr[1] + "天";
+        }
+        return times;
+    }
+
+    public static int[] getTimesArray(Date nextDate, Date previousDate) {
+        Calendar c1 = Calendar.getInstance();
+        Calendar c2 = Calendar.getInstance();
+        c1.setTime(nextDate);
+        c2.setTime(previousDate);
+
+        return getTimeIntervalArray(c1, c2);
+    }
+
+    public static int[] getTimeIntervalArray(Calendar nextDate, Calendar previousDate) {
+        int year = nextDate.get(Calendar.YEAR) - previousDate.get(Calendar.YEAR);
+        int month = nextDate.get(Calendar.MONTH) - previousDate.get(Calendar.MONTH);
+        int day = nextDate.get(Calendar.DAY_OF_MONTH) - previousDate.get(Calendar.DAY_OF_MONTH);
+        if (day < 0) {
+            // 计算截止日期的上一个月有多少天,补上去
+            Calendar tempDate = (Calendar) nextDate.clone();
+            tempDate.add(Calendar.MONTH, -1);// 获取截止日期的上一个月
+            day += tempDate.getActualMaximum(Calendar.DAY_OF_MONTH);
+
+            // nextDate是月底最后一天,且day=这个月的天数,即是刚好一整个月,比如20160131~20160229,day=29,实则为1个月
+            if (nextDate.get(Calendar.DAY_OF_MONTH) == nextDate.getActualMaximum(Calendar.DAY_OF_MONTH)// 日期为月底最后一天
+                    && day >= nextDate.getActualMaximum(Calendar.DAY_OF_MONTH)) {// day刚好是nextDate一个月的天数,或大于nextDate月的天数(比如2月可能只有28天)
+                day = 0;// 因为这样判断是相当于刚好是整月了,那么不用向 month 借位,只需将 day 置 0
+            } else {// 向month借一位
+                month--;
+            }
+        }
+
+        if (month < 0) {
+            month += 12;
+            year--;
+        }
+        day = day + 1;
+        month += year * 12;
+
+        return new int[]{month, day};
+    }
+
+    /**
+     * List 转 String
+     *
+     * @param list
+     * @return
+     */
+    public static String getListTurnArray(List<String> list) {
+        String str = "";
+        if (null != list && list.size() > 0) {
+            for (int i = 0; i < list.size(); i++) {
+                str = str + "'" + list.get(i) + "',";
+            }
+            str = str.substring(0, str.length() - 1);
+        }
+        return str;
+    }
+
+    /**
+     * 生成工作时间
+     *
+     * @param month
+     * @param day
+     * @return
+     */
+    public static String createServingTime(int month, int day) {
+        String servingTime = "";
+        month += day / 30;
+        day = day % 30;
+        if (month > 0) {
+            servingTime += month + "个月";
+        }
+        if (month >= 0 && day > 0) {
+            servingTime += day + "天";
+        }
+        return servingTime;
+    }
+
+    /**
+     * 获取当前时间
+     *
+     * @return
+     */
+    public static Date getNowDate() {
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.DATE_FMT_YYYY_MM_DD);
+        String nowTime = sdf.format(date);
+        try {
+            date = sdf.parse(nowTime);
+        } catch (ParseException e) {
+            date = new Date();
+        }
+        return date;
+    }
+
+    /**
+     * 得到两个日期相差的天数
+     *
+     * @param early
+     * @param late
+     * @return
+     */
+    public static int daysBetween(Date early, Date late) {
+
+        Calendar calst = Calendar.getInstance();
+        Calendar caled = Calendar.getInstance();
+        calst.setTime(early);
+        caled.setTime(late);
+        // 设置时间为0时
+        calst.set(Calendar.HOUR_OF_DAY, 0);
+        calst.set(Calendar.MINUTE, 0);
+        calst.set(Calendar.SECOND, 0);
+        caled.set(Calendar.HOUR_OF_DAY, 0);
+        caled.set(Calendar.MINUTE, 0);
+        caled.set(Calendar.SECOND, 0);
+        // 得到两个日期相差的天数
+        int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst.getTime().getTime() / 1000)) / 3600 / 24;
+
+        return days;
+    }
+
+    /**
+     * 获取本月第一天
+     *
+     * @param date
+     * @return
+     */
+    public static Date getMonthFirstDay(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        calendar.add(Calendar.MONTH, 0);
+        return calendar.getTime();
+    }
+
+    /**
+     * 获取本月最后一天
+     *
+     * @param date
+     * @return
+     */
+    public static Date getMonthLastDay(Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.DAY_OF_MONTH, 0);
+        calendar.add(Calendar.MONTH, 1);
+        return calendar.getTime();
+    }
+
+    /**
+     * 获取想要的时间
+     *
+     * @return
+     */
+    public static Date getDate(String time, String str) {
+        Date date = new Date();
+        if (StringUtils.isBlank(str)) {
+            str = DateUtils.DATE_FMT_YYYY_MM_DD;
+        }
+        if (StringUtils.isNotBlank(time)) {
+            SimpleDateFormat sdf = new SimpleDateFormat(str);
+            try {
+                date = sdf.parse(time);
+            } catch (ParseException e) {
+                date = new Date();
+            }
+        }
+        return date;
+    }
+
+    /**
+     * 获取单元格
+     *
+     * @param columnIndex
+     * @return
+     */
+    public static String excelColIndexToStr(int columnIndex) {
+        if (columnIndex <= 0) {
+            return null;
+        }
+        String columnStr = "";
+        columnIndex--;
+        do {
+            if (columnStr.length() > 0) {
+                columnIndex--;
+            }
+            columnStr = ((char) (columnIndex % 26 + (int) 'A')) + columnStr;
+            columnIndex = ((columnIndex - columnIndex % 26) / 26);
+        } while (columnIndex > 0);
+        return columnStr;
+    }
+
+    /**
+     * 获取本月第一天
+     *
+     * @param date
+     * @return
+     */
+    public static String getMonthFirstDay(Date date, String str) {
+        if (StringUtils.isBlank(str)) {
+            str = DateUtils.DATE_FMT_YYYY_MM_DD;
+        }
+        Date firstDay = getMonthFirstDay(date);
+        SimpleDateFormat sdf = new SimpleDateFormat(str);
+        return sdf.format(firstDay);
+    }
+
+    /**
+     * 获取本月第一天
+     *
+     * @param date
+     * @return
+     */
+    public static String getMonthLastDay(Date date, String str) {
+        if (StringUtils.isBlank(str)) {
+            str = DateUtils.DATE_FMT_YYYY_MM_DD;
+        }
+        Date lastDay = getMonthLastDay(date);
+        SimpleDateFormat sdf = new SimpleDateFormat(str);
+        return sdf.format(lastDay);
+    }
+
+    /**
+     * 判断 a>b
+     *
+     * @param oneDay
+     * @param twoDate
+     * @return
+     */
+    public static boolean compareDate(Date oneDay, Date twoDate) {
+        boolean flag = false;
+        if (null != oneDay && null != twoDate && oneDay.after(twoDate)) {
+            flag = true;
+        }
+        return flag;
+
+    }
+
+    /**
+     * 获取自然月天数
+     *
+     * @param yearMonth
+     * @return
+     */
+    public static int getMonthDays(String yearMonth) {
+        int days = 30;
+        if (StringUtils.isNotBlank(yearMonth)) {
+            String[] yearAndMonth = yearMonth.split("-");
+            if (yearAndMonth.length == 2) {
+                int year = Integer.parseInt(yearAndMonth[0]);
+                int month = Integer.parseInt(yearAndMonth[1]);
+                boolean flag = false;
+                if ((year % 100 != 0 && year % 4 == 0) || year % 400 == 0) {
+                    flag = true;
+                }
+                switch (yearAndMonth[1]) {
+                    case "1":
+                        days = 31;
+                        break;
+                    case "2":
+                        if (flag) {
+                            days = 29;
+                        } else {
+                            days = 28;
+                        }
+                        break;
+                    case "3":
+                        days = 31;
+                        break;
+                    case "5":
+                        days = 31;
+                        break;
+                    case "7":
+                        days = 31;
+                        break;
+                    case "8":
+                        days = 31;
+                        break;
+                    case "10":
+                        days = 31;
+                        break;
+                    case "12":
+                        days = 31;
+                        break;
+                    default:
+                        break;
+                }
+
+            }
+        }
+        return days;
+
+    }
+
+}

+ 36 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/util/EntityAnalyse.java

@@ -0,0 +1,36 @@
+package com.yh.saas.plugin.yiliangyiyun.util;
+
+import com.yh.saas.common.support.util.ContextWrapper;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+public class EntityAnalyse {
+
+    /**
+     * 反向更新航海资料申请单
+     *
+     * @param compId
+     */
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    public static List<String> changeMapApplStatus(String compId) {
+        try {
+            String className = "financePaymentApplyZrServiceImpl";
+            String methodName = "getCrewSalaryIds";
+            Class<? extends Object> cls = ContextWrapper.getApplicationContext().getBean(className).getClass();
+            Class parameterType = compId.getClass();
+            Method m = cls.getMethod(methodName, parameterType);
+            Object object = m.invoke(ContextWrapper.getApplicationContext().getBean(className),
+                    compId);
+            List<String> list = (List<String>) (List) object;
+
+
+            return list;
+        } catch (Exception e) {
+            return new ArrayList<>();
+        }
+    }
+
+
+}

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractGoodsInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.yh.saas.plugin.yiliangyiyun.mapper.ContractGoodsInfoMapper">
+
+</mapper>

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractManagementInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.yh.saas.plugin.yiliangyiyun.mapper.ContractManagementInfoMapper">
+
+</mapper>

+ 5 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/ContractProcessInfoMapper.xml

@@ -0,0 +1,5 @@
+<?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.yh.saas.plugin.yiliangyiyun.mapper.ContractProcessInfoMapper">
+
+</mapper>