Browse Source

first commit

HUJIANGUO 3 years ago
commit
1b8bcec2d8
35 changed files with 3886 additions and 0 deletions
  1. 8 0
      .gitignore
  2. 152 0
      pom.xml
  3. 26 0
      src/main/java/com/steerinfo/DilApplicationMain.java
  4. 22 0
      src/main/java/com/steerinfo/dil/config/CorsConfig1.java
  5. 43 0
      src/main/java/com/steerinfo/dil/config/WebSocketConfig.java
  6. 131 0
      src/main/java/com/steerinfo/dil/controller/BmstrainDetailsOrderController.java
  7. 151 0
      src/main/java/com/steerinfo/dil/controller/BmstrainStatementController.java
  8. 19 0
      src/main/java/com/steerinfo/dil/feign/ColumnDataFeign.java
  9. 26 0
      src/main/java/com/steerinfo/dil/interceptors/MyLocaleChangeInterceptor.java
  10. 81 0
      src/main/java/com/steerinfo/dil/mapper/BmstrainDetailsOrderMapper.java
  11. 23 0
      src/main/java/com/steerinfo/dil/mapper/BmstrainDetailsStatementMapper.java
  12. 47 0
      src/main/java/com/steerinfo/dil/mapper/BmstrainStatementMapper.java
  13. 258 0
      src/main/java/com/steerinfo/dil/model/BmstrainDetailsOrder.java
  14. 153 0
      src/main/java/com/steerinfo/dil/model/BmstrainDetailsStatement.java
  15. 183 0
      src/main/java/com/steerinfo/dil/model/BmstrainStatement.java
  16. 84 0
      src/main/java/com/steerinfo/dil/service/IBmstrainDetailsOrderService.java
  17. 28 0
      src/main/java/com/steerinfo/dil/service/IBmstrainDetailsStatementService.java
  18. 51 0
      src/main/java/com/steerinfo/dil/service/IBmstrainStatementService.java
  19. 181 0
      src/main/java/com/steerinfo/dil/service/impl/BmstrainDetailsOrderServiceImpl.java
  20. 41 0
      src/main/java/com/steerinfo/dil/service/impl/BmstrainDetailsStatementServiceImpl.java
  21. 135 0
      src/main/java/com/steerinfo/dil/service/impl/BmstrainStatementServiceImpl.java
  22. 70 0
      src/main/java/com/steerinfo/dil/util/BaseRESTfulController.java
  23. 38 0
      src/main/java/com/steerinfo/dil/util/ColumnDataUtil.java
  24. 43 0
      src/main/java/com/steerinfo/dil/util/NoUtil.java
  25. 33 0
      src/main/java/com/steerinfo/dil/util/PageListAdd.java
  26. 11 0
      src/main/java/com/steerinfo/dil/util/util.java
  27. 9 0
      src/main/resources/application-dev.yml
  28. 8 0
      src/main/resources/application-prod.yml
  29. 0 0
      src/main/resources/application.yml
  30. 50 0
      src/main/resources/bootstrap.yml
  31. 796 0
      src/main/resources/com/steerinfo/dil/mapper/BmstrainDetailsOrderMapper.xml
  32. 297 0
      src/main/resources/com/steerinfo/dil/mapper/BmstrainDetailsStatementMapper.xml
  33. 604 0
      src/main/resources/com/steerinfo/dil/mapper/BmstrainStatementMapper.xml
  34. 80 0
      src/main/resources/log4j.properties
  35. 4 0
      src/main/resources/message.properties

+ 8 - 0
.gitignore

@@ -0,0 +1,8 @@
+target/
+*.iml
+.idea/
+rebel.xml
+.rebel.xml.bak
+out/artifacts/
+dil-api.iml
+src/test

+ 152 - 0
pom.xml

@@ -0,0 +1,152 @@
+<?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">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.example</groupId>
+    <artifactId>dil-api</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.7.RELEASE</version>
+    </parent>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <!--Spring Cloud的版本-->
+                <version>Finchley.SR2</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <repositories>
+        <repository>
+            <id>maven-public</id>
+            <name>steerinfo maven-public</name>
+            <url>https://nexus.steerinfo.com/repository/maven-public/</url>
+        </repository>
+    </repositories>
+
+    <distributionManagement>
+        <repository>
+            <id>maven-releases</id>
+            <name>steerinfo nexus-releases</name>
+            <url>http://nexus.steerinfo.com/repository/maven-releases/</url>
+        </repository>
+        <snapshotRepository>
+            <id>maven-snapshots</id>
+            <url>http://nexus.steerinfo.com/repository/maven-snapshots/</url>
+        </snapshotRepository>
+    </distributionManagement>
+
+    <dependencies>
+        <!--websocket-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!--mybatisPlus-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.4.2</version>
+        </dependency>
+
+        <!--swagger-->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <!--steerinfo-->
+        <dependency>
+            <groupId>com.steerinfo</groupId>
+            <artifactId>framework</artifactId>
+            <version>1.0</version>
+        </dependency>
+
+
+    </dependencies>
+    <build>
+        <plugins>
+            <!--             自动生成代码文件 -->
+            <plugin>
+                <groupId>com.steerinfo</groupId>
+                <artifactId>generator-maven-plugin</artifactId>
+                <version>3.0</version>
+                <configuration>
+                    <connUrl>jdbc:oracle:thin:@192.168.1.51:1521:steerinfo</connUrl>
+                    <user>DIL0901</user>
+                    <password>st#0901</password>
+                    <!--包名-->
+                    <targetPackage>com.steerinfo.dil</targetPackage>
+                    <tables>
+                        <param>BMSTRAIN_DETAILS_ORDER</param><!--运力-->
+                    </tables>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>steerinfo</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+    </build>
+</project>

+ 26 - 0
src/main/java/com/steerinfo/DilApplicationMain.java

@@ -0,0 +1,26 @@
+package com.steerinfo;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/4/21 14:32
+ * @Version 1.0
+ */
+@SpringBootApplication
+@ServletComponentScan
+@EnableScheduling
+@MapperScan({"com.steerinfo.dil.mapper"})
+@EnableFeignClients(basePackages = "com.steerinfo.dil.feign")
+@EnableDiscoveryClient
+public class DilApplicationMain {
+    public static void main(String[] args) {
+        SpringApplication.run(DilApplicationMain.class,args);
+    }
+}

+ 22 - 0
src/main/java/com/steerinfo/dil/config/CorsConfig1.java

@@ -0,0 +1,22 @@
+package com.steerinfo.dil.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ *
+ */
+@Configuration
+public class CorsConfig1 implements WebMvcConfigurer {
+
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+        registry.addMapping("/**")
+                .allowedOrigins("*")
+                .allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
+                .allowCredentials(true)
+                .maxAge(3600)
+                .allowedHeaders("*");
+    }
+}

+ 43 - 0
src/main/java/com/steerinfo/dil/config/WebSocketConfig.java

@@ -0,0 +1,43 @@
+package com.steerinfo.dil.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.simp.config.ChannelRegistration;
+import org.springframework.messaging.simp.config.MessageBrokerRegistry;
+import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
+import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
+import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
+
+@Configuration
+@EnableWebSocketMessageBroker
+public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
+
+    @Override
+    public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
+        stompEndpointRegistry
+                .addEndpoint("/webSocket")
+                .setAllowedOrigins("*")
+                .withSockJS(); //使用sockJS
+
+    }
+
+    @Override
+    public void configureMessageBroker(MessageBrokerRegistry registry) {
+        //这里使用的是内存模式,生产环境可以使用rabbitmq或者其他mq。
+        //这里注册两个,主要是目的是将广播和队列分开。
+        //registry.enableStompBrokerRelay().setRelayHost().setRelayPort() 其他方式
+        registry.enableSimpleBroker("/topic");
+        //设置客户端前缀 即@MessageMapping
+        registry.setApplicationDestinationPrefixes("/app");
+        //点对点发送前缀
+        registry.setUserDestinationPrefix("/user");
+    }
+
+    /**
+     * 输入通道参数配置
+     *
+     * @param registration
+     */
+    @Override
+    public void configureClientInboundChannel(ChannelRegistration registration) {
+    }
+}

+ 131 - 0
src/main/java/com/steerinfo/dil/controller/BmstrainDetailsOrderController.java

@@ -0,0 +1,131 @@
+package com.steerinfo.dil.controller;
+
+import com.steerinfo.dil.service.impl.BmstrainDetailsOrderServiceImpl;
+import com.steerinfo.dil.util.BaseRESTfulController;
+import com.steerinfo.dil.util.ColumnDataUtil;
+import com.steerinfo.dil.util.PageListAdd;
+import com.steerinfo.framework.controller.RESTfulResult;
+import com.steerinfo.framework.service.pagehelper.PageHelper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModelProperty;
+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 java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 9:26
+ * @Version:V2.0
+ */
+@RestController
+@RequestMapping("/${api.version}/bmstraindetailsorders")
+public class BmstrainDetailsOrderController extends BaseRESTfulController {
+
+    @Autowired
+    BmstrainDetailsOrderServiceImpl bmstrainDetailsOrderService;
+    @Autowired
+    ColumnDataUtil columnDataUtil;
+
+    /**
+     * 展示火运详单列表
+     * @param mapValue
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @return
+     */
+    @ApiModelProperty(value = "展示火运详单列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "118", required = false, dataType = "BigDecimal")
+    })
+    @PostMapping("/getTrainDetailsOrderList")
+    public RESTfulResult getTrainDetailsOrderList(@RequestBody(required = false) Map<String,Object> mapValue,
+                                        Integer pageNum,
+                                        Integer pageSize,
+                                        Integer apiId) {
+        List<Map<String, Object>> list = bmstrainDetailsOrderService.getTrainDetailsOrderList(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstrainDetailsOrderService.getTrainDetailsOrderList(mapValue);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+
+    /**
+     * 展示未转账单的火运详单列表
+     * @param mapValue
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @return
+     */
+    @ApiModelProperty(value = "展示未转账单的火运详单列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "118", required = false, dataType = "BigDecimal")
+    })
+    @PostMapping("/getUncomplateTrainDetailsList")
+    public RESTfulResult getUncomplateTrainDetailsList(@RequestBody(required = false) Map<String,Object> mapValue,
+                                                  Integer pageNum,
+                                                  Integer pageSize,
+                                                  Integer apiId) {
+        List<Map<String, Object>> list = bmstrainDetailsOrderService.getUmcomplateTrainDetailsList(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstrainDetailsOrderService.getUmcomplateTrainDetailsList(mapValue);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+
+    /**
+     * 展示火运实绩
+     * @param mapValue
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @return
+     */
+    @ApiModelProperty(value = "展示火运实绩")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "122", required = false, dataType = "BigDecimal")
+    })
+    @PostMapping("/getTrainResultList")
+    public RESTfulResult getTrainResultList(@RequestBody(required = false) Map<String,Object> mapValue,
+                                                       Integer pageNum,
+                                                       Integer pageSize,
+                                                       Integer apiId) {
+        List<Map<String, Object>> list = bmstrainDetailsOrderService.getTrainResultList(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstrainDetailsOrderService.getTrainResultList(mapValue);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+
+    /**
+     * 生成火运详单
+     * @param map
+     * @return
+     */
+    @ApiModelProperty(value = "生成火运详单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "map", value = "火运实绩", required = false, dataType = "java.util.List"),
+    })
+    @PostMapping("/addTrainDetails")
+    public RESTfulResult addTrainDetails(@RequestBody Map<String,Object> map) {
+        int code = bmstrainDetailsOrderService.insertSelective(map);
+        return success(code);
+    }
+}

+ 151 - 0
src/main/java/com/steerinfo/dil/controller/BmstrainStatementController.java

@@ -0,0 +1,151 @@
+package com.steerinfo.dil.controller;
+
+import com.steerinfo.dil.service.impl.BmstrainDetailsOrderServiceImpl;
+import com.steerinfo.dil.service.impl.BmstrainStatementServiceImpl;
+import com.steerinfo.dil.util.BaseRESTfulController;
+import com.steerinfo.dil.util.ColumnDataUtil;
+import com.steerinfo.dil.util.PageListAdd;
+import com.steerinfo.framework.controller.RESTfulResult;
+import com.steerinfo.framework.service.pagehelper.PageHelper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+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 java.math.BigDecimal;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 9:26
+ * @Version:V2.0
+ */
+@RestController
+@RequestMapping("/${api.version}/bmstrainstatement")
+public class BmstrainStatementController extends BaseRESTfulController {
+
+    @Autowired
+    BmstrainStatementServiceImpl bmstrainStatementService;
+    @Autowired
+    ColumnDataUtil columnDataUtil;
+
+    /**
+     * 展示火运账单列表
+     * @param mapValue
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @return
+     */
+    @ApiModelProperty(value = "展示火运账单列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "121", required = false, dataType = "BigDecimal")
+    })
+    @PostMapping("/getTrainStatementList")
+    public RESTfulResult getTrainStatementList(@RequestBody(required = false) Map<String,Object> mapValue,
+                                                  Integer pageNum,
+                                                  Integer pageSize,
+                                                  Integer apiId) {
+        List<Map<String, Object>> list = bmstrainStatementService.getTrainStatementList(mapValue);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstrainStatementService.getTrainStatementList(mapValue);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+
+    /**
+     * 生成火运费账单
+     * @param mapList
+     * @return
+     */
+    @ApiModelProperty(value = "生成火运费账单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapList", value = "详单列表", required = false, dataType = "java.util.List"),
+    })
+    @PostMapping("/addTrainStatement")
+    public RESTfulResult addTrainStatement(@RequestBody List<Map<String,Object>> mapList) {
+        int code1 = bmstrainStatementService.insertSelective(mapList);
+        return success(code1);
+    }
+
+    /**
+     * 展示账单下的详单
+     * @param batchId
+     * @param mapVal
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @param statementId
+     * @return
+     */
+    @ApiOperation(value="展示账单下的详单", notes="分页查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "batchId", value = "批次id", required = false, dataType = "BigDecimal"),
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "118", required = false, dataType = "BigDecimal"),
+    })
+    @PostMapping(value = "/getComplateTrainDetailsList")
+    public RESTfulResult getComplateTrainDetailsList(BigDecimal batchId, @RequestBody(required = false) Map<String,Object> mapVal,
+                                                      Integer pageNum,
+                                                      Integer pageSize,
+                                                      Integer apiId,
+                                                      BigDecimal statementId){
+        if (mapVal==null) {
+            mapVal = new HashMap<>();
+        }
+        mapVal.put("batchId",batchId);
+        mapVal.put("statementId",statementId);
+        List<Map<String,Object>> list = bmstrainStatementService.getComplateTrainDetailsList(mapVal);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstrainStatementService.getComplateTrainDetailsList(mapVal);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+
+    /**
+     * 展示火运实绩
+     * @param detailsId
+     * @param mapVal
+     * @param pageNum
+     * @param pageSize
+     * @param apiId
+     * @return
+     */
+    @ApiOperation(value="展示火运实绩", notes="分页查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "detailsId", value = "详单id", required = false, dataType = "BigDecimal"),
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "122", required = false, dataType = "BigDecimal"),
+    })
+    @PostMapping(value = "/getTrainResultList")
+    public RESTfulResult getTrainResultList( @RequestBody(required = false) Map<String,Object> mapVal,
+                                                     Integer pageNum,
+                                                     Integer pageSize,
+                                                     Integer apiId,
+                                                     Integer detailsId){
+        if (mapVal==null) {
+            mapVal = new HashMap<>();
+        }
+        mapVal.put("detailsId",detailsId);
+        List<Map<String,Object>> list = bmstrainStatementService.getTrainResultList(mapVal);
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = bmstrainStatementService.getTrainResultList(mapVal);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, list, columnList);
+        return success(data);
+    }
+}

+ 19 - 0
src/main/java/com/steerinfo/dil/feign/ColumnDataFeign.java

@@ -0,0 +1,19 @@
+package com.steerinfo.dil.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/6/23 9:58
+ * @Version 1.0
+ */
+@FeignClient(value = "DIL-COLUMN-DATA-DEV",url = "192.168.1.241:8083")
+public interface ColumnDataFeign {
+    @RequestMapping("getColumnData")
+    List<Map<String,Object>> getColumnData(@RequestParam("apiId") Integer apiId);
+}

+ 26 - 0
src/main/java/com/steerinfo/dil/interceptors/MyLocaleChangeInterceptor.java

@@ -0,0 +1,26 @@
+package com.steerinfo.dil.interceptors;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.support.ReloadableResourceBundleMessageSource;
+import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
+import org.springframework.web.servlet.i18n.SessionLocaleResolver;
+
+import java.util.Locale;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/4/23 8:19
+ * @Version 1.0
+ */
+
+@Configuration
+public class MyLocaleChangeInterceptor {
+
+    //国际化配置
+    @Bean
+    public LocaleChangeInterceptor localeChangeInterceptor(){
+        return new LocaleChangeInterceptor();
+    }
+
+}

+ 81 - 0
src/main/java/com/steerinfo/dil/mapper/BmstrainDetailsOrderMapper.java

@@ -0,0 +1,81 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.BmstrainDetailsOrder;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import java.math.*;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BmstrainDetailsOrderMapper extends IBaseMapper<BmstrainDetailsOrder, BigDecimal> {
+
+    /**
+     * 展示详单信息
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getTrainDetailsOrderList(Map<String,Object> mapValue);
+
+    /**
+     * 展示未生成账单的详单
+     * @param mapValue
+     * @return
+     */
+    List<Map<String, Object>> getUmcomplateTrainDetailsList(Map<String, Object> mapValue);
+
+    /**
+     * 通过主键查询
+     * @param detailsId
+     * @return
+     */
+    BmstrainDetailsOrder selectByPrimaryKey(BigDecimal detailsId);
+
+    /**
+     * 修改
+     * @param bmstrainDetailsOrder
+     * @return
+     */
+    int updateByPrimaryKeySelective(BmstrainDetailsOrder bmstrainDetailsOrder);
+
+    /**
+     * 展示火运实绩
+     * @return
+     */
+    List<Map<String, Object>> getTrainResultList(Map<String, Object> mapValue);
+
+    /**
+     * 新增详单
+     * @param bmstrainDetailsOrder
+     * @return
+     */
+    int insertSelective(BmstrainDetailsOrder bmstrainDetailsOrder);
+
+    /**
+     * 得到最大id
+     * @return
+     */
+    BigDecimal selectMaxId();
+
+    /**
+     * 通过采购订单号查询采购订单id
+     * @param purchaseOrderNo
+     * @return
+     */
+    BigDecimal getPurchaseOrderId(String purchaseOrderNo);
+
+    /**
+     * 根据车型得到单价ID
+     * @param trainType
+     * @return
+     */
+    BigDecimal getTrainPriceId(String trainType);
+
+    /**
+     * 根据车型得到单价
+     * @param trainType
+     * @return
+     */
+    BigDecimal getTrainPrice(String trainType);
+}

+ 23 - 0
src/main/java/com/steerinfo/dil/mapper/BmstrainDetailsStatementMapper.java

@@ -0,0 +1,23 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.BmstrainDetailsStatement;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import java.math.*;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BmstrainDetailsStatementMapper extends IBaseMapper<BmstrainDetailsStatement, BigDecimal> {
+
+    /**
+     * 新增关系
+     * @param bmstrainDetailsStatement
+     * @return
+     */
+    int insertSelective(BmstrainDetailsStatement bmstrainDetailsStatement);
+
+    /**
+     * 得到最大id
+     * @return
+     */
+    BigDecimal selectMaxId();
+}

+ 47 - 0
src/main/java/com/steerinfo/dil/mapper/BmstrainStatementMapper.java

@@ -0,0 +1,47 @@
+package com.steerinfo.dil.mapper;
+
+import com.steerinfo.dil.model.BmstrainStatement;
+import com.steerinfo.framework.mapper.IBaseMapper;
+import java.math.*;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BmstrainStatementMapper extends IBaseMapper<BmstrainStatement, BigDecimal> {
+
+    /**
+     * 查询最大id
+     * @return
+     */
+    BigDecimal selectMaxId();
+
+    /**
+     * 展示所有账单信息
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getTrainStatementList(Map<String,Object> mapValue);
+
+    /**
+     * 展示账单中的详单
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getComplateTrainDetailsList(Map<String,Object> mapValue);
+
+    /**
+     * 展示火运实绩
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getTrainResultList(Map<String,Object> mapValue);
+
+    /**
+     * 生成账单
+     * @param bmstrainStatement
+     * @return
+     */
+    int insertSelective(BmstrainStatement bmstrainStatement);
+}

+ 258 - 0
src/main/java/com/steerinfo/dil/model/BmstrainDetailsOrder.java

@@ -0,0 +1,258 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="采购火运计费详单")
+public class BmstrainDetailsOrder implements IBasePO<BigDecimal> {
+    /**
+     * 主键ID(DETAILS_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="主键ID",required=true)
+    private BigDecimal detailsId;
+
+    /**
+     * 采购订单ID(PURCHASE_ORDER_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="采购订单ID",required=false)
+    private BigDecimal purchaseOrderId;
+
+    /**
+     * 详单号(DETAILS_NO,VARCHAR,20)
+     */
+    @ApiModelProperty(value="详单号",required=false)
+    private String detailsNo;
+
+    /**
+     * 详单时间(DETAILS_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="详单时间",required=false)
+    private Date detailsTime;
+
+    /**
+     * 单价ID(PRICE_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="单价ID",required=false)
+    private BigDecimal priceId;
+
+    /**
+     * 金额(保留两位小数)(DETAILS_AMOUNT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="金额(保留两位小数)",required=false)
+    private BigDecimal detailsAmount;
+
+    /**
+     * 下浮后金额=总金额*80%(保留两位小数)(DETAILS_FLOAT_AMOUNT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="下浮后金额=总金额*80%(保留两位小数)",required=false)
+    private BigDecimal detailsFloatAmount;
+
+    /**
+     * 保证金=总金额*20%(保留两位小数)(DETAILS_MAGIN_AMOUNT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="保证金=总金额*20%(保留两位小数)",required=false)
+    private BigDecimal detailsMaginAmount;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录修改人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录修改人",required=false)
+    private String updateUsername;
+
+    /**
+     * 记录修改时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录修改时间",required=false)
+    private Date updateTime;
+
+    /**
+     * 记录创建或修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="记录创建或修改备注",required=false)
+    private String insertUpdateRemark;
+
+    /**
+     * 是否已生成账单(0:未生成;1:已生成)(WETHER_TO_STATEMENT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="是否已生成账单(0:未生成;1:已生成)",required=false)
+    private BigDecimal wetherToStatement;
+
+    /**
+     * 火运装车实绩id(TRAIN_LOADING_RESULT_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="火运装车实绩id",required=false)
+    private BigDecimal trainLoadingResultId;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.detailsId;
+    }
+
+    @Override
+    public void setId(BigDecimal detailsId) {
+        this.detailsId = detailsId;
+    }
+
+    public BigDecimal getDetailsId() {
+        return detailsId;
+    }
+
+    public void setDetailsId(BigDecimal detailsId) {
+        this.detailsId = detailsId;
+    }
+
+    public BigDecimal getPurchaseOrderId() {
+        return purchaseOrderId;
+    }
+
+    public void setPurchaseOrderId(BigDecimal purchaseOrderId) {
+        this.purchaseOrderId = purchaseOrderId;
+    }
+
+    public String getDetailsNo() {
+        return detailsNo;
+    }
+
+    public void setDetailsNo(String detailsNo) {
+        this.detailsNo = detailsNo == null ? null : detailsNo.trim();
+    }
+
+    public Date getDetailsTime() {
+        return detailsTime;
+    }
+
+    public void setDetailsTime(Date detailsTime) {
+        this.detailsTime = detailsTime;
+    }
+
+    public BigDecimal getPriceId() {
+        return priceId;
+    }
+
+    public void setPriceId(BigDecimal priceId) {
+        this.priceId = priceId;
+    }
+
+    public BigDecimal getDetailsAmount() {
+        return detailsAmount;
+    }
+
+    public void setDetailsAmount(BigDecimal detailsAmount) {
+        this.detailsAmount = detailsAmount;
+    }
+
+    public BigDecimal getDetailsFloatAmount() {
+        return detailsFloatAmount;
+    }
+
+    public void setDetailsFloatAmount(BigDecimal detailsFloatAmount) {
+        this.detailsFloatAmount = detailsFloatAmount;
+    }
+
+    public BigDecimal getDetailsMaginAmount() {
+        return detailsMaginAmount;
+    }
+
+    public void setDetailsMaginAmount(BigDecimal detailsMaginAmount) {
+        this.detailsMaginAmount = detailsMaginAmount;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getUpdateUsername() {
+        return updateUsername;
+    }
+
+    public void setUpdateUsername(String updateUsername) {
+        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getInsertUpdateRemark() {
+        return insertUpdateRemark;
+    }
+
+    public void setInsertUpdateRemark(String insertUpdateRemark) {
+        this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
+    }
+
+    public BigDecimal getWetherToStatement() {
+        return wetherToStatement;
+    }
+
+    public void setWetherToStatement(BigDecimal wetherToStatement) {
+        this.wetherToStatement = wetherToStatement;
+    }
+
+    public BigDecimal getTrainLoadingResultId() {
+        return trainLoadingResultId;
+    }
+
+    public void setTrainLoadingResultId(BigDecimal trainLoadingResultId) {
+        this.trainLoadingResultId = trainLoadingResultId;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", detailsId=").append(detailsId);
+        sb.append(", purchaseOrderId=").append(purchaseOrderId);
+        sb.append(", detailsNo=").append(detailsNo);
+        sb.append(", detailsTime=").append(detailsTime);
+        sb.append(", priceId=").append(priceId);
+        sb.append(", detailsAmount=").append(detailsAmount);
+        sb.append(", detailsFloatAmount=").append(detailsFloatAmount);
+        sb.append(", detailsMaginAmount=").append(detailsMaginAmount);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", updateUsername=").append(updateUsername);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", wetherToStatement=").append(wetherToStatement);
+        sb.append(", trainLoadingResultId=").append(trainLoadingResultId);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 153 - 0
src/main/java/com/steerinfo/dil/model/BmstrainDetailsStatement.java

@@ -0,0 +1,153 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="详单账单中间表")
+public class BmstrainDetailsStatement implements IBasePO<BigDecimal> {
+    /**
+     * 主键ID(DETAILS_STATEMENT_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="主键ID",required=true)
+    private BigDecimal detailsStatementId;
+
+    /**
+     * 账单ID(STATEMENT_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="账单ID",required=false)
+    private BigDecimal statementId;
+
+    /**
+     * 详单ID(DETAILS_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="详单ID",required=false)
+    private BigDecimal detailsId;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录修改人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录修改人",required=false)
+    private String updateUsername;
+
+    /**
+     * 记录修改时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录修改时间",required=false)
+    private Date updateTime;
+
+    /**
+     * 记录创建或修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="记录创建或修改备注",required=false)
+    private String insertUpdateRemark;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.detailsStatementId;
+    }
+
+    @Override
+    public void setId(BigDecimal detailsStatementId) {
+        this.detailsStatementId = detailsStatementId;
+    }
+
+    public BigDecimal getDetailsStatementId() {
+        return detailsStatementId;
+    }
+
+    public void setDetailsStatementId(BigDecimal detailsStatementId) {
+        this.detailsStatementId = detailsStatementId;
+    }
+
+    public BigDecimal getStatementId() {
+        return statementId;
+    }
+
+    public void setStatementId(BigDecimal statementId) {
+        this.statementId = statementId;
+    }
+
+    public BigDecimal getDetailsId() {
+        return detailsId;
+    }
+
+    public void setDetailsId(BigDecimal detailsId) {
+        this.detailsId = detailsId;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getUpdateUsername() {
+        return updateUsername;
+    }
+
+    public void setUpdateUsername(String updateUsername) {
+        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getInsertUpdateRemark() {
+        return insertUpdateRemark;
+    }
+
+    public void setInsertUpdateRemark(String insertUpdateRemark) {
+        this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", detailsStatementId=").append(detailsStatementId);
+        sb.append(", statementId=").append(statementId);
+        sb.append(", detailsId=").append(detailsId);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", updateUsername=").append(updateUsername);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 183 - 0
src/main/java/com/steerinfo/dil/model/BmstrainStatement.java

@@ -0,0 +1,183 @@
+package com.steerinfo.dil.model;
+
+import com.steerinfo.framework.model.IBasePO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@ApiModel(value="采购火运结算账单")
+public class BmstrainStatement implements IBasePO<BigDecimal> {
+    /**
+     * 主键ID(STATEMENT_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="主键ID",required=true)
+    private BigDecimal statementId;
+
+    /**
+     * 账单编号(STATEMENT_NO,VARCHAR,20)
+     */
+    @ApiModelProperty(value="账单编号",required=true)
+    private String statementNo;
+
+    /**
+     * 支付单位ID(STATEMENT_SHIPPER_ID,DECIMAL,38)
+     */
+    @ApiModelProperty(value="支付单位ID",required=false)
+    private BigDecimal statementShipperId;
+
+    /**
+     * 总金额(STATEMENT_TOTAL_AMOUNT,DECIMAL,0)
+     */
+    @ApiModelProperty(value="总金额",required=false)
+    private BigDecimal statementTotalAmount;
+
+    /**
+     * 账单日期(21号-月底最后一天,月初-10号,10号-20号)(STATEMENT_DATE,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="账单日期(21号-月底最后一天,月初-10号,10号-20号)",required=false)
+    private Date statementDate;
+
+    /**
+     * 记录创建人(INSERT_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录创建人",required=false)
+    private String insertUsername;
+
+    /**
+     * 记录创建时间(INSERT_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录创建时间",required=false)
+    private Date insertTime;
+
+    /**
+     * 记录修改人(UPDATE_USERNAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="记录修改人",required=false)
+    private String updateUsername;
+
+    /**
+     * 记录修改时间(UPDATE_TIME,TIMESTAMP,7)
+     */
+    @ApiModelProperty(value="记录修改时间",required=false)
+    private Date updateTime;
+
+    /**
+     * 记录创建或修改备注(INSERT_UPDATE_REMARK,VARCHAR,100)
+     */
+    @ApiModelProperty(value="记录创建或修改备注",required=false)
+    private String insertUpdateRemark;
+
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public BigDecimal getId() {
+        return this.statementId;
+    }
+
+    @Override
+    public void setId(BigDecimal statementId) {
+        this.statementId = statementId;
+    }
+
+    public BigDecimal getStatementId() {
+        return statementId;
+    }
+
+    public void setStatementId(BigDecimal statementId) {
+        this.statementId = statementId;
+    }
+
+    public String getStatementNo() {
+        return statementNo;
+    }
+
+    public void setStatementNo(String statementNo) {
+        this.statementNo = statementNo == null ? null : statementNo.trim();
+    }
+
+    public BigDecimal getStatementShipperId() {
+        return statementShipperId;
+    }
+
+    public void setStatementShipperId(BigDecimal statementShipperId) {
+        this.statementShipperId = statementShipperId;
+    }
+
+    public BigDecimal getStatementTotalAmount() {
+        return statementTotalAmount;
+    }
+
+    public void setStatementTotalAmount(BigDecimal statementTotalAmount) {
+        this.statementTotalAmount = statementTotalAmount;
+    }
+
+    public Date getStatementDate() {
+        return statementDate;
+    }
+
+    public void setStatementDate(Date statementDate) {
+        this.statementDate = statementDate;
+    }
+
+    public String getInsertUsername() {
+        return insertUsername;
+    }
+
+    public void setInsertUsername(String insertUsername) {
+        this.insertUsername = insertUsername == null ? null : insertUsername.trim();
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getUpdateUsername() {
+        return updateUsername;
+    }
+
+    public void setUpdateUsername(String updateUsername) {
+        this.updateUsername = updateUsername == null ? null : updateUsername.trim();
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getInsertUpdateRemark() {
+        return insertUpdateRemark;
+    }
+
+    public void setInsertUpdateRemark(String insertUpdateRemark) {
+        this.insertUpdateRemark = insertUpdateRemark == null ? null : insertUpdateRemark.trim();
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", statementId=").append(statementId);
+        sb.append(", statementNo=").append(statementNo);
+        sb.append(", statementShipperId=").append(statementShipperId);
+        sb.append(", statementTotalAmount=").append(statementTotalAmount);
+        sb.append(", statementDate=").append(statementDate);
+        sb.append(", insertUsername=").append(insertUsername);
+        sb.append(", insertTime=").append(insertTime);
+        sb.append(", updateUsername=").append(updateUsername);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", insertUpdateRemark=").append(insertUpdateRemark);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 84 - 0
src/main/java/com/steerinfo/dil/service/IBmstrainDetailsOrderService.java

@@ -0,0 +1,84 @@
+package com.steerinfo.dil.service;
+
+import com.steerinfo.dil.model.BmstrainDetailsOrder;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 9:28
+ * @Version:V2.0
+ */
+public interface IBmstrainDetailsOrderService {
+
+    /**
+     * 展示详单信息
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getTrainDetailsOrderList(Map<String,Object> mapValue);
+
+    /**
+     * 展示未生成账单的详单
+     * @param mapValue
+     * @return
+     */
+    List<Map<String, Object>> getUmcomplateTrainDetailsList(Map<String, Object> mapValue);
+
+    /**
+     * 通过主键查询
+     * @param detailsId
+     * @return
+     */
+    BmstrainDetailsOrder selectByPrimaryKey(BigDecimal detailsId);
+
+    /**
+     * 修改
+     * @param bmstrainDetailsOrder
+     * @return
+     */
+    int updateByPrimaryKeySelective(BmstrainDetailsOrder bmstrainDetailsOrder);
+
+    /**
+     * 展示火运实绩
+     * @return
+     */
+    List<Map<String, Object>> getTrainResultList(Map<String, Object> mapValue);
+
+    /**
+     * 新增详单
+     * @param map
+     * @return
+     */
+    int insertSelective(Map<String,Object> map);
+
+    /**
+     * 得到最大id
+     * @return
+     */
+    BigDecimal selectMaxId();
+
+    /**
+     * 通过采购订单号查询采购订单id
+     * @param purchaseOrderNo
+     * @return
+     */
+    BigDecimal getPurchaseOrderId(String purchaseOrderNo);
+
+    /**
+     * 根据车型得到单价
+     * @param trainType
+     * @return
+     */
+    BigDecimal getTrainPriceId(String trainType);
+
+    /**
+     * 根据车型得到单价
+     * @param trainType
+     * @return
+     */
+    BigDecimal getTrainPrice(String trainType);
+}

+ 28 - 0
src/main/java/com/steerinfo/dil/service/IBmstrainDetailsStatementService.java

@@ -0,0 +1,28 @@
+package com.steerinfo.dil.service;
+
+import com.steerinfo.dil.model.BmstrainDetailsStatement;
+
+import java.math.BigDecimal;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 11:30
+ * @Version:V2.0
+ */
+public interface IBmstrainDetailsStatementService {
+
+
+    /**
+     * 得到最大id
+     * @return
+     */
+    BigDecimal selectMaxId();
+
+    /**
+     * 新增关系
+     * @param bmstrainDetailsStatement
+     * @return
+     */
+    int insertSelective(BmstrainDetailsStatement bmstrainDetailsStatement);
+}

+ 51 - 0
src/main/java/com/steerinfo/dil/service/IBmstrainStatementService.java

@@ -0,0 +1,51 @@
+package com.steerinfo.dil.service;
+
+import com.steerinfo.dil.model.BmstrainStatement;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 11:23
+ * @Version:V2.0
+ */
+public interface IBmstrainStatementService {
+
+    /**
+     * 查询最大id
+     * @return
+     */
+    BigDecimal selectMaxId();
+
+    /**
+     * 展示所有账单信息
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getTrainStatementList(Map<String,Object> mapValue);
+
+    /**
+     * 生成账单
+     * @param mapList
+     * @return
+     */
+    int insertSelective(List<Map<String,Object>> mapList);
+
+    /**
+     * 展示账单中的详单
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getComplateTrainDetailsList(Map<String,Object> mapValue);
+
+    /**
+     * 展示火运实绩
+     * @param mapValue
+     * @return
+     */
+    List<Map<String,Object>> getTrainResultList(Map<String,Object> mapValue);
+
+}

+ 181 - 0
src/main/java/com/steerinfo/dil/service/impl/BmstrainDetailsOrderServiceImpl.java

@@ -0,0 +1,181 @@
+package com.steerinfo.dil.service.impl;
+
+import com.steerinfo.dil.mapper.BmstrainDetailsOrderMapper;
+import com.steerinfo.dil.model.BmstrainDetailsOrder;
+import com.steerinfo.dil.service.IBmstrainDetailsOrderService;
+import com.steerinfo.dil.util.NoUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 9:29
+ * @Version:V2.0
+ */
+@Service
+public class BmstrainDetailsOrderServiceImpl implements IBmstrainDetailsOrderService {
+
+    @Autowired
+    BmstrainDetailsOrderMapper bmstrainDetailsOrderMapper;
+    @Autowired
+    NoUtil noUtil;
+
+    /**
+     * 得到最大id
+     * @return
+     */
+    @Override
+    public BigDecimal selectMaxId() {
+        return bmstrainDetailsOrderMapper.selectMaxId() == null ? new BigDecimal(1) : new BigDecimal(bmstrainDetailsOrderMapper.selectMaxId().intValue() + 1);
+    }
+
+    /**
+     * 得到采购订单id
+     * @param purchaseOrderNo
+     * @return
+     */
+    @Override
+    public BigDecimal getPurchaseOrderId(String purchaseOrderNo) {
+        return bmstrainDetailsOrderMapper.getPurchaseOrderId(purchaseOrderNo);
+    }
+
+    /**
+     * 得到火运单价ID
+     * @param trainType
+     * @return
+     */
+    @Override
+    public BigDecimal getTrainPriceId(String trainType) {
+        return bmstrainDetailsOrderMapper.getTrainPriceId(trainType);
+    }
+
+    /**
+     * 得到火运单价
+     * @param trainType
+     * @return
+     */
+    @Override
+    public BigDecimal getTrainPrice(String trainType) {
+        return bmstrainDetailsOrderMapper.getTrainPrice(trainType);
+    }
+
+    /**
+     * 展示详单列表
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getTrainDetailsOrderList(Map<String, Object> mapValue) {
+        return bmstrainDetailsOrderMapper.getTrainDetailsOrderList(mapValue);
+    }
+
+    /**
+     * 展示详单列表
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getUmcomplateTrainDetailsList(Map<String, Object> mapValue) {
+        return bmstrainDetailsOrderMapper.getUmcomplateTrainDetailsList(mapValue);
+    }
+
+    /**
+     * 通过主键查询
+     * @param detailsId
+     * @return
+     */
+    @Override
+    public BmstrainDetailsOrder selectByPrimaryKey(BigDecimal detailsId) {
+        return bmstrainDetailsOrderMapper.selectByPrimaryKey(detailsId);
+    }
+
+    /**
+     * 修改
+     * @param bmstrainDetailsOrder
+     * @return
+     */
+    @Override
+    public int updateByPrimaryKeySelective(BmstrainDetailsOrder bmstrainDetailsOrder) {
+        return bmstrainDetailsOrderMapper.updateByPrimaryKeySelective(bmstrainDetailsOrder);
+    }
+
+    /**
+     * 展示火运实绩
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getTrainResultList(Map<String, Object> mapValue) {
+        return bmstrainDetailsOrderMapper.getTrainResultList(mapValue);
+    }
+
+    /**
+     * 新增详单
+     * @param map
+     * @return
+     */
+    @Override
+    public int insertSelective(Map<String,Object> map) {
+        BmstrainDetailsOrder bmstrainDetailsOrder = new BmstrainDetailsOrder();
+        // 设置主键
+        BigDecimal detailsId = selectMaxId();
+        bmstrainDetailsOrder.setDetailsId(detailsId);
+        // 设置详单号
+        String detailsNo = noUtil.setResultNo("XD", detailsId);
+        bmstrainDetailsOrder.setDetailsNo(detailsNo);
+        // 设置详单时间
+        bmstrainDetailsOrder.setDetailsTime(new Date());
+        // 联系火运实绩
+        BigDecimal trainLoadingResultId = new BigDecimal((Integer) map.get("trainLoadingResultId"));
+        bmstrainDetailsOrder.setTrainLoadingResultId(trainLoadingResultId);
+        // 设置详单状态
+        bmstrainDetailsOrder.setWetherToStatement(new BigDecimal(0));
+        // 设置详单采购订单id
+        String purchaseOrderNo = (String) map.get("purchaseOrderNo");
+        BigDecimal purchaseOrderId = getPurchaseOrderId(purchaseOrderNo);
+        bmstrainDetailsOrder.setPurchaseOrderId(purchaseOrderId);
+        // 设置火运单价
+        String resultWagonNo = (String) map.get("resultWagonNo");
+        String subStr2 = resultWagonNo.substring(0,2);
+        String subStr3 = resultWagonNo.substring(0,3);
+        if (subStr2.equals("45") || subStr2.equals("46") || subStr3.equals("140") || subStr3.equals("141") || subStr3.equals("142") || subStr3.equals("143")) {
+            BigDecimal trainPriceId = getTrainPriceId("60车型");
+            bmstrainDetailsOrder.setPriceId(trainPriceId);
+            BigDecimal trainPrice = getTrainPrice("60车型");
+            bmstrainDetailsOrder.setDetailsAmount(trainPrice);
+            bmstrainDetailsOrder.setDetailsFloatAmount(new BigDecimal(trainPrice.doubleValue() * 0.8));
+            bmstrainDetailsOrder.setDetailsMaginAmount(new BigDecimal(trainPrice.doubleValue() * 0.2));
+        }
+        if (subStr2.equals("42") || subStr2.equals("47") || subStr2.equals("48") || subStr2.equals("49") || subStr3.equals("145")) {
+            BigDecimal trainPriceId = getTrainPriceId("61车型");
+            bmstrainDetailsOrder.setPriceId(trainPriceId);
+            BigDecimal trainPrice = getTrainPrice("61车型");
+            bmstrainDetailsOrder.setDetailsAmount(trainPrice);
+            bmstrainDetailsOrder.setDetailsFloatAmount(new BigDecimal(trainPrice.doubleValue() * 0.8));
+            bmstrainDetailsOrder.setDetailsMaginAmount(new BigDecimal(trainPrice.doubleValue() * 0.2));
+        }
+        if (subStr2.equals("15") || subStr2.equals("16") || subStr2.equals("17") || subStr2.equals("18")) {
+            BigDecimal trainPriceId = getTrainPriceId("70车型");
+            bmstrainDetailsOrder.setPriceId(trainPriceId);
+            BigDecimal trainPrice = getTrainPrice("70车型");
+            bmstrainDetailsOrder.setDetailsAmount(trainPrice);
+            bmstrainDetailsOrder.setDetailsFloatAmount(new BigDecimal(trainPrice.doubleValue() * 0.8));
+            bmstrainDetailsOrder.setDetailsMaginAmount(new BigDecimal(trainPrice.doubleValue() * 0.2));
+        }
+        // 设置常规字段
+        bmstrainDetailsOrder.setInsertTime(new Date());
+        bmstrainDetailsOrder.setInsertUsername("admin");
+        bmstrainDetailsOrder.setUpdateTime(new Date());
+        bmstrainDetailsOrder.setUpdateUsername("admin");
+        bmstrainDetailsOrder.setInsertUpdateRemark("无");
+        return bmstrainDetailsOrderMapper.insertSelective(bmstrainDetailsOrder);
+    }
+
+
+}

+ 41 - 0
src/main/java/com/steerinfo/dil/service/impl/BmstrainDetailsStatementServiceImpl.java

@@ -0,0 +1,41 @@
+package com.steerinfo.dil.service.impl;
+
+import com.steerinfo.dil.mapper.BmstrainDetailsStatementMapper;
+import com.steerinfo.dil.model.BmstrainDetailsStatement;
+import com.steerinfo.dil.service.IBmstrainDetailsStatementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 11:31
+ * @Version:V2.0
+ */
+@Service
+public class BmstrainDetailsStatementServiceImpl implements IBmstrainDetailsStatementService {
+
+    @Autowired
+    BmstrainDetailsStatementMapper bmstrainDetailsStatementMapper;
+
+    /**
+     * 得到最大id
+     * @return
+     */
+    @Override
+    public BigDecimal selectMaxId() {
+        return bmstrainDetailsStatementMapper.selectMaxId() == null ? new BigDecimal(1) : new BigDecimal(bmstrainDetailsStatementMapper.selectMaxId().intValue() + 1);
+    }
+
+    /**
+     * 新增关系
+     * @param bmstrainDetailsStatement
+     * @return
+     */
+    @Override
+    public int insertSelective(BmstrainDetailsStatement bmstrainDetailsStatement) {
+        return bmstrainDetailsStatementMapper.insertSelective(bmstrainDetailsStatement);
+    }
+}

+ 135 - 0
src/main/java/com/steerinfo/dil/service/impl/BmstrainStatementServiceImpl.java

@@ -0,0 +1,135 @@
+package com.steerinfo.dil.service.impl;
+
+import com.steerinfo.dil.mapper.BmstrainStatementMapper;
+import com.steerinfo.dil.model.BmstrainDetailsOrder;
+import com.steerinfo.dil.model.BmstrainDetailsStatement;
+import com.steerinfo.dil.model.BmstrainStatement;
+import com.steerinfo.dil.service.IBmstrainStatementService;
+import com.steerinfo.dil.util.NoUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/14 11:23
+ * @Version:V2.0
+ */
+@Service
+public class BmstrainStatementServiceImpl implements IBmstrainStatementService {
+
+    @Autowired
+    BmstrainStatementMapper bmstrainStatementMapper;
+    @Autowired
+    BmstrainDetailsOrderServiceImpl bmstrainDetailsOrderService;
+    @Autowired
+    BmstrainDetailsStatementServiceImpl bmstrainDetailsStatementService;
+    @Autowired
+    NoUtil noUtil;
+
+    /**
+     * 查询最大id
+     * @return
+     */
+    @Override
+    public BigDecimal selectMaxId() {
+        return bmstrainStatementMapper.selectMaxId() == null ? new BigDecimal(1) : new BigDecimal(bmstrainStatementMapper.selectMaxId().intValue() + 1);
+    }
+
+    /**
+     * 展示账单列表
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getTrainStatementList(Map<String, Object> mapValue) {
+        List<Map<String, Object>> listMap = bmstrainStatementMapper.getTrainStatementList(mapValue);
+        // 将下浮后金额及保证金存入进map
+        for (Map<String,Object> map : listMap) {
+            BigDecimal statementTotalAmount = (BigDecimal) map.get("statementTotalAmount");
+            Double floatAmount = statementTotalAmount.doubleValue() * 0.8;
+            Double maginAmount = statementTotalAmount.doubleValue() * 0.2;
+            DecimalFormat df = new DecimalFormat("0.00");
+            String statementFloatAmount = df.format(floatAmount);
+            String statementMaginAmount = df.format(maginAmount);
+            map.put("statementFloatAmount",statementFloatAmount);
+            map.put("statementMaginAmount",statementMaginAmount);
+        }
+        return listMap;
+    }
+
+    /**
+     * 生成账单
+     * @param mapList
+     * @return
+     */
+    @Override
+    public int insertSelective(List<Map<String,Object>> mapList) {
+        BmstrainStatement bmstrainStatement = new BmstrainStatement();
+            // 设置主键
+            BigDecimal statementId = selectMaxId();
+            bmstrainStatement.setStatementId(statementId);
+            // 设置账单编号
+            String statementNo = noUtil.setResultNo("ZD", statementId);
+            bmstrainStatement.setStatementNo(statementNo);
+            bmstrainStatement.setStatementShipperId(new BigDecimal(1));
+            Double totalAmount = new Double(0);
+            for (int i = 0;i < mapList.size();i++) {
+                Map<String,Object> map = mapList.get(i);
+                Double detailsAmount = (Double) map.get("detailsAmount");
+                totalAmount += detailsAmount;
+                // 新增关系
+                BmstrainDetailsStatement bmstrainDetailsStatement = new BmstrainDetailsStatement();
+            bmstrainDetailsStatement.setDetailsStatementId(bmstrainDetailsStatementService.selectMaxId());
+            BigDecimal detailsId = new BigDecimal((Integer) map.get("detailsId"));
+            bmstrainDetailsStatement.setDetailsId(detailsId);
+            BmstrainDetailsOrder bmstrainDetailsOrder = bmstrainDetailsOrderService.selectByPrimaryKey(detailsId);
+            bmstrainDetailsOrder.setWetherToStatement(new BigDecimal(1));
+            bmstrainDetailsStatement.setStatementId(statementId);
+            // 设置常规字段
+            bmstrainDetailsStatement.setInsertTime(new Date());
+            bmstrainDetailsStatement.setInsertUsername("admin");
+            bmstrainDetailsStatement.setUpdateTime(new Date());
+            bmstrainDetailsStatement.setUpdateUsername("admin");
+            bmstrainDetailsStatement.setInsertUpdateRemark("无");
+            bmstrainDetailsOrderService.updateByPrimaryKeySelective(bmstrainDetailsOrder);
+            bmstrainDetailsStatementService.insertSelective(bmstrainDetailsStatement);
+        }
+        bmstrainStatement.setStatementDate(new Date());
+        DecimalFormat df = new DecimalFormat("0.00");
+        String statementFloatAmount = df.format(totalAmount);
+        bmstrainStatement.setStatementTotalAmount(new BigDecimal(statementFloatAmount));
+        bmstrainStatement.setInsertTime(new Date());
+        bmstrainStatement.setInsertUsername("admin");
+        bmstrainStatement.setUpdateTime(new Date());
+        bmstrainStatement.setUpdateUsername("admin");
+        bmstrainStatement.setInsertUpdateRemark("无");
+        return bmstrainStatementMapper.insertSelective(bmstrainStatement);
+    }
+
+    /**
+     *  展示账单中的详单
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getComplateTrainDetailsList(Map<String, Object> mapValue) {
+        return bmstrainStatementMapper.getComplateTrainDetailsList(mapValue);
+    }
+
+    /**
+     * 展示火运实绩
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getTrainResultList(Map<String, Object> mapValue) {
+        return bmstrainStatementMapper.getTrainResultList(mapValue);
+    }
+}

+ 70 - 0
src/main/java/com/steerinfo/dil/util/BaseRESTfulController.java

@@ -0,0 +1,70 @@
+package com.steerinfo.dil.util;
+
+import com.steerinfo.framework.controller.BaseController;
+import com.steerinfo.framework.controller.RESTfulResult;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/7/8 11:33
+ * @Version 1.0
+ */
+public class BaseRESTfulController extends BaseController {
+    public BaseRESTfulController() {
+    }
+
+    protected RESTfulResult success() {
+        RESTfulResult result = new RESTfulResult();
+        result.setSucceed();
+        result.setMessage(result.getResultMessage());
+        result.setData(true);
+        result.setCode("200");
+        return result;
+    }
+
+    protected RESTfulResult success(Object obj) {
+        RESTfulResult result = new RESTfulResult();
+        result.setSucceed();
+        result.setMessage(result.getResultMessage());
+        result.setData(obj);
+        result.setCode("200");
+        return result;
+    }
+
+    protected RESTfulResult success(Object obj, String msg) {
+        RESTfulResult result = this.success(obj);
+        result.setMessage(msg);
+        result.setCode("200");
+        return result;
+    }
+
+    protected RESTfulResult success(Object obj, String code, String msg) {
+        RESTfulResult result = this.success(obj, msg);
+        result.setCode(code);
+        result.setCode("200");
+        return result;
+    }
+
+    protected RESTfulResult failed() {
+        return this.failed((Object)null);
+    }
+
+    protected RESTfulResult failed(Object obj) {
+        RESTfulResult result = new RESTfulResult("201", (String)null);
+        result.setMessage(result.getResultMessage());
+        result.setData(obj);
+        return result;
+    }
+
+    protected RESTfulResult failed(Object obj, String msg) {
+        RESTfulResult result = new RESTfulResult("201", msg);
+        result.setData(obj);
+        return result;
+    }
+
+    protected RESTfulResult failed(Object obj, String code, String msg) {
+        RESTfulResult result = this.failed(obj, msg);
+        result = new RESTfulResult("201", msg);
+        result.setCode(code);
+        return result;
+    }
+}

+ 38 - 0
src/main/java/com/steerinfo/dil/util/ColumnDataUtil.java

@@ -0,0 +1,38 @@
+package com.steerinfo.dil.util;
+
+import com.steerinfo.dil.feign.ColumnDataFeign;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+
+@Component
+public class ColumnDataUtil {
+    @Autowired
+    ColumnDataFeign columnDataFeign;
+
+    private Set<Map<String, Object>> setListMap(List<Map<String, Object>> list, String name) {
+        Set<Map<String, Object>> setString = new HashSet<>();
+        for (Map<String, Object> map : list) {//遍历每条数据
+            Map<String, Object> map1 = new HashMap<>();
+            //map.get(name)获取每条数据中对应表头字段的数据
+            map1.put("text", map.get(name));
+            if (map.get(name) != null) {
+                map1.put("value", map.get(name));
+                setString.add(map1);
+            }
+        }
+        return setString;
+    }
+
+    public PageListAdd tableColumnData(Integer apiId, List<Map<String, Object>> list, List<Map<String,Object>> data) {
+        List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
+        for (Map<String, Object> columnData : columnDataList) {
+            //每个表头字段的过滤条件
+            columnData.put("filters", setListMap(list, columnData.get("prop").toString()));
+        }
+        PageListAdd pageList = new PageListAdd(data);
+        pageList.setColumnData(columnDataList);
+        return pageList;
+    }
+}

+ 43 - 0
src/main/java/com/steerinfo/dil/util/NoUtil.java

@@ -0,0 +1,43 @@
+package com.steerinfo.dil.util;
+
+import org.springframework.stereotype.Component;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/9/8 15:29
+ * @Version:V2.0
+ */
+@Component
+public class NoUtil {
+
+    public String setResultNo(String noStr,BigDecimal resultId) {
+        LocalDate now = LocalDate.now();
+        String resultNo = noStr +  now.getYear();
+        Integer month = now.getMonthValue();
+        String monthStr = month.toString();
+        if (monthStr.length() != 2) {
+            resultNo = resultNo + "0" + now.getMonthValue();
+        }
+        else {
+            resultNo = resultNo + now.getMonthValue();
+        }
+        resultNo = resultNo + now.getDayOfMonth();
+        switch ((resultId.toString()).length()) {
+            case 1:
+                resultNo = resultNo + "000" + resultId;
+                break;
+            case 2:
+                resultNo = resultNo + "00" + resultId;
+                break;
+            case 3:
+                resultNo = resultNo + "0" + resultId;
+                break;
+            default:resultNo = resultNo + resultId;
+        }
+        return resultNo;
+    }
+}

+ 33 - 0
src/main/java/com/steerinfo/dil/util/PageListAdd.java

@@ -0,0 +1,33 @@
+package com.steerinfo.dil.util;
+
+import com.steerinfo.framework.service.pagehelper.PageList;
+
+import java.util.List;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/6/7 14:31
+ * @Version 1.0
+ */
+public class PageListAdd<T> extends PageList<T> {
+    public PageListAdd() {
+    }
+
+    public PageListAdd(List<T> list) {
+        super(list, 20);
+    }
+
+    public PageListAdd(List<T> list, int navigatePages) {
+        super(list, navigatePages);
+    }
+
+    private Object columnData;
+
+    public Object getColumnData() {
+        return columnData;
+    }
+
+    public void setColumnData(Object columnData) {
+        this.columnData = columnData;
+    }
+}

+ 11 - 0
src/main/java/com/steerinfo/dil/util/util.java

@@ -0,0 +1,11 @@
+package com.steerinfo.dil.util;
+
+/**
+ * @Author zhangnan
+ * @Date 2021/5/26 8:59
+ * @Version 1.0
+ * 工具类
+ */
+public class util {
+
+}

+ 9 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,9 @@
+spring:
+  datasource:
+    url: jdbc:oracle:thin:@192.168.1.51:1521:steerinfo
+    password: st#0901
+    username: DIL0901
+    driver-class-name: oracle.jdbc.OracleDriver
+  application:
+    name: [name]
+

+ 8 - 0
src/main/resources/application-prod.yml

@@ -0,0 +1,8 @@
+spring:
+  datasource:
+    url: jdbc:oracle:thin:@192.168.1.51:1521:steerinfo
+    password: st#0901
+    username: DIL0901
+    driver-class-name: oracle.jdbc.OracleDriver
+  application:
+    name: [name]

+ 0 - 0
src/main/resources/application.yml


+ 50 - 0
src/main/resources/bootstrap.yml

@@ -0,0 +1,50 @@
+api.version: api/v1/bmstrain
+spring:
+  profiles:
+    include: ${SPRING_PROFILES:dev}
+  jackson:
+      date-format: yyyy-MM-dd HH:mm:ss
+      time-zone: GMT+8
+#    serialization: {WRITE_DATES_AS_TIMESTAMPS: true}
+  messages:
+    basename: message
+    encoding: UTF-8
+  mvc:
+    static-path-pattern:
+
+#eureka设置
+eureka:
+  client:
+    service-url:
+      defaultZone: http://root:root@discovery.steerinfo.com/eureka/
+
+genxml:
+  pth: com/a
+cache:
+  level: 2
+redis:
+  host: 10.10.50.28
+  port: 6379
+  pwd: 123456
+  project:
+    prefix: sysmanage
+  pool:
+    maxTotal: 8
+    maxWaitMillis: 1000
+    maxIdle: 8
+  cache:
+    time: 864000000
+  database: 0
+
+
+
+mybatis:
+  type-aliases-package: com.steerinfo.dil.model
+  mapper-locations: classpath:com/steerinfo/dil/mapper/*.xml
+  configuration:
+    #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    mapUnderscoreToCamelCase: true
+    call-setters-on-nulls: true
+
+server:
+  port: 8077

+ 796 - 0
src/main/resources/com/steerinfo/dil/mapper/BmstrainDetailsOrderMapper.xml

@@ -0,0 +1,796 @@
+<?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.steerinfo.dil.mapper.BmstrainDetailsOrderMapper">
+    <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.BmstrainDetailsOrder">
+        <id column="DETAILS_ID" jdbcType="DECIMAL" property="detailsId"/>
+        <result column="PURCHASE_ORDER_ID" jdbcType="DECIMAL" property="purchaseOrderId"/>
+        <result column="DETAILS_NO" jdbcType="VARCHAR" property="detailsNo"/>
+        <result column="DETAILS_TIME" jdbcType="TIMESTAMP" property="detailsTime"/>
+        <result column="PRICE_ID" jdbcType="DECIMAL" property="priceId"/>
+        <result column="DETAILS_AMOUNT" jdbcType="DECIMAL" property="detailsAmount"/>
+        <result column="DETAILS_FLOAT_AMOUNT" jdbcType="DECIMAL" property="detailsFloatAmount"/>
+        <result column="DETAILS_MAGIN_AMOUNT" jdbcType="DECIMAL" property="detailsMaginAmount"/>
+        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername"/>
+        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime"/>
+        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername"/>
+        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark"/>
+        <result column="WETHER_TO_STATEMENT" jdbcType="DECIMAL" property="wetherToStatement"/>
+        <result column="TRAIN_LOADING_RESULT_ID" jdbcType="DECIMAL" property="trainLoadingResultId"/>
+    </resultMap>
+    <sql id="columns">
+        DETAILS_ID, PURCHASE_ORDER_ID, DETAILS_NO, DETAILS_TIME, PRICE_ID, DETAILS_AMOUNT,
+    DETAILS_FLOAT_AMOUNT, DETAILS_MAGIN_AMOUNT, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
+    UPDATE_TIME, INSERT_UPDATE_REMARK, WETHER_TO_STATEMENT, TRAIN_LOADING_RESULT_ID
+    </sql>
+    <sql id="columns_alias">
+        t.DETAILS_ID, t.PURCHASE_ORDER_ID, t.DETAILS_NO, t.DETAILS_TIME, t.PRICE_ID, t.DETAILS_AMOUNT,
+    t.DETAILS_FLOAT_AMOUNT, t.DETAILS_MAGIN_AMOUNT, t.INSERT_USERNAME, t.INSERT_TIME,
+    t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.WETHER_TO_STATEMENT,
+    t.TRAIN_LOADING_RESULT_ID
+    </sql>
+    <sql id="select">
+        SELECT
+        <include refid="columns"/>
+        FROM BMSTRAIN_DETAILS_ORDER
+    </sql>
+    <sql id="select_alias">
+        SELECT
+        <include refid="columns_alias"/>
+        FROM BMSTRAIN_DETAILS_ORDER t
+    </sql>
+    <sql id="where">
+        <where>
+            <if test="detailsId != null">
+                and DETAILS_ID = #{detailsId}
+            </if>
+            <if test="purchaseOrderId != null">
+                and PURCHASE_ORDER_ID = #{purchaseOrderId}
+            </if>
+            <if test="detailsNo != null and detailsNo != ''">
+                and DETAILS_NO = #{detailsNo}
+            </if>
+            <if test="detailsTime != null">
+                and TO_CHAR(DETAILS_TIME,'yyyy-MM-dd') = #{detailsTime}
+            </if>
+            <if test="priceId != null">
+                and PRICE_ID = #{priceId}
+            </if>
+            <if test="detailsAmount != null">
+                and DETAILS_AMOUNT = #{detailsAmount}
+            </if>
+            <if test="detailsFloatAmount != null">
+                and DETAILS_FLOAT_AMOUNT = #{detailsFloatAmount}
+            </if>
+            <if test="detailsMaginAmount != null">
+                and DETAILS_MAGIN_AMOUNT = #{detailsMaginAmount}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME = #{insertUsername}
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME = #{updateUsername}
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+            </if>
+            <if test="wetherToStatement != null">
+                and WETHER_TO_STATEMENT = #{wetherToStatement}
+            </if>
+            <if test="trainLoadingResultId != null">
+                and TRAIN_LOADING_RESULT_ID = #{trainLoadingResultId}
+            </if>
+        </where>
+    </sql>
+    <sql id="whereLike">
+        <where>
+            <if test="detailsId != null">
+                and DETAILS_ID = #{detailsId}
+            </if>
+            <if test="purchaseOrderId != null">
+                and PURCHASE_ORDER_ID = #{purchaseOrderId}
+            </if>
+            <if test="detailsNo != null and detailsNo != ''">
+                and DETAILS_NO LIKE '%${detailsNo}%'
+            </if>
+            <if test="detailsTime != null">
+                and TO_CHAR(DETAILS_TIME,'yyyy-MM-dd') = #{detailsTime}
+            </if>
+            <if test="priceId != null">
+                and PRICE_ID = #{priceId}
+            </if>
+            <if test="detailsAmount != null">
+                and DETAILS_AMOUNT = #{detailsAmount}
+            </if>
+            <if test="detailsFloatAmount != null">
+                and DETAILS_FLOAT_AMOUNT = #{detailsFloatAmount}
+            </if>
+            <if test="detailsMaginAmount != null">
+                and DETAILS_MAGIN_AMOUNT = #{detailsMaginAmount}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME LIKE '%${insertUsername}%'
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME LIKE '%${updateUsername}%'
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+            </if>
+            <if test="wetherToStatement != null">
+                and WETHER_TO_STATEMENT = #{wetherToStatement}
+            </if>
+            <if test="trainLoadingResultId != null">
+                and TRAIN_LOADING_RESULT_ID = #{trainLoadingResultId}
+            </if>
+        </where>
+    </sql>
+    <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+        delete
+        from BMSTRAIN_DETAILS_ORDER
+        where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
+    </delete>
+    <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+        delete from BMSTRAIN_DETAILS_ORDER
+        where 1!=1
+        <if test="purchaseOrderId != null">
+            or PURCHASE_ORDER_ID = #{purchaseOrderId}
+        </if>
+        <if test="detailsNo != null and detailsNo != ''">
+            or DETAILS_NO = #{detailsNo}
+        </if>
+        <if test="detailsTime != null">
+            or TO_CHAR(DETAILS_TIME,'yyyy-MM-dd') = '#{detailsTime}'
+        </if>
+        <if test="priceId != null">
+            or PRICE_ID = #{priceId}
+        </if>
+        <if test="detailsAmount != null">
+            or DETAILS_AMOUNT = #{detailsAmount}
+        </if>
+        <if test="detailsFloatAmount != null">
+            or DETAILS_FLOAT_AMOUNT = #{detailsFloatAmount}
+        </if>
+        <if test="detailsMaginAmount != null">
+            or DETAILS_MAGIN_AMOUNT = #{detailsMaginAmount}
+        </if>
+        <if test="insertUsername != null and insertUsername != ''">
+            or INSERT_USERNAME = #{insertUsername}
+        </if>
+        <if test="insertTime != null">
+            or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+        </if>
+        <if test="updateUsername != null and updateUsername != ''">
+            or UPDATE_USERNAME = #{updateUsername}
+        </if>
+        <if test="updateTime != null">
+            or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+        </if>
+        <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+            or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+        </if>
+        <if test="wetherToStatement != null">
+            or WETHER_TO_STATEMENT = #{wetherToStatement}
+        </if>
+        <if test="trainLoadingResultId != null">
+            or TRAIN_LOADING_RESULT_ID = #{trainLoadingResultId}
+        </if>
+    </delete>
+    <insert id="insert" parameterType="com.steerinfo.dil.model.BmstrainDetailsOrder">
+        insert into BMSTRAIN_DETAILS_ORDER (DETAILS_ID, PURCHASE_ORDER_ID, DETAILS_NO,
+                                            DETAILS_TIME, PRICE_ID, DETAILS_AMOUNT,
+                                            DETAILS_FLOAT_AMOUNT, DETAILS_MAGIN_AMOUNT,
+                                            INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
+                                            UPDATE_TIME, INSERT_UPDATE_REMARK, WETHER_TO_STATEMENT,
+                                            TRAIN_LOADING_RESULT_ID)
+        values (#{detailsId,jdbcType=DECIMAL}, #{purchaseOrderId,jdbcType=DECIMAL}, #{detailsNo,jdbcType=VARCHAR},
+                #{detailsTime,jdbcType=TIMESTAMP}, #{priceId,jdbcType=DECIMAL}, #{detailsAmount,jdbcType=DECIMAL},
+                #{detailsFloatAmount,jdbcType=DECIMAL}, #{detailsMaginAmount,jdbcType=DECIMAL},
+                #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
+                #{updateUsername,jdbcType=VARCHAR},
+                #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR},
+                #{wetherToStatement,jdbcType=DECIMAL},
+                #{trainLoadingResultId,jdbcType=DECIMAL})
+    </insert>
+    <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmstrainDetailsOrder">
+        insert into BMSTRAIN_DETAILS_ORDER
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="detailsId != null">
+                DETAILS_ID,
+            </if>
+            <if test="purchaseOrderId != null">
+                PURCHASE_ORDER_ID,
+            </if>
+            <if test="detailsNo != null">
+                DETAILS_NO,
+            </if>
+            <if test="detailsTime != null">
+                DETAILS_TIME,
+            </if>
+            <if test="priceId != null">
+                PRICE_ID,
+            </if>
+            <if test="detailsAmount != null">
+                DETAILS_AMOUNT,
+            </if>
+            <if test="detailsFloatAmount != null">
+                DETAILS_FLOAT_AMOUNT,
+            </if>
+            <if test="detailsMaginAmount != null">
+                DETAILS_MAGIN_AMOUNT,
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME,
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME,
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME,
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME,
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK,
+            </if>
+            <if test="wetherToStatement != null">
+                WETHER_TO_STATEMENT,
+            </if>
+            <if test="trainLoadingResultId != null">
+                TRAIN_LOADING_RESULT_ID,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="detailsId != null">
+                #{detailsId,jdbcType=DECIMAL},
+            </if>
+            <if test="purchaseOrderId != null">
+                #{purchaseOrderId,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsNo != null">
+                #{detailsNo,jdbcType=VARCHAR},
+            </if>
+            <if test="detailsTime != null">
+                #{detailsTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="priceId != null">
+                #{priceId,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsAmount != null">
+                #{detailsAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsFloatAmount != null">
+                #{detailsFloatAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsMaginAmount != null">
+                #{detailsMaginAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="insertUsername != null">
+                #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+            <if test="wetherToStatement != null">
+                #{wetherToStatement,jdbcType=DECIMAL},
+            </if>
+            <if test="trainLoadingResultId != null">
+                #{trainLoadingResultId,jdbcType=DECIMAL},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmstrainDetailsOrder">
+        update BMSTRAIN_DETAILS_ORDER
+        set PURCHASE_ORDER_ID       = #{purchaseOrderId,jdbcType=DECIMAL},
+            DETAILS_NO              = #{detailsNo,jdbcType=VARCHAR},
+            DETAILS_TIME            = #{detailsTime,jdbcType=TIMESTAMP},
+            PRICE_ID                = #{priceId,jdbcType=DECIMAL},
+            DETAILS_AMOUNT          = #{detailsAmount,jdbcType=DECIMAL},
+            DETAILS_FLOAT_AMOUNT    = #{detailsFloatAmount,jdbcType=DECIMAL},
+            DETAILS_MAGIN_AMOUNT    = #{detailsMaginAmount,jdbcType=DECIMAL},
+            INSERT_USERNAME         = #{insertUsername,jdbcType=VARCHAR},
+            INSERT_TIME             = #{insertTime,jdbcType=TIMESTAMP},
+            UPDATE_USERNAME         = #{updateUsername,jdbcType=VARCHAR},
+            UPDATE_TIME             = #{updateTime,jdbcType=TIMESTAMP},
+            INSERT_UPDATE_REMARK    = #{insertUpdateRemark,jdbcType=VARCHAR},
+            WETHER_TO_STATEMENT     = #{wetherToStatement,jdbcType=DECIMAL},
+            TRAIN_LOADING_RESULT_ID = #{trainLoadingResultId,jdbcType=DECIMAL}
+        where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
+    </update>
+    <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmstrainDetailsOrder">
+        update BMSTRAIN_DETAILS_ORDER
+        <set>
+            <if test="purchaseOrderId != null">
+                PURCHASE_ORDER_ID = #{purchaseOrderId,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsNo != null">
+                DETAILS_NO = #{detailsNo,jdbcType=VARCHAR},
+            </if>
+            <if test="detailsTime != null">
+                DETAILS_TIME = #{detailsTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="priceId != null">
+                PRICE_ID = #{priceId,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsAmount != null">
+                DETAILS_AMOUNT = #{detailsAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsFloatAmount != null">
+                DETAILS_FLOAT_AMOUNT = #{detailsFloatAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsMaginAmount != null">
+                DETAILS_MAGIN_AMOUNT = #{detailsMaginAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+            <if test="wetherToStatement != null">
+                WETHER_TO_STATEMENT = #{wetherToStatement,jdbcType=DECIMAL},
+            </if>
+            <if test="trainLoadingResultId != null">
+                TRAIN_LOADING_RESULT_ID = #{trainLoadingResultId,jdbcType=DECIMAL},
+            </if>
+        </set>
+        where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
+    </update>
+    <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+        <include refid="select"/>
+        where DETAILS_ID = #{detailsId,jdbcType=DECIMAL}
+    </select>
+    <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="where"/>
+    </select>
+    <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="whereLike"/>
+    </select>
+    <insert id="batchInsert" parameterType="java.util.List">
+        insert into BMSTRAIN_DETAILS_ORDER
+        (DETAILS_ID,
+        PURCHASE_ORDER_ID, DETAILS_NO, DETAILS_TIME,
+        PRICE_ID, DETAILS_AMOUNT, DETAILS_FLOAT_AMOUNT,
+        DETAILS_MAGIN_AMOUNT, INSERT_USERNAME,
+        INSERT_TIME, UPDATE_USERNAME,
+        UPDATE_TIME, INSERT_UPDATE_REMARK,
+        WETHER_TO_STATEMENT, TRAIN_LOADING_RESULT_ID
+        )
+        ( <foreach collection="list" item="item" separator="union all">
+        select
+        #{item.detailsId,jdbcType=DECIMAL},
+        #{item.purchaseOrderId,jdbcType=DECIMAL}, #{item.detailsNo,jdbcType=VARCHAR},
+        #{item.detailsTime,jdbcType=TIMESTAMP},
+        #{item.priceId,jdbcType=DECIMAL}, #{item.detailsAmount,jdbcType=DECIMAL},
+        #{item.detailsFloatAmount,jdbcType=DECIMAL},
+        #{item.detailsMaginAmount,jdbcType=DECIMAL}, #{item.insertUsername,jdbcType=VARCHAR},
+        #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR},
+        #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR},
+        #{item.wetherToStatement,jdbcType=DECIMAL}, #{item.trainLoadingResultId,jdbcType=DECIMAL}
+        from dual
+    </foreach> )
+    </insert>
+    <update id="batchUpdate" parameterType="java.util.List">
+        update BMSTRAIN_DETAILS_ORDER
+        set
+        DETAILS_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.detailsId,jdbcType=DECIMAL}
+        </foreach>
+        ,PURCHASE_ORDER_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.purchaseOrderId,jdbcType=DECIMAL}
+        </foreach>
+        ,DETAILS_NO=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.detailsNo,jdbcType=VARCHAR}
+        </foreach>
+        ,DETAILS_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.detailsTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,PRICE_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.priceId,jdbcType=DECIMAL}
+        </foreach>
+        ,DETAILS_AMOUNT=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.detailsAmount,jdbcType=DECIMAL}
+        </foreach>
+        ,DETAILS_FLOAT_AMOUNT=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.detailsFloatAmount,jdbcType=DECIMAL}
+        </foreach>
+        ,DETAILS_MAGIN_AMOUNT=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.detailsMaginAmount,jdbcType=DECIMAL}
+        </foreach>
+        ,INSERT_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,INSERT_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,UPDATE_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,UPDATE_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,INSERT_UPDATE_REMARK=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+        </foreach>
+        ,WETHER_TO_STATEMENT=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.wetherToStatement,jdbcType=DECIMAL}
+        </foreach>
+        ,TRAIN_LOADING_RESULT_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_ID" close="end">
+            when #{item.detailsId,jdbcType=DECIMAL} then #{item.trainLoadingResultId,jdbcType=DECIMAL}
+        </foreach>
+        where DETAILS_ID in
+        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+            #{item.detailsId,jdbcType=DECIMAL}
+        </foreach>
+    </update>
+    <delete id="batchDelete" parameterType="java.util.List">
+        delete from BMSTRAIN_DETAILS_ORDER
+        where DETAILS_ID in
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+    <!-- 友情提示!!!-->
+    <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+    <!-- 展示所有火运详单 -->
+    <select id="getTrainDetailsOrderList" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT *
+        FROM (
+        SELECT
+        bdo.INSERT_TIME as "insertTime",
+        bdo.DETAILS_ID as "detailsId",
+        apo.PURCHASE_ORDER_NO as "purchaseOrderNo",
+        rm.MATERIAL_NAME as "materialName",
+        db.RESULT_FOREIGN_SHIP_NAME as "foreignShipName",
+        bdo.DETAILS_NO as "detailsNo",
+        bdo.DETAILS_TIME as "detailsTime",
+        tlr.RESULT_LOADING_DATE as "loadingDate",
+        tlr.RESULT_WAGON_NO as "wagonNo",
+        tlr.RESULT_BILLABLE_TONNAGE as "billableTonnage",
+        actp.TRAIN_PRICE as "trainPrice",
+        bdo.DETAILS_AMOUNT as "detailsAmount",
+        bdo.DETAILS_FLOAT_AMOUNT as "detailsFloatAmount",
+        bdo.DETAILS_MAGIN_AMOUNT as "detailsMaginAmount"
+        FROM BMSTRAIN_DETAILS_ORDER bdo
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON bdo.PURCHASE_ORDER_ID = apo.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = apo.BATCH_ID
+        LEFT JOIN RMS_MATERIAL rm
+        ON rm.MATERIAL_ID = db.MATERIAL_ID
+        LEFT JOIN TMSTRAIN_LOADING_RESULT tlr
+        ON tlr.RESULT_ID = bdo.TRAIN_LOADING_RESULT_ID
+        LEFT JOIN AMS_CONTRACT_TRAIN_PRICE actp
+        ON bdo.PRICE_ID = actp.PRICE_ID
+        )
+        <where>
+            <if test="purchaseOrderNo!= null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="," close=")">
+                    "purchaseOrderNo" in #{item}
+                </foreach>
+            </if>
+            <if test="materialName!= null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    "materialName" in #{item}
+                </foreach>
+            </if>
+            <if test="foreignShipName!= null">
+                and
+                <foreach collection="foreignShipName" item="item" open="(" separator="," close=")">
+                    "foreignShipName" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsNo!= null">
+                and
+                <foreach collection="detailsNo" item="item" open="(" separator="," close=")">
+                    "detailsNo" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsTime!= null">
+                and
+                <foreach collection="detailsTime" item="item" open="(" separator="," close=")">
+                    "detailsTime" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="loadingDate!= null">
+                and
+                <foreach collection="loadingDate" item="item" open="(" separator="," close=")">
+                    "loadingDate" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="wagonNo!= null">
+                and
+                <foreach collection="wagonNo" item="item" open="(" separator="," close=")">
+                    "wagonNo" in #{item}
+                </foreach>
+            </if>
+            <if test="billableTonnage!= null">
+                and
+                <foreach collection="billableTonnage" item="item" open="(" separator="," close=")">
+                    "billableTonnage" in #{item}
+                </foreach>
+            </if>
+            <if test="trainPrice!= null">
+                and
+                <foreach collection="trainPrice" item="item" open="(" separator="," close=")">
+                    "trainPrice" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsAmount!= null">
+                and
+                <foreach collection="detailsAmount" item="item" open="(" separator="," close=")">
+                    "detailsAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsFloatAmount!= null">
+                and
+                <foreach collection="detailsFloatAmount" item="item" open="(" separator="," close=")">
+                    "detailsFloatAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsMaginAmount!= null">
+                and
+                <foreach collection="detailsMaginAmount" item="item" open="(" separator="," close=")">
+                    "detailsMaginAmount" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+    <sql id="orderBy">
+        <if test="orderField != null and orderField != ''">
+            order by "${orderField}"
+            <if test="orderType != null and orderType != ''">
+                ${orderType}
+            </if>
+        </if>
+        <if test="orderField == null  ">
+            order by "insertTime" desc
+        </if>
+    </sql>
+
+    <!-- 展示未生成账单的详单 -->
+    <select id="getUmcomplateTrainDetailsList" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT *
+        FROM (
+        SELECT
+        bdo.INSERT_TIME as "insertTime",
+        bdo.DETAILS_ID as "detailsId",
+        apo.PURCHASE_ORDER_NO as "purchaseOrderNo",
+        rm.MATERIAL_NAME as "materialName",
+        db.RESULT_FOREIGN_SHIP_NAME as "foreignShipName",
+        bdo.DETAILS_NO as "detailsNo",
+        bdo.DETAILS_TIME as "detailsTime",
+        tlr.RESULT_LOADING_DATE as "loadingDate",
+        tlr.RESULT_WAGON_NO as "wagonNo",
+        tlr.RESULT_BILLABLE_TONNAGE as "billableTonnage",
+        actp.TRAIN_PRICE as "trainPrice",
+        bdo.DETAILS_AMOUNT as "detailsAmount",
+        bdo.DETAILS_FLOAT_AMOUNT as "detailsFloatAmount",
+        bdo.DETAILS_MAGIN_AMOUNT as "detailsMaginAmount"
+        FROM BMSTRAIN_DETAILS_ORDER bdo
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON bdo.PURCHASE_ORDER_ID = apo.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = apo.BATCH_ID
+        LEFT JOIN RMS_MATERIAL rm
+        ON rm.MATERIAL_ID = db.MATERIAL_ID
+        LEFT JOIN TMSTRAIN_LOADING_RESULT tlr
+        ON tlr.RESULT_ID = bdo.TRAIN_LOADING_RESULT_ID
+        LEFT JOIN AMS_CONTRACT_TRAIN_PRICE actp
+        ON bdo.PRICE_ID = actp.PRICE_ID
+        WHERE bdo.WETHER_TO_STATEMENT = 0
+        )
+        <where>
+            <if test="purchaseOrderNo!= null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="," close=")">
+                    "purchaseOrderNo" in #{item}
+                </foreach>
+            </if>
+            <if test="materialName!= null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    "materialName" in #{item}
+                </foreach>
+            </if>
+            <if test="foreignShipName!= null">
+                and
+                <foreach collection="foreignShipName" item="item" open="(" separator="," close=")">
+                    "foreignShipName" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsNo!= null">
+                and
+                <foreach collection="detailsNo" item="item" open="(" separator="," close=")">
+                    "detailsNo" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsTime!= null">
+                and
+                <foreach collection="detailsTime" item="item" open="(" separator="," close=")">
+                    "detailsTime" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="loadingDate!= null">
+                and
+                <foreach collection="loadingDate" item="item" open="(" separator="," close=")">
+                    "loadingDate" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="wagonNo!= null">
+                and
+                <foreach collection="wagonNo" item="item" open="(" separator="," close=")">
+                    "wagonNo" in #{item}
+                </foreach>
+            </if>
+            <if test="billableTonnage!= null">
+                and
+                <foreach collection="billableTonnage" item="item" open="(" separator="," close=")">
+                    "billableTonnage" in #{item}
+                </foreach>
+            </if>
+            <if test="trainPrice!= null">
+                and
+                <foreach collection="trainPrice" item="item" open="(" separator="," close=")">
+                    "trainPrice" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsAmount!= null">
+                and
+                <foreach collection="detailsAmount" item="item" open="(" separator="," close=")">
+                    "detailsAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsFloatAmount!= null">
+                and
+                <foreach collection="detailsFloatAmount" item="item" open="(" separator="," close=")">
+                    "detailsFloatAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsMaginAmount!= null">
+                and
+                <foreach collection="detailsMaginAmount" item="item" open="(" separator="," close=")">
+                    "detailsMaginAmount" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+
+    <!-- 展示火运实绩列表 -->
+    <select id="getTrainResultList" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT *
+        FROM (
+        SELECT tlr.RESULT_ID as "trainLoadingResultId",
+        tlr.INSERT_TIME as "insertTime",
+        apo.PURCHASE_ORDER_NO as "purchaseOrderNo",
+        rm.MATERIAL_NAME as "materialName",
+        db.RESULT_FOREIGN_SHIP_NAME as "foreignShipName",
+        tlr.RESULT_LOADING_DATE as "resultLoadingDate",
+        tlr.RESULT_WAGON_NO as "resultWagonNo",
+        tlr.RESULT_BILLABLE_TONNAGE as "resultBillableTonnage"
+        FROM TMSTRAIN_LOADING_RESULT tlr
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON apo.PURCHASE_ORDER_ID = tlr.PURCHASE_ORDER_RAIL_PLAN_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = apo.PURCHASE_ORDER_ID
+        LEFT JOIN RMS_MATERIAL rm
+        ON rm.MATERIAL_ID = db.MATERIAL_ID
+        )
+        <where>
+            <if test="purchaseOrderNo!= null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="," close=")">
+                    "purchaseOrderNo" in #{item}
+                </foreach>
+            </if>
+            <if test="materialName!= null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    "materialName" in #{item}
+                </foreach>
+            </if>
+            <if test="foreignShipName!= null">
+                and
+                <foreach collection="foreignShipName" item="item" open="(" separator="," close=")">
+                    "foreignShipName" in #{item}
+                </foreach>
+            </if>
+            <if test="resultLoadingDate!= null">
+                and
+                <foreach collection="resultLoadingDate" item="item" open="(" separator="," close=")">
+                    "resultLoadingDate" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="resultWagonNo!= null">
+                and
+                <foreach collection="resultWagonNo" item="item" open="(" separator="," close=")">
+                    "resultWagonNo" in #{item}
+                </foreach>
+            </if>
+            <if test="resultBillableTonnage!= null">
+                and
+                <foreach collection="resultBillableTonnage" item="item" open="(" separator="," close=")">
+                    "resultBillableTonnage" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+    <select id="selectMaxId" resultType="DECIMAL">
+        SELECT MAX(DETAILS_ID)
+        FROM BMSTRAIN_DETAILS_ORDER
+    </select>
+
+    <!-- 得到采购订单id -->
+    <select id="getPurchaseOrderId" parameterType="java.lang.String" resultType="DECIMAL">
+        SELECT PURCHASE_ORDER_ID
+        FROM AMS_PURCHASE_ORDER
+        WHERE PURCHASE_ORDER_NO = #{purchaseOrderNo}
+    </select>
+
+    <!-- 得到采购订单id -->
+    <select id="getTrainPriceId" parameterType="java.lang.String" resultType="DECIMAL">
+        SELECT PRICE_ID
+        FROM AMS_CONTRACT_TRAIN_PRICE
+        WHERE TRAIN_TYPE = #{trainType}
+    </select>
+
+    <!-- 得到采购订单id -->
+    <select id="getTrainPrice" parameterType="java.lang.String" resultType="DECIMAL">
+        SELECT TRAIN_PRICE
+        FROM AMS_CONTRACT_TRAIN_PRICE
+        WHERE TRAIN_TYPE = #{trainType}
+    </select>
+</mapper>

+ 297 - 0
src/main/resources/com/steerinfo/dil/mapper/BmstrainDetailsStatementMapper.xml

@@ -0,0 +1,297 @@
+<?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.steerinfo.dil.mapper.BmstrainDetailsStatementMapper">
+    <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.BmstrainDetailsStatement">
+        <id column="DETAILS_STATEMENT_ID" jdbcType="DECIMAL" property="detailsStatementId" />
+        <result column="STATEMENT_ID" jdbcType="DECIMAL" property="statementId" />
+        <result column="DETAILS_ID" jdbcType="DECIMAL" property="detailsId" />
+        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername" />
+        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime" />
+        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername" />
+        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
+        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark" />
+    </resultMap>
+    <sql id="columns">
+        DETAILS_STATEMENT_ID, STATEMENT_ID, DETAILS_ID, INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
+    UPDATE_TIME, INSERT_UPDATE_REMARK
+    </sql>
+    <sql id="columns_alias">
+        t.DETAILS_STATEMENT_ID, t.STATEMENT_ID, t.DETAILS_ID, t.INSERT_USERNAME, t.INSERT_TIME,
+    t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK
+    </sql>
+    <sql id="select">
+        SELECT <include refid="columns"/> FROM BMSTRAIN_DETAILS_STATEMENT
+    </sql>
+    <sql id="select_alias">
+        SELECT <include refid="columns_alias"/> FROM BMSTRAIN_DETAILS_STATEMENT t
+    </sql>
+    <sql id="where">
+        <where>
+            <if test="detailsStatementId != null">
+                and DETAILS_STATEMENT_ID = #{detailsStatementId}
+            </if>
+            <if test="statementId != null">
+                and STATEMENT_ID = #{statementId}
+            </if>
+            <if test="detailsId != null">
+                and DETAILS_ID = #{detailsId}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME = #{insertUsername}
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME = #{updateUsername}
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+            </if>
+        </where>
+    </sql>
+    <sql id="whereLike">
+        <where>
+            <if test="detailsStatementId != null">
+                and DETAILS_STATEMENT_ID = #{detailsStatementId}
+            </if>
+            <if test="statementId != null">
+                and STATEMENT_ID = #{statementId}
+            </if>
+            <if test="detailsId != null">
+                and DETAILS_ID = #{detailsId}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME LIKE '%${insertUsername}%'
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME LIKE '%${updateUsername}%'
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+            </if>
+        </where>
+    </sql>
+    <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+        delete from BMSTRAIN_DETAILS_STATEMENT
+        where DETAILS_STATEMENT_ID = #{detailsStatementId,jdbcType=DECIMAL}
+    </delete>
+    <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+        delete from BMSTRAIN_DETAILS_STATEMENT
+        where 1!=1
+        <if test="statementId != null">
+            or STATEMENT_ID = #{statementId}
+        </if>
+        <if test="detailsId != null">
+            or DETAILS_ID = #{detailsId}
+        </if>
+        <if test="insertUsername != null and insertUsername != ''">
+            or INSERT_USERNAME = #{insertUsername}
+        </if>
+        <if test="insertTime != null">
+            or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+        </if>
+        <if test="updateUsername != null and updateUsername != ''">
+            or UPDATE_USERNAME = #{updateUsername}
+        </if>
+        <if test="updateTime != null">
+            or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+        </if>
+        <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+            or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+        </if>
+    </delete>
+    <insert id="insert" parameterType="com.steerinfo.dil.model.BmstrainDetailsStatement">
+        insert into BMSTRAIN_DETAILS_STATEMENT (DETAILS_STATEMENT_ID, STATEMENT_ID,
+                                                DETAILS_ID, INSERT_USERNAME, INSERT_TIME,
+                                                UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK
+        )
+        values (#{detailsStatementId,jdbcType=DECIMAL}, #{statementId,jdbcType=DECIMAL},
+                #{detailsId,jdbcType=DECIMAL}, #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
+                #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}
+               )
+    </insert>
+    <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmstrainDetailsStatement">
+        insert into BMSTRAIN_DETAILS_STATEMENT
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="detailsStatementId != null">
+                DETAILS_STATEMENT_ID,
+            </if>
+            <if test="statementId != null">
+                STATEMENT_ID,
+            </if>
+            <if test="detailsId != null">
+                DETAILS_ID,
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME,
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME,
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME,
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME,
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="detailsStatementId != null">
+                #{detailsStatementId,jdbcType=DECIMAL},
+            </if>
+            <if test="statementId != null">
+                #{statementId,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsId != null">
+                #{detailsId,jdbcType=DECIMAL},
+            </if>
+            <if test="insertUsername != null">
+                #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmstrainDetailsStatement">
+        update BMSTRAIN_DETAILS_STATEMENT
+        set STATEMENT_ID = #{statementId,jdbcType=DECIMAL},
+            DETAILS_ID = #{detailsId,jdbcType=DECIMAL},
+            INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+            INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+            UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+            UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+            INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR}
+        where DETAILS_STATEMENT_ID = #{detailsStatementId,jdbcType=DECIMAL}
+    </update>
+    <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmstrainDetailsStatement">
+        update BMSTRAIN_DETAILS_STATEMENT
+        <set>
+            <if test="statementId != null">
+                STATEMENT_ID = #{statementId,jdbcType=DECIMAL},
+            </if>
+            <if test="detailsId != null">
+                DETAILS_ID = #{detailsId,jdbcType=DECIMAL},
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where DETAILS_STATEMENT_ID = #{detailsStatementId,jdbcType=DECIMAL}
+    </update>
+    <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+        <include refid="select"/>
+        where DETAILS_STATEMENT_ID = #{detailsStatementId,jdbcType=DECIMAL}
+    </select>
+    <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="where"/>
+    </select>
+    <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="whereLike"/>
+    </select>
+    <insert id="batchInsert" parameterType="java.util.List">
+        insert into BMSTRAIN_DETAILS_STATEMENT
+        (DETAILS_STATEMENT_ID,
+        STATEMENT_ID, DETAILS_ID, INSERT_USERNAME,
+        INSERT_TIME, UPDATE_USERNAME,
+        UPDATE_TIME, INSERT_UPDATE_REMARK
+        )
+        ( <foreach collection="list" item="item" separator="union all">
+        select
+        #{item.detailsStatementId,jdbcType=DECIMAL},
+        #{item.statementId,jdbcType=DECIMAL}, #{item.detailsId,jdbcType=DECIMAL}, #{item.insertUsername,jdbcType=VARCHAR},
+        #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR},
+        #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR}
+        from dual
+    </foreach> )
+    </insert>
+    <update id="batchUpdate" parameterType="java.util.List">
+        update BMSTRAIN_DETAILS_STATEMENT
+        set
+        DETAILS_STATEMENT_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.detailsStatementId,jdbcType=DECIMAL}
+        </foreach>
+        ,STATEMENT_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.statementId,jdbcType=DECIMAL}
+        </foreach>
+        ,DETAILS_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.detailsId,jdbcType=DECIMAL}
+        </foreach>
+        ,INSERT_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,INSERT_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,UPDATE_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,UPDATE_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,INSERT_UPDATE_REMARK=
+        <foreach collection="list" item="item" index="index" separator=" " open="case DETAILS_STATEMENT_ID" close="end">
+            when #{item.detailsStatementId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+        </foreach>
+        where DETAILS_STATEMENT_ID in
+        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+            #{item.detailsStatementId,jdbcType=DECIMAL}
+        </foreach>
+    </update>
+    <delete id="batchDelete" parameterType="java.util.List">
+        delete from BMSTRAIN_DETAILS_STATEMENT
+        where DETAILS_STATEMENT_ID in
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+    <!-- 友情提示!!!-->
+    <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+    <select id="selectMaxId" resultType="DECIMAL">
+        SELECT MAX(DETAILS_STATEMENT_ID)
+        FROM BMSTRAIN_DETAILS_STATEMENT
+    </select>
+</mapper>

+ 604 - 0
src/main/resources/com/steerinfo/dil/mapper/BmstrainStatementMapper.xml

@@ -0,0 +1,604 @@
+<?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.steerinfo.dil.mapper.BmstrainStatementMapper">
+    <resultMap id="BaseResultMap" type="com.steerinfo.dil.model.BmstrainStatement">
+        <id column="STATEMENT_ID" jdbcType="DECIMAL" property="statementId"/>
+        <result column="STATEMENT_NO" jdbcType="VARCHAR" property="statementNo"/>
+        <result column="STATEMENT_SHIPPER_ID" jdbcType="DECIMAL" property="statementShipperId"/>
+        <result column="STATEMENT_TOTAL_AMOUNT" jdbcType="DECIMAL" property="statementTotalAmount"/>
+        <result column="STATEMENT_DATE" jdbcType="TIMESTAMP" property="statementDate"/>
+        <result column="INSERT_USERNAME" jdbcType="VARCHAR" property="insertUsername"/>
+        <result column="INSERT_TIME" jdbcType="TIMESTAMP" property="insertTime"/>
+        <result column="UPDATE_USERNAME" jdbcType="VARCHAR" property="updateUsername"/>
+        <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="INSERT_UPDATE_REMARK" jdbcType="VARCHAR" property="insertUpdateRemark"/>
+    </resultMap>
+    <sql id="columns">
+        STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID, STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE,
+    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK
+    </sql>
+    <sql id="columns_alias">
+        t.STATEMENT_ID, t.STATEMENT_NO, t.STATEMENT_SHIPPER_ID, t.STATEMENT_TOTAL_AMOUNT,
+    t.STATEMENT_DATE, t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME,
+    t.INSERT_UPDATE_REMARK
+    </sql>
+    <sql id="select">
+        SELECT
+        <include refid="columns"/>
+        FROM BMSTRAIN_STATEMENT
+    </sql>
+    <sql id="select_alias">
+        SELECT
+        <include refid="columns_alias"/>
+        FROM BMSTRAIN_STATEMENT t
+    </sql>
+    <sql id="where">
+        <where>
+            <if test="statementId != null">
+                and STATEMENT_ID = #{statementId}
+            </if>
+            <if test="statementNo != null and statementNo != ''">
+                and STATEMENT_NO = #{statementNo}
+            </if>
+            <if test="statementShipperId != null">
+                and STATEMENT_SHIPPER_ID = #{statementShipperId}
+            </if>
+            <if test="statementTotalAmount != null">
+                and STATEMENT_TOTAL_AMOUNT = #{statementTotalAmount}
+            </if>
+            <if test="statementDate != null">
+                and TO_CHAR(STATEMENT_DATE,'yyyy-MM-dd') = #{statementDate}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME = #{insertUsername}
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME = #{updateUsername}
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+            </if>
+        </where>
+    </sql>
+    <sql id="whereLike">
+        <where>
+            <if test="statementId != null">
+                and STATEMENT_ID = #{statementId}
+            </if>
+            <if test="statementNo != null and statementNo != ''">
+                and STATEMENT_NO LIKE '%${statementNo}%'
+            </if>
+            <if test="statementShipperId != null">
+                and STATEMENT_SHIPPER_ID = #{statementShipperId}
+            </if>
+            <if test="statementTotalAmount != null">
+                and STATEMENT_TOTAL_AMOUNT = #{statementTotalAmount}
+            </if>
+            <if test="statementDate != null">
+                and TO_CHAR(STATEMENT_DATE,'yyyy-MM-dd') = #{statementDate}
+            </if>
+            <if test="insertUsername != null and insertUsername != ''">
+                and INSERT_USERNAME LIKE '%${insertUsername}%'
+            </if>
+            <if test="insertTime != null">
+                and TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = #{insertTime}
+            </if>
+            <if test="updateUsername != null and updateUsername != ''">
+                and UPDATE_USERNAME LIKE '%${updateUsername}%'
+            </if>
+            <if test="updateTime != null">
+                and TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = #{updateTime}
+            </if>
+            <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+                and INSERT_UPDATE_REMARK LIKE '%${insertUpdateRemark}%'
+            </if>
+        </where>
+    </sql>
+    <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+        delete
+        from BMSTRAIN_STATEMENT
+        where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
+    </delete>
+    <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
+        delete from BMSTRAIN_STATEMENT
+        where 1!=1
+        <if test="statementNo != null and statementNo != ''">
+            or STATEMENT_NO = #{statementNo}
+        </if>
+        <if test="statementShipperId != null">
+            or STATEMENT_SHIPPER_ID = #{statementShipperId}
+        </if>
+        <if test="statementTotalAmount != null">
+            or STATEMENT_TOTAL_AMOUNT = #{statementTotalAmount}
+        </if>
+        <if test="statementDate != null">
+            or TO_CHAR(STATEMENT_DATE,'yyyy-MM-dd') = '#{statementDate}'
+        </if>
+        <if test="insertUsername != null and insertUsername != ''">
+            or INSERT_USERNAME = #{insertUsername}
+        </if>
+        <if test="insertTime != null">
+            or TO_CHAR(INSERT_TIME,'yyyy-MM-dd') = '#{insertTime}'
+        </if>
+        <if test="updateUsername != null and updateUsername != ''">
+            or UPDATE_USERNAME = #{updateUsername}
+        </if>
+        <if test="updateTime != null">
+            or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+        </if>
+        <if test="insertUpdateRemark != null and insertUpdateRemark != ''">
+            or INSERT_UPDATE_REMARK = #{insertUpdateRemark}
+        </if>
+    </delete>
+    <insert id="insert" parameterType="com.steerinfo.dil.model.BmstrainStatement">
+        insert into BMSTRAIN_STATEMENT (STATEMENT_ID, STATEMENT_NO, STATEMENT_SHIPPER_ID,
+                                        STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE,
+                                        INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
+                                        UPDATE_TIME, INSERT_UPDATE_REMARK)
+        values (#{statementId,jdbcType=DECIMAL}, #{statementNo,jdbcType=VARCHAR},
+                #{statementShipperId,jdbcType=DECIMAL},
+                #{statementTotalAmount,jdbcType=DECIMAL}, #{statementDate,jdbcType=TIMESTAMP},
+                #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP},
+                #{updateUsername,jdbcType=VARCHAR},
+                #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR})
+    </insert>
+    <insert id="insertSelective" parameterType="com.steerinfo.dil.model.BmstrainStatement">
+        insert into BMSTRAIN_STATEMENT
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="statementId != null">
+                STATEMENT_ID,
+            </if>
+            <if test="statementNo != null">
+                STATEMENT_NO,
+            </if>
+            <if test="statementShipperId != null">
+                STATEMENT_SHIPPER_ID,
+            </if>
+            <if test="statementTotalAmount != null">
+                STATEMENT_TOTAL_AMOUNT,
+            </if>
+            <if test="statementDate != null">
+                STATEMENT_DATE,
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME,
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME,
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME,
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME,
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="statementId != null">
+                #{statementId,jdbcType=DECIMAL},
+            </if>
+            <if test="statementNo != null">
+                #{statementNo,jdbcType=VARCHAR},
+            </if>
+            <if test="statementShipperId != null">
+                #{statementShipperId,jdbcType=DECIMAL},
+            </if>
+            <if test="statementTotalAmount != null">
+                #{statementTotalAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="statementDate != null">
+                #{statementDate,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUsername != null">
+                #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.BmstrainStatement">
+        update BMSTRAIN_STATEMENT
+        set STATEMENT_NO           = #{statementNo,jdbcType=VARCHAR},
+            STATEMENT_SHIPPER_ID   = #{statementShipperId,jdbcType=DECIMAL},
+            STATEMENT_TOTAL_AMOUNT = #{statementTotalAmount,jdbcType=DECIMAL},
+            STATEMENT_DATE         = #{statementDate,jdbcType=TIMESTAMP},
+            INSERT_USERNAME        = #{insertUsername,jdbcType=VARCHAR},
+            INSERT_TIME            = #{insertTime,jdbcType=TIMESTAMP},
+            UPDATE_USERNAME        = #{updateUsername,jdbcType=VARCHAR},
+            UPDATE_TIME            = #{updateTime,jdbcType=TIMESTAMP},
+            INSERT_UPDATE_REMARK   = #{insertUpdateRemark,jdbcType=VARCHAR}
+        where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
+    </update>
+    <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.BmstrainStatement">
+        update BMSTRAIN_STATEMENT
+        <set>
+            <if test="statementNo != null">
+                STATEMENT_NO = #{statementNo,jdbcType=VARCHAR},
+            </if>
+            <if test="statementShipperId != null">
+                STATEMENT_SHIPPER_ID = #{statementShipperId,jdbcType=DECIMAL},
+            </if>
+            <if test="statementTotalAmount != null">
+                STATEMENT_TOTAL_AMOUNT = #{statementTotalAmount,jdbcType=DECIMAL},
+            </if>
+            <if test="statementDate != null">
+                STATEMENT_DATE = #{statementDate,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUsername != null">
+                INSERT_USERNAME = #{insertUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="insertTime != null">
+                INSERT_TIME = #{insertTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="updateUsername != null">
+                UPDATE_USERNAME = #{updateUsername,jdbcType=VARCHAR},
+            </if>
+            <if test="updateTime != null">
+                UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
+            </if>
+            <if test="insertUpdateRemark != null">
+                INSERT_UPDATE_REMARK = #{insertUpdateRemark,jdbcType=VARCHAR},
+            </if>
+        </set>
+        where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
+    </update>
+    <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+        <include refid="select"/>
+        where STATEMENT_ID = #{statementId,jdbcType=DECIMAL}
+    </select>
+    <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="where"/>
+    </select>
+    <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+        <include refid="select"/>
+        <include refid="whereLike"/>
+    </select>
+    <insert id="batchInsert" parameterType="java.util.List">
+        insert into BMSTRAIN_STATEMENT
+        (STATEMENT_ID,
+        STATEMENT_NO, STATEMENT_SHIPPER_ID,
+        STATEMENT_TOTAL_AMOUNT, STATEMENT_DATE,
+        INSERT_USERNAME, INSERT_TIME,
+        UPDATE_USERNAME, UPDATE_TIME,
+        INSERT_UPDATE_REMARK)
+        ( <foreach collection="list" item="item" separator="union all">
+        select
+        #{item.statementId,jdbcType=DECIMAL},
+        #{item.statementNo,jdbcType=VARCHAR}, #{item.statementShipperId,jdbcType=DECIMAL},
+        #{item.statementTotalAmount,jdbcType=DECIMAL}, #{item.statementDate,jdbcType=TIMESTAMP},
+        #{item.insertUsername,jdbcType=VARCHAR}, #{item.insertTime,jdbcType=TIMESTAMP},
+        #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
+        #{item.insertUpdateRemark,jdbcType=VARCHAR} from dual
+    </foreach> )
+    </insert>
+    <update id="batchUpdate" parameterType="java.util.List">
+        update BMSTRAIN_STATEMENT
+        set
+        STATEMENT_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.statementId,jdbcType=DECIMAL}
+        </foreach>
+        ,STATEMENT_NO=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.statementNo,jdbcType=VARCHAR}
+        </foreach>
+        ,STATEMENT_SHIPPER_ID=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.statementShipperId,jdbcType=DECIMAL}
+        </foreach>
+        ,STATEMENT_TOTAL_AMOUNT=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.statementTotalAmount,jdbcType=DECIMAL}
+        </foreach>
+        ,STATEMENT_DATE=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.statementDate,jdbcType=TIMESTAMP}
+        </foreach>
+        ,INSERT_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.insertUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,INSERT_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.insertTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,UPDATE_USERNAME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.updateUsername,jdbcType=VARCHAR}
+        </foreach>
+        ,UPDATE_TIME=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.updateTime,jdbcType=TIMESTAMP}
+        </foreach>
+        ,INSERT_UPDATE_REMARK=
+        <foreach collection="list" item="item" index="index" separator=" " open="case STATEMENT_ID" close="end">
+            when #{item.statementId,jdbcType=DECIMAL} then #{item.insertUpdateRemark,jdbcType=VARCHAR}
+        </foreach>
+        where STATEMENT_ID in
+        <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+            #{item.statementId,jdbcType=DECIMAL}
+        </foreach>
+    </update>
+    <delete id="batchDelete" parameterType="java.util.List">
+        delete from BMSTRAIN_STATEMENT
+        where STATEMENT_ID in
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </delete>
+    <!-- 友情提示!!!-->
+    <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+    <sql id="orderBy">
+        <if test="orderField != null and orderField != ''">
+            order by "${orderField}"
+            <if test="orderType != null and orderType != ''">
+                ${orderType}
+            </if>
+        </if>
+        <if test="orderField == null  ">
+            order by "insertTime" desc
+        </if>
+    </sql>
+    <!-- 展示账单列表 -->
+    <select id="getTrainStatementList" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT * FROM(
+        SELECT DISTINCT
+        bs.INSERT_TIME as "insertTime",
+        bs.STATEMENT_ID as "statementId",
+        apo.BATCH_ID as "batchId",
+        bs.STATEMENT_NO as "statementNo",
+        bs.STATEMENT_DATE as "statementDate",
+        rs.SHIPPER_NAME as "shipperName",
+        bs.STATEMENT_TOTAL_AMOUNT as "statementTotalAmount"
+        FROM BMSTRAIN_STATEMENT bs
+        LEFT JOIN RMS_SHIPPER rs
+        ON rs.SHIPPER_ID = bs.STATEMENT_SHIPPER_ID
+        LEFT JOIN BMSTRAIN_DETAILS_STATEMENT bds
+        ON bds.STATEMENT_ID = bs.STATEMENT_ID
+        LEFT JOIN BMSTRAIN_DETAILS_ORDER bdo
+        ON bdo.DETAILS_ID = bds.DETAILS_ID
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON bdo.PURCHASE_ORDER_ID = apo.PURCHASE_ORDER_ID
+        )
+        <where>
+            <if test="statementNo!= null">
+                and
+                <foreach collection="statementNo" item="item" open="(" separator="," close=")">
+                    "statementNo" in #{item}
+                </foreach>
+            </if>
+            <if test="statementDate!= null">
+                and
+                <foreach collection="statementDate" item="item" open="(" separator="," close=")">
+                    "statementDate" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="shipperName!= null">
+                and
+                <foreach collection="shipperName" item="item" open="(" separator="," close=")">
+                    "shipperName" in #{item}
+                </foreach>
+            </if>
+            <if test="statementTotalAmount!= null">
+                and
+                <foreach collection="statementTotalAmount" item="item" open="(" separator="," close=")">
+                    "statementTotalAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="statementFloatAmount!= null">
+                and
+                <foreach collection="statementFloatAmount" item="item" open="(" separator="," close=")">
+                    "statementFloatAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="statementMaginAmount!= null">
+                and
+                <foreach collection="statementMaginAmount" item="item" open="(" separator="," close=")">
+                    "statementMaginAmount" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+    <!-- 展示账单中的详单 -->
+    <select id="getComplateTrainDetailsList" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT *
+        FROM (
+        SELECT
+        bdo.INSERT_TIME as "insertTime",
+        bdo.DETAILS_ID as "detailsId",
+        db.BATCH_ID as "batchId",
+        apo.PURCHASE_ORDER_NO as "purchaseOrderNo",
+        rm.MATERIAL_NAME as "materialName",
+        db.RESULT_FOREIGN_SHIP_NAME as "foreignShipName",
+        bdo.DETAILS_NO as "detailsNo",
+        bdo.DETAILS_TIME as "detailsTime",
+        tlr.RESULT_LOADING_DATE as "loadingDate",
+        tlr.RESULT_WAGON_NO as "wagonNo",
+        tlr.RESULT_BILLABLE_TONNAGE as "billableTonnage",
+        actp.TRAIN_PRICE as "trainPrice",
+        bdo.DETAILS_AMOUNT as "detailsAmount",
+        bdo.DETAILS_FLOAT_AMOUNT as "detailsFloatAmount",
+        bdo.DETAILS_MAGIN_AMOUNT as "detailsMaginAmount"
+        FROM BMSTRAIN_DETAILS_ORDER bdo
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON bdo.PURCHASE_ORDER_ID = apo.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = apo.BATCH_ID
+        LEFT JOIN RMS_MATERIAL rm
+        ON rm.MATERIAL_ID = db.MATERIAL_ID
+        LEFT JOIN TMSTRAIN_LOADING_RESULT tlr
+        ON tlr.RESULT_ID = bdo.TRAIN_LOADING_RESULT_ID
+        LEFT JOIN AMS_CONTRACT_TRAIN_PRICE actp
+        ON bdo.PRICE_ID = actp.PRICE_ID
+        LEFT JOIN BMSTRAIN_DETAILS_STATEMENT bds
+        ON bds.DETAILS_ID = bdo.DETAILS_ID
+        WHERE bdo.WETHER_TO_STATEMENT = 1
+        AND db.BATCH_ID = #{batchId}
+        AND bds.STATEMENT_ID = #{statementId}
+        )
+        <where>
+            <if test="purchaseOrderNo!= null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="," close=")">
+                    "purchaseOrderNo" in #{item}
+                </foreach>
+            </if>
+            <if test="materialName!= null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    "materialName" in #{item}
+                </foreach>
+            </if>
+            <if test="foreignShipName!= null">
+                and
+                <foreach collection="foreignShipName" item="item" open="(" separator="," close=")">
+                    "foreignShipName" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsNo!= null">
+                and
+                <foreach collection="detailsNo" item="item" open="(" separator="," close=")">
+                    "detailsNo" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsTime!= null">
+                and
+                <foreach collection="detailsTime" item="item" open="(" separator="," close=")">
+                    "detailsTime" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="loadingDate!= null">
+                and
+                <foreach collection="loadingDate" item="item" open="(" separator="," close=")">
+                    "loadingDate" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="wagonNo!= null">
+                and
+                <foreach collection="wagonNo" item="item" open="(" separator="," close=")">
+                    "wagonNo" in #{item}
+                </foreach>
+            </if>
+            <if test="billableTonnage!= null">
+                and
+                <foreach collection="billableTonnage" item="item" open="(" separator="," close=")">
+                    "billableTonnage" in #{item}
+                </foreach>
+            </if>
+            <if test="trainPrice!= null">
+                and
+                <foreach collection="trainPrice" item="item" open="(" separator="," close=")">
+                    "trainPrice" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsAmount!= null">
+                and
+                <foreach collection="detailsAmount" item="item" open="(" separator="," close=")">
+                    "detailsAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsFloatAmount!= null">
+                and
+                <foreach collection="detailsFloatAmount" item="item" open="(" separator="," close=")">
+                    "detailsFloatAmount" in #{item}
+                </foreach>
+            </if>
+            <if test="detailsMaginAmount!= null">
+                and
+                <foreach collection="detailsMaginAmount" item="item" open="(" separator="," close=")">
+                    "detailsMaginAmount" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+    <select id="selectMaxId" resultType="DECIMAL">
+        SELECT MAX(STATEMENT_ID)
+        FROM BMSTRAIN_STATEMENT
+    </select>
+
+    <!-- 展示火运实绩列表 -->
+    <select id="getTrainResultList" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT *
+        FROM (
+        SELECT tlr.RESULT_ID as "trainLoadingResultId",
+        tlr.INSERT_TIME as "insertTime",
+        apo.PURCHASE_ORDER_NO as "purchaseOrderNo",
+        rm.MATERIAL_NAME as "materialName",
+        db.RESULT_FOREIGN_SHIP_NAME as "foreignShipName",
+        tlr.RESULT_LOADING_DATE as "resultLoadingDate",
+        tlr.RESULT_WAGON_NO as "resultWagonNo",
+        tlr.RESULT_BILLABLE_TONNAGE as "resultBillableTonnage"
+        FROM BMSTRAIN_DETAILS_ORDER bdo
+        LEFT JOIN TMSTRAIN_LOADING_RESULT tlr
+        ON bdo.TRAIN_LOADING_RESULT_ID = tlr.RESULT_ID
+        LEFT JOIN AMS_PURCHASE_ORDER apo
+        ON apo.PURCHASE_ORDER_ID = tlr.PURCHASE_ORDER_RAIL_PLAN_ID
+        LEFT JOIN DIL_BATCH db
+        ON db.BATCH_ID = apo.PURCHASE_ORDER_ID
+        LEFT JOIN RMS_MATERIAL rm
+        ON rm.MATERIAL_ID = db.MATERIAL_ID
+        WHERE bdo.DETAILS_ID = #{detailsId}
+        )
+        <where>
+            <if test="purchaseOrderNo!= null">
+                and
+                <foreach collection="purchaseOrderNo" item="item" open="(" separator="," close=")">
+                    "purchaseOrderNo" in #{item}
+                </foreach>
+            </if>
+            <if test="materialName!= null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="," close=")">
+                    "materialName" in #{item}
+                </foreach>
+            </if>
+            <if test="foreignShipName!= null">
+                and
+                <foreach collection="foreignShipName" item="item" open="(" separator="," close=")">
+                    "foreignShipName" in #{item}
+                </foreach>
+            </if>
+            <if test="resultLoadingDate!= null">
+                and
+                <foreach collection="resultLoadingDate" item="item" open="(" separator="," close=")">
+                    "resultLoadingDate" in to_date('${item}','yyyy-mm-dd hh24:mi:ss')
+                </foreach>
+            </if>
+            <if test="resultWagonNo!= null">
+                and
+                <foreach collection="resultWagonNo" item="item" open="(" separator="," close=")">
+                    "resultWagonNo" in #{item}
+                </foreach>
+            </if>
+            <if test="resultBillableTonnage!= null">
+                and
+                <foreach collection="resultBillableTonnage" item="item" open="(" separator="," close=")">
+                    "resultBillableTonnage" in #{item}
+                </foreach>
+            </if>
+        </where>
+        <include refid="orderBy"></include>
+    </select>
+</mapper>

+ 80 - 0
src/main/resources/log4j.properties

@@ -0,0 +1,80 @@
+## LOG4J配置
+log4j.rootCategory=INFO, stdout,file, RUNNING,errorfile
+## 控制台输出
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+
+## root日志输出到文件
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.file=/logsdata/logs/springboot-log4j-root.log
+log4j.appender.file.DatePattern='.'yyyy-MM-dd
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+
+## 按不同package进行输出
+## com.steer包下的日志配置
+log4j.category.market=DEBUG, steerfile
+log4j.category.com.hnshituo=DEBUG, steerfile
+#log4j.category.com.steer=${logging.level.com.steer}, steerfile
+log4j.category.com.steer=DEBUG, steerfile
+# com.steer下的日志输出
+log4j.appender.steerfile=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.steerfile.file=/logsdata/logs/springboot-log4j-steer.log
+log4j.appender.steerfile.DatePattern='.'yyyy-MM-dd
+log4j.appender.steerfile.layout=org.apache.log4j.PatternLayout
+#log4j.appender.steerfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
+log4j.appender.steerfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+
+
+## ERROR级别输出到特定的日志文件中
+log4j.logger.error=errorfile
+## 异常日志####
+log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.errorfile.file=/logs/exception/exc.log
+log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
+log4j.appender.errorfile.Threshold = ERROR
+log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
+#log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
+log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+
+### 运行日志 ###
+log4j.appender.RUNNING = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.RUNNING.File =/logs/log/running.log
+log4j.appender.RUNNING.Append = true
+log4j.appender.RUNNING.Threshold = INFO
+log4j.appender.RUNNING.DatePattern='.'yyyy-MM-dd.
+log4j.appender.RUNNING.layout = org.apache.log4j.PatternLayout
+log4j.appender.RUNNING.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+
+### 指定类###
+log4j.logger.com.steer.rbac.sysdebuglog.service.DebugLogRecord = DEBUG,DEB
+## 调试日志 ###
+log4j.appender.DEB = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DEB.File = /logs/debug/debug.log
+log4j.appender.DEB.Append = true
+log4j.appender.DEB.Threshold = DEBUG 
+log4j.appender.DEB.DatePattern='.'yyyy-MM-dd
+log4j.appender.DEB.layout = org.apache.log4j.PatternLayout
+log4j.appender.DEB.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+####[%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
+
+#### 业务日志###
+log4j.logger.com.steer.rbac.sysoperlog.service.BizLogRecord = INFO,BIZ
+log4j.appender.BIZ = org.apache.log4j.DailyRollingFileAppender
+log4j.appender.BIZ.File = /logs/business/biz.log
+log4j.appender.BIZ.Append = true
+log4j.appender.BIZ.Threshold = INFO
+log4j.appender.BIZ.DatePattern='.'yyyy-MM-dd
+log4j.appender.BIZ.layout = org.apache.log4j.PatternLayout
+log4j.appender.BIZ.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n
+#
+#
+#### 资源日志###
+#log4j.appender.ENV = org.apache.log4j.DailyRollingFileAppender
+#log4j.appender.ENV.File = ../logs/env/env.log
+#log4j.appender.ENV.Append = true
+#log4j.appender.ENV.Threshold = INFO
+#log4j.appender.ENV.DatePattern='.'yyyy-MM-dd
+#1420.3og4j.appender.ENV.layout = org.apache.log4j.PatternLayout
+#log4j.appender.ENV.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS}:%5p %20t [%50F:%3L] - %m%n

+ 4 - 0
src/main/resources/message.properties

@@ -0,0 +1,4 @@
+succeed=操作成功
+failed=操作失败
+unreg=帐号或手机号码未注册
+passerr=密码错误