Browse Source

2022年12月6日18:01:25

纪新园 3 years ago
parent
commit
ce91a3e8ab

+ 11 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Acc.java

@@ -436,4 +436,15 @@ public class Acc implements Serializable {
 	@TableField(exist = false)
 	private BigDecimal balance;
 
+	/**
+	 * 租金结束时间
+	 */
+	@ApiModelProperty(value = "租金结束时间")
+	private Date rentEndDate;
+	/**
+	 * 租金开始时间
+	 */
+	@ApiModelProperty(value = "租金开始时间")
+	private Date rentStartDate;
+
 }

+ 69 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/ExportAccDWTOut.java

@@ -0,0 +1,69 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.finance.vojo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 财务账单实体类
+ *
+ * @author BladeX
+ * @since 2021-11-23
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class ExportAccDWTOut implements Serializable {
+
+
+	@ExcelProperty(value = "单据来源")
+	private String billType;
+
+	@ExcelProperty(value = "合同号")
+	private String accSysNo;
+
+	@ExcelProperty(value = "往来单位")
+	private String corpName;
+
+	@ExcelProperty(value = "所属公司")
+	private String company;
+
+	@ExcelProperty(value = "费用名称")
+	private String itemName;
+
+	@ExcelProperty(value = "账单金额")
+	private BigDecimal amount;
+
+	@ExcelProperty(value = "结算金额")
+	private BigDecimal settlementAmount;
+
+	@ExcelProperty(value = "未算金额")
+	private BigDecimal outstandingAmount;
+
+	@ExcelProperty(value = "账单日期")
+	private Date createTime;
+
+}

+ 11 - 0
blade-service-api/trade-finance-api/src/main/java/org/springblade/finance/vojo/Items.java

@@ -301,4 +301,15 @@ public class Items implements Serializable {
 	 */
 	@TableField(exist = false)
 	private Date sailDate;
+
+	/**
+	 * 租金结束时间
+	 */
+	@ApiModelProperty(value = "租金结束时间")
+	private Date rentEndDate;
+	/**
+	 * 租金计费日期
+	 */
+	@TableField(exist = false)
+	private Date rentStartDate;
 }

+ 19 - 13
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TradingBoxServiceImpl.java

@@ -484,7 +484,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					archives.setBoxMakingDate(tradingBoxItem.getBoxMakingDate());
 					archives.setLeaseCommencementDate(tradingBoxItem.getLeaseCommencementDate());
 					archives.setBoxAge(tradingBoxItem.getBoxAge());
-					archives.setPurchaseDate(tradingBox.getPurchaseDate());
+					archives.setPurchaseDate(tradingBoxItem.getLeaseCommencementDate());
 					archives.setContractNo(tradingBox.getContractNo());
 					if (ObjectUtils.isNotNull(archivesR)) {
 						archives.setUpdateTime(new Date());
@@ -916,9 +916,6 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					throw new RuntimeException("箱号不能为空");
 				}
 			} else {
-				tradingBoxItem.setRentEndDate(tradingBox.getRentDate());
-				tradingBoxItem.setRentingOutDate(tradingBox.getRentDate());
-				tradingBoxItem.setStatus("退租");
 				if (ObjectUtils.isNotNull(tradingBoxItem.getCode())) {
 					//更新箱档案信息
 					Archives archivesR = archivesMapper.selectOne(new LambdaQueryWrapper<Archives>().eq(Archives::getIsDeleted, 0).eq(Archives::getTenantId, AuthUtil.getTenantId()).eq(Archives::getCode, tradingBoxItem.getCode()));
@@ -996,7 +993,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				//账单数据
 				items.setAmount(tradingBoxFees.getAmount());
 				items.setQuantity(tradingBoxFees.getQuantity());
-				items.setSrcOrderno(tradingBox.getSysNo());
+				items.setSrcOrderno(tradingBox.getContractNo());
 				items.setCorpId(tradingBoxFees.getCorpId());
 				items.setSrcParentId(pid);
 				items.setCurrency(tradingBoxFees.getCurrency());
@@ -1005,10 +1002,12 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				items.setUnit(tradingBoxFees.getUnit());
 				items.setSrcSysNo(tradingBoxFees.getCode());
 				items.setRemarks(tradingBoxFees.getRemarks());
-				items.setSrcBillNo(tradingBox.getContractNo());
+				items.setSrcBillNo(tradingBox.getSysNo());
 				items.setStatusJT(0);
-				items.setBillNo(tradingBox.getContractNo());
+				items.setBillNo(tradingBox.getSysNo());
 				items.setStockTime(tradingBox.getPurchaseDate());
+				items.setRentStartDate(tradingBoxItem.getRentEndDate());
+				items.setRentEndDate(tradingBox.getRentDate());
 				//获取费用id
 				if (ObjectUtils.isNotNull(tradingBoxFees.getItemId())) {
 					items.setCostType(tradingBoxFees.getItemId().toString());
@@ -1016,6 +1015,11 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				items.setSrcFeesId(tradingBoxFees.getId());
 				itemsList.add(items);
 				applyDTO.setItemsList(itemsList);
+
+
+				tradingBoxItem.setStatus("退租");
+				tradingBoxItem.setRentEndDate(tradingBox.getRentDate());
+				tradingBoxItem.setRentingOutDate(tradingBox.getRentDate());
 			}
 			tradingBoxItemMapper.updateById(tradingBoxItem);
 			//记录箱轨迹信息
@@ -1143,7 +1147,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			//账单数据
 			items.setAmount(tradingBoxFees.getAmount());
 			items.setQuantity(tradingBoxFees.getQuantity());
-			items.setSrcOrderno(tradingBox.getSysNo());
+			items.setSrcOrderno(tradingBox.getContractNo());
 			items.setCorpId(tradingBoxFees.getCorpId());
 			items.setSrcParentId(pid);
 			items.setCurrency(tradingBoxFees.getCurrency());
@@ -1152,10 +1156,12 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			items.setUnit(tradingBoxFees.getUnit());
 			items.setSrcSysNo(tradingBoxFees.getCode());
 			items.setRemarks(tradingBoxFees.getRemarks());
-			items.setSrcBillNo(tradingBox.getContractNo());
+			items.setSrcBillNo(tradingBox.getSysNo());
 			items.setStatusJT(0);
-			items.setBillNo(tradingBox.getContractNo());
+			items.setBillNo(tradingBox.getSysNo());
 			items.setStockTime(tradingBox.getPurchaseDate());
+			items.setRentStartDate(tradingBox.getRentStartDate());
+			items.setRentEndDate(tradingBox.getRentCalculationDate());
 			//获取费用id
 			if (ObjectUtils.isNotNull(tradingBoxFees.getItemId())) {
 				items.setCostType(tradingBoxFees.getItemId().toString());
@@ -1418,7 +1424,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				//账单数据
 				items.setAmount(amount);
 				items.setQuantity(quantity);
-				items.setSrcOrderno(tradingBox.getSysNo());
+				items.setSrcOrderno(tradingBox.getContractNo());
 				items.setCorpId(tradingBoxFees.getCorpId());
 				items.setSrcParentId(pid);
 				items.setCurrency(tradingBoxFees.getCurrency());
@@ -1427,9 +1433,9 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 				items.setUnit(tradingBoxFees.getUnit());
 				items.setSrcSysNo(tradingBoxFees.getCode());
 				items.setRemarks(tradingBoxFees.getRemarks());
-				items.setSrcBillNo(tradingBox.getContractNo());
+				items.setSrcBillNo(tradingBox.getSysNo());
 				items.setStatusJT(0);
-				items.setBillNo(tradingBox.getContractNo());
+				items.setBillNo(tradingBox.getSysNo());
 				items.setStockTime(tradingBox.getPurchaseDate());
 				//获取费用id
 				if (ObjectUtils.isNotNull(tradingBoxFees.getItemId())) {

+ 2 - 2
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransportServiceImpl.java

@@ -761,7 +761,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				//账单数据
 				items.setAmount(amount);
 				items.setQuantity(quantity);
-				items.setSrcOrderno(transport.getSysNo());
+				items.setSrcOrderno(transport.getContractNo());
 				items.setCorpId(transportItemFees.getCorpId());
 				items.setSrcParentId(pid);
 				items.setCurrency(transportItemFees.getCurrency());
@@ -772,7 +772,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				items.setRemarks(transportItemFees.getRemarks());
 				items.setSrcBillNo(transport.getBillNo());
 				items.setStatusJT(0);
-				items.setBillNo(transport.getContractNo());
+				items.setBillNo(transport.getSysNo());
 				items.setStockTime(transport.getEffectiveDate());
 				items.setDepartureHarbor(transport.getDepartureHarbor());
 				items.setObjectiveHarbor(transport.getObjectiveHarbor());

+ 32 - 7
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/AccController.java

@@ -46,6 +46,7 @@ import org.springblade.finance.excel.FeeStatisticsExcelJTMC;
 import org.springblade.finance.service.IAccService;
 import org.springblade.finance.vo.AccVO;
 import org.springblade.finance.vojo.Acc;
+import org.springblade.finance.vojo.ExportAccDWTOut;
 import org.springblade.finance.vojo.ExportAccOut;
 import org.springblade.system.entity.Tenant;
 import org.springblade.system.feign.ITenantClient;
@@ -59,6 +60,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 财务账单 控制器
@@ -643,14 +645,23 @@ public class AccController extends BladeController {
 		accLambdaQueryWrapper.eq(Acc::getStatus, 0);
 		accLambdaQueryWrapper.orderByDesc(Acc::getCreateTime);
 		List<Acc> accList = accService.list(accLambdaQueryWrapper);
-		String corpIds = "";
-		for (Acc accOne : accList) {
-			if (ObjectUtil.isNotEmpty(accOne.getCorpId())) {
-				corpIds = corpIds + accOne.getCorpId() + ",";
-			}
-		}
+		List<String> corpIdList = accList.stream().map(Acc::getCorpId).map(x -> x + "").distinct().collect(Collectors.toList());
+		List<String> companyIdList = accList.stream().map(Acc::getCorpId).map(x -> x + "").distinct().collect(Collectors.toList());
+		String corpIds = String.join(",", corpIdList);
+		String companyIds = String.join(",", companyIdList);
+//		for (Long accOne : corpIdList) {
+//			if (ObjectUtil.isNotEmpty(accOne)) {
+//				corpIds = corpIds + accOne + ",";
+//			}
+//		}
 		List<CorpsDesc> corpsDescList = corpsDescClient.selectByCorpIds(corpIds);
+		List<CorpsDesc> companyIdsList = corpsDescClient.selectByCorpIds(companyIds);
 		accList.forEach(e -> {
+			if ("681169".equals(AuthUtil.getTenantId()) && ObjectUtils.isNotNull(e.getBillType())) {
+				if ("申请".equals(e.getBillType())) {
+					e.setBillType("付费");
+				}
+			}
 			//录入人
 			e.setCreateUserName(iUserClient.userInfoById(e.getCreateUser()).getData().getRealName());
 			//费用名称
@@ -669,9 +680,23 @@ public class AccController extends BladeController {
 					}
 				}
 			}
+			//公司
+			if (e.getCompanyid() != null) {
+				if (ObjectUtil.isNotEmpty(companyIdsList)) {
+					CorpsDesc corpsDesc = companyIdsList.stream().filter(d -> d.getId().equals(e.getCompanyid())).findFirst().orElse(null);
+					if (ObjectUtils.isNotNull(corpsDesc)) {
+						e.setCompany(corpsDesc.getCname());
+					}
+				}
+			}
 			e.setOutstandingAmount(e.getAmount().subtract(e.getSettlementAmount()));
 		});
-		ExcelUtil.export(response, "导出账单信息", "导出数据表", BeanUtil.copy(accList, ExportAccOut.class), ExportAccOut.class);
+		if ("681169".equals(AuthUtil.getTenantId())) {
+			ExcelUtil.export(response, "导出账单信息", "导出数据表", BeanUtil.copy(accList, ExportAccDWTOut.class), ExportAccDWTOut.class);
+		} else {
+			ExcelUtil.export(response, "导出账单信息", "导出数据表", BeanUtil.copy(accList, ExportAccOut.class), ExportAccOut.class);
+		}
+
 	}
 
 }