Bläddra i källkod

Merge remote-tracking branch 'origin/master'

shuzhan 1 år sedan
förälder
incheckning
4ce57a41b0
46 ändrade filer med 2899 tillägg och 163 borttagningar
  1. 18 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/FlatRoofInfoDAO.java
  2. 3 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/NetworkNoticeRalationDAO.java
  3. 5 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/OaFileRegUserInfoDAO.java
  4. 2 1
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/OrganizationDAO.java
  5. 1 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/RegUserDAO.java
  6. 18 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/TradeReportDAO.java
  7. 19 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dao/TransportInfoDAO.java
  8. 10 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dto/NetworkNoticeRalationDTO.java
  9. 12 0
      common/src/main/java/com/jpsoft/railroad/modules/base/dto/OaFileRelationDTO.java
  10. 62 0
      common/src/main/java/com/jpsoft/railroad/modules/base/entity/FlatRoofInfo.java
  11. 19 3
      common/src/main/java/com/jpsoft/railroad/modules/base/entity/NetworkNotice.java
  12. 23 2
      common/src/main/java/com/jpsoft/railroad/modules/base/entity/OaFileInfo.java
  13. 82 0
      common/src/main/java/com/jpsoft/railroad/modules/base/entity/TradeReport.java
  14. 67 0
      common/src/main/java/com/jpsoft/railroad/modules/base/entity/TransportInfo.java
  15. 17 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/FlatRoofInfoService.java
  16. 4 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/NetworkNoticeRalationService.java
  17. 7 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/OaFileRegUserInfoService.java
  18. 1 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/OrganizationService.java
  19. 1 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/RegUserService.java
  20. 17 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/TradeReportService.java
  21. 18 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/TransportInfoService.java
  22. 70 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/FlatRoofInfoServiceImpl.java
  23. 62 1
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/NetworkNoticeRalationServiceImpl.java
  24. 122 50
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/OaFileRegUserInfoServiceImpl.java
  25. 5 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/OrganizationServiceImpl.java
  26. 6 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/RegUserServiceImpl.java
  27. 70 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/TradeReportServiceImpl.java
  28. 75 0
      common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/TransportInfoServiceImpl.java
  29. 111 0
      common/src/main/resources/mapper/base/FlatRoofInfo.xml
  30. 3 2
      common/src/main/resources/mapper/base/NetworkNotice.xml
  31. 3 0
      common/src/main/resources/mapper/base/NetworkNoticeRalation.xml
  32. 20 2
      common/src/main/resources/mapper/base/OaFileInfo.xml
  33. 15 0
      common/src/main/resources/mapper/base/OaFileRegUserInfo.xml
  34. 13 1
      common/src/main/resources/mapper/base/Organization.xml
  35. 3 0
      common/src/main/resources/mapper/base/RegUser.xml
  36. 146 0
      common/src/main/resources/mapper/base/TradeReport.xml
  37. 124 0
      common/src/main/resources/mapper/base/TransportInfo.xml
  38. 384 0
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/FlatRoofInfoController.java
  39. 97 5
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/NetworkNoticeController.java
  40. 75 1
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/NetworkNoticeRalationController.java
  41. 185 48
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/OaFileInfoController.java
  42. 134 46
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/OaFileRegUserInfoController.java
  43. 1 0
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/RegUserController.java
  44. 404 0
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/TradeReportController.java
  45. 364 0
      web/src/main/java/com/jpsoft/railroad/modules/base/controller/TransportInfoController.java
  46. 1 1
      web/src/main/resources/application-dev.yml

+ 18 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/FlatRoofInfoDAO.java

@@ -0,0 +1,18 @@
+package com.jpsoft.railroad.modules.base.dao;
+
+import java.util.List;
+import org.springframework.stereotype.Repository;
+import com.jpsoft.railroad.modules.base.entity.FlatRoofInfo;
+import java.util.Map;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+
+@Repository
+public interface FlatRoofInfoDAO {
+	int insert(FlatRoofInfo entity);
+	int update(FlatRoofInfo entity);
+	int exist(String id);
+	FlatRoofInfo get(String id);
+	int delete(String id);
+	List<FlatRoofInfo> list();
+	List<FlatRoofInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
+}

+ 3 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/NetworkNoticeRalationDAO.java

@@ -1,6 +1,8 @@
 package com.jpsoft.railroad.modules.base.dao;
 
 import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import com.jpsoft.railroad.modules.base.entity.NetworkNoticeRalation;
 import java.util.Map;
@@ -14,5 +16,6 @@ public interface NetworkNoticeRalationDAO {
 	NetworkNoticeRalation get(String id);
 	int delete(String id);
 	List<NetworkNoticeRalation> list();
+	List<NetworkNoticeRalation> findRelationByFileId(@Param("fileId") String fileId, @Param("type")String type);
 	List<NetworkNoticeRalation> search(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 5 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/OaFileRegUserInfoDAO.java

@@ -1,6 +1,8 @@
 package com.jpsoft.railroad.modules.base.dao;
 
 import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import com.jpsoft.railroad.modules.base.entity.OaFileRegUserInfo;
 import java.util.Map;
@@ -14,5 +16,8 @@ public interface OaFileRegUserInfoDAO {
 	OaFileRegUserInfo get(String id);
 	int delete(String id);
 	List<OaFileRegUserInfo> list();
+	List<OaFileRegUserInfo> findRelationByFileId(@Param("fileId") String fileId, @Param("type")String type);
+	List<OaFileRegUserInfo> findRelationByRegId(@Param("regUserId") String regUserId,@Param("type") String type);
+	List<OaFileRegUserInfo> findRelationByOrgs(@Param("orgList")List<String> orgList,@Param("type") String type);
 	List<OaFileRegUserInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
 }

+ 2 - 1
common/src/main/java/com/jpsoft/railroad/modules/base/dao/OrganizationDAO.java

@@ -17,8 +17,9 @@ public interface OrganizationDAO {
 	Organization get(String id);
 	int delete(String id);
 	List<Organization> list();
+	List<Organization> findAllListOrder();
 	List<Organization> search(Map<String,Object> searchParams,List<Sort> sortList);
-	List<Organization> findByParent(String parentId);
+	List<Organization> findByParent(@Param("parentId")String parentId);
 
 	List<OrgDTO> findTreeByParent(String parentId);
 	List<Organization> findByIds(@Param("ids") List<String> ids);

+ 1 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/RegUserDAO.java

@@ -17,6 +17,7 @@ public interface RegUserDAO {
 	RegUser get(String id);
 	int delete(String id);
 	List<RegUser> list();
+	List<RegUser> findAllListOrder();
 	List<RegUser> search(Map<String,Object> searchParams,List<Sort> sortList);
     RegUser findByOpenId(String openId);
 	RegUser findByPhone(String phone);

+ 18 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/TradeReportDAO.java

@@ -0,0 +1,18 @@
+package com.jpsoft.railroad.modules.base.dao;
+
+import java.util.List;
+import org.springframework.stereotype.Repository;
+import com.jpsoft.railroad.modules.base.entity.TradeReport;
+import java.util.Map;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+
+@Repository
+public interface TradeReportDAO {
+	int insert(TradeReport entity);
+	int update(TradeReport entity);
+	int exist(String id);
+	TradeReport get(String id);
+	int delete(String id);
+	List<TradeReport> list();
+	List<TradeReport> search(Map<String, Object> searchParams, List<Sort> sortList);
+}

+ 19 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dao/TransportInfoDAO.java

@@ -0,0 +1,19 @@
+package com.jpsoft.railroad.modules.base.dao;
+
+import java.util.List;
+import org.springframework.stereotype.Repository;
+import com.jpsoft.railroad.modules.base.entity.TransportInfo;
+import java.util.Map;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+
+@Repository
+public interface TransportInfoDAO {
+	int insert(TransportInfo entity);
+	int update(TransportInfo entity);
+	int exist(String id);
+	TransportInfo get(String id);
+	int delete(String id);
+	List<TransportInfo> list();
+	TransportInfo findLastIndex();
+	List<TransportInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
+}

+ 10 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dto/NetworkNoticeRalationDTO.java

@@ -0,0 +1,10 @@
+package com.jpsoft.railroad.modules.base.dto;
+
+import lombok.Data;
+
+@Data
+public class NetworkNoticeRalationDTO {
+    private String fileId;
+    private String[] relatedUser;
+    private String[] orgSelected;
+}

+ 12 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/dto/OaFileRelationDTO.java

@@ -0,0 +1,12 @@
+package com.jpsoft.railroad.modules.base.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class OaFileRelationDTO {
+    private String fileId;
+    private String[] relatedUser;
+    private String[] orgSelected;
+}

+ 62 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/entity/FlatRoofInfo.java

@@ -0,0 +1,62 @@
+package com.jpsoft.railroad.modules.base.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+  描述:base_flat_roof_info的实体类
+ */
+@Data
+@ApiModel(value = "base_flat_roof_info的实体类")
+public class FlatRoofInfo {
+		@ApiModelProperty(value = "ID")
+	private String id;
+
+	@ApiModelProperty(value = "日期")
+	@DateTimeFormat(pattern="yyyy-MM")
+	@JsonFormat(pattern = "yyyy-MM",timezone ="GMT+8")
+	private Date date;
+
+	
+				@ApiModelProperty(value = "车数")
+	private Integer vehiclesNum;
+	
+				@ApiModelProperty(value = "吨数")
+	private BigDecimal tonnage;
+	
+				@ApiModelProperty(value = "应收金额")
+	private BigDecimal accountsReceivable;
+	
+				@ApiModelProperty(value = "支付-人工")
+	private BigDecimal paymentLabor;
+	
+				@ApiModelProperty(value = "支付-龙门")
+	private BigDecimal paymentLongmen;
+	
+				@ApiModelProperty(value = "创建人")
+	private String createBy;
+	
+					@ApiModelProperty(value = "创建时间")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	private Date createTime;
+	
+			@ApiModelProperty(value = "更新人")
+	private String updateBy;
+	
+					@ApiModelProperty(value = "更新时间")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	private Date updateTime;
+	
+			@ApiModelProperty(value = "是否删除")
+	private Boolean delFlag;
+	
+		}

+ 19 - 3
common/src/main/java/com/jpsoft/railroad/modules/base/entity/NetworkNotice.java

@@ -4,6 +4,10 @@ import java.io.Serializable;
 import java.util.Date;
 import java.text.SimpleDateFormat;
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.annotation.Transient;
 
 import org.springframework.data.annotation.Transient;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -31,8 +35,8 @@ public class NetworkNotice {
 	private String type;
 	
 					@ApiModelProperty(value = "上传时间")
-	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	@DateTimeFormat(pattern="yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd",timezone ="GMT+8")
 	private Date uploadTime;
 	
 			@ApiModelProperty(value = "创建人")
@@ -56,5 +60,17 @@ public class NetworkNotice {
 
 			@Transient
 			private String typeN;
-	
+
+	@Transient
+	@ApiModelProperty(value = "创建人")
+	private String createByN;
+
+	@Transient
+	@ApiModelProperty(value = "文件列表")
+	private List<Map> urlList;
+
+	@Transient
+	@ApiModelProperty(value = "文件地址")
+	private String urlName;
+
 		}

+ 23 - 2
common/src/main/java/com/jpsoft/railroad/modules/base/entity/OaFileInfo.java

@@ -4,6 +4,10 @@ import java.io.Serializable;
 import java.util.Date;
 import java.text.SimpleDateFormat;
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.annotation.Transient;
 import org.springframework.format.annotation.DateTimeFormat;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
@@ -29,8 +33,8 @@ public class OaFileInfo {
 	private String type;
 
 	@ApiModelProperty(value = "上传时间")
-	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	@DateTimeFormat(pattern="yyyy-MM-dd")
+	@JsonFormat(pattern = "yyyy-MM-dd",timezone ="GMT+8")
 	private Date uploadTime;
 	
 				@ApiModelProperty(value = "创建人")
@@ -51,5 +55,22 @@ public class OaFileInfo {
 	
 			@ApiModelProperty(value = "是否删除")
 	private Boolean delFlag;
+
+
+	@Transient
+	@ApiModelProperty(value = "创建人")
+	private String createByN;
+
+			@Transient
+	@ApiModelProperty(value = "文件列表")
+	private List<Map> urlList;
+
+	@Transient
+	@ApiModelProperty(value = "文件地址")
+	private String urlName;
+
+	@Transient
+	@ApiModelProperty(value = "是否为登录人员创建文件")
+	private Boolean isSelf;
 	
 		}

+ 82 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/entity/TradeReport.java

@@ -0,0 +1,82 @@
+package com.jpsoft.railroad.modules.base.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+  描述:base_trade_report的实体类
+ */
+@Data
+@ApiModel(value = "base_trade_report的实体类")
+public class TradeReport {
+		@ApiModelProperty(value = "ID")
+	private String id;
+
+	@ApiModelProperty(value = "date")
+	@DateTimeFormat(pattern="yyyy-MM")
+	@JsonFormat(pattern = "yyyy-MM",timezone ="GMT+8")
+	private Date date;
+	
+				@ApiModelProperty(value = "上游贸易商")
+	private String upstreamTraders;
+	
+				@ApiModelProperty(value = "下游贸易商")
+	private String downstreamTraders;
+	
+				@ApiModelProperty(value = "品名")
+	private String productName;
+	
+				@ApiModelProperty(value = "吨位")
+	private BigDecimal tonnage;
+	
+				@ApiModelProperty(value = "应收")
+	private BigDecimal receivable;
+	
+				@ApiModelProperty(value = "实收")
+	private BigDecimal actualReceived;
+	
+				@ApiModelProperty(value = "未收")
+	private BigDecimal unpaid;
+	
+				@ApiModelProperty(value = "应付")
+	private BigDecimal accountsPayable;
+	
+				@ApiModelProperty(value = "实付")
+	private BigDecimal actualPayment;
+	
+				@ApiModelProperty(value = "未付")
+	private BigDecimal unpaidPayments;
+	
+				@ApiModelProperty(value = "利润")
+	private BigDecimal profit;
+	
+				@ApiModelProperty(value = "备注")
+	private String bak;
+	
+				@ApiModelProperty(value = "创建人")
+	private String createBy;
+	
+					@ApiModelProperty(value = "创建时间")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	private Date createTime;
+	
+			@ApiModelProperty(value = "更新人")
+	private String updateBy;
+	
+					@ApiModelProperty(value = "更新时间")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	private Date updateTime;
+	
+			@ApiModelProperty(value = "是否删除")
+	private Boolean delFlag;
+	
+		}

+ 67 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/entity/TransportInfo.java

@@ -0,0 +1,67 @@
+package com.jpsoft.railroad.modules.base.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.math.BigDecimal;
+import org.springframework.format.annotation.DateTimeFormat;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+  描述:base_transport_info的实体类
+ */
+@Data
+@ApiModel(value = "base_transport_info的实体类")
+public class TransportInfo {
+		@ApiModelProperty(value = "ID")
+	private String id;
+	
+				@ApiModelProperty(value = "序号")
+	private Integer index;
+	
+					@ApiModelProperty(value = "时间")
+	@DateTimeFormat(pattern="yyyy-MM")
+	@JsonFormat(pattern = "yyyy-MM",timezone ="GMT+8")
+	private Date month;
+	
+			@ApiModelProperty(value = "品名")
+	private String productName;
+	
+				@ApiModelProperty(value = "吨数")
+	private BigDecimal tonnage;
+	
+				@ApiModelProperty(value = "支出")
+	private BigDecimal expenditure;
+	
+				@ApiModelProperty(value = "收入")
+	private BigDecimal income;
+	
+				@ApiModelProperty(value = "利润")
+	private BigDecimal profit;
+	
+				@ApiModelProperty(value = "备注")
+	private String bak;
+	
+				@ApiModelProperty(value = "创建人")
+	private String createBy;
+	
+					@ApiModelProperty(value = "创建时间")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	private Date createTime;
+	
+			@ApiModelProperty(value = "更新人")
+	private String updateBy;
+	
+					@ApiModelProperty(value = "更新时间")
+	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone ="GMT+8")
+	private Date updateTime;
+	
+			@ApiModelProperty(value = "是否删除")
+	private Boolean delFlag;
+	
+		}

+ 17 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/FlatRoofInfoService.java

@@ -0,0 +1,17 @@
+package com.jpsoft.railroad.modules.base.service;
+
+import java.util.List;
+import java.util.Map;
+import com.jpsoft.railroad.modules.base.entity.FlatRoofInfo;
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+
+public interface FlatRoofInfoService {
+	FlatRoofInfo get(String id);
+	boolean exist(String id);
+	int insert(FlatRoofInfo model);
+	int update(FlatRoofInfo model);
+	int delete(String id);
+	List<FlatRoofInfo> list();
+	Page<FlatRoofInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+}

+ 4 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/NetworkNoticeRalationService.java

@@ -2,6 +2,8 @@ package com.jpsoft.railroad.modules.base.service;
 
 import java.util.List;
 import java.util.Map;
+
+import com.jpsoft.railroad.modules.base.dto.NetworkNoticeRalationDTO;
 import com.jpsoft.railroad.modules.base.entity.NetworkNoticeRalation;
 import com.github.pagehelper.Page;
 import com.jpsoft.railroad.modules.common.dto.Sort;
@@ -11,7 +13,9 @@ public interface NetworkNoticeRalationService {
 	boolean exist(String id);
 	int insert(NetworkNoticeRalation model);
 	int update(NetworkNoticeRalation model);
+	int relationItem(NetworkNoticeRalationDTO dto, String subject);
 	int delete(String id);
 	List<NetworkNoticeRalation> list();
+	List<NetworkNoticeRalation> findRelationByFileId(String fileId, String type);
 	Page<NetworkNoticeRalation> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 }

+ 7 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/OaFileRegUserInfoService.java

@@ -2,6 +2,8 @@ package com.jpsoft.railroad.modules.base.service;
 
 import java.util.List;
 import java.util.Map;
+
+import com.jpsoft.railroad.modules.base.dto.OaFileRelationDTO;
 import com.jpsoft.railroad.modules.base.entity.OaFileRegUserInfo;
 import com.github.pagehelper.Page;
 import com.jpsoft.railroad.modules.common.dto.Sort;
@@ -11,7 +13,12 @@ public interface OaFileRegUserInfoService {
 	boolean exist(String id);
 	int insert(OaFileRegUserInfo model);
 	int update(OaFileRegUserInfo model);
+	int relationItem(OaFileRelationDTO dto,String subject);
 	int delete(String id);
 	List<OaFileRegUserInfo> list();
+	List<OaFileRegUserInfo> findRelationByFileId(String fileId, String type);
+	List<OaFileRegUserInfo> findRelationByRegId(String regUserId, String type);
+	List<OaFileRegUserInfo> findRelationByOrgs(List<String> orgList, String type);
+
 	Page<OaFileRegUserInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/OrganizationService.java

@@ -15,6 +15,7 @@ public interface OrganizationService {
 	int update(Organization model);
 	int delete(String id);
 	List<Organization> list();
+	List<Organization> findAllListOrder();
 	Page<Organization> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	List<Organization> findByParent(String parentId);
 

+ 1 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/RegUserService.java

@@ -15,6 +15,7 @@ public interface RegUserService {
 	int update(RegUser model);
 	int delete(String id);
 	List<RegUser> list();
+	List<RegUser> findAllListOrder();
 	Page<RegUser> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
     RegUser findByOpenId(String openId);
 	RegUser findByPhone(String phone);

+ 17 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/TradeReportService.java

@@ -0,0 +1,17 @@
+package com.jpsoft.railroad.modules.base.service;
+
+import java.util.List;
+import java.util.Map;
+import com.jpsoft.railroad.modules.base.entity.TradeReport;
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+
+public interface TradeReportService {
+	TradeReport get(String id);
+	boolean exist(String id);
+	int insert(TradeReport model);
+	int update(TradeReport model);
+	int delete(String id);
+	List<TradeReport> list();
+	Page<TradeReport> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+}

+ 18 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/TransportInfoService.java

@@ -0,0 +1,18 @@
+package com.jpsoft.railroad.modules.base.service;
+
+import java.util.List;
+import java.util.Map;
+import com.jpsoft.railroad.modules.base.entity.TransportInfo;
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+
+public interface TransportInfoService {
+	TransportInfo get(String id);
+	boolean exist(String id);
+	int insert(TransportInfo model);
+	int update(TransportInfo model);
+	int delete(String id);
+	List<TransportInfo> list();
+	TransportInfo findLastIndex();
+	Page<TransportInfo> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
+}

+ 70 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/FlatRoofInfoServiceImpl.java

@@ -0,0 +1,70 @@
+package com.jpsoft.railroad.modules.base.service.impl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import com.jpsoft.railroad.modules.base.dao.FlatRoofInfoDAO;
+import com.jpsoft.railroad.modules.base.entity.FlatRoofInfo;
+import com.jpsoft.railroad.modules.base.service.FlatRoofInfoService;
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+import com.github.pagehelper.PageHelper;
+
+@Transactional
+@Component(value="flatRoofInfoService")
+public class FlatRoofInfoServiceImpl implements FlatRoofInfoService {
+	@Resource(name="flatRoofInfoDAO")
+	private FlatRoofInfoDAO flatRoofInfoDAO;
+
+	@Override
+	public FlatRoofInfo get(String id) {
+		// TODO Auto-generated method stub
+		return flatRoofInfoDAO.get(id);
+	}
+
+	@Override
+	public int insert(FlatRoofInfo model) {
+		// TODO Auto-generated method stub
+		//model.setId(UUID.randomUUID().toString());
+		
+		return flatRoofInfoDAO.insert(model);
+	}
+
+	@Override
+	public int update(FlatRoofInfo model) {
+		// TODO Auto-generated method stub
+		return flatRoofInfoDAO.update(model);		
+	}
+
+	@Override
+	public int delete(String id) {
+		// TODO Auto-generated method stub
+		return flatRoofInfoDAO.delete(id);
+	}
+
+	@Override
+	public boolean exist(String id) {
+		// TODO Auto-generated method stub
+		int count = flatRoofInfoDAO.exist(id);
+		
+		return count > 0 ? true : false;
+	}
+	
+	@Override
+	public List<FlatRoofInfo> list() {
+		// TODO Auto-generated method stub
+		return flatRoofInfoDAO.list();
+	}
+		
+	@Override
+	public Page<FlatRoofInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+        Page<FlatRoofInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+            flatRoofInfoDAO.search(searchParams,sortList);
+        });
+        
+        return page;
+	}
+}

+ 62 - 1
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/NetworkNoticeRalationServiceImpl.java

@@ -1,9 +1,12 @@
 package com.jpsoft.railroad.modules.base.service.impl;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import javax.annotation.Resource;
+
+import com.jpsoft.railroad.modules.base.dto.NetworkNoticeRalationDTO;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import com.jpsoft.railroad.modules.base.dao.NetworkNoticeRalationDAO;
@@ -39,6 +42,58 @@ public class NetworkNoticeRalationServiceImpl implements NetworkNoticeRalationSe
 		return networkNoticeRalationDAO.update(model);		
 	}
 
+
+	@Override
+	public int relationItem(NetworkNoticeRalationDTO dto, String subject) {
+		List<NetworkNoticeRalation> networkNoticeRalationList = networkNoticeRalationDAO.findRelationByFileId(dto.getFileId(), "1");
+
+		int affectCount = 0;
+		Date now = new Date();
+		for (NetworkNoticeRalation item : networkNoticeRalationList) {
+			item.setDelFlag(true);
+			item.setUpdateBy(subject);
+			item.setUpdateTime(now);
+			networkNoticeRalationDAO.update(item);
+		}
+
+		for (String orgId : dto.getOrgSelected()) {
+			NetworkNoticeRalation item = new NetworkNoticeRalation();
+			item.setId(UUID.randomUUID().toString());
+			item.setFileId(dto.getFileId());
+			item.setBusinessId(orgId);
+			item.setType("1");
+			item.setCreateBy(subject);
+			item.setCreateTime(now);
+			item.setDelFlag(false);
+
+			affectCount += networkNoticeRalationDAO.insert(item);
+		}
+
+		List<NetworkNoticeRalation> regUserRelationList = networkNoticeRalationDAO.findRelationByFileId(dto.getFileId(), "2");
+
+		for (NetworkNoticeRalation item : regUserRelationList) {
+			item.setDelFlag(true);
+			item.setUpdateBy(subject);
+			item.setUpdateTime(now);
+			networkNoticeRalationDAO.update(item);
+		}
+
+		for (String regUserId : dto.getRelatedUser()) {
+			NetworkNoticeRalation item = new NetworkNoticeRalation();
+			item.setId(UUID.randomUUID().toString());
+			item.setFileId(dto.getFileId());
+			item.setBusinessId(regUserId);
+			item.setType("2");
+			item.setCreateBy(subject);
+			item.setCreateTime(now);
+			item.setDelFlag(false);
+
+			affectCount += networkNoticeRalationDAO.insert(item);
+		}
+
+		return affectCount;
+	}
+
 	@Override
 	public int delete(String id) {
 		// TODO Auto-generated method stub
@@ -58,7 +113,13 @@ public class NetworkNoticeRalationServiceImpl implements NetworkNoticeRalationSe
 		// TODO Auto-generated method stub
 		return networkNoticeRalationDAO.list();
 	}
-		
+
+	@Override
+	public List<NetworkNoticeRalation> findRelationByFileId(String fileId, String type){
+		return networkNoticeRalationDAO.findRelationByFileId(fileId,type);
+	}
+
+
 	@Override
 	public Page<NetworkNoticeRalation> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
         Page<NetworkNoticeRalation> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{

+ 122 - 50
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/OaFileRegUserInfoServiceImpl.java

@@ -1,9 +1,14 @@
 package com.jpsoft.railroad.modules.base.service.impl;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 import javax.annotation.Resource;
+
+import com.jpsoft.railroad.modules.base.dto.OaFileRelationDTO;
+import com.jpsoft.railroad.modules.base.entity.Organization;
+import com.jpsoft.railroad.modules.base.entity.RegUser;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import com.jpsoft.railroad.modules.base.dao.OaFileRegUserInfoDAO;
@@ -14,57 +19,124 @@ import com.jpsoft.railroad.modules.common.dto.Sort;
 import com.github.pagehelper.PageHelper;
 
 @Transactional
-@Component(value="oaFileRegUserInfoService")
+@Component(value = "oaFileRegUserInfoService")
 public class OaFileRegUserInfoServiceImpl implements OaFileRegUserInfoService {
-	@Resource(name="oaFileRegUserInfoDAO")
-	private OaFileRegUserInfoDAO oaFileRegUserInfoDAO;
-
-	@Override
-	public OaFileRegUserInfo get(String id) {
-		// TODO Auto-generated method stub
-		return oaFileRegUserInfoDAO.get(id);
-	}
-
-	@Override
-	public int insert(OaFileRegUserInfo model) {
-		// TODO Auto-generated method stub
-		//model.setId(UUID.randomUUID().toString());
-		
-		return oaFileRegUserInfoDAO.insert(model);
-	}
-
-	@Override
-	public int update(OaFileRegUserInfo model) {
-		// TODO Auto-generated method stub
-		return oaFileRegUserInfoDAO.update(model);		
-	}
-
-	@Override
-	public int delete(String id) {
-		// TODO Auto-generated method stub
-		return oaFileRegUserInfoDAO.delete(id);
-	}
-
-	@Override
-	public boolean exist(String id) {
-		// TODO Auto-generated method stub
-		int count = oaFileRegUserInfoDAO.exist(id);
-		
-		return count > 0 ? true : false;
-	}
-	
-	@Override
-	public List<OaFileRegUserInfo> list() {
-		// TODO Auto-generated method stub
-		return oaFileRegUserInfoDAO.list();
-	}
-		
-	@Override
-	public Page<OaFileRegUserInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
-        Page<OaFileRegUserInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
-            oaFileRegUserInfoDAO.search(searchParams,sortList);
+    @Resource(name = "oaFileRegUserInfoDAO")
+    private OaFileRegUserInfoDAO oaFileRegUserInfoDAO;
+
+    @Override
+    public OaFileRegUserInfo get(String id) {
+        // TODO Auto-generated method stub
+        return oaFileRegUserInfoDAO.get(id);
+    }
+
+    @Override
+    public int insert(OaFileRegUserInfo model) {
+        // TODO Auto-generated method stub
+        //model.setId(UUID.randomUUID().toString());
+
+        return oaFileRegUserInfoDAO.insert(model);
+    }
+
+    @Override
+    public int update(OaFileRegUserInfo model) {
+        // TODO Auto-generated method stub
+        return oaFileRegUserInfoDAO.update(model);
+    }
+
+    @Override
+    public int relationItem(OaFileRelationDTO dto, String subject) {
+        List<OaFileRegUserInfo> orgRelationList = oaFileRegUserInfoDAO.findRelationByFileId(dto.getFileId(), "1");
+
+        int affectCount = 0;
+        Date now = new Date();
+        for (OaFileRegUserInfo item : orgRelationList) {
+            item.setDelFlag(true);
+            item.setUpdateBy(subject);
+            item.setUpdateTime(now);
+            affectCount += oaFileRegUserInfoDAO.update(item);
+        }
+
+        for (String orgId : dto.getOrgSelected()) {
+            OaFileRegUserInfo item = new OaFileRegUserInfo();
+            item.setId(UUID.randomUUID().toString());
+            item.setFileId(dto.getFileId());
+            item.setBusinessId(orgId);
+            item.setType("1");
+            item.setCreateBy(subject);
+            item.setCreateTime(now);
+            item.setDelFlag(false);
+
+            affectCount += oaFileRegUserInfoDAO.insert(item);
+        }
+
+        List<OaFileRegUserInfo> regUserRelationList = oaFileRegUserInfoDAO.findRelationByFileId(dto.getFileId(), "2");
+
+        for (OaFileRegUserInfo item : regUserRelationList) {
+            item.setDelFlag(true);
+            item.setUpdateBy(subject);
+            item.setUpdateTime(now);
+            affectCount += oaFileRegUserInfoDAO.update(item);
+        }
+
+        for (String regUserId : dto.getRelatedUser()) {
+            OaFileRegUserInfo item = new OaFileRegUserInfo();
+            item.setId(UUID.randomUUID().toString());
+            item.setFileId(dto.getFileId());
+            item.setBusinessId(regUserId);
+            item.setType("2");
+            item.setCreateBy(subject);
+            item.setCreateTime(now);
+            item.setDelFlag(false);
+
+            affectCount += oaFileRegUserInfoDAO.insert(item);
+        }
+
+        return affectCount;
+    }
+
+    @Override
+    public int delete(String id) {
+        // TODO Auto-generated method stub
+        return oaFileRegUserInfoDAO.delete(id);
+    }
+
+    @Override
+    public boolean exist(String id) {
+        // TODO Auto-generated method stub
+        int count = oaFileRegUserInfoDAO.exist(id);
+
+        return count > 0 ? true : false;
+    }
+
+    @Override
+    public List<OaFileRegUserInfo> list() {
+        // TODO Auto-generated method stub
+        return oaFileRegUserInfoDAO.list();
+    }
+
+    @Override
+    public List<OaFileRegUserInfo> findRelationByFileId(String fileId, String type){
+        return oaFileRegUserInfoDAO.findRelationByFileId(fileId,type);
+    }
+
+    @Override
+    public
+    List<OaFileRegUserInfo> findRelationByRegId(String regUserId, String type){
+        return oaFileRegUserInfoDAO.findRelationByRegId(regUserId,type);
+    }
+
+    @Override
+    public List<OaFileRegUserInfo> findRelationByOrgs(List<String> orgList, String type){
+        return oaFileRegUserInfoDAO.findRelationByOrgs(orgList,type);
+    }
+
+    @Override
+    public Page<OaFileRegUserInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
+        Page<OaFileRegUserInfo> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {
+            oaFileRegUserInfoDAO.search(searchParams, sortList);
         });
-        
+
         return page;
-	}
+    }
 }

+ 5 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/OrganizationServiceImpl.java

@@ -60,6 +60,11 @@ public class OrganizationServiceImpl implements OrganizationService {
 		// TODO Auto-generated method stub
 		return organizationDAO.list();
 	}
+
+	@Override
+	public List<Organization> findAllListOrder(){
+		return organizationDAO.findAllListOrder();
+	}
 		
 	@Override
 	public Page<Organization> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {

+ 6 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/RegUserServiceImpl.java

@@ -74,6 +74,12 @@ public class RegUserServiceImpl implements RegUserService {
         return regUserDAO.list();
     }
 
+
+    @Override
+    public List<RegUser> findAllListOrder(){
+        return regUserDAO.findAllListOrder();
+    }
+
     @Override
     public Page<RegUser> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize, boolean count, List<Sort> sortList) {
         Page<RegUser> page = PageHelper.startPage(pageNumber, pageSize, count).doSelectPage(() -> {

+ 70 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/TradeReportServiceImpl.java

@@ -0,0 +1,70 @@
+package com.jpsoft.railroad.modules.base.service.impl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import com.jpsoft.railroad.modules.base.dao.TradeReportDAO;
+import com.jpsoft.railroad.modules.base.entity.TradeReport;
+import com.jpsoft.railroad.modules.base.service.TradeReportService;
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+import com.github.pagehelper.PageHelper;
+
+@Transactional
+@Component(value="tradeReportService")
+public class TradeReportServiceImpl implements TradeReportService {
+	@Resource(name="tradeReportDAO")
+	private TradeReportDAO tradeReportDAO;
+
+	@Override
+	public TradeReport get(String id) {
+		// TODO Auto-generated method stub
+		return tradeReportDAO.get(id);
+	}
+
+	@Override
+	public int insert(TradeReport model) {
+		// TODO Auto-generated method stub
+		//model.setId(UUID.randomUUID().toString());
+		
+		return tradeReportDAO.insert(model);
+	}
+
+	@Override
+	public int update(TradeReport model) {
+		// TODO Auto-generated method stub
+		return tradeReportDAO.update(model);		
+	}
+
+	@Override
+	public int delete(String id) {
+		// TODO Auto-generated method stub
+		return tradeReportDAO.delete(id);
+	}
+
+	@Override
+	public boolean exist(String id) {
+		// TODO Auto-generated method stub
+		int count = tradeReportDAO.exist(id);
+		
+		return count > 0 ? true : false;
+	}
+	
+	@Override
+	public List<TradeReport> list() {
+		// TODO Auto-generated method stub
+		return tradeReportDAO.list();
+	}
+		
+	@Override
+	public Page<TradeReport> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+        Page<TradeReport> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+            tradeReportDAO.search(searchParams,sortList);
+        });
+        
+        return page;
+	}
+}

+ 75 - 0
common/src/main/java/com/jpsoft/railroad/modules/base/service/impl/TransportInfoServiceImpl.java

@@ -0,0 +1,75 @@
+package com.jpsoft.railroad.modules.base.service.impl;
+
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import javax.annotation.Resource;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import com.jpsoft.railroad.modules.base.dao.TransportInfoDAO;
+import com.jpsoft.railroad.modules.base.entity.TransportInfo;
+import com.jpsoft.railroad.modules.base.service.TransportInfoService;
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+import com.github.pagehelper.PageHelper;
+
+@Transactional
+@Component(value="transportInfoService")
+public class TransportInfoServiceImpl implements TransportInfoService {
+	@Resource(name="transportInfoDAO")
+	private TransportInfoDAO transportInfoDAO;
+
+	@Override
+	public TransportInfo get(String id) {
+		// TODO Auto-generated method stub
+		return transportInfoDAO.get(id);
+	}
+
+	@Override
+	public int insert(TransportInfo model) {
+		// TODO Auto-generated method stub
+		//model.setId(UUID.randomUUID().toString());
+		
+		return transportInfoDAO.insert(model);
+	}
+
+	@Override
+	public int update(TransportInfo model) {
+		// TODO Auto-generated method stub
+		return transportInfoDAO.update(model);		
+	}
+
+	@Override
+	public int delete(String id) {
+		// TODO Auto-generated method stub
+		return transportInfoDAO.delete(id);
+	}
+
+	@Override
+	public boolean exist(String id) {
+		// TODO Auto-generated method stub
+		int count = transportInfoDAO.exist(id);
+		
+		return count > 0 ? true : false;
+	}
+	
+	@Override
+	public List<TransportInfo> list() {
+		// TODO Auto-generated method stub
+		return transportInfoDAO.list();
+	}
+
+	@Override
+	public TransportInfo findLastIndex(){
+		return transportInfoDAO.findLastIndex();
+	}
+		
+	@Override
+	public Page<TransportInfo> pageSearch(Map<String, Object> searchParams, int pageNumber, int pageSize,boolean count,List<Sort> sortList) {
+        Page<TransportInfo> page = PageHelper.startPage(pageNumber,pageSize,count).doSelectPage(()->{
+            transportInfoDAO.search(searchParams,sortList);
+        });
+        
+        return page;
+	}
+}

+ 111 - 0
common/src/main/resources/mapper/base/FlatRoofInfo.xml

@@ -0,0 +1,111 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.railroad.modules.base.dao.FlatRoofInfoDAO">
+	<resultMap id="FlatRoofInfoMap" type="com.jpsoft.railroad.modules.base.entity.FlatRoofInfo">
+		<id property="id" column="id_" />
+			<result property="date" column="date_" />
+			<result property="vehiclesNum" column="vehicles_num" />
+			<result property="tonnage" column="tonnage_" />
+			<result property="accountsReceivable" column="accounts_receivable" />
+			<result property="paymentLabor" column="payment_labor" />
+			<result property="paymentLongmen" column="payment_longmen" />
+			<result property="createBy" column="create_by" />
+			<result property="createTime" column="create_time" />
+			<result property="updateBy" column="update_by" />
+			<result property="updateTime" column="update_time" />
+			<result property="delFlag" column="del_flag" />
+			</resultMap>
+	<insert id="insert" parameterType="com.jpsoft.railroad.modules.base.entity.FlatRoofInfo">
+	<!--
+	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+		select sys_guid() from dual
+	</selectKey>
+	-->
+	<![CDATA[
+		insert into base_flat_roof_info
+	    (id_,date_,vehicles_num,tonnage_,accounts_receivable,payment_labor,payment_longmen,create_by,create_time,update_by,update_time,del_flag)
+		values
+		(
+#{id,jdbcType=VARCHAR}
+,#{date,jdbcType= TIMESTAMP }
+,#{vehiclesNum,jdbcType= NUMERIC }
+,#{tonnage,jdbcType= NUMERIC }
+,#{accountsReceivable,jdbcType= NUMERIC }
+,#{paymentLabor,jdbcType= NUMERIC }
+,#{paymentLongmen,jdbcType= NUMERIC }
+,#{createBy,jdbcType=VARCHAR}
+,#{createTime,jdbcType= TIMESTAMP }
+,#{updateBy,jdbcType=VARCHAR}
+,#{updateTime,jdbcType= TIMESTAMP }
+,#{delFlag,jdbcType= NUMERIC }
+		)
+	]]>
+	</insert>
+	<delete id="delete" parameterType="string">
+		delete from base_flat_roof_info where id_=#{id,jdbcType=VARCHAR}
+	</delete>
+	<update id="update" parameterType="com.jpsoft.railroad.modules.base.entity.FlatRoofInfo">
+		update base_flat_roof_info
+		<set>
+			<if test="date!=null">
+				date_=#{date,jdbcType= TIMESTAMP },
+			</if>
+				<if test="vehiclesNum!=null">
+		vehicles_num=#{vehiclesNum,jdbcType= NUMERIC },
+		</if>
+				<if test="tonnage!=null">
+		tonnage_=#{tonnage,jdbcType= NUMERIC },
+		</if>
+				<if test="accountsReceivable!=null">
+		accounts_receivable=#{accountsReceivable,jdbcType= NUMERIC },
+		</if>
+				<if test="paymentLabor!=null">
+		payment_labor=#{paymentLabor,jdbcType= NUMERIC },
+		</if>
+				<if test="paymentLongmen!=null">
+		payment_longmen=#{paymentLongmen,jdbcType= NUMERIC },
+		</if>
+				<if test="createBy!=null">
+		create_by=#{createBy,jdbcType=VARCHAR},
+		</if>
+				<if test="createTime!=null">
+		create_time=#{createTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="updateBy!=null">
+		update_by=#{updateBy,jdbcType=VARCHAR},
+		</if>
+				<if test="updateTime!=null">
+		update_time=#{updateTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="delFlag!=null">
+		del_flag=#{delFlag,jdbcType= NUMERIC },
+		</if>
+		</set>
+	where id_=#{id}
+	</update>
+	<select id="get" parameterType="string" resultMap="FlatRoofInfoMap">
+		select * from base_flat_roof_info where id_=#{0}
+	</select>
+	<select id="exist" parameterType="string" resultType="int">
+		select count(*) from base_flat_roof_info where id_=#{0}
+	</select>
+	<select id="list" resultMap="FlatRoofInfoMap">
+		select * from base_flat_roof_info
+	</select>
+	<select id="search" parameterType="hashmap" resultMap="FlatRoofInfoMap">
+		<![CDATA[
+			select * from base_flat_roof_info
+		]]>
+		<where>
+			del_flag = false
+			<if test="searchParams.id != null">
+				and ID_ like #{searchParams.id}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+	        ${sort.name} ${sort.order}
+	 	</foreach>
+	</select>
+</mapper>

+ 3 - 2
common/src/main/resources/mapper/base/NetworkNotice.xml

@@ -89,8 +89,9 @@
 			select * from base_network_notice
 		]]>
 		<where>
-			<if test="searchParams.id != null">
-				and ID_ like #{searchParams.id}
+			del_flag = false
+			<if test="searchParams.name != null">
+				and name_ like #{searchParams.name}
 			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">

+ 3 - 0
common/src/main/resources/mapper/base/NetworkNoticeRalation.xml

@@ -79,6 +79,9 @@
 	<select id="list" resultMap="NetworkNoticeRalationMap">
 		select * from base_network_notice_ralation
 	</select>
+	<select id="findRelationByFileId" resultMap="NetworkNoticeRalationMap">
+		select * from base_network_notice_ralation where del_flag = false and file_id=#{fileId} and type_= #{type}
+	</select>
 	<select id="search" parameterType="hashmap" resultMap="NetworkNoticeRalationMap">
 		<![CDATA[
 			select * from base_network_notice_ralation

+ 20 - 2
common/src/main/resources/mapper/base/OaFileInfo.xml

@@ -91,8 +91,26 @@
 		]]>
 		<where>
 			del_flag = false
-			<if test="searchParams.id != null">
-				and ID_ like #{searchParams.id}
+			<if test="searchParams.name != null">
+				and name_ like #{searchParams.name}
+			</if>
+			<if test="searchParams.createBy != null">
+				<![CDATA[
+					and ( create_by = #{searchParams.createBy}
+				]]>
+				<if test="searchParams.oaFileRegUserInfoList != null">
+					<foreach item="item" collection="searchParams.oaFileRegUserInfoList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				<if test="searchParams.oaFileOrgList != null">
+					<foreach item="item" collection="searchParams.oaFileOrgList" open="or id_ in ("
+							 separator="," close=")">
+						#{item.fileId}
+					</foreach>
+				</if>
+				)
 			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">

+ 15 - 0
common/src/main/resources/mapper/base/OaFileRegUserInfo.xml

@@ -79,6 +79,21 @@
 	<select id="list" resultMap="OaFileRegUserInfoMap">
 		select * from base_oa_file_reg_user_info
 	</select>
+	<select id="findRelationByFileId" resultMap="OaFileRegUserInfoMap">
+		select * from base_oa_file_reg_user_info where del_flag = false and file_id=#{fileId} and type_= #{type}
+	</select>
+	<select id="findRelationByRegId" resultMap="OaFileRegUserInfoMap">
+		select * from base_oa_file_reg_user_info where del_flag = false and business_id=#{regUserId} and type_= #{type}
+	</select>
+	<select id="findRelationByOrgs" resultMap="OaFileRegUserInfoMap">
+		select * from base_oa_file_reg_user_info
+		where del_flag = false
+		and type_= #{type}
+		<foreach item="item" collection="orgList" open="and business_id in ("
+				 separator="," close=")">
+			#{item}
+		</foreach>
+	</select>
 	<select id="search" parameterType="hashmap" resultMap="OaFileRegUserInfoMap">
 		<![CDATA[
 			select * from base_oa_file_reg_user_info

+ 13 - 1
common/src/main/resources/mapper/base/Organization.xml

@@ -102,6 +102,10 @@
 	<select id="list" resultMap="OrganizationMap">
 		select * from base_organization
 	</select>
+	<select id="findAllListOrder" resultMap="OrganizationMap">
+		select * from base_organization where del_flag=false order by CONVERT (name_ USING GBK) asc
+	</select>
+
 	<select id="search" parameterType="hashmap" resultMap="OrganizationMap">
 		<![CDATA[
 			SELECT a.*,b.name_ AS parent_name FROM base_organization a
@@ -136,7 +140,15 @@
 	 	</foreach>
 	</select>
 	<select id="findByParent" resultMap="OrganizationMap">
-		SELECT * FROM base_organization WHERE parent_id = #{0}
+		SELECT * FROM base_organization
+		WHERE
+		del_flag = 0
+		<if test="parentId != null">
+			AND parent_id = #{parentId}
+		</if>
+		<if test="parentId == null">
+			AND parent_id is null
+		</if>
 	</select>
 
 	<select id="findTreeByParent" resultType="com.jpsoft.railroad.modules.base.dto.OrgDTO" parameterType="string">

+ 3 - 0
common/src/main/resources/mapper/base/RegUser.xml

@@ -116,6 +116,9 @@
     <select id="list" resultMap="RegUserMap">
         select * from base_reg_user where del_flag = 0
     </select>
+    <select id="findAllListOrder" resultMap="RegUserMap">
+        select * from base_reg_user where del_flag = 0 order by CONVERT (name_ USING GBK) asc
+    </select>
     <select id="search" parameterType="hashmap" resultMap="RegUserMap">
         <![CDATA[
 			SELECT a.*,b.name_ AS org_name,c.name_ AS regUserRoleName FROM base_reg_user a

+ 146 - 0
common/src/main/resources/mapper/base/TradeReport.xml

@@ -0,0 +1,146 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.railroad.modules.base.dao.TradeReportDAO">
+	<resultMap id="TradeReportMap" type="com.jpsoft.railroad.modules.base.entity.TradeReport">
+		<id property="id" column="id_" />
+			<result property="date" column="date_" />
+			<result property="upstreamTraders" column="upstream_traders" />
+			<result property="downstreamTraders" column="downstream_traders" />
+			<result property="productName" column="product_name" />
+			<result property="tonnage" column="tonnage_" />
+			<result property="receivable" column="receivable_" />
+			<result property="actualReceived" column="actual_received" />
+			<result property="unpaid" column="unpaid_" />
+			<result property="accountsPayable" column="accounts_payable" />
+			<result property="actualPayment" column="actual_payment" />
+			<result property="unpaidPayments" column="unpaid_payments" />
+			<result property="profit" column="profit_" />
+			<result property="bak" column="bak_" />
+			<result property="createBy" column="create_by" />
+			<result property="createTime" column="create_time" />
+			<result property="updateBy" column="update_by" />
+			<result property="updateTime" column="update_time" />
+			<result property="delFlag" column="del_flag" />
+			</resultMap>
+	<insert id="insert" parameterType="com.jpsoft.railroad.modules.base.entity.TradeReport">
+	<!--
+	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+		select sys_guid() from dual
+	</selectKey>
+	-->
+	<![CDATA[
+		insert into base_trade_report
+	    (id_,date_,upstream_traders,downstream_traders,product_name,tonnage_,receivable_,actual_received,unpaid_,accounts_payable,actual_payment,unpaid_payments,profit_,bak_,create_by,create_time,update_by,update_time,del_flag)
+		values
+		(
+#{id,jdbcType=VARCHAR}
+,#{date,jdbcType= TIMESTAMP }
+,#{upstreamTraders,jdbcType=VARCHAR}
+,#{downstreamTraders,jdbcType=VARCHAR}
+,#{productName,jdbcType=VARCHAR}
+,#{tonnage,jdbcType= NUMERIC }
+,#{receivable,jdbcType= NUMERIC }
+,#{actualReceived,jdbcType= NUMERIC }
+,#{unpaid,jdbcType= NUMERIC }
+,#{accountsPayable,jdbcType= NUMERIC }
+,#{actualPayment,jdbcType= NUMERIC }
+,#{unpaidPayments,jdbcType= NUMERIC }
+,#{profit,jdbcType= NUMERIC }
+,#{bak,jdbcType=VARCHAR}
+,#{createBy,jdbcType=VARCHAR}
+,#{createTime,jdbcType= TIMESTAMP }
+,#{updateBy,jdbcType=VARCHAR}
+,#{updateTime,jdbcType= TIMESTAMP }
+,#{delFlag,jdbcType= NUMERIC }
+		)
+	]]>
+	</insert>
+	<delete id="delete" parameterType="string">
+		delete from base_trade_report where id_=#{id,jdbcType=VARCHAR}
+	</delete>
+	<update id="update" parameterType="com.jpsoft.railroad.modules.base.entity.TradeReport">
+		update base_trade_report
+		<set>
+			<if test="date!=null">
+				date_=#{date,jdbcType= TIMESTAMP },
+			</if>
+				<if test="upstreamTraders!=null">
+		upstream_traders=#{upstreamTraders,jdbcType=VARCHAR},
+		</if>
+				<if test="downstreamTraders!=null">
+		downstream_traders=#{downstreamTraders,jdbcType=VARCHAR},
+		</if>
+				<if test="productName!=null">
+		product_name=#{productName,jdbcType=VARCHAR},
+		</if>
+				<if test="tonnage!=null">
+		tonnage_=#{tonnage,jdbcType= NUMERIC },
+		</if>
+				<if test="receivable!=null">
+		receivable_=#{receivable,jdbcType= NUMERIC },
+		</if>
+				<if test="actualReceived!=null">
+		actual_received=#{actualReceived,jdbcType= NUMERIC },
+		</if>
+				<if test="unpaid!=null">
+		unpaid_=#{unpaid,jdbcType= NUMERIC },
+		</if>
+				<if test="accountsPayable!=null">
+		accounts_payable=#{accountsPayable,jdbcType= NUMERIC },
+		</if>
+				<if test="actualPayment!=null">
+		actual_payment=#{actualPayment,jdbcType= NUMERIC },
+		</if>
+				<if test="unpaidPayments!=null">
+		unpaid_payments=#{unpaidPayments,jdbcType= NUMERIC },
+		</if>
+				<if test="profit!=null">
+		profit_=#{profit,jdbcType= NUMERIC },
+		</if>
+				<if test="bak!=null">
+		bak_=#{bak,jdbcType=VARCHAR},
+		</if>
+				<if test="createBy!=null">
+		create_by=#{createBy,jdbcType=VARCHAR},
+		</if>
+				<if test="createTime!=null">
+		create_time=#{createTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="updateBy!=null">
+		update_by=#{updateBy,jdbcType=VARCHAR},
+		</if>
+				<if test="updateTime!=null">
+		update_time=#{updateTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="delFlag!=null">
+		del_flag=#{delFlag,jdbcType= NUMERIC },
+		</if>
+		</set>
+	where id_=#{id}
+	</update>
+	<select id="get" parameterType="string" resultMap="TradeReportMap">
+		select * from base_trade_report where id_=#{0}
+	</select>
+	<select id="exist" parameterType="string" resultType="int">
+		select count(*) from base_trade_report where id_=#{0}
+	</select>
+	<select id="list" resultMap="TradeReportMap">
+		select * from base_trade_report
+	</select>
+	<select id="search" parameterType="hashmap" resultMap="TradeReportMap">
+		<![CDATA[
+			select * from base_trade_report
+		]]>
+		<where>
+			del_flag=false
+			<if test="searchParams.id != null">
+				and ID_ like #{searchParams.id}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+	        ${sort.name} ${sort.order}
+	 	</foreach>
+	</select>
+</mapper>

+ 124 - 0
common/src/main/resources/mapper/base/TransportInfo.xml

@@ -0,0 +1,124 @@
+<?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">
+<!-- namespace必须指向DAO接口 -->
+<mapper namespace="com.jpsoft.railroad.modules.base.dao.TransportInfoDAO">
+	<resultMap id="TransportInfoMap" type="com.jpsoft.railroad.modules.base.entity.TransportInfo">
+		<id property="id" column="id_" />
+			<result property="index" column="index_" />
+			<result property="month" column="month_" />
+			<result property="productName" column="product_name" />
+			<result property="tonnage" column="tonnage_" />
+			<result property="expenditure" column="expenditure_" />
+			<result property="income" column="income_" />
+			<result property="profit" column="profit_" />
+			<result property="bak" column="bak_" />
+			<result property="createBy" column="create_by" />
+			<result property="createTime" column="create_time" />
+			<result property="updateBy" column="update_by" />
+			<result property="updateTime" column="update_time" />
+			<result property="delFlag" column="del_flag" />
+			</resultMap>
+	<insert id="insert" parameterType="com.jpsoft.railroad.modules.base.entity.TransportInfo">
+	<!--
+	<selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
+		select sys_guid() from dual
+	</selectKey>
+	-->
+	<![CDATA[
+		insert into base_transport_info
+	    (id_,index_,month_,product_name,tonnage_,expenditure_,income_,profit_,bak_,create_by,create_time,update_by,update_time,del_flag)
+		values
+		(
+#{id,jdbcType=VARCHAR}
+,#{index,jdbcType= NUMERIC }
+,#{month,jdbcType= TIMESTAMP }
+,#{productName,jdbcType=VARCHAR}
+,#{tonnage,jdbcType= NUMERIC }
+,#{expenditure,jdbcType= NUMERIC }
+,#{income,jdbcType= NUMERIC }
+,#{profit,jdbcType= NUMERIC }
+,#{bak,jdbcType=VARCHAR}
+,#{createBy,jdbcType=VARCHAR}
+,#{createTime,jdbcType= TIMESTAMP }
+,#{updateBy,jdbcType=VARCHAR}
+,#{updateTime,jdbcType= TIMESTAMP }
+,#{delFlag,jdbcType= NUMERIC }
+		)
+	]]>
+	</insert>
+	<delete id="delete" parameterType="string">
+		delete from base_transport_info where id_=#{id,jdbcType=VARCHAR}
+	</delete>
+	<update id="update" parameterType="com.jpsoft.railroad.modules.base.entity.TransportInfo">
+		update base_transport_info
+		<set>
+				<if test="index!=null">
+		index_=#{index,jdbcType= NUMERIC },
+		</if>
+				<if test="month!=null">
+		month_=#{month,jdbcType= TIMESTAMP },
+		</if>
+				<if test="productName!=null">
+		product_name=#{productName,jdbcType=VARCHAR},
+		</if>
+				<if test="tonnage!=null">
+		tonnage_=#{tonnage,jdbcType= NUMERIC },
+		</if>
+				<if test="expenditure!=null">
+		expenditure_=#{expenditure,jdbcType= NUMERIC },
+		</if>
+				<if test="income!=null">
+		income_=#{income,jdbcType= NUMERIC },
+		</if>
+				<if test="profit!=null">
+		profit_=#{profit,jdbcType= NUMERIC },
+		</if>
+				<if test="bak!=null">
+		bak_=#{bak,jdbcType=VARCHAR},
+		</if>
+				<if test="createBy!=null">
+		create_by=#{createBy,jdbcType=VARCHAR},
+		</if>
+				<if test="createTime!=null">
+		create_time=#{createTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="updateBy!=null">
+		update_by=#{updateBy,jdbcType=VARCHAR},
+		</if>
+				<if test="updateTime!=null">
+		update_time=#{updateTime,jdbcType= TIMESTAMP },
+		</if>
+				<if test="delFlag!=null">
+		del_flag=#{delFlag,jdbcType= NUMERIC },
+		</if>
+		</set>
+	where id_=#{id}
+	</update>
+	<select id="get" parameterType="string" resultMap="TransportInfoMap">
+		select * from base_transport_info where id_=#{0}
+	</select>
+	<select id="exist" parameterType="string" resultType="int">
+		select count(*) from base_transport_info where id_=#{0}
+	</select>
+	<select id="list" resultMap="TransportInfoMap">
+		select * from base_transport_info
+	</select>
+	<select id="findLastIndex" resultMap="TransportInfoMap">
+		select * from base_transport_info where del_flag=false order by index_ desc limit 1
+	</select>
+	<select id="search" parameterType="hashmap" resultMap="TransportInfoMap">
+		<![CDATA[
+			select * from base_transport_info
+		]]>
+		<where>
+			del_flag=false
+			<if test="searchParams.id != null">
+				and ID_ like #{searchParams.id}
+			</if>
+		</where>
+		<foreach item="sort" collection="sortList"  open="order by" separator=",">
+	        ${sort.name} ${sort.order}
+	 	</foreach>
+	</select>
+</mapper>

+ 384 - 0
web/src/main/java/com/jpsoft/railroad/modules/base/controller/FlatRoofInfoController.java

@@ -0,0 +1,384 @@
+package com.jpsoft.railroad.modules.base.controller;
+
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.config.OSSConfig;
+import com.jpsoft.railroad.modules.common.utils.OSSUtil;
+import com.jpsoft.railroad.modules.common.utils.PojoUtils;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+import com.jpsoft.railroad.modules.common.dto.MessageResult;
+import com.jpsoft.railroad.modules.base.entity.FlatRoofInfo;
+import com.jpsoft.railroad.modules.base.service.FlatRoofInfoService;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+@RequestMapping("/base/flatRoofInfo")
+public class FlatRoofInfoController {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private FlatRoofInfoService flatRoofInfoService;
+
+    @Autowired
+    private OSSConfig ossConfig;
+	
+	
+	@ApiOperation(value="创建空记录")
+    @GetMapping("create")
+    public MessageResult<FlatRoofInfo> create(){
+        MessageResult<FlatRoofInfo> msgResult = new MessageResult<>();
+
+        FlatRoofInfo flatRoofInfo = new FlatRoofInfo();
+
+        msgResult.setData(flatRoofInfo);
+        msgResult.setResult(true);
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="添加信息")
+    @PostMapping("add")
+    public MessageResult<FlatRoofInfo> add(@RequestBody FlatRoofInfo flatRoofInfo,@RequestAttribute String subject){
+        MessageResult<FlatRoofInfo> msgResult = new MessageResult<>();
+
+        try {
+            flatRoofInfo.setId(UUID.randomUUID().toString());
+			flatRoofInfo.setDelFlag(false);
+            flatRoofInfo.setCreateBy(subject);
+            flatRoofInfo.setCreateTime(new Date());
+
+            int affectCount = flatRoofInfoService.insert(flatRoofInfo);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(flatRoofInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="获取信息")
+    @GetMapping("edit/{id}")
+    public MessageResult<FlatRoofInfo> edit(@PathVariable("id") String id){
+        MessageResult<FlatRoofInfo> msgResult = new MessageResult<>();
+
+        try {
+            FlatRoofInfo flatRoofInfo = flatRoofInfoService.get(id);
+
+            if (flatRoofInfo != null) {
+                msgResult.setResult(true);
+                msgResult.setData(flatRoofInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库不存在该记录!");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="更新用户")
+    @PostMapping("update")
+    public MessageResult<FlatRoofInfo> update(@RequestBody FlatRoofInfo flatRoofInfo,@RequestAttribute String subject){
+        MessageResult<FlatRoofInfo> msgResult = new MessageResult<>();
+
+        try {
+		    flatRoofInfo.setUpdateBy(subject);
+            flatRoofInfo.setUpdateTime(new Date());
+		
+            int affectCount = flatRoofInfoService.update(flatRoofInfo);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(flatRoofInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库更新失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="删除用户")
+    @PostMapping("delete/{id}")
+    public MessageResult<FlatRoofInfo> delete(@PathVariable("id") String id,@RequestAttribute String subject){
+        MessageResult<FlatRoofInfo> msgResult = new MessageResult<>();
+
+        try {
+			
+			FlatRoofInfo flatRoofInfo = flatRoofInfoService.get(id);
+            flatRoofInfo.setDelFlag(true);
+            flatRoofInfo.setUpdateBy(subject);
+            flatRoofInfo.setUpdateTime(new Date());
+			
+			int affectCount = flatRoofInfoService.update(flatRoofInfo);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库删除失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
+    @ApiOperation(value="批量删除")
+    @PostMapping("batchDelete")
+    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList,@RequestAttribute String subject){
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+            int affectCount = 0;
+
+            for (String id : idList) {
+                FlatRoofInfo flatRoofInfo = flatRoofInfoService.get(id);
+                flatRoofInfo.setDelFlag(true);
+                flatRoofInfo.setUpdateBy(subject);
+                flatRoofInfo.setUpdateTime(new Date());
+
+                affectCount += flatRoofInfoService.update(flatRoofInfo);
+            }
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("删除失败");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="列表")
+    @RequestMapping(value = "pageList",method = RequestMethod.POST)
+    public MessageResult<Object> pageList(
+            String id,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+            @RequestParam(value = "exportFlag", defaultValue = "false") Boolean exportFlag,
+            HttpServletRequest request){
+        String subject = (String)request.getAttribute("subject");
+
+        //当前用户ID
+        System.out.println(subject);
+
+        MessageResult<Object> msgResult = new MessageResult<>();
+
+        try {
+
+            Map<String, Object> searchParams = new HashMap<>();
+
+            List<Sort> sortList = new ArrayList<>();
+            sortList.add(new Sort("create_time", "desc"));
+
+            if (StringUtils.isNotEmpty(id)) {
+                searchParams.put("id", "%" + id + "%");
+            }
+
+
+            Page<FlatRoofInfo> page = flatRoofInfoService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
+
+
+            if (exportFlag) {
+                List<FlatRoofInfo> flatRoofInfoList = page.getResult();
+                Integer total1 = 0;
+                BigDecimal total2 = BigDecimal.ZERO;
+                BigDecimal total3 = BigDecimal.ZERO;
+                BigDecimal total4 = BigDecimal.ZERO;
+                BigDecimal total5 = BigDecimal.ZERO;
+                for (FlatRoofInfo item : flatRoofInfoList) {
+                    total1 += item.getVehiclesNum();
+                    total2 = total2.add(item.getTonnage());
+                    total3 = total3.add(item.getAccountsReceivable());
+                    total4 = total4.add(item.getPaymentLabor());
+                    total5 = total5.add(item.getPaymentLongmen());
+
+                }
+                FlatRoofInfo flatRoofInfo = new FlatRoofInfo();
+                flatRoofInfo.setVehiclesNum(total1);
+                flatRoofInfo.setTonnage(total2);
+                flatRoofInfo.setAccountsReceivable(total3);
+                flatRoofInfo.setPaymentLabor(total4);
+                flatRoofInfo.setPaymentLongmen(total5);
+
+                flatRoofInfoList.add(flatRoofInfo);
+
+                String filePath = exportXls(flatRoofInfoList);
+                msgResult.setData(filePath);
+                msgResult.setResult(true);
+            } else {
+                Map<String, Object> dataMap = PojoUtils.pageWrapper(page);
+
+                msgResult.setResult(true);
+                msgResult.setData(dataMap);
+            }
+        }
+        catch (Exception ex) {
+            ex.printStackTrace();
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+
+        }
+
+        return msgResult;
+    }
+
+
+    private String exportXls(List<FlatRoofInfo> flatRoofInfoList) {
+        String downloadUrl = "";
+
+        Workbook workbook = new HSSFWorkbook();
+        Sheet sheet = workbook.createSheet();
+
+        //表头
+        Row rowTitle1 = sheet.createRow(0);
+
+        Row rowTitle2 = sheet.createRow(1);
+
+        String[] titles1 = new String[]{"时间", "车数", "吨数", "应收金额", "人工", ""};
+
+        String[] titles2 = new String[]{ "", "", "", "","收入", "龙门"};
+
+        HSSFCellStyle cellStyle = ((HSSFWorkbook) workbook).createCellStyle();
+        cellStyle.setAlignment(HorizontalAlignment.CENTER);
+        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+        for (int i = 0; i < titles1.length; i++) {
+            Cell cell = rowTitle1.createCell(i);
+            cell.setCellValue(titles1[i]);
+            cell.setCellStyle(cellStyle);
+        }
+
+        for (int i = 0; i < titles2.length; i++) {
+            Cell cell = rowTitle2.createCell(i);
+            cell.setCellValue(titles2[i]);
+            cell.setCellStyle(cellStyle);
+        }
+
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, 4, 5));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 3, 3));
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+
+        for (int i = 0; i < flatRoofInfoList.size(); i++) {
+            FlatRoofInfo flatRoofInfo = flatRoofInfoList.get(i);
+
+            Row row = sheet.createRow(i + 2);
+
+            int colIndex = 0;
+            String date = "";
+            if (flatRoofInfo.getDate() != null) {
+                date = sdf.format(flatRoofInfo.getDate());
+                row.createCell(colIndex++).setCellValue(date);
+            }
+            else{
+                row.createCell(colIndex++).setCellValue("合计");
+            }
+
+
+            Integer vehiclesNum=null;
+            if (flatRoofInfo.getVehiclesNum() != null) {
+                vehiclesNum = Integer.parseInt(flatRoofInfo.getVehiclesNum().toString());
+            }
+            row.createCell(colIndex++).setCellValue(vehiclesNum);
+
+            Double tonnage=null;
+            if (flatRoofInfo.getTonnage() != null) {
+                tonnage = Double.parseDouble(flatRoofInfo.getTonnage().toString());
+            }
+            row.createCell(colIndex++).setCellValue(tonnage);
+
+            Double accountsReceivable = null;
+            if (flatRoofInfo.getAccountsReceivable() != null) {
+                accountsReceivable = Double.parseDouble(flatRoofInfo.getAccountsReceivable().toString());
+            }
+            row.createCell(colIndex++).setCellValue(accountsReceivable);
+            Double paymentLabor = null;
+            if (flatRoofInfo.getPaymentLabor() != null) {
+                paymentLabor = Double.parseDouble(flatRoofInfo.getPaymentLabor().toString());
+            }
+            row.createCell(colIndex++).setCellValue(paymentLabor);
+            Double paymentLongmen = null;
+            if (flatRoofInfo.getPaymentLongmen() != null) {
+                paymentLongmen = Double.parseDouble(flatRoofInfo.getPaymentLongmen().toString());
+            }
+            row.createCell(colIndex++).setCellValue(paymentLongmen);
+
+        }
+
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+
+        try {
+            workbook.write(output);
+
+            byte[] buffer = output.toByteArray();
+            ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+
+            downloadUrl = OSSUtil.upload(ossConfig, "tradeReport", "分类统计平顶表" + sdf.format(new Date()) + ".xls", input);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+        }
+
+        return downloadUrl;
+    }
+}

+ 97 - 5
web/src/main/java/com/jpsoft/railroad/modules/base/controller/NetworkNoticeController.java

@@ -6,7 +6,13 @@ import com.jpsoft.railroad.modules.common.dto.Sort;
 import com.jpsoft.railroad.modules.common.dto.MessageResult;
 import com.jpsoft.railroad.modules.base.entity.NetworkNotice;
 import com.jpsoft.railroad.modules.base.service.NetworkNoticeService;
+import com.jpsoft.railroad.modules.sys.entity.User;
+import com.jpsoft.railroad.modules.sys.service.DataDictionaryService;
+import com.jpsoft.railroad.modules.sys.service.UserService;
 import io.swagger.annotations.ApiOperation;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -18,12 +24,18 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 
 @RestController
-@RequestMapping("/networkNotice")
+@RequestMapping("/base/networkNotice")
 public class NetworkNoticeController {
     private Logger logger = LoggerFactory.getLogger(getClass());
 
     @Autowired
     private NetworkNoticeService networkNoticeService;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private DataDictionaryService dataDictionaryService;
 	
 	
 	@ApiOperation(value="创建空记录")
@@ -50,6 +62,22 @@ public class NetworkNoticeController {
             networkNotice.setCreateBy(subject);
             networkNotice.setCreateTime(new Date());
 
+            JSONArray jsonArray = new JSONArray();
+
+            if (networkNotice.getUrlList() != null) {
+                for (Map<String, String> map : networkNotice.getUrlList()) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("name", map.get("name"));
+                    jsonObject.put("url", map.get("url"));
+                    jsonArray.add(jsonObject);
+                }
+            }
+
+            if (jsonArray.size() > 0) {
+                networkNotice.setUrl(jsonArray.toString());
+            }
+
+
             int affectCount = networkNoticeService.insert(networkNotice);
 
             if (affectCount > 0) {
@@ -79,6 +107,29 @@ public class NetworkNoticeController {
             NetworkNotice networkNotice = networkNoticeService.get(id);
 
             if (networkNotice != null) {
+                String url = networkNotice.getUrl();
+
+                List<Map> annexFileList = new ArrayList<>();
+
+                if (StringUtils.isNotEmpty(url)) {
+
+                    JSONArray jsonArray = JSONArray.fromObject(url);
+
+                    for (Object object : jsonArray) {
+                        Map map = new HashedMap();
+                        JSONObject jsonObject = JSONObject.fromObject(object);
+                        String fileName = jsonObject.get("name").toString();
+                        String urlAddress = jsonObject.get("url").toString();
+                        map.put("fileName", fileName);
+                        map.put("url", urlAddress);
+                        map.put("name", fileName);
+                        annexFileList.add(map);
+                    }
+                }
+
+                networkNotice.setUrlList(annexFileList);
+
+
                 msgResult.setResult(true);
                 msgResult.setData(networkNotice);
             } else {
@@ -104,6 +155,21 @@ public class NetworkNoticeController {
         try {
 		    networkNotice.setUpdateBy(subject);
             networkNotice.setUpdateTime(new Date());
+
+            JSONArray jsonArray = new JSONArray();
+
+            if (networkNotice.getUrlList() != null) {
+                for (Map<String, String> map : networkNotice.getUrlList()) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("name", map.get("name"));
+                    jsonObject.put("url", map.get("url"));
+                    jsonArray.add(jsonObject);
+                }
+            }
+
+            if (jsonArray.size() > 0) {
+                networkNotice.setUrl(jsonArray.toString());
+            }
 		
             int affectCount = networkNoticeService.update(networkNotice);
 
@@ -195,7 +261,7 @@ public class NetworkNoticeController {
     @ApiOperation(value="列表")
     @RequestMapping(value = "pageList",method = RequestMethod.POST)
     public MessageResult<Map> pageList(
-            String id,
+            String name,
             @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
             @RequestParam(value="pageSize",defaultValue="20") int pageSize,
             HttpServletRequest request){
@@ -209,15 +275,41 @@ public class NetworkNoticeController {
         Map<String,Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("id_","asc"));
+        sortList.add(new Sort("upload_time","desc"));
 
-        if (StringUtils.isNotEmpty(id)) {
-            searchParams.put("id","%" + id + "%");
+        if (StringUtils.isNotEmpty(name)) {
+            searchParams.put("name","%" + name + "%");
         }
 
 
         Page<NetworkNotice> page = networkNoticeService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
 
+        for (NetworkNotice networkNotice : page) {
+            String createBy = networkNotice.getCreateBy();
+
+            User user = userService.get(createBy);
+
+            if (user != null) {
+                networkNotice.setCreateByN(user.getRealName());
+            }
+
+            String url = networkNotice.getUrl();
+
+            if (StringUtils.isNotEmpty(url)) {
+                JSONArray jsonArray = JSONArray.fromObject(url);
+                if (jsonArray.size() > 0) {
+                    JSONObject jsonObject = JSONObject.fromObject(jsonArray.get(0));
+                    String tempAddress = jsonObject.getString("url");
+                    String urlName = jsonObject.getString("name");
+                    networkNotice.setUrl(tempAddress);
+                    networkNotice.setUrlName(urlName);
+                }
+
+            }
+
+            String typeN = dataDictionaryService.findNameByCatalogNameAndValue("文件类型",networkNotice.getType());
+            networkNotice.setTypeN(typeN);
+        }
 
         msgResult.setResult(true);
         msgResult.setData(PojoUtils.pageWrapper(page));

+ 75 - 1
web/src/main/java/com/jpsoft/railroad/modules/base/controller/NetworkNoticeRalationController.java

@@ -1,6 +1,11 @@
 package com.jpsoft.railroad.modules.base.controller;
 
 import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.base.dto.NetworkNoticeRalationDTO;
+import com.jpsoft.railroad.modules.base.entity.Organization;
+import com.jpsoft.railroad.modules.base.entity.RegUser;
+import com.jpsoft.railroad.modules.base.service.OrganizationService;
+import com.jpsoft.railroad.modules.base.service.RegUserService;
 import com.jpsoft.railroad.modules.common.utils.PojoUtils;
 import com.jpsoft.railroad.modules.common.dto.Sort;
 import com.jpsoft.railroad.modules.common.dto.MessageResult;
@@ -18,12 +23,18 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 
 @RestController
-@RequestMapping("/networkNoticeRalation")
+@RequestMapping("/base/networkNoticeRalation")
 public class NetworkNoticeRalationController {
     private Logger logger = LoggerFactory.getLogger(getClass());
 
     @Autowired
     private NetworkNoticeRalationService networkNoticeRalationService;
+
+    @Autowired
+    private OrganizationService organizationService;
+
+    @Autowired
+    private RegUserService regUserService;
 	
 	
 	@ApiOperation(value="创建空记录")
@@ -224,4 +235,67 @@ public class NetworkNoticeRalationController {
 
         return msgResult;
     }
+
+
+    @ApiOperation(value = "获取部门和人员信息")
+    @GetMapping("query/{id}")
+    public MessageResult<Map> query(@PathVariable("id") String id) {
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        try {
+            Map map = new HashMap();
+
+            List<Organization> orgList = organizationService.findAllListOrder();
+
+            List<RegUser> regUserList = regUserService.findAllListOrder();
+
+            List<NetworkNoticeRalation> orgRelationList = networkNoticeRalationService.findRelationByFileId(id, "1");
+
+            List<NetworkNoticeRalation> regUserRelationList = networkNoticeRalationService.findRelationByFileId(id, "2");
+
+
+            map.put("orgList",orgList);
+            map.put("regUserList",regUserList);
+            map.put("orgRelationList",orgRelationList);
+            map.put("regUserRelationList",regUserRelationList);
+
+            msgResult.setResult(true);
+            msgResult.setData(map);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
+
+    @ApiOperation(value = "更新相关联部门或者人员")
+    @PostMapping("relationItem")
+    public MessageResult<Integer> relationItem(@RequestBody NetworkNoticeRalationDTO dto, @RequestAttribute String subject) {
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+
+            int affectCount = networkNoticeRalationService.relationItem(dto,subject);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库更新失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
 }

+ 185 - 48
web/src/main/java/com/jpsoft/railroad/modules/base/controller/OaFileInfoController.java

@@ -1,12 +1,23 @@
 package com.jpsoft.railroad.modules.base.controller;
 
 import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.base.entity.OaFileRegUserInfo;
+import com.jpsoft.railroad.modules.base.entity.Organization;
+import com.jpsoft.railroad.modules.base.entity.RegUser;
+import com.jpsoft.railroad.modules.base.service.OaFileRegUserInfoService;
+import com.jpsoft.railroad.modules.base.service.OrganizationService;
+import com.jpsoft.railroad.modules.base.service.RegUserService;
 import com.jpsoft.railroad.modules.common.utils.PojoUtils;
 import com.jpsoft.railroad.modules.common.dto.Sort;
 import com.jpsoft.railroad.modules.common.dto.MessageResult;
 import com.jpsoft.railroad.modules.base.entity.OaFileInfo;
 import com.jpsoft.railroad.modules.base.service.OaFileInfoService;
+import com.jpsoft.railroad.modules.sys.entity.User;
+import com.jpsoft.railroad.modules.sys.service.UserService;
 import io.swagger.annotations.ApiOperation;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -24,11 +35,23 @@ public class OaFileInfoController {
 
     @Autowired
     private OaFileInfoService oaFileInfoService;
-	
-	
-	@ApiOperation(value="创建空记录")
+
+    @Autowired
+    private OaFileRegUserInfoService oaFileRegUserInfoService;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private RegUserService regUserService;
+
+    @Autowired
+    private OrganizationService organizationService;
+
+
+    @ApiOperation(value = "创建空记录")
     @GetMapping("create")
-    public MessageResult<OaFileInfo> create(){
+    public MessageResult<OaFileInfo> create() {
         MessageResult<OaFileInfo> msgResult = new MessageResult<>();
 
         OaFileInfo oaFileInfo = new OaFileInfo();
@@ -39,17 +62,33 @@ public class OaFileInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="添加信息")
+    @ApiOperation(value = "添加信息")
     @PostMapping("add")
-    public MessageResult<OaFileInfo> add(@RequestBody OaFileInfo oaFileInfo,@RequestAttribute String subject){
+    public MessageResult<OaFileInfo> add(@RequestBody OaFileInfo oaFileInfo, @RequestAttribute String subject) {
         MessageResult<OaFileInfo> msgResult = new MessageResult<>();
 
         try {
             oaFileInfo.setId(UUID.randomUUID().toString());
-			oaFileInfo.setDelFlag(false);
+            oaFileInfo.setDelFlag(false);
             oaFileInfo.setCreateBy(subject);
             oaFileInfo.setCreateTime(new Date());
 
+            JSONArray jsonArray = new JSONArray();
+
+            if (oaFileInfo.getUrlList() != null) {
+                for (Map<String, String> map : oaFileInfo.getUrlList()) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("name", map.get("name"));
+                    jsonObject.put("url", map.get("url"));
+                    jsonArray.add(jsonObject);
+                }
+            }
+
+            if (jsonArray.size() > 0) {
+                oaFileInfo.setUrl(jsonArray.toString());
+            }
+
+
             int affectCount = oaFileInfoService.insert(oaFileInfo);
 
             if (affectCount > 0) {
@@ -59,9 +98,8 @@ public class OaFileInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库添加失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -70,24 +108,46 @@ public class OaFileInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="获取信息")
+    @ApiOperation(value = "获取信息")
     @GetMapping("edit/{id}")
-    public MessageResult<OaFileInfo> edit(@PathVariable("id") String id){
+    public MessageResult<OaFileInfo> edit(@PathVariable("id") String id) {
         MessageResult<OaFileInfo> msgResult = new MessageResult<>();
 
         try {
             OaFileInfo oaFileInfo = oaFileInfoService.get(id);
 
             if (oaFileInfo != null) {
+                String url = oaFileInfo.getUrl();
+
+                List<Map> annexFileList = new ArrayList<>();
+
+                if (StringUtils.isNotEmpty(url)) {
+
+                    JSONArray jsonArray = JSONArray.fromObject(url);
+
+                    for (Object object : jsonArray) {
+                        Map map = new HashedMap();
+                        JSONObject jsonObject = JSONObject.fromObject(object);
+                        String fileName = jsonObject.get("name").toString();
+                        String urlAddress = jsonObject.get("url").toString();
+                        map.put("fileName", fileName);
+                        map.put("url", urlAddress);
+                        map.put("name", fileName);
+                        annexFileList.add(map);
+                    }
+                }
+
+                oaFileInfo.setUrlList(annexFileList);
+
+
                 msgResult.setResult(true);
                 msgResult.setData(oaFileInfo);
             } else {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库不存在该记录!");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -96,15 +156,31 @@ public class OaFileInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="更新用户")
+    @ApiOperation(value = "更新用户")
     @PostMapping("update")
-    public MessageResult<OaFileInfo> update(@RequestBody OaFileInfo oaFileInfo,@RequestAttribute String subject){
+    public MessageResult<OaFileInfo> update(@RequestBody OaFileInfo oaFileInfo, @RequestAttribute String subject) {
         MessageResult<OaFileInfo> msgResult = new MessageResult<>();
 
         try {
-		    oaFileInfo.setUpdateBy(subject);
+            oaFileInfo.setUpdateBy(subject);
             oaFileInfo.setUpdateTime(new Date());
-		
+
+
+            JSONArray jsonArray = new JSONArray();
+
+            if (oaFileInfo.getUrlList() != null) {
+                for (Map<String, String> map : oaFileInfo.getUrlList()) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("name", map.get("name"));
+                    jsonObject.put("url", map.get("url"));
+                    jsonArray.add(jsonObject);
+                }
+            }
+
+            if (jsonArray.size() > 0) {
+                oaFileInfo.setUrl(jsonArray.toString());
+            }
+
             int affectCount = oaFileInfoService.update(oaFileInfo);
 
             if (affectCount > 0) {
@@ -114,9 +190,8 @@ public class OaFileInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库更新失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -125,19 +200,19 @@ public class OaFileInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="删除用户")
+    @ApiOperation(value = "删除用户")
     @PostMapping("delete/{id}")
-    public MessageResult<OaFileInfo> delete(@PathVariable("id") String id,@RequestAttribute String subject){
+    public MessageResult<OaFileInfo> delete(@PathVariable("id") String id, @RequestAttribute String subject) {
         MessageResult<OaFileInfo> msgResult = new MessageResult<>();
 
         try {
-			
-			OaFileInfo oaFileInfo = oaFileInfoService.get(id);
+
+            OaFileInfo oaFileInfo = oaFileInfoService.get(id);
             oaFileInfo.setDelFlag(true);
             oaFileInfo.setUpdateBy(subject);
             oaFileInfo.setUpdateTime(new Date());
-			
-			int affectCount = oaFileInfoService.update(oaFileInfo);
+
+            int affectCount = oaFileInfoService.update(oaFileInfo);
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
@@ -145,9 +220,8 @@ public class OaFileInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库删除失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -157,9 +231,9 @@ public class OaFileInfoController {
     }
 
 
-    @ApiOperation(value="批量删除")
+    @ApiOperation(value = "批量删除")
     @PostMapping("batchDelete")
-    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList,@RequestAttribute String subject){
+    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList, @RequestAttribute String subject) {
         MessageResult<Integer> msgResult = new MessageResult<>();
 
         try {
@@ -181,9 +255,8 @@ public class OaFileInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("删除失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -192,31 +265,95 @@ public class OaFileInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="列表")
-    @RequestMapping(value = "pageList",method = RequestMethod.POST)
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
-            String id,
-            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
-            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
-            HttpServletRequest request){
-        String subject = (String)request.getAttribute("subject");
+            String name,
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
+            HttpServletRequest request) {
+        String subject = (String) request.getAttribute("subject");
 
         //当前用户ID
         System.out.println(subject);
 
+        User curUser = userService.get(subject);
+
         MessageResult<Map> msgResult = new MessageResult<>();
 
-        Map<String,Object> searchParams = new HashMap<>();
+        Map<String, Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time","desc"));
+        sortList.add(new Sort("upload_time", "desc"));
 
-        if (StringUtils.isNotEmpty(id)) {
-            searchParams.put("id","%" + id + "%");
+        if (StringUtils.isNotEmpty(name)) {
+            searchParams.put("name", "%" + name + "%");
         }
 
+        if (StringUtils.isNotEmpty(subject)) {
+            searchParams.put("createBy", subject);
+
+            if (curUser != null) {
+                if (StringUtils.isNotEmpty(curUser.getPhone())) {
+                    RegUser regUser = regUserService.findByPhone(curUser.getPhone());
+                    if (regUser != null) {
+                        //个人查看文件
+                        List<OaFileRegUserInfo> oaFileRegUserInfoList = oaFileRegUserInfoService.findRelationByRegId(regUser.getId(), "2");
+                        searchParams.put("oaFileRegUserInfoList", oaFileRegUserInfoList);
+
+                        //部门查看文件
+                        List<String> orgIdList = new ArrayList<>();
+                        String orgId = regUser.getOrgId();
+                        orgIdList.add(orgId);
+                        Organization organization = organizationService.get(orgId);
+                        while (StringUtils.isNotEmpty(organization.getParentId())) {
+                            Organization parentItem = organizationService.get(organization.getParentId());
+                            if (parentItem != null) {
+                                orgIdList.add(parentItem.getId());
+                            }
+                            organization = parentItem;
+                        }
+                        List<OaFileRegUserInfo> oaFileOrgList = oaFileRegUserInfoService.findRelationByOrgs(orgIdList, "1");
+                        if (oaFileOrgList.size() > 0) {
+                            searchParams.put("oaFileOrgList", oaFileOrgList);
+                        }
+                    }
+                }
+            }
+        }
+
+
+        Page<OaFileInfo> page = oaFileInfoService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
+
+        for (OaFileInfo oaFileInfo : page) {
+            String createBy = oaFileInfo.getCreateBy();
+
+            User user = userService.get(createBy);
+
+            if (user != null) {
+                oaFileInfo.setCreateByN(user.getRealName());
+            }
 
-        Page<OaFileInfo> page = oaFileInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+            String url = oaFileInfo.getUrl();
+
+            if (StringUtils.isNotEmpty(url)) {
+                JSONArray jsonArray = JSONArray.fromObject(url);
+                if (jsonArray.size() > 0) {
+                    JSONObject jsonObject = JSONObject.fromObject(jsonArray.get(0));
+                    String tempAddress = jsonObject.getString("url");
+                    String urlName = jsonObject.getString("name");
+                    oaFileInfo.setUrl(tempAddress);
+                    oaFileInfo.setUrlName(urlName);
+                }
+
+            }
+
+            boolean isSelf = false;
+            if (oaFileInfo.getCreateBy().equals(subject)) {
+                isSelf = true;
+            }
+            oaFileInfo.setIsSelf(isSelf);
+        }
 
 
         msgResult.setResult(true);

+ 134 - 46
web/src/main/java/com/jpsoft/railroad/modules/base/controller/OaFileRegUserInfoController.java

@@ -1,6 +1,12 @@
 package com.jpsoft.railroad.modules.base.controller;
 
 import com.github.pagehelper.Page;
+import com.jpsoft.railroad.modules.base.dto.OaFileRelationDTO;
+import com.jpsoft.railroad.modules.base.dto.OrgDTO;
+import com.jpsoft.railroad.modules.base.entity.Organization;
+import com.jpsoft.railroad.modules.base.entity.RegUser;
+import com.jpsoft.railroad.modules.base.service.OrganizationService;
+import com.jpsoft.railroad.modules.base.service.RegUserService;
 import com.jpsoft.railroad.modules.common.utils.PojoUtils;
 import com.jpsoft.railroad.modules.common.dto.Sort;
 import com.jpsoft.railroad.modules.common.dto.MessageResult;
@@ -24,11 +30,16 @@ public class OaFileRegUserInfoController {
 
     @Autowired
     private OaFileRegUserInfoService oaFileRegUserInfoService;
-	
-	
-	@ApiOperation(value="创建空记录")
+
+    @Autowired
+    private OrganizationService organizationService;
+
+    @Autowired
+    private RegUserService regUserService;
+
+    @ApiOperation(value = "创建空记录")
     @GetMapping("create")
-    public MessageResult<OaFileRegUserInfo> create(){
+    public MessageResult<OaFileRegUserInfo> create() {
         MessageResult<OaFileRegUserInfo> msgResult = new MessageResult<>();
 
         OaFileRegUserInfo oaFileRegUserInfo = new OaFileRegUserInfo();
@@ -39,14 +50,14 @@ public class OaFileRegUserInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="添加信息")
+    @ApiOperation(value = "添加信息")
     @PostMapping("add")
-    public MessageResult<OaFileRegUserInfo> add(@RequestBody OaFileRegUserInfo oaFileRegUserInfo,@RequestAttribute String subject){
+    public MessageResult<OaFileRegUserInfo> add(@RequestBody OaFileRegUserInfo oaFileRegUserInfo, @RequestAttribute String subject) {
         MessageResult<OaFileRegUserInfo> msgResult = new MessageResult<>();
 
         try {
             oaFileRegUserInfo.setId(UUID.randomUUID().toString());
-			oaFileRegUserInfo.setDelFlag(false);
+            oaFileRegUserInfo.setDelFlag(false);
             oaFileRegUserInfo.setCreateBy(subject);
             oaFileRegUserInfo.setCreateTime(new Date());
 
@@ -59,9 +70,8 @@ public class OaFileRegUserInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库添加失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -70,9 +80,9 @@ public class OaFileRegUserInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="获取信息")
+    @ApiOperation(value = "获取信息")
     @GetMapping("edit/{id}")
-    public MessageResult<OaFileRegUserInfo> edit(@PathVariable("id") String id){
+    public MessageResult<OaFileRegUserInfo> edit(@PathVariable("id") String id) {
         MessageResult<OaFileRegUserInfo> msgResult = new MessageResult<>();
 
         try {
@@ -85,9 +95,8 @@ public class OaFileRegUserInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库不存在该记录!");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -96,15 +105,15 @@ public class OaFileRegUserInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="更新用户")
+    @ApiOperation(value = "更新用户")
     @PostMapping("update")
-    public MessageResult<OaFileRegUserInfo> update(@RequestBody OaFileRegUserInfo oaFileRegUserInfo,@RequestAttribute String subject){
+    public MessageResult<OaFileRegUserInfo> update(@RequestBody OaFileRegUserInfo oaFileRegUserInfo, @RequestAttribute String subject) {
         MessageResult<OaFileRegUserInfo> msgResult = new MessageResult<>();
 
         try {
-		    oaFileRegUserInfo.setUpdateBy(subject);
+            oaFileRegUserInfo.setUpdateBy(subject);
             oaFileRegUserInfo.setUpdateTime(new Date());
-		
+
             int affectCount = oaFileRegUserInfoService.update(oaFileRegUserInfo);
 
             if (affectCount > 0) {
@@ -114,9 +123,8 @@ public class OaFileRegUserInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库更新失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -125,19 +133,19 @@ public class OaFileRegUserInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="删除用户")
+    @ApiOperation(value = "删除用户")
     @PostMapping("delete/{id}")
-    public MessageResult<OaFileRegUserInfo> delete(@PathVariable("id") String id,@RequestAttribute String subject){
+    public MessageResult<OaFileRegUserInfo> delete(@PathVariable("id") String id, @RequestAttribute String subject) {
         MessageResult<OaFileRegUserInfo> msgResult = new MessageResult<>();
 
         try {
-			
-			OaFileRegUserInfo oaFileRegUserInfo = oaFileRegUserInfoService.get(id);
+
+            OaFileRegUserInfo oaFileRegUserInfo = oaFileRegUserInfoService.get(id);
             oaFileRegUserInfo.setDelFlag(true);
             oaFileRegUserInfo.setUpdateBy(subject);
             oaFileRegUserInfo.setUpdateTime(new Date());
-			
-			int affectCount = oaFileRegUserInfoService.update(oaFileRegUserInfo);
+
+            int affectCount = oaFileRegUserInfoService.update(oaFileRegUserInfo);
 
             if (affectCount > 0) {
                 msgResult.setResult(true);
@@ -145,9 +153,8 @@ public class OaFileRegUserInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("数据库删除失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -157,9 +164,9 @@ public class OaFileRegUserInfoController {
     }
 
 
-    @ApiOperation(value="批量删除")
+    @ApiOperation(value = "批量删除")
     @PostMapping("batchDelete")
-    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList,@RequestAttribute String subject){
+    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList, @RequestAttribute String subject) {
         MessageResult<Integer> msgResult = new MessageResult<>();
 
         try {
@@ -181,9 +188,8 @@ public class OaFileRegUserInfoController {
                 msgResult.setResult(false);
                 msgResult.setMessage("删除失败");
             }
-        }
-        catch(Exception ex){
-            logger.error(ex.getMessage(),ex);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
 
             msgResult.setResult(false);
             msgResult.setMessage(ex.getMessage());
@@ -192,31 +198,31 @@ public class OaFileRegUserInfoController {
         return msgResult;
     }
 
-    @ApiOperation(value="列表")
-    @RequestMapping(value = "pageList",method = RequestMethod.POST)
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "pageList", method = RequestMethod.POST)
     public MessageResult<Map> pageList(
             String id,
-            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
-            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
-            HttpServletRequest request){
-        String subject = (String)request.getAttribute("subject");
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
+            HttpServletRequest request) {
+        String subject = (String) request.getAttribute("subject");
 
         //当前用户ID
         System.out.println(subject);
 
         MessageResult<Map> msgResult = new MessageResult<>();
 
-        Map<String,Object> searchParams = new HashMap<>();
+        Map<String, Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("create_time","desc"));
+        sortList.add(new Sort("create_time", "desc"));
 
         if (StringUtils.isNotEmpty(id)) {
-            searchParams.put("id","%" + id + "%");
+            searchParams.put("id", "%" + id + "%");
         }
 
 
-        Page<OaFileRegUserInfo> page = oaFileRegUserInfoService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+        Page<OaFileRegUserInfo> page = oaFileRegUserInfoService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
 
 
         msgResult.setResult(true);
@@ -224,4 +230,86 @@ public class OaFileRegUserInfoController {
 
         return msgResult;
     }
+
+    @ApiOperation(value = "获取部门和人员信息")
+    @GetMapping("query/{id}")
+    public MessageResult<Map> query(@PathVariable("id") String id) {
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        try {
+            Map map = new HashMap();
+
+            List<Organization> orgList = organizationService.findAllListOrder();
+
+            List<RegUser> regUserList = regUserService.findAllListOrder();
+
+            List<OaFileRegUserInfo> orgRelationList = oaFileRegUserInfoService.findRelationByFileId(id, "1");
+
+            List<OaFileRegUserInfo> regUserRelationList = oaFileRegUserInfoService.findRelationByFileId(id, "2");
+
+
+            map.put("orgList",orgList);
+            map.put("regUserList",regUserList);
+            map.put("orgRelationList",orgRelationList);
+            map.put("regUserRelationList",regUserRelationList);
+
+            msgResult.setResult(true);
+            msgResult.setData(map);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    //构建树形结构
+    private List<Map> getChildrenList(String parentId) {
+        List<Organization> organizationList = organizationService.findByParent(parentId);
+        List<Map> mapList = new ArrayList<>();
+        for (Organization organization : organizationList) {
+            Map map = new HashMap();
+            map.put("pid", organization.getParentId());
+            map.put("id", organization.getId());
+            map.put("label", organization.getName());
+
+            List<Map> children = getChildrenList(organization.getId());
+            map.put("children", children);
+
+            mapList.add(map);
+        }
+
+        return mapList;
+    }
+
+
+
+    @ApiOperation(value = "更新相关联部门或者人员")
+    @PostMapping("relationItem")
+    public MessageResult<Integer> relationItem(@RequestBody OaFileRelationDTO dto, @RequestAttribute String subject) {
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+
+            int affectCount = oaFileRegUserInfoService.relationItem(dto,subject);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库更新失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
 }

+ 1 - 0
web/src/main/java/com/jpsoft/railroad/modules/base/controller/RegUserController.java

@@ -234,6 +234,7 @@ public class RegUserController {
 
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("create_time", "asc"));
+        sortList.add(new Sort("id_", "asc"));
 
         if (StringUtils.isNotEmpty(name)) {
             searchParams.put("name", "%" + name + "%");

+ 404 - 0
web/src/main/java/com/jpsoft/railroad/modules/base/controller/TradeReportController.java

@@ -0,0 +1,404 @@
+package com.jpsoft.railroad.modules.base.controller;
+
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.config.OSSConfig;
+import com.jpsoft.railroad.modules.common.utils.OSSUtil;
+import com.jpsoft.railroad.modules.common.utils.PojoUtils;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+import com.jpsoft.railroad.modules.common.dto.MessageResult;
+import com.jpsoft.railroad.modules.base.entity.TradeReport;
+import com.jpsoft.railroad.modules.base.service.TradeReportService;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+@RequestMapping("/base/tradeReport")
+public class TradeReportController {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private TradeReportService tradeReportService;
+
+    @Autowired
+    private OSSConfig ossConfig;
+
+
+    @ApiOperation(value = "创建空记录")
+    @GetMapping("create")
+    public MessageResult<TradeReport> create() {
+        MessageResult<TradeReport> msgResult = new MessageResult<>();
+
+        TradeReport tradeReport = new TradeReport();
+
+        msgResult.setData(tradeReport);
+        msgResult.setResult(true);
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "添加信息")
+    @PostMapping("add")
+    public MessageResult<TradeReport> add(@RequestBody TradeReport tradeReport, @RequestAttribute String subject) {
+        MessageResult<TradeReport> msgResult = new MessageResult<>();
+
+        try {
+            tradeReport.setId(UUID.randomUUID().toString());
+            tradeReport.setDelFlag(false);
+            tradeReport.setCreateBy(subject);
+            tradeReport.setCreateTime(new Date());
+
+            int affectCount = tradeReportService.insert(tradeReport);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(tradeReport);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "获取信息")
+    @GetMapping("edit/{id}")
+    public MessageResult<TradeReport> edit(@PathVariable("id") String id) {
+        MessageResult<TradeReport> msgResult = new MessageResult<>();
+
+        try {
+            TradeReport tradeReport = tradeReportService.get(id);
+
+            if (tradeReport != null) {
+                msgResult.setResult(true);
+                msgResult.setData(tradeReport);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库不存在该记录!");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "更新用户")
+    @PostMapping("update")
+    public MessageResult<TradeReport> update(@RequestBody TradeReport tradeReport, @RequestAttribute String subject) {
+        MessageResult<TradeReport> msgResult = new MessageResult<>();
+
+        try {
+            tradeReport.setUpdateBy(subject);
+            tradeReport.setUpdateTime(new Date());
+
+            int affectCount = tradeReportService.update(tradeReport);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(tradeReport);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库更新失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "删除用户")
+    @PostMapping("delete/{id}")
+    public MessageResult<TradeReport> delete(@PathVariable("id") String id, @RequestAttribute String subject) {
+        MessageResult<TradeReport> msgResult = new MessageResult<>();
+
+        try {
+
+            TradeReport tradeReport = tradeReportService.get(id);
+            tradeReport.setDelFlag(true);
+            tradeReport.setUpdateBy(subject);
+            tradeReport.setUpdateTime(new Date());
+
+            int affectCount = tradeReportService.update(tradeReport);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库删除失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
+    @ApiOperation(value = "批量删除")
+    @PostMapping("batchDelete")
+    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList, @RequestAttribute String subject) {
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+            int affectCount = 0;
+
+            for (String id : idList) {
+                TradeReport tradeReport = tradeReportService.get(id);
+                tradeReport.setDelFlag(true);
+                tradeReport.setUpdateBy(subject);
+                tradeReport.setUpdateTime(new Date());
+
+                affectCount += tradeReportService.update(tradeReport);
+            }
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("删除失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "pageList", method = RequestMethod.POST)
+    public MessageResult<Object> pageList(
+            String id,
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
+            @RequestParam(value = "exportFlag", defaultValue = "false") Boolean exportFlag,
+            HttpServletRequest request) {
+        String subject = (String) request.getAttribute("subject");
+
+        //当前用户ID
+        System.out.println(subject);
+
+        MessageResult<Object> msgResult = new MessageResult<>();
+
+        try {
+
+            Map<String, Object> searchParams = new HashMap<>();
+
+            List<Sort> sortList = new ArrayList<>();
+            sortList.add(new Sort("date_", "asc"));
+
+            if (StringUtils.isNotEmpty(id)) {
+                searchParams.put("id", "%" + id + "%");
+            }
+
+
+            Page<TradeReport> page = tradeReportService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
+
+
+            if (exportFlag) {
+                List<TradeReport> tradeReportList = page.getResult();
+                BigDecimal total1 = BigDecimal.ZERO;
+                BigDecimal total2 = BigDecimal.ZERO;
+                BigDecimal total3 = BigDecimal.ZERO;
+                BigDecimal total4 = BigDecimal.ZERO;
+                BigDecimal total5 = BigDecimal.ZERO;
+                BigDecimal total6 = BigDecimal.ZERO;
+                BigDecimal total7 = BigDecimal.ZERO;
+                BigDecimal total8 = BigDecimal.ZERO;
+                for (TradeReport item : tradeReportList) {
+                    total1 = total1.add(item.getTonnage());
+                    total2 = total2.add(item.getReceivable());
+                    total3 = total3.add(item.getActualReceived());
+                    total4 = total4.add(item.getUnpaid());
+                    total5 = total5.add(item.getAccountsPayable());
+                    total6 = total6.add(item.getActualPayment());
+                    total7 = total7.add(item.getUnpaidPayments());
+                    total8 = total8.add(item.getProfit());
+                }
+                TradeReport tradeReport = new TradeReport();
+                tradeReport.setUpstreamTraders("合计");
+                tradeReport.setTonnage(total1);
+                tradeReport.setReceivable(total2);
+                tradeReport.setActualReceived(total3);
+                tradeReport.setUnpaid(total4);
+                tradeReport.setAccountsPayable(total5);
+                tradeReport.setActualPayment(total6);
+                tradeReport.setUnpaidPayments(total7);
+                tradeReport.setProfit(total8);
+
+                tradeReportList.add(tradeReport);
+
+                String filePath = exportXls(tradeReportList);
+                msgResult.setData(filePath);
+                msgResult.setResult(true);
+            } else {
+                Map<String, Object> dataMap = PojoUtils.pageWrapper(page);
+
+                msgResult.setResult(true);
+                msgResult.setData(dataMap);
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+
+        }
+
+        return msgResult;
+    }
+
+
+    private String exportXls(List<TradeReport> tradeReportList) {
+        String downloadUrl = "";
+
+        Workbook workbook = new HSSFWorkbook();
+        Sheet sheet = workbook.createSheet();
+
+        //表头
+        Row rowTitle1 = sheet.createRow(0);
+
+        Row rowTitle2 = sheet.createRow(1);
+
+        String[] titles1 = new String[]{"日期", "贸易商", "", "品名", "吨位", "贸易额(万元)", "", "", "", "", "", "利润", "备注"};
+
+        String[] titles2 = new String[]{"", "上游", "下游", "", "", "应收",
+                "实收", "未收", "应付", "实付", "未付"};
+
+        HSSFCellStyle cellStyle = ((HSSFWorkbook) workbook).createCellStyle();
+        cellStyle.setAlignment(HorizontalAlignment.CENTER);
+        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+        for (int i = 0; i < titles1.length; i++) {
+            Cell cell = rowTitle1.createCell(i);
+            cell.setCellValue(titles1[i]);
+            cell.setCellStyle(cellStyle);
+        }
+
+        for (int i = 0; i < titles2.length; i++) {
+            Cell cell = rowTitle2.createCell(i);
+            cell.setCellValue(titles2[i]);
+            cell.setCellStyle(cellStyle);
+        }
+
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, 1, 2));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 3, 3));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 4, 4));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 11, 11));
+        sheet.addMergedRegion(new CellRangeAddress(0, 1, 12, 12));
+        sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 10));
+
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+
+        for (int i = 0; i < tradeReportList.size(); i++) {
+            TradeReport tradeReport = tradeReportList.get(i);
+
+            Row row = sheet.createRow(i + 2);
+
+            int colIndex = 0;
+            String date = "";
+            if (tradeReport.getDate() != null) {
+                date = sdf.format(tradeReport.getDate());
+            }
+            row.createCell(colIndex++).setCellValue(date);
+            row.createCell(colIndex++).setCellValue(tradeReport.getUpstreamTraders());
+            row.createCell(colIndex++).setCellValue(tradeReport.getDownstreamTraders());
+            row.createCell(colIndex++).setCellValue(tradeReport.getProductName());
+            Double tonnage=null;
+            if (tradeReport.getTonnage() != null) {
+                tonnage = Double.parseDouble(tradeReport.getTonnage().toString());
+            }
+            row.createCell(colIndex++).setCellValue(tonnage);
+            Double receivable = null;
+            if (tradeReport.getReceivable() != null) {
+                receivable = Double.parseDouble(tradeReport.getReceivable().toString());
+            }
+            row.createCell(colIndex++).setCellValue(receivable);
+            Double actualReceived = null;
+            if (tradeReport.getActualReceived() != null) {
+                actualReceived = Double.parseDouble(tradeReport.getActualReceived().toString());
+            }
+            row.createCell(colIndex++).setCellValue(actualReceived);
+            Double unpaid = null;
+            if (tradeReport.getUnpaid() != null) {
+                unpaid = Double.parseDouble(tradeReport.getUnpaid().toString());
+            }
+            row.createCell(colIndex++).setCellValue(unpaid);
+            Double accountsPayable = null;
+            if (tradeReport.getAccountsPayable() != null) {
+                accountsPayable = Double.parseDouble(tradeReport.getAccountsPayable().toString());
+            }
+            row.createCell(colIndex++).setCellValue(accountsPayable);
+
+            Double actualPayment = null;
+            if (tradeReport.getActualPayment() != null) {
+                actualPayment = Double.parseDouble(tradeReport.getActualPayment().toString());
+            }
+            row.createCell(colIndex++).setCellValue(actualPayment);
+            Double unpaidPayments = null;
+            if (tradeReport.getUnpaidPayments() != null) {
+                unpaidPayments = Double.parseDouble(tradeReport.getUnpaidPayments().toString());
+            }
+            row.createCell(colIndex++).setCellValue(unpaidPayments);
+            Double profit = null;
+            if (tradeReport.getProfit() != null) {
+                profit = Double.parseDouble(tradeReport.getProfit().toString());
+            }
+            row.createCell(colIndex++).setCellValue(profit);
+            row.createCell(colIndex++).setCellValue(tradeReport.getBak());
+        }
+
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+
+        try {
+            workbook.write(output);
+
+            byte[] buffer = output.toByteArray();
+            ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+
+            downloadUrl = OSSUtil.upload(ossConfig, "tradeReport", "分类统计贸易表" + sdf.format(new Date()) + ".xls", input);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+        }
+
+        return downloadUrl;
+    }
+}

+ 364 - 0
web/src/main/java/com/jpsoft/railroad/modules/base/controller/TransportInfoController.java

@@ -0,0 +1,364 @@
+package com.jpsoft.railroad.modules.base.controller;
+
+import com.github.pagehelper.Page;
+import com.jpsoft.railroad.config.OSSConfig;
+import com.jpsoft.railroad.modules.common.utils.OSSUtil;
+import com.jpsoft.railroad.modules.common.utils.PojoUtils;
+import com.jpsoft.railroad.modules.common.dto.Sort;
+import com.jpsoft.railroad.modules.common.dto.MessageResult;
+import com.jpsoft.railroad.modules.base.entity.TransportInfo;
+import com.jpsoft.railroad.modules.base.service.TransportInfoService;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@RestController
+@RequestMapping("/base/transportInfo")
+public class TransportInfoController {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private TransportInfoService transportInfoService;
+
+    @Autowired
+    private OSSConfig ossConfig;
+
+
+    @ApiOperation(value = "创建空记录")
+    @GetMapping("create")
+    public MessageResult<TransportInfo> create() {
+        MessageResult<TransportInfo> msgResult = new MessageResult<>();
+
+        TransportInfo transportInfo = new TransportInfo();
+
+        msgResult.setData(transportInfo);
+        msgResult.setResult(true);
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "添加信息")
+    @PostMapping("add")
+    public MessageResult<TransportInfo> add(@RequestBody TransportInfo transportInfo, @RequestAttribute String subject) {
+        MessageResult<TransportInfo> msgResult = new MessageResult<>();
+
+        try {
+            transportInfo.setId(UUID.randomUUID().toString());
+            transportInfo.setDelFlag(false);
+            transportInfo.setCreateBy(subject);
+            transportInfo.setCreateTime(new Date());
+
+            TransportInfo lastItem = transportInfoService.findLastIndex();
+            if (lastItem == null) {
+                transportInfo.setIndex(1);
+            } else {
+                transportInfo.setIndex(lastItem.getIndex() + 1);
+            }
+
+            int affectCount = transportInfoService.insert(transportInfo);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(transportInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库添加失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "获取信息")
+    @GetMapping("edit/{id}")
+    public MessageResult<TransportInfo> edit(@PathVariable("id") String id) {
+        MessageResult<TransportInfo> msgResult = new MessageResult<>();
+
+        try {
+            TransportInfo transportInfo = transportInfoService.get(id);
+
+            if (transportInfo != null) {
+                msgResult.setResult(true);
+                msgResult.setData(transportInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库不存在该记录!");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "更新用户")
+    @PostMapping("update")
+    public MessageResult<TransportInfo> update(@RequestBody TransportInfo transportInfo, @RequestAttribute String subject) {
+        MessageResult<TransportInfo> msgResult = new MessageResult<>();
+
+        try {
+            transportInfo.setUpdateBy(subject);
+            transportInfo.setUpdateTime(new Date());
+
+            int affectCount = transportInfoService.update(transportInfo);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(transportInfo);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库更新失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "删除用户")
+    @PostMapping("delete/{id}")
+    public MessageResult<TransportInfo> delete(@PathVariable("id") String id, @RequestAttribute String subject) {
+        MessageResult<TransportInfo> msgResult = new MessageResult<>();
+
+        try {
+
+            TransportInfo transportInfo = transportInfoService.get(id);
+            transportInfo.setDelFlag(true);
+            transportInfo.setUpdateBy(subject);
+            transportInfo.setUpdateTime(new Date());
+
+            int affectCount = transportInfoService.update(transportInfo);
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库删除失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+
+    @ApiOperation(value = "批量删除")
+    @PostMapping("batchDelete")
+    public MessageResult<Integer> batchDelete(@RequestBody List<String> idList, @RequestAttribute String subject) {
+        MessageResult<Integer> msgResult = new MessageResult<>();
+
+        try {
+            int affectCount = 0;
+
+            for (String id : idList) {
+                TransportInfo transportInfo = transportInfoService.get(id);
+                transportInfo.setDelFlag(true);
+                transportInfo.setUpdateBy(subject);
+                transportInfo.setUpdateTime(new Date());
+
+                affectCount += transportInfoService.update(transportInfo);
+            }
+
+            if (affectCount > 0) {
+                msgResult.setResult(true);
+                msgResult.setData(affectCount);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("删除失败");
+            }
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value = "列表")
+    @RequestMapping(value = "pageList", method = RequestMethod.POST)
+    public MessageResult<Object> pageList(
+            String id,
+            @RequestParam(value = "pageIndex", defaultValue = "1") int pageIndex,
+            @RequestParam(value = "pageSize", defaultValue = "20") int pageSize,
+            @RequestParam(value = "exportFlag", defaultValue = "false") Boolean exportFlag,
+            HttpServletRequest request) {
+        String subject = (String) request.getAttribute("subject");
+
+        //当前用户ID
+        System.out.println(subject);
+
+        MessageResult<Object> msgResult = new MessageResult<>();
+
+        try {
+
+            Map<String, Object> searchParams = new HashMap<>();
+
+            List<Sort> sortList = new ArrayList<>();
+            sortList.add(new Sort("index_", "asc"));
+
+            if (StringUtils.isNotEmpty(id)) {
+                searchParams.put("id", "%" + id + "%");
+            }
+
+
+            Page<TransportInfo> page = transportInfoService.pageSearch(searchParams, pageIndex, pageSize, true, sortList);
+            if (exportFlag) {
+                List<TransportInfo> transportInfoList = page.getResult();
+                BigDecimal total1 = BigDecimal.ZERO;
+                BigDecimal total2 = BigDecimal.ZERO;
+                BigDecimal total3 = BigDecimal.ZERO;
+                BigDecimal total4 = BigDecimal.ZERO;
+
+                for (TransportInfo item : transportInfoList) {
+                    total1 = total1.add(item.getTonnage());
+                    total2 = total2.add(item.getExpenditure());
+                    total3 = total3.add(item.getIncome());
+                    total4 = total4.add(item.getProfit());
+
+                }
+                TransportInfo transportInfo = new TransportInfo();
+                transportInfo.setTonnage(total1);
+                transportInfo.setExpenditure(total2);
+                transportInfo.setIncome(total3);
+                transportInfo.setProfit(total4);
+
+                transportInfoList.add(transportInfo);
+
+                String filePath = exportXls(transportInfoList);
+                msgResult.setData(filePath);
+                msgResult.setResult(true);
+            } else {
+                Map<String, Object> dataMap = PojoUtils.pageWrapper(page);
+
+                msgResult.setResult(true);
+                msgResult.setData(dataMap);
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            logger.error(ex.getMessage(), ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+
+        }
+
+
+        return msgResult;
+    }
+
+
+    private String exportXls(List<TransportInfo> transportInfoList) {
+        String downloadUrl = "";
+
+        Workbook workbook = new HSSFWorkbook();
+        Sheet sheet = workbook.createSheet();
+
+        //表头
+        Row rowTitle1 = sheet.createRow(0);
+
+        String[] titles = new String[]{"序号", "日期", "品名", "吨数", "支出", "收入", "利润"};
+
+        HSSFCellStyle cellStyle = ((HSSFWorkbook) workbook).createCellStyle();
+        cellStyle.setAlignment(HorizontalAlignment.CENTER);
+        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+
+        for (int i = 0; i < titles.length; i++) {
+            Cell cell = rowTitle1.createCell(i);
+            cell.setCellValue(titles[i]);
+            cell.setCellStyle(cellStyle);
+        }
+
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+
+        for (int i = 0; i < transportInfoList.size(); i++) {
+            TransportInfo transportInfo = transportInfoList.get(i);
+
+            Row row = sheet.createRow(i + 1);
+
+            int colIndex = 0;
+            Integer index;
+            if (transportInfo.getIndex() != null) {
+                index = transportInfo.getIndex();
+                row.createCell(colIndex++).setCellValue(index);
+            }
+            else{
+                row.createCell(colIndex++).setCellValue("合计");
+            }
+
+            String month = "";
+            if (transportInfo.getMonth() != null) {
+                month = sdf.format(transportInfo.getMonth());
+            }
+            row.createCell(colIndex++).setCellValue(month);
+            row.createCell(colIndex++).setCellValue(transportInfo.getProductName());
+            Double tonnage = null;
+            if (transportInfo.getTonnage() != null) {
+                tonnage = Double.parseDouble(transportInfo.getTonnage().toString());
+            }
+            row.createCell(colIndex++).setCellValue(tonnage);
+            Double expenditure = null;
+            if (transportInfo.getExpenditure() != null) {
+                expenditure = Double.parseDouble(transportInfo.getExpenditure().toString());
+            }
+            row.createCell(colIndex++).setCellValue(expenditure);
+            Double income = null;
+            if (transportInfo.getIncome() != null) {
+                income = Double.parseDouble(transportInfo.getIncome().toString());
+            }
+            row.createCell(colIndex++).setCellValue(income);
+            Double profit = null;
+            if (transportInfo.getProfit() != null) {
+                profit = Double.parseDouble(transportInfo.getProfit().toString());
+            }
+            row.createCell(colIndex++).setCellValue(profit);
+        }
+
+        ByteArrayOutputStream output = new ByteArrayOutputStream();
+
+        try {
+            workbook.write(output);
+
+            byte[] buffer = output.toByteArray();
+            ByteArrayInputStream input = new ByteArrayInputStream(buffer);
+
+            downloadUrl = OSSUtil.upload(ossConfig, "tradeReport", "分类统计无船承运表" + sdf.format(new Date()) + ".xls", input);
+        } catch (Exception ex) {
+            logger.error(ex.getMessage(), ex);
+        }
+
+        return downloadUrl;
+    }
+}

+ 1 - 1
web/src/main/resources/application-dev.yml

@@ -18,7 +18,7 @@ spring:
 
 logger:
   level: WARN
-  dir: E:\jpsoft\Logs\railroad-server
+  dir: D:\Logs\railroad-server
 uploadfile:
   url: "E:/jpsoft/Tomcat 9.0/webapps/uploadFile"
   returnUrl: "http://www.jsrailway.com.cn/uploadFile"