Browse Source

1.海运进出口费用明细相关保存接口增加税率核税额字段及计算逻辑
2.申请修改,审核通过,生成账单,模板导入,报表打印等接口增加税率核税额字段及计算逻辑
3.费用模板增加税率字段
4.主单数据同步客户订舱数据
5.进场记录,出场记录倒序排列
6.OW拿,配箱信息增加收箱号
7.用箱计划统计列表级别排序

纪新园 4 months ago
parent
commit
613511b136
25 changed files with 222 additions and 67 deletions
  1. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/FeesTemplateItems.java
  2. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/FeesTemplateSonItems.java
  3. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/TradingBox.java
  4. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/TradingBoxItem.java
  5. 7 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/excel/UseBoxPlanItemExcel.java
  6. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Containers.java
  7. 10 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterReports.java
  8. 20 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenterUpdateRecord.java
  9. 11 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java
  10. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/LosBFeesTemplateServiceImpl.java
  11. 2 1
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/controller/ReportsController.java
  12. 3 1
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/IReportsBoxService.java
  13. 6 2
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsBoxServiceImpl.java
  14. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  15. 11 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/UseBoxPlanItemController.java
  16. 13 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/dynamics/controller/BoxDynamicsRecordController.java
  17. 3 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/mapper/UseBoxPlanItemMapper.xml
  18. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/ExpenseApplicationServiceImpl.java
  19. 4 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java
  20. 4 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java
  21. 14 18
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java
  22. 14 4
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java
  23. 48 38
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java
  24. 12 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterUpdateRecordServiceImpl.java
  25. 2 0
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/FeesTemplateItems.java

@@ -236,6 +236,12 @@ public class FeesTemplateItems implements Serializable {
 	@ApiModelProperty(value = "收付,D:收 C 付")
 	private String dc;
 
+	/**
+	 * 税率 %
+	 */
+	@ApiModelProperty(value = "税率 %")
+	private BigDecimal taxRate;
+
 	@TableField(exist = false)
 	private List<FeesTemplateSonItems> sonItemsList;
 

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/basic/fees/entity/FeesTemplateSonItems.java

@@ -201,5 +201,11 @@ public class FeesTemplateSonItems implements Serializable {
 	@ApiModelProperty(value = "客户英文名称")
 	private String corpEnName;
 
+	/**
+	 * 税率 %
+	 */
+	@ApiModelProperty(value = "税率 %")
+	private BigDecimal taxRate;
+
 
 }

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/TradingBox.java

@@ -652,6 +652,12 @@ public class TradingBox implements Serializable {
 	private String podCyTel;
 
 	/**
+	 * 收箱号
+	 */
+	@ApiModelProperty(value = "收箱号")
+	private String offhireReference;
+
+	/**
 	 * 临时数据
 	 */
 	@TableField(exist = false)

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/TradingBoxItem.java

@@ -599,6 +599,12 @@ public class TradingBoxItem implements Serializable {
 	private String repairLocation;
 
 	/**
+	 * 收箱号
+	 */
+	@ApiModelProperty(value = "收箱号")
+	private String offhireReference;
+
+	/**
 	 * 起租日期
 	 */
 	@TableField(exist = false)

+ 7 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/excel/UseBoxPlanItemExcel.java

@@ -22,6 +22,7 @@ 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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
@@ -96,6 +97,12 @@ public class UseBoxPlanItemExcel implements Serializable {
 	private Date updateTime;
 
 	/**
+	 * 等级
+	 */
+	@ExcelProperty(value = "等级")
+	private String level;
+
+	/**
 	 * 租户号
 	 */
 	@ExcelIgnore

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Containers.java

@@ -610,6 +610,12 @@ public class Containers implements Serializable {
 	private String podCyTel;
 
 	/**
+	 * 收箱号
+	 */
+	@ApiModelProperty(value = "收箱号")
+	private String offhireReference;
+
+	/**
 	 * 配箱类型
 	 */
 	@TableField(exist = false)

+ 10 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/dto/FeeCenterReports.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.los.finance.fee.dto;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -166,5 +167,14 @@ public class FeeCenterReports implements Serializable {
 	 */
 	private String feeCnNameC;
 
+	/**
+	 * 税率 %
+	 */
+	private BigDecimal taxRate;
+	/**
+	 * 税额
+	 */
+	private BigDecimal amountTax;
+
 
 }

+ 20 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FeeCenterUpdateRecord.java

@@ -372,6 +372,26 @@ public class FeeCenterUpdateRecord implements Serializable {
 	 */
 	@ApiModelProperty(value = "修改后代收、付客户英文名称")
 	private String generationCorpEnNameUpdate;
+	/**
+	 * 税率 %
+	 */
+	@ApiModelProperty(value = "税率 %")
+	private BigDecimal taxRate;
+	/**
+	 * 税额
+	 */
+	@ApiModelProperty(value = "税额")
+	private BigDecimal amountTax;
+	/**
+	 * 修改后税率 %
+	 */
+	@ApiModelProperty(value = "修改后税率 %")
+	private BigDecimal taxRateUpdate;
+	/**
+	 * 修改后税额
+	 */
+	@ApiModelProperty(value = "修改后税额")
+	private BigDecimal amountTaxUpdate;
 
 	//审核-跳转对应页面的路由
 	@TableField(exist = false)

+ 11 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/finance/fee/entity/FinAccBills.java

@@ -835,5 +835,16 @@ public class FinAccBills implements Serializable {
 	@ApiModelProperty(value = "汇率,外币转为本币的汇率")
 	private BigDecimal exrate;
 
+	/**
+	 * 税率 %
+	 */
+	@ApiModelProperty(value = "税率 %")
+	private BigDecimal taxRate;
+	/**
+	 * 税额
+	 */
+	@ApiModelProperty(value = "税额")
+	private BigDecimal amountTax;
+
 
 }

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/fees/service/impl/LosBFeesTemplateServiceImpl.java

@@ -210,6 +210,7 @@ public class LosBFeesTemplateServiceImpl extends ServiceImpl<LosBFeesTemplateMap
 						sonItems.setDc(item.getDc());
 						/*sonItems.setUnitNo(item.getUnitNo());
 						sonItems.setUnitId(item.getUnitId());*/
+						sonItems.setTaxRate(item.getTaxRate());
 						sonItems.setCorpId(item.getCorpId());
 						sonItems.setCorpCnName(item.getCorpCnName());
 						sonItems.setCorpEnName(item.getCorpEnName());
@@ -247,6 +248,7 @@ public class LosBFeesTemplateServiceImpl extends ServiceImpl<LosBFeesTemplateMap
 					sonItems.setDc(item.getDc());
 					sonItems.setPid(losBFeesTemplate.getId());
 					sonItems.setPpid(item.getId());
+					sonItems.setTaxRate(item.getTaxRate());
 					sonItems.setCreateTime(new Date());
 					sonItems.setCreateUser(AuthUtil.getUserId());
 					sonItems.setCreateUserName(AuthUtil.getUserName());

+ 2 - 1
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/controller/ReportsController.java

@@ -40,6 +40,7 @@ import org.springblade.los.business.sea.vo.GenerateMailVo;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.text.ParseException;
 
 /**
  * 基础资料-报表管理 控制器
@@ -200,7 +201,7 @@ public class ReportsController extends BladeController {
 						   @RequestParam(value = "curCode", required = false) String curCode,
 						   @RequestParam(value = "date", required = false) String date,
 						   @RequestParam(value = "type", required = false) String type
-	) {
+	) throws ParseException {
 		return reportsBoxService.getReportData(billId, reportCode, groupCode, corpIds, itemIds, type, curCode,date);
 	}
 

+ 3 - 1
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/IReportsBoxService.java

@@ -18,6 +18,8 @@ package org.springblade.los.basic.reports.service;
 
 import org.springblade.core.tool.api.R;
 
+import java.text.ParseException;
+
 /**
  * 基础资料-报表管理 服务类
  *
@@ -30,6 +32,6 @@ public interface IReportsBoxService {
 	 * 获取模本数据加信息
 	 */
 	R getReportData(String billId, String reportCode, String groupCode, String corpIds,
-					String itemIds, String type, String curCode,String date);
+					String itemIds, String type, String curCode,String date) throws ParseException;
 
 }

+ 6 - 2
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsBoxServiceImpl.java

@@ -29,6 +29,7 @@ import org.springblade.los.basic.cur.entity.BCurExrate;
 import org.springblade.los.basic.reports.service.IReportsBoxService;
 import org.springblade.los.box.entity.ExpenseApplication;
 import org.springblade.los.box.entity.TradingBox;
+import org.springblade.los.box.entity.TradingBoxItem;
 import org.springblade.los.box.service.IExpenseApplicationService;
 import org.springblade.los.box.service.ITradingBoxService;
 import org.springblade.los.business.mktSlot.entity.MktSlot;
@@ -56,6 +57,8 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -99,7 +102,7 @@ public class ReportsBoxServiceImpl implements IReportsBoxService {
 
 	@Override
 	public R getReportData(String billId, String reportCode, String groupCode, String corpIds, String itemIds,
-						   String type, String curCode, String accDate) {
+						   String type, String curCode, String accDate) throws ParseException {
 		Map<String, Object> map = new HashMap<>();
 		if (ObjectUtils.isNull(billId)) {
 			throw new RuntimeException("缺少比要参数");
@@ -152,11 +155,12 @@ public class ReportsBoxServiceImpl implements IReportsBoxService {
 				}
 				tradingBox.setDate(new Date());
 				tradingBox.setDept(dept);
+				SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
 				LambdaQueryWrapper<FeeCenterItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 				lambdaQueryWrapper.eq(FeeCenterItems::getTenantId, AuthUtil.getTenantId())
 					.eq(FeeCenterItems::getIsDeleted, 0)
 					.eq(FeeCenterItems::getPid, tradingBox.getId())
-					.eq(ObjectUtils.isNotNull(accDate),FeeCenterItems::getAccountDate, accDate);
+					.apply("DATE_FORMAT(account_date,'%Y-%m') = '" + formatter.format(formatter.parse(accDate)) + "'");
 				if (MagicValues.PER_DIEM.equals(groupCode)) {
 					lambdaQueryWrapper.eq(FeeCenterItems::getFeeType, "2");
 				} else {

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -2246,6 +2246,8 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			feeCenterReports.setUnitNo(item.getUnitNo());
 			feeCenterReports.setPrice(item.getPrice());
 			feeCenterReports.setMoney(item.getAmount());
+			feeCenterReports.setTaxRate(item.getTaxRate());
+			feeCenterReports.setAmountTax(item.getAmountTax());
 			feeCenterReportsList.add(feeCenterReports);
 		}
 		if (!feeCenterList.isEmpty()) {

+ 11 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/UseBoxPlanItemController.java

@@ -41,6 +41,7 @@ import org.springblade.los.box.vo.UseBoxPlanItemVO;
 import org.springblade.los.box.service.IUseBoxPlanItemService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.math.RoundingMode;
 import java.util.List;
 
 /**
@@ -91,6 +92,11 @@ public class UseBoxPlanItemController extends BladeController {
 			useBoxPlanItem.setBranchId(AuthUtil.getDeptId());
 		}
 		IPage<UseBoxPlanItemExcel> pages = useBoxPlanItemService.selectUseBoxPlanItemPage(Condition.getPage(query), useBoxPlanItem);
+		for (UseBoxPlanItemExcel item : pages.getRecords()){
+			item.setPrice20gp(item.getPrice20gp().setScale(0, RoundingMode.HALF_UP));
+			item.setPrice40gp(item.getPrice40gp().setScale(0, RoundingMode.HALF_UP));
+			item.setPrice40hc(item.getPrice40hc().setScale(0, RoundingMode.HALF_UP));
+		}
 		return R.data(pages);
 	}
 
@@ -104,6 +110,11 @@ public class UseBoxPlanItemController extends BladeController {
 			useBoxPlanItem.setBranchId(AuthUtil.getDeptId());
 		}
 		List<UseBoxPlanItemExcel> excelList = useBoxPlanItemService.exportUseBoxPlanItem(useBoxPlanItem);
+		for (UseBoxPlanItemExcel item : excelList){
+			item.setPrice20gp(item.getPrice20gp().setScale(0, RoundingMode.HALF_UP));
+			item.setPrice40gp(item.getPrice40gp().setScale(0, RoundingMode.HALF_UP));
+			item.setPrice40hc(item.getPrice40hc().setScale(0, RoundingMode.HALF_UP));
+		}
 		ExcelUtil.export(response, "用箱计划", "用箱计划", excelList, UseBoxPlanItemExcel.class);
 	}
 

+ 13 - 1
blade-service/blade-los/src/main/java/org/springblade/los/box/dynamics/controller/BoxDynamicsRecordController.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.los.box.dynamics.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -29,6 +31,7 @@ import org.springblade.common.annotation.RepeatSubmit;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.los.box.excel.EmptyContainerAppearance;
@@ -78,7 +81,16 @@ public class BoxDynamicsRecordController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入boxDynamicsRecord")
 	public R<IPage<BoxDynamicsRecord>> list(BoxDynamicsRecord boxDynamicsRecord, Query query) {
-		IPage<BoxDynamicsRecord> pages = boxDynamicsRecordService.page(Condition.getPage(query), Condition.getQueryWrapper(boxDynamicsRecord));
+		LambdaQueryWrapper<BoxDynamicsRecord> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BoxDynamicsRecord::getTenantId, AuthUtil.getTenantId())
+			.eq(BoxDynamicsRecord::getIsDeleted,0)
+			.eq(BoxDynamicsRecord::getApproachExit,boxDynamicsRecord.getApproachExit())
+			.like(ObjectUtils.isNotNull(boxDynamicsRecord.getPortCname()),BoxDynamicsRecord::getPortCname,boxDynamicsRecord.getPortCname())
+			.like(ObjectUtils.isNotNull(boxDynamicsRecord.getStationCname()),BoxDynamicsRecord::getStationCname,boxDynamicsRecord.getStationCname())
+			.like(ObjectUtils.isNotNull(boxDynamicsRecord.getBoxCode()),BoxDynamicsRecord::getBoxCode,boxDynamicsRecord.getBoxCode())
+			.eq(ObjectUtils.isNotNull(boxDynamicsRecord.getBoxDynamics()),BoxDynamicsRecord::getBoxDynamics,boxDynamicsRecord.getBoxDynamics())
+			.orderByDesc(BoxDynamicsRecord::getImportDate);
+		IPage<BoxDynamicsRecord> pages = boxDynamicsRecordService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
 	}
 

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/mapper/UseBoxPlanItemMapper.xml

@@ -37,6 +37,7 @@
         item.price20gp AS price20gp,
         item.price40gp AS price40gp,
         item.price40hc AS price40hc,
+        plan.level AS level,
         item.create_user_name AS createUserName,
         item.create_time AS createTime,
         item.update_user_name AS updateUserName,
@@ -64,6 +65,7 @@
         <if test="data.endDate !=null and data.endDate != ''">
             AND plan.end_date &lt;= #{data.endDate}
         </if>
+        ORDER BY plan.level
     </select>
     <select id="exportUseBoxPlanItem" resultType="org.springblade.los.box.excel.UseBoxPlanItemExcel">
         SELECT
@@ -76,6 +78,7 @@
         item.price20gp AS price20gp,
         item.price40gp AS price40gp,
         item.price40hc AS price40hc,
+        plan.level AS level,
         item.create_user_name AS createUserName,
         item.create_time AS createTime,
         item.update_user_name AS updateUserName,

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/ExpenseApplicationServiceImpl.java

@@ -371,6 +371,8 @@ public class ExpenseApplicationServiceImpl extends ServiceImpl<ExpenseApplicatio
 				data.setCreateTime(new Date());
 				data.setCreateUser(AuthUtil.getUserId());
 				data.setCreateUserName(AuthUtil.getUserName());
+				data.setTaxRate(item.getTaxRate());
+				data.setAmountTax(item.getAmountTax());
 				if (ObjectUtils.isNull(item.getBranchId())) {
 					data.setCreateDept(AuthUtil.getDeptId());
 					R<String> res = sysClient.getDeptName(Long.parseLong(AuthUtil.getDeptId()));
@@ -767,6 +769,8 @@ public class ExpenseApplicationServiceImpl extends ServiceImpl<ExpenseApplicatio
 				data.setBookingAgentEnName(item.getBookingAgentEnName());
 				data.setQuantityCntrDescr(item.getQuantityCntrDescr());
 				data.setTeu(item.getTeu());
+				data.setTaxRate(item.getTaxRate());
+				data.setAmountTax(item.getAmountTax());
 				BusinessBillNo businessBillNo = new BusinessBillNo();
 				businessBillNo.setBusinessTypeId(businessType.getId());
 				businessBillNo.setCode("YWZD");

+ 4 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/PutBoxServiceImpl.java

@@ -3648,6 +3648,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 				item.setPodCyContact(podStationR.getPodCyContact());
 				item.setPodCyEmail(podStationR.getPodCyEmail());
 				item.setPodCyTel(podStationR.getPodCyTel());
+				item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
 				item.setMarks(podStationR.getPodStationCode());
 				item.setUpdateTime(new Date());
 				item.setUpdateUser(AuthUtil.getUserId());
@@ -3687,6 +3688,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						item.setPodCyContact(podStationR.getPodCyContact());
 						item.setPodCyEmail(podStationR.getPodCyEmail());
 						item.setPodCyTel(podStationR.getPodCyTel());
+						item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
 						item.setUpdateTime(new Date());
 						item.setUpdateUser(AuthUtil.getUserId());
 						item.setUpdateUserName(AuthUtil.getUserName());
@@ -3708,6 +3710,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 				item.setPodCyContact(podStationR.getPodCyContact());
 				item.setPodCyEmail(podStationR.getPodCyEmail());
 				item.setPodCyTel(podStationR.getPodCyTel());
+				item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
 				item.setUpdateTime(new Date());
 				item.setUpdateUser(AuthUtil.getUserId());
 				item.setUpdateUserName(AuthUtil.getUserName());
@@ -3745,6 +3748,7 @@ public class PutBoxServiceImpl extends ServiceImpl<PutBoxMapper, PutBox> impleme
 						item.setPodCyContact(podStationR.getPodCyContact());
 						item.setPodCyEmail(podStationR.getPodCyEmail());
 						item.setPodCyTel(podStationR.getPodCyTel());
+						item.setPodEmptyContainerReturnDate(podStationR.getReturnEmptyTime());
 						item.setUpdateTime(new Date());
 						item.setUpdateUser(AuthUtil.getUserId());
 						item.setUpdateUserName(AuthUtil.getUserName());

+ 4 - 1
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java

@@ -344,6 +344,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					item.setCode(item.getCode().trim());
 					item.setCode(item.getCode().toUpperCase());
 				}
+				item.setOffhireReference(tradingBox.getOffhireReference());
 				BoxNumUtils.containerNumberVerification(item.getCode());
 				if ("BUY".equals(tradingBox.getType())) {
 					item.setOriginalBoxEastId(tradingBox.getPurchaseCompanyId());
@@ -2507,6 +2508,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			item.setUpdateUser(AuthUtil.getUserId());
 			item.setUpdateUserName(AuthUtil.getUserName());
 			item.setUpdateTime(new Date());
+			item.setOffhireReference(tradingBox.getOffhireReference());
 			PutBoxItems boxItems = putBoxItemsList.stream().filter(e -> e.getBoxCode().equals(item.getCode())).findFirst().orElse(null);
 			if (boxItems == null) {
 				throw new RuntimeException("未查到放箱号中箱号:" + item.getCode() + "明细");
@@ -2551,6 +2553,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					containers.setPodCyContact(tradingBox.getPodCyContact());
 					containers.setPodCyEmail(tradingBox.getPodCyEmail());
 					containers.setPodCyTel(tradingBox.getPodCyTel());
+					containers.setOffhireReference(tradingBox.getOffhireReference());
 					containersListNew.add(containers);
 				}
 				if (!containersListNew.isEmpty()) {
@@ -2645,7 +2648,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			.eq(TradingBoxItem::getIsDeleted, 0)
 			.eq(TradingBoxItem::getTenantId, AuthUtil.getTenantId())
 			.eq(TradingBoxItem::getPid, id)
-			.apply("DATE_FORMAT(pol_pick_up_date,'%Y-%m') <= '" + formatter.format(tradingBox.getEffectiveDate()) + "'")
+			.apply("DATE_FORMAT(pol_pick_up_date,'%Y-%m') = '" + formatter.format(accountDate) + "'")
 			.eq(TradingBoxItem::getWhetherGeneratePickUpCost, "0"));
 		if (tradingBoxItemList.isEmpty()) {
 			throw new RuntimeException("箱明细已全部生成PickUp费");

+ 14 - 18
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
@@ -70,7 +69,6 @@ import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.los.finance.fee.service.IFinAccBillsService;
 import org.springblade.los.finance.genleg.entity.FinPeriod;
 import org.springblade.los.finance.genleg.mapper.FinPeriodMapper;
-import org.springblade.los.utils.LosSpecialHandle;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -454,7 +452,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					PreContainers preContainers = bills.getPreContainersList().stream().filter(e -> e.getCntrTypeCode().equals(item.getUnitNo()))
 						.findFirst().orElse(null);
 					if (preContainers != null && item.getQuantity().compareTo(new BigDecimal(preContainers.getQuantity() + "")) != 0 &&
-						"0,1".contains(item.getAuditStatus())) {
+						ObjectUtils.isNotNull(item.getAuditStatus()) &&"0,1".contains(item.getAuditStatus())) {
 						item.setQuantity(new BigDecimal(preContainers.getQuantity() + ""));
 						item.setAmount(item.getPrice().multiply(item.getQuantity()));
 						item.setAmountLoc(item.getAmount().multiply(item.getExrate()));
@@ -524,7 +522,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					PreContainers preContainers = bills.getPreContainersList().stream().filter(e -> e.getCntrTypeCode().equals(item.getUnitNo()))
 						.findFirst().orElse(null);
 					if (preContainers != null && item.getQuantity().compareTo(new BigDecimal(preContainers.getQuantity() + "")) != 0 &&
-						"0,1".contains(item.getAuditStatus())) {
+						ObjectUtils.isNotNull(item.getAuditStatus()) && "0,1".contains(item.getAuditStatus())) {
 						item.setQuantity(new BigDecimal(preContainers.getQuantity() + ""));
 						item.setAmount(item.getPrice().multiply(item.getQuantity()));
 						item.setAmountLoc(item.getAmount().multiply(item.getExrate()));
@@ -5653,7 +5651,7 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					bookingList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
 						.eq(Bills::getTenantId, AuthUtil.getTenantId())
 						.eq(Bills::getIsDeleted, 0)
-						.eq(Bills::getId, temporaryIdList));
+						.in(Bills::getId, temporaryIdList));
 				}
 				for (Bills item : billsList) {
 					int version = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
@@ -5692,23 +5690,21 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 					if (!bookingList.isEmpty() && ObjectUtils.isNotNull(item.getTemporaryId())) {
 						Bills bills1 = bookingList.stream().filter(e -> e.getId().equals(item.getTemporaryId())).findFirst().orElse(null);
 						if (bills1 != null) {
-							if ("MH".equals(bills.getBillType())) {
-								bills1.setMblno(bills.getMblno());
-								bills1.setHblno(bills.getHblno());
-								bills1.setVesselId(bills.getVesselId());
-								bills1.setVesselCnName(bills.getVesselCnName());
-								bills1.setVesselEnName(bills.getVesselEnName());
-								bills1.setVoyageNo(bills.getVoyageNo());
-								bills1.setCyReturnTime(bills.getCyReturnTime());
-								bills1.setCyTrailerTime(bills.getCyTrailerTime());
-								bills1.setSiRemarks(bills.getSiRemarks());
-								bookingListNew.add(bills1);
-							}
+							bills1.setMblno(bills.getMblno());
+							bills1.setHblno(bills.getHblno());
+							bills1.setVesselId(bills.getVesselId());
+							bills1.setVesselCnName(bills.getVesselCnName());
+							bills1.setVesselEnName(bills.getVesselEnName());
+							bills1.setVoyageNo(bills.getVoyageNo());
+							bills1.setCyReturnTime(bills.getCyReturnTime());
+							bills1.setCyTrailerTime(bills.getCyTrailerTime());
+							bills1.setSiRemarks(bills.getSiRemarks());
+							bookingListNew.add(bills1);
 						}
 					}
 				}
 				this.updateBatchById(billsList);
-				if (!bookingListNew.isEmpty()){
+				if (!bookingListNew.isEmpty()) {
 					this.updateBatchById(bookingListNew);
 				}
 				List<Long> billIds = billsList.stream().map(Bills::getId).collect(Collectors.toList());

+ 14 - 4
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -37,8 +37,10 @@ import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
 import org.springblade.los.box.entity.ExpenseApplication;
 import org.springblade.los.box.entity.RouteCost;
+import org.springblade.los.box.entity.TradingBox;
 import org.springblade.los.box.mapper.ExpenseApplicationMapper;
 import org.springblade.los.box.mapper.RouteCostMapper;
+import org.springblade.los.box.mapper.TradingBoxMapper;
 import org.springblade.los.business.amends.entity.Amends;
 import org.springblade.los.business.amends.mapper.AmendsMapper;
 import org.springblade.los.business.mktSlot.entity.MktSlot;
@@ -121,6 +123,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 
 	private final ISysClient sysClient;
 
+	private final TradingBoxMapper tradingBoxMapper;
+
 
 	@Override
 	public IPage<LosAuditProecessVO> selectAuditProecessPage(IPage<LosAuditProecessVO> page, LosAuditProecessVO auditProecess) {
@@ -2184,11 +2188,10 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 			feeCenter.setCurCode(feeCenterUpdateRecord.getCurCodeUpdate());
 			feeCenter.setExrate(feeCenterUpdateRecord.getExrateUpdate());
 			feeCenter.setAmount(feeCenterUpdateRecord.getAmountUpdate());
-			feeCenter.setAmountNet(feeCenterUpdateRecord.getAmountUpdate());
 			feeCenter.setUnsettledAmount(feeCenterUpdateRecord.getAmountUpdate());
 			feeCenter.setAmountLoc(feeCenterUpdateRecord.getAmountLocUpdate());
-			feeCenter.setAmountNetLoc(feeCenterUpdateRecord.getAmountLocUpdate());
-			feeCenter.setAmountDiscountLoc(feeCenterUpdateRecord.getAmountLocUpdate());
+			feeCenter.setTaxRate(feeCenterUpdateRecord.getTaxRateUpdate());
+			feeCenter.setAmountTax(feeCenterUpdateRecord.getAmountTaxUpdate());
 			feeCenter.setAccAmount(feeCenterUpdateRecord.getAmountLocUpdate());
 			feeCenter.setRemarks(feeCenterUpdateRecord.getRemarksUpdate());
 			feeCenterService.updateById(feeCenter);
@@ -2222,9 +2225,11 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 			finAccBills.setGenerationCorpId(feeCenterUpdateRecord.getGenerationCorpIdUpdate());
 			finAccBills.setGenerationCorpCnName(feeCenterUpdateRecord.getGenerationCorpCnNameUpdate());
 			finAccBills.setGenerationCorpEnName(feeCenterUpdateRecord.getGenerationCorpEnNameUpdate());
+			finAccBills.setTaxRate(feeCenterUpdateRecord.getTaxRate());
+			finAccBills.setAmountTax(feeCenterUpdateRecord.getAmountTax());
 			finAccBillsService.updateById(finAccBills);
 		}
-		if ("HYJK,HYCK".contains(feeCenter.getBusinessType())) {
+		if ("SE,SI".contains(feeCenter.getBusinessType())) {
 			//利润 = 收 - 付
 			oceanFreightProfit = oceanFreightDr.subtract(oceanFreightCr);
 			amountProfit = amountDr.subtract(amountCr);
@@ -2243,6 +2248,11 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 			bills.setAmountCrLoc(amountCrLoc);
 			bills.setAmountProfitLoc(amountProfitLoc);
 			billsMapper.updateById(bills);
+		}else if ("BUY,SELL,ZR,ZC,DL,OW-N,OW-F,XGFY,XGDX,CCSQ,DXCB,OW-HY".contains(feeCenter.getBusinessType())) {
+			TradingBox tradingBox = tradingBoxMapper.selectById(feeCenter.getPid());
+			if (tradingBox == null) {
+				throw new RuntimeException("未查到费用明细所在单据信息");
+			}
 		}
 	}
 

+ 48 - 38
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterServiceImpl.java

@@ -155,19 +155,25 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 			feeCenter.setUpdateTime(new Date());
 			feeCenter.setUpdateUserName(AuthUtil.getUserName());
 		}
-		// 金额
-		BigDecimal amount = feeCenter.getAmount();
 		//计算字段null值处理
 		feeCenter.setQuantity(ObjectUtils.isNotNull(feeCenter.getQuantity()) ? feeCenter.getQuantity() : new BigDecimal("0.00"));
 		feeCenter.setPrice(ObjectUtils.isNotNull(feeCenter.getPrice()) ? feeCenter.getPrice() : new BigDecimal("0.00"));
 		feeCenter.setStlTtlAmount(ObjectUtils.isNotNull(feeCenter.getStlTtlAmount()) ? feeCenter.getStlTtlAmount() : new BigDecimal("0.00"));
+		// 金额
+		BigDecimal amount;
+		BigDecimal amountTax;
+		BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+		BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
+		amount = feeCenter.getQuantity().multiply(price);
+		amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
+		feeCenter.setAmount(amount);
+		feeCenter.setAmountTax(amountTax);
 		//判断是否是本位币
 		if (exrateType.equals(feeCenter.getCurCode())) {
 			feeCenter.setAmountLoc(amount);
 		} else {
 			feeCenter.setAmountLoc(feeCenter.getAmount().multiply(feeCenter.getExrate()));
 		}
-		feeCenter.setAmount(amount);
 		feeCenter.setUnsettledAmount(feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()));
 		this.saveOrUpdate(feeCenter);
 		return R.data(feeCenter);
@@ -293,6 +299,7 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 				feeCenter.setPaymode(bills.getMpaymode());
 				feeCenter.setSort(count);
 				feeCenter.setCorpType(templateItems.getCorpType());
+				feeCenter.setTaxRate(items.getTaxRate());
 				count++;
 				if (ObjectUtils.isNull(templateItems.getCorpType())) {
 					BCorps bCorps = null;
@@ -491,6 +498,15 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 					feeCenter.setQuantity(new BigDecimal("1"));
 					feeCenter.setAmount(feeCenter.getPrice().multiply(feeCenter.getQuantity()));
 				}
+				// 金额
+				BigDecimal amount;
+				BigDecimal amountTax;
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
+				amount = feeCenter.getQuantity().multiply(price);
+				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
+				feeCenter.setAmount(amount);
+				feeCenter.setAmountTax(amountTax);
 				if (ObjectUtils.isNull(feeCenter.getAmount())) {
 					feeCenter.setAmount(new BigDecimal("0"));
 				}
@@ -803,20 +819,26 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 					feeCenter.setUpdateTime(new Date());
 					feeCenter.setUpdateUserName(AuthUtil.getUserName());
 				}
-				// 金额
-				BigDecimal amount = feeCenter.getAmount();
-
 				//计算字段null值处理
 				feeCenter.setQuantity(ObjectUtils.isNotNull(feeCenter.getQuantity()) ? feeCenter.getQuantity() : new BigDecimal("0.00"));
 				feeCenter.setPrice(ObjectUtils.isNotNull(feeCenter.getPrice()) ? feeCenter.getPrice() : new BigDecimal("0.00"));
+				feeCenter.setTaxRate(ObjectUtils.isNotNull(feeCenter.getTaxRate()) ? feeCenter.getTaxRate() : new BigDecimal("0.00"));
 				feeCenter.setStlTtlAmount(ObjectUtils.isNotNull(feeCenter.getStlTtlAmount()) ? feeCenter.getStlTtlAmount() : new BigDecimal("0.00"));
+				// 金额
+				BigDecimal amount;
+				BigDecimal amountTax;
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
+				amount = feeCenter.getQuantity().multiply(price);
+				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
+				feeCenter.setAmount(amount);
+				feeCenter.setAmountTax(amountTax);
 				//判断是否是本位币
 				if (exrateType.equals(feeCenter.getCurCode())) {
 					feeCenter.setAmountLoc(amount);
 				} else {
 					feeCenter.setAmountLoc(feeCenter.getAmount().multiply(feeCenter.getExrate()));
 				}
-				feeCenter.setAmount(amount);
 				feeCenter.setUnsettledAmount(feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()));
 				feeCenterList.add(feeCenter);
 			}
@@ -933,49 +955,27 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 					feeCenter.setUpdateTime(new Date());
 					feeCenter.setUpdateUserName(AuthUtil.getUserName());
 				}
-
-				/** --------------------金额计算-------------------------**/
-				// 去税金额 = 数量quantity * 单价price
-				BigDecimal amountNet = new BigDecimal("0.00");
-				// 税额 = 去税金额amountNet * 税率taxRateSum
-				BigDecimal amountTax = new BigDecimal("0.00");
-				// 金额,amountTax + 去税金额amountNet - 折扣金额amountDiscount
-				BigDecimal amount = new BigDecimal("0.00");
-				//总税率  = 税率taxRate + 附加税率surchargeRate
-				BigDecimal taxRate = new BigDecimal("0.00");
-				// 税率 = 总税率/100
-				BigDecimal taxRateSum = new BigDecimal("0.00");
-
 				//计算字段null值处理
 				feeCenter.setQuantity(ObjectUtils.isNotNull(feeCenter.getQuantity()) ? feeCenter.getQuantity() : new BigDecimal("0.00"));
 				feeCenter.setPrice(ObjectUtils.isNotNull(feeCenter.getPrice()) ? feeCenter.getPrice() : new BigDecimal("0.00"));
 				feeCenter.setSurchargeRate(ObjectUtils.isNotNull(feeCenter.getSurchargeRate()) ? feeCenter.getSurchargeRate() : new BigDecimal("0.00"));
 				feeCenter.setTaxRate(ObjectUtils.isNotNull(feeCenter.getTaxRate()) ? feeCenter.getTaxRate() : new BigDecimal("0.00"));
-				feeCenter.setAmountDiscount(ObjectUtils.isNotNull(feeCenter.getAmountDiscount()) ? feeCenter.getAmountDiscount() : new BigDecimal("0.00"));
 				feeCenter.setStlTtlAmount(ObjectUtils.isNotNull(feeCenter.getStlTtlAmount()) ? feeCenter.getStlTtlAmount() : new BigDecimal("0.00"));
-
-				amountNet = amountNet.add(feeCenter.getQuantity().multiply(feeCenter.getPrice()))
-					.setScale(2, RoundingMode.HALF_UP);
-				taxRate = taxRate.add(feeCenter.getTaxRate()).add(feeCenter.getSurchargeRate());
-				taxRateSum = taxRateSum.add(taxRate.divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP));
-				amountTax = amountTax.add(amountNet.multiply(taxRateSum)).setScale(2, RoundingMode.HALF_UP);
-				amount = amount.add(amountNet.add(amountTax).subtract(feeCenter.getAmountDiscount()));
-
+				// 金额
+				BigDecimal amount;
+				BigDecimal amountTax;
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
+				amount = feeCenter.getQuantity().multiply(price);
+				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
+				feeCenter.setAmount(amount);
+				feeCenter.setAmountTax(amountTax);
 				//判断是否是本位币
 				if (exrateType.equals(feeCenter.getCurCode())) {
-					feeCenter.setAmountNetLoc(amountNet);
-					feeCenter.setAmountTaxLoc(amountTax);
 					feeCenter.setAmountLoc(amount);
-					feeCenter.setAmountDiscountLoc(amount);
 				} else {
-					feeCenter.setAmountNetLoc(amountNet.multiply(feeCenter.getExrate()));
-					feeCenter.setAmountTaxLoc(amountTax.multiply(feeCenter.getExrate()));
 					feeCenter.setAmountLoc(amount.multiply(feeCenter.getExrate()));
-					feeCenter.setAmountDiscountLoc(feeCenter.getAmountLoc());
 				}
-				feeCenter.setAmountNet(amountNet);
-				feeCenter.setAmountTax(amountTax);
-				feeCenter.setAmount(amount);
 				feeCenter.setUnsettledAmount(feeCenter.getAmount().subtract(feeCenter.getStlTtlAmount()));
 				feeCenterList.add(feeCenter);
 			}
@@ -1609,6 +1609,16 @@ public class FeeCenterServiceImpl extends ServiceImpl<FeeCenterMapper, FeeCenter
 					feeCenter.setQuantity(new BigDecimal("1"));
 					feeCenter.setAmount(feeCenter.getPrice().multiply(feeCenter.getQuantity()));
 				}
+				feeCenter.setTaxRate(items.getTaxRate());
+				// 金额
+				BigDecimal amount;
+				BigDecimal amountTax;
+				BigDecimal taxRate = feeCenter.getTaxRate().divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+				BigDecimal price = feeCenter.getPrice().add(feeCenter.getPrice().multiply(taxRate));
+				amount = feeCenter.getQuantity().multiply(price);
+				amountTax = feeCenter.getPrice().multiply(taxRate).multiply(feeCenter.getQuantity());
+				feeCenter.setAmount(amount);
+				feeCenter.setAmountTax(amountTax);
 				if (ObjectUtils.isNull(feeCenter.getAmount())) {
 					feeCenter.setAmount(new BigDecimal("0"));
 				}

+ 12 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterUpdateRecordServiceImpl.java

@@ -26,6 +26,8 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.los.Util.CurrencyUtils;
+import org.springblade.los.box.entity.TradingBox;
+import org.springblade.los.box.mapper.TradingBoxMapper;
 import org.springblade.los.business.amends.entity.Amends;
 import org.springblade.los.business.amends.mapper.AmendsMapper;
 import org.springblade.los.business.sea.entity.Bills;
@@ -96,6 +98,8 @@ public class FeeCenterUpdateRecordServiceImpl extends ServiceImpl<FeeCenterUpdat
 
 	private final CurrencyUtils currencyUtils;
 
+	private final TradingBoxMapper tradingBoxMapper;
+
 	@Override
 	public IPage<FeeCenterUpdateRecordVO> selectFeeCenterUpdateRecordPage(IPage<FeeCenterUpdateRecordVO> page, FeeCenterUpdateRecordVO feeCenterUpdateRecord) {
 		return page.setRecords(baseMapper.selectFeeCenterUpdateRecordPage(page, feeCenterUpdateRecord));
@@ -308,7 +312,7 @@ public class FeeCenterUpdateRecordServiceImpl extends ServiceImpl<FeeCenterUpdat
 				billDate = bills.getActualEta();
 			}
 			branchId = bills.getBranchId();
-		}else if ("ASE,ASI".contains(feeCenter.getBusinessType())) {
+		} else if ("ASE,ASI".contains(feeCenter.getBusinessType())) {
 			Amends bills = amendsMapper.selectById(feeCenter.getPid());
 			if (bills == null) {
 				throw new RuntimeException("未查到费用明细所在单据信息");
@@ -319,6 +323,13 @@ public class FeeCenterUpdateRecordServiceImpl extends ServiceImpl<FeeCenterUpdat
 				billDate = feeCenter.getBillDate();
 			}
 			branchId = bills.getBranchId();
+		} else if ("BUY,SELL,ZR,ZC,DL,OW-N,OW-F,XGFY,XGDX,CCSQ,DXCB,OW-HY".contains(feeCenter.getBusinessType())) {
+			TradingBox tradingBox = tradingBoxMapper.selectById(feeCenter.getPid());
+			if (tradingBox == null) {
+				throw new RuntimeException("未查到费用明细所在单据信息");
+			}
+			billDate = tradingBox.getPurchaseDate();
+			branchId = AuthUtil.getDeptId();
 		} else {
 			throw new RuntimeException("未查到费用明细所在单据信息");
 		}

+ 2 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -187,6 +187,8 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 			data.setBookingAgentId(item.getBookingAgentId());
 			data.setBookingAgentCnName(item.getBookingAgentCnName());
 			data.setBookingAgentEnName(item.getBookingAgentEnName());
+			data.setTaxRate(item.getTaxRate());
+			data.setAmountTax(item.getAmountTax());
 			BusinessBillNo businessBillNo = new BusinessBillNo();
 			businessBillNo.setBusinessTypeId(businessType.getId());
 			businessBillNo.setCode(finAccBills.getBillNoFormat());