Browse Source

2022年11月30日17:47:00

纪新园 3 years ago
parent
commit
2f1d57f86f

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

@@ -52,6 +52,26 @@ public class TradingBox implements Serializable {
 	 */
 	@ApiModelProperty(value = "合同号")
 	private String contractNo;
+
+	/**
+	 * 合同生效日期
+	 */
+	@ApiModelProperty(value = "合同生效日期")
+	private Date effectiveDate;
+
+	/**
+	 * 合同生效日期(开始-结束)
+	 *
+	 */
+	@TableField(exist = false)
+	private List<String> effectiveDateList;
+
+	/**
+	 * 合同失效日期
+	 */
+	@ApiModelProperty(value = "合同失效日期")
+	private Date expiryDate;
+
 	/**
 	 * 买入公司Id
 	 */
@@ -179,5 +199,11 @@ public class TradingBox implements Serializable {
 	@TableField(exist = false)
 	private String checkType;
 
+	/**
+	 * 箱数
+	 */
+	@ApiModelProperty(value = "箱数")
+	private int boxNumber;
+
 
 }

+ 11 - 0
blade-service-api/blade-box-tube-api/src/main/java/org/springblade/box/tube/entity/TradingBoxFees.java

@@ -202,6 +202,17 @@ public class TradingBoxFees implements Serializable {
 	 */
 	@ApiModelProperty(value = "汇率")
 	private BigDecimal exchangeRate;
+	/**
+	 * 租金开始时间
+	 */
+	@ApiModelProperty(value = "租金开始时间")
+	private Date rentStartDate;
+
+	/**
+	 * 租金结束时间
+	 */
+	@ApiModelProperty(value = "租金结束时间")
+	private Date rentEndDate;
 
 
 }

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

@@ -207,5 +207,11 @@ public class TradingBoxItem implements Serializable {
 	@ApiModelProperty(value = "最新地点")
 	private String address;
 
+	/**
+	 * 租金计算截止日期
+	 */
+	@ApiModelProperty(value = "租金计算截止日期")
+	private Date rentEndDate;
+
 
 }

+ 1 - 1
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/DataAnalysisVO.java

@@ -18,7 +18,7 @@ public class DataAnalysisVO {
 	private Long orderId;
 
 	//客户id
-	private String corpId;
+	private Long corpId;
 	//客户名称
 	private String corpName;
 

+ 201 - 0
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/controller/TradingBoxRentController.java

@@ -0,0 +1,201 @@
+/*
+ *      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.box.tube.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.box.tube.entity.TradingBox;
+import org.springblade.box.tube.service.ITradingBoxService;
+import org.springblade.box.tube.vo.TradingBoxVO;
+import org.springblade.core.boot.ctrl.BladeController;
+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.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 箱租入,出表 控制器
+ *
+ * @author BladeX
+ * @since 2022-11-14
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/tradingBoxRent")
+@Api(value = "箱租入,出表", tags = "箱租入,出表接口")
+public class TradingBoxRentController extends BladeController {
+
+	private final ITradingBoxService tradingBoxService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入tradingBox")
+	public R<TradingBox> detail(TradingBox tradingBox) {
+		TradingBox detail = tradingBoxService.getDetail(tradingBox);
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 箱租入,出表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入tradingBox")
+	public R<IPage<TradingBox>> list(TradingBox tradingBox, Query query) {
+		LambdaQueryWrapper<TradingBox> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(TradingBox::getTenantId, AuthUtil.getTenantId())
+			.eq(TradingBox::getIsDeleted, 0)
+			.like(ObjectUtils.isNotNull(tradingBox.getSysNo()), TradingBox::getSysNo, tradingBox.getSysNo())//业务编号
+			.like(ObjectUtils.isNotNull(tradingBox.getContractNo()), TradingBox::getContractNo, tradingBox.getContractNo())//合同号
+			.like(ObjectUtils.isNotNull(tradingBox.getPurchaseCompanyId()), TradingBox::getPurchaseCompanyId, tradingBox.getPurchaseCompanyId())//买入公司id
+			.eq(ObjectUtils.isNotNull(tradingBox.getStatus()), TradingBox::getStatus, tradingBox.getStatus())//状态
+			.eq(ObjectUtils.isNotNull(tradingBox.getType()), TradingBox::getType, tradingBox.getType());//业务类型
+		if (tradingBox.getEffectiveDateList() != null && tradingBox.getEffectiveDateList().size() > 1) {//买入时间
+			lambdaQueryWrapper.ge(TradingBox::getEffectiveDate, tradingBox.getEffectiveDateList().get(0));
+			lambdaQueryWrapper.le(TradingBox::getEffectiveDate, tradingBox.getEffectiveDateList().get(1));
+		}
+		lambdaQueryWrapper.orderByDesc(TradingBox::getCreateTime);
+		IPage<TradingBox> pages = tradingBoxService.page(Condition.getPage(query), lambdaQueryWrapper);
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 箱租入,出表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入tradingBox")
+	public R<IPage<TradingBoxVO>> page(TradingBoxVO tradingBox, Query query) {
+		IPage<TradingBoxVO> pages = tradingBoxService.selectTradingBoxPage(Condition.getPage(query), tradingBox);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 箱租入,出表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入tradingBox")
+	public R save(@Valid @RequestBody TradingBox tradingBox) {
+		return R.status(tradingBoxService.save(tradingBox));
+	}
+
+	/**
+	 * 修改 箱租入,出表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入tradingBox")
+	public R update(@Valid @RequestBody TradingBox tradingBox) {
+		return R.status(tradingBoxService.updateById(tradingBox));
+	}
+
+	/**
+	 * 新增或修改 箱租入,出表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入tradingBox")
+	public R submit(@Valid @RequestBody TradingBox tradingBox) {
+		return R.data(tradingBoxService.addRent(tradingBox));
+	}
+
+
+	/**
+	 * 删除 箱租入,出表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		TradingBox tradingBox = tradingBoxService.getById(ids);
+		if (ObjectUtils.isNotNull(tradingBox) && 3 == tradingBox.getStatus()) {
+			throw new RuntimeException("审核通过不允许删除");
+		}
+		return R.status(tradingBoxService.removeByIds(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 箱租入,出提交请核
+	 *
+	 * @param tradingBox
+	 * @return
+	 */
+	@PostMapping("/checkTradingBox")
+	public R checkTradingBox(@RequestBody TradingBox tradingBox) {
+		TradingBox check = tradingBoxService.checkTradingBox(tradingBox);
+		return R.data(check);
+	}
+
+	/**
+	 * 审核通过
+	 */
+	@PostMapping("/passCheck")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "Feign-审核通过", notes = "传入财务id")
+	public R passCheck(@ApiParam(value = "财务主表id", required = true) @RequestParam Long id) {
+		tradingBoxService.passCheck(id);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 审核中
+	 */
+	@PostMapping("/underReview")
+	public R underReview(@ApiParam(value = "主表id", required = true) @RequestParam Long id) {
+		tradingBoxService.underReview(id);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 审核不通过
+	 */
+	@PostMapping("/passCancel")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "Feign-审核不通过", notes = "传入财务id")
+	public R passCancel(@ApiParam(value = "财务主表id", required = true) @RequestParam Long id) {
+		tradingBoxService.passCancel(id);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 箱租入,出撤销请核
+	 *
+	 * @param tradingBox
+	 * @return
+	 */
+	@PostMapping("/withdrawTradingBox")
+	public R withdrawTradingBox(@RequestBody TradingBox tradingBox) {
+		TradingBox check = tradingBoxService.withdrawTradingBox(tradingBox);
+		return R.data(check);
+	}
+
+
+}

+ 2 - 0
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/ITradingBoxService.java

@@ -43,6 +43,8 @@ public interface ITradingBoxService extends IService<TradingBox> {
 
 	TradingBox add(TradingBox tradingBox);
 
+	TradingBox addRent(TradingBox tradingBox);
+
 	TradingBox checkTradingBox(TradingBox tradingBox);
 
 	R passCheck(Long id);

+ 26 - 29
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/RepairServiceImpl.java

@@ -204,7 +204,6 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
 			for (RepairItem repairItem : repairItemList) {
 				//明细
 				List<Files> itemFilesList = repairItem.getItemFilesList();
-				if (ObjectUtils.isNotNull(itemFilesList) && itemFilesList.size() > 0) {
 					if (repairItem.getId() == null) {
 						repairItem.setCreateUser(AuthUtil.getUserId());
 						repairItem.setBillType(repair.getBillType());
@@ -213,7 +212,6 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
 						repairItem.setPid(repair.getId());
 						repairItem.setCreateUserName(AuthUtil.getUserName());
 						repairItemMapper.insert(repairItem);
-
 					} else {
 						repairItem.setBillType(repair.getBillType());
 						repairItem.setUpdateUser(AuthUtil.getUserId());
@@ -242,34 +240,33 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
 							filesMapper.updateById(files);
 						}
 					}
-					//更新箱档案数据
-					if (ObjectUtils.isNotNull(repairItem.getCode())) {
-						Archives archives = new Archives();
-						archives.setCode(repairItem.getCode());
-						archives.setAddress(repair.getAddress());
-						archives.setAddressId(repair.getAddressId());
-						archives.setNewDate(repair.getNewDate());
-						archivesMapper.updateCode(archives);
-
-						//记录箱轨迹信息
-						ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
-						if ("REPAIR".equals(repair.getBillType())) {
-							archivesTrajectory.setStatus("修箱");
-						} else if ("WASH".equals(repair.getBillType())) {
-							archivesTrajectory.setStatus("洗箱");
-						}
-						archivesTrajectory.setBillType(repair.getBillType());
-						archivesTrajectory.setCode(repairItem.getCode());
-						archivesTrajectory.setAddress(repair.getAddress());
-						archivesTrajectory.setNewDate(repair.getNewDate());
-						archivesTrajectory.setCreateTime(new Date());
-						archivesTrajectory.setCreateUser(AuthUtil.getUserId());
-						archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
-						archivesTrajectory.setTenantId(AuthUtil.getTenantId());
-						archivesTrajectoryMapper.insert(archivesTrajectory);
-					} else {
-						throw new RuntimeException("箱号不能为空");
+				//更新箱档案数据
+				if (ObjectUtils.isNotNull(repairItem.getCode())) {
+					Archives archives = new Archives();
+					archives.setCode(repairItem.getCode());
+					archives.setAddress(repair.getAddress());
+					archives.setAddressId(repair.getAddressId());
+					archives.setNewDate(repair.getNewDate());
+					archivesMapper.updateCode(archives);
+
+					//记录箱轨迹信息
+					ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
+					if ("REPAIR".equals(repair.getBillType())) {
+						archivesTrajectory.setStatus("修箱");
+					} else if ("WASH".equals(repair.getBillType())) {
+						archivesTrajectory.setStatus("洗箱");
 					}
+					archivesTrajectory.setBillType(repair.getBillType());
+					archivesTrajectory.setCode(repairItem.getCode());
+					archivesTrajectory.setAddress(repair.getAddress());
+					archivesTrajectory.setNewDate(repair.getNewDate());
+					archivesTrajectory.setCreateTime(new Date());
+					archivesTrajectory.setCreateUser(AuthUtil.getUserId());
+					archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
+					archivesTrajectory.setTenantId(AuthUtil.getTenantId());
+					archivesTrajectoryMapper.insert(archivesTrajectory);
+				} else {
+					throw new RuntimeException("箱号不能为空");
 				}
 				repairItem.setItemFilesList(itemFilesList);
 			}

+ 187 - 0
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TradingBoxServiceImpl.java

@@ -358,6 +358,193 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 	}
 
 	@Override
+	public TradingBox addRent(TradingBox tradingBox) {
+		//判断id是否为空
+		if (tradingBox.getId() == null) {
+			//获取系统编号
+			R billNo = serialClient.getBillNo(tradingBox.getType(), "BOX", tradingBox.getType());
+			if (!billNo.isSuccess()) {
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				throw new Error("生成系统编号失败");
+			}
+
+			tradingBox.setSysNo(billNo.getData().toString());
+			tradingBox.setCreateTime(new Date());
+			tradingBox.setCreateUser(AuthUtil.getUserId());
+			tradingBox.setCreateUserName(AuthUtil.getUserName());
+			tradingBox.setTenantId(AuthUtil.getTenantId());
+			tradingBox.setStatus(0);
+			baseMapper.insert(tradingBox);
+		} else {
+			tradingBox.setUpdateTime(new Date());
+			tradingBox.setUpdateUser(AuthUtil.getUserId());
+			tradingBox.setUpdateUserName(AuthUtil.getUserName());
+			baseMapper.updateById(tradingBox);
+		}
+		//明细数据
+		List<TradingBoxItem> tradingBoxItemList = tradingBox.getTradingBoxItemsList();
+		if (ObjectUtils.isNotNull(tradingBoxItemList) && tradingBoxItemList.size() > 0) {
+			for (TradingBoxItem tradingBoxItem : tradingBoxItemList) {
+				if (tradingBoxItem.getId() == null) {
+					tradingBoxItem.setCreateUser(AuthUtil.getUserId());
+					tradingBoxItem.setCreateTime(new Date());
+					tradingBoxItem.setCreateUserName(AuthUtil.getUserName());
+					tradingBoxItem.setTenantId(AuthUtil.getTenantId());
+					tradingBoxItem.setPid(tradingBox.getId());
+					tradingBoxItemMapper.insert(tradingBoxItem);
+				} else {
+					tradingBoxItem.setUpdateUser(AuthUtil.getUserId());
+					tradingBoxItem.setUpdateTime(new Date());
+					tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
+					tradingBoxItem.setPid(tradingBox.getId());
+					tradingBoxItemMapper.updateById(tradingBoxItem);
+				}
+				//明细图片
+				List<TradingBoxFiles> tradingBoxItemFilesList = tradingBoxItem.getTradingBoxFilesList();
+				if (ObjectUtils.isNotNull(tradingBoxItemFilesList) && tradingBoxItemFilesList.size() > 0) {
+					for (TradingBoxFiles tradingBoxFiles : tradingBoxItemFilesList) {
+						if (tradingBoxFiles.getId() == null) {
+							tradingBoxFiles.setCreateUser(AuthUtil.getUserId());
+							tradingBoxFiles.setCreateTime(new Date());
+							tradingBoxFiles.setTenantId(AuthUtil.getTenantId());
+							tradingBoxFiles.setPid(tradingBoxItem.getId());
+							tradingBoxFiles.setType("2");
+							tradingBoxFiles.setFileName(tradingBoxFiles.getLabel());
+							tradingBoxFiles.setUrl(tradingBoxFiles.getValue());
+							tradingBoxFilesMapper.insert(tradingBoxFiles);
+						} else {
+							tradingBoxFiles.setUpdateUser(AuthUtil.getUserId());
+							tradingBoxFiles.setUpdateTime(new Date());
+							tradingBoxFiles.setPid(tradingBoxItem.getId());
+							tradingBoxFiles.setType("2");
+							tradingBoxFiles.setFileName(tradingBoxFiles.getLabel());
+							tradingBoxFiles.setUrl(tradingBoxFiles.getValue());
+							tradingBoxFilesMapper.updateById(tradingBoxFiles);
+						}
+					}
+					tradingBoxItem.setTradingBoxFilesList(tradingBoxItemFilesList);
+				}
+				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()));
+					Archives archives = new Archives();
+					if (ObjectUtils.isNotNull(archivesR)) {
+						BeanUtil.copy(archivesR, archives);
+					}
+					archives.setCode(tradingBoxItem.getCode());
+					archives.setName(tradingBoxItem.getBoxType());
+					archives.setVolume(tradingBoxItem.getVolume());
+					archives.setGorssWeight(tradingBoxItem.getGrossWeight());
+					archives.setStatus(tradingBoxItem.getStatus());
+					archives.setTypeId(tradingBoxItem.getBoxTypeId());
+					archives.setAddressId(tradingBoxItem.getAddressId());
+					archives.setAddress(tradingBoxItem.getAddress());
+					archives.setNewDate(tradingBoxItem.getNewDate());
+					archives.setLeasingCompanyId(tradingBox.getPurchaseCompanyId());
+					archives.setLeasingCompany(tradingBox.getPurchaseCompanyName());
+					archives.setBoxSource(tradingBoxItem.getBoxSource());
+					archives.setBoxStatus(tradingBoxItem.getBoxStatus());
+					archives.setEmptyWeight(tradingBoxItem.getEmptyWeight());
+					archives.setTare(tradingBoxItem.getTare());
+					archives.setLoadingWeight(tradingBoxItem.getLoadingWeight());
+					archives.setBoxMakingCompany(tradingBoxItem.getBoxMakingCompany());
+					archives.setBoxMakingCompanyId(tradingBoxItem.getBoxMakingCompanyId());
+					archives.setBoxMakingDate(tradingBoxItem.getBoxMakingDate());
+					archives.setLeaseCommencementDate(tradingBoxItem.getLeaseCommencementDate());
+					archives.setBoxAge(tradingBoxItem.getBoxAge());
+					archives.setPurchaseDate(tradingBox.getPurchaseDate());
+					archives.setContractNo(tradingBox.getContractNo());
+					if (ObjectUtils.isNotNull(archivesR)) {
+						archives.setUpdateTime(new Date());
+						archives.setUpdateUserName(AuthUtil.getUserName());
+						archives.setUpdateUser(AuthUtil.getUserId());
+						archivesMapper.updateById(archives);
+
+					} else {
+						archives.setCreateUser(AuthUtil.getUserId());
+						archives.setCreateTime(new Date());
+						archives.setCreateUserName(AuthUtil.getUserName());
+						archives.setTenantId(AuthUtil.getTenantId());
+						archivesMapper.insert(archives);
+						List<ArchivesFiles> archivesFilesList = BeanUtil.copy(tradingBoxItem.getTradingBoxFilesList(), ArchivesFiles.class);
+						for (ArchivesFiles archivesFiles : archivesFilesList) {
+							archivesFiles.setId(null);
+							archivesFiles.setPid(archives.getId());
+							archivesFiles.setFileName(archivesFiles.getLabel());
+							archivesFiles.setUrl(archivesFiles.getValue());
+							archivesFiles.setCreateUser(AuthUtil.getUserId());
+							archivesFiles.setCreateTime(new Date());
+							archivesFilesMapper.insert(archivesFiles);
+						}
+					}
+
+					//记录箱轨迹信息
+					ArchivesTrajectory archivesTrajectory = new ArchivesTrajectory();
+					if ("ZR".equals(tradingBox.getType())) {
+						archivesTrajectory.setStatus("租入");
+					} else if ("ZC".equals(tradingBox.getType())) {
+						archivesTrajectory.setStatus("租出");
+					}
+					archivesTrajectory.setContractNo(tradingBox.getContractNo());
+					archivesTrajectory.setBillType(tradingBox.getType());
+					archivesTrajectory.setCode(tradingBoxItem.getCode());
+					archivesTrajectory.setAddress(tradingBoxItem.getAddress());
+					archivesTrajectory.setNewDate(tradingBoxItem.getNewDate());
+					archivesTrajectory.setCreateTime(new Date());
+					archivesTrajectory.setCreateUser(AuthUtil.getUserId());
+					archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
+					archivesTrajectory.setTenantId(AuthUtil.getTenantId());
+					archivesTrajectoryMapper.insert(archivesTrajectory);
+				} else {
+					throw new RuntimeException("箱号不能为空");
+				}
+			}
+			tradingBox.setTradingBoxItemsList(tradingBoxItemList);
+		}
+		//费用明细
+		List<TradingBoxFees> tradingBoxFeesList = tradingBox.getTradingBoxFeesList();
+		if (ObjectUtils.isNotNull(tradingBoxFeesList) && tradingBoxFeesList.size() > 0) {
+			for (TradingBoxFees tradingBoxFees : tradingBoxFeesList) {
+				if (tradingBoxFees.getId() == null) {
+					tradingBoxFees.setCreateUser(AuthUtil.getUserId());
+					tradingBoxFees.setCreateTime(new Date());
+					tradingBoxFees.setTenantId(AuthUtil.getTenantId());
+
+					tradingBoxFeesMapper.insert(tradingBoxFees);
+				} else {
+					tradingBoxFees.setUpdateUser(AuthUtil.getUserId());
+					tradingBoxFees.setUpdateTime(new Date());
+					tradingBoxFees.setPid(tradingBox.getId());
+					tradingBoxFeesMapper.updateById(tradingBoxFees);
+				}
+			}
+			tradingBox.setTradingBoxFeesList(tradingBoxFeesList);
+		}
+		//主表附件
+		List<TradingBoxFiles> tradingBoxFilesList = tradingBox.getTradingBoxFilesList();
+		if (ObjectUtils.isNotNull(tradingBoxFilesList) && tradingBoxFilesList.size() > 0) {
+			for (TradingBoxFiles tradingBoxFiles : tradingBoxFilesList) {
+				if (tradingBoxFiles.getId() == null) {
+					tradingBoxFiles.setCreateUser(AuthUtil.getUserId());
+					tradingBoxFiles.setCreateTime(new Date());
+					tradingBoxFiles.setTenantId(AuthUtil.getTenantId());
+					tradingBoxFiles.setPid(tradingBox.getId());
+					tradingBoxFiles.setType("1");
+					tradingBoxFilesMapper.insert(tradingBoxFiles);
+				} else {
+					tradingBoxFiles.setUpdateUser(AuthUtil.getUserId());
+					tradingBoxFiles.setUpdateTime(new Date());
+					tradingBoxFiles.setPid(tradingBox.getId());
+					tradingBoxFiles.setType("1");
+					tradingBoxFilesMapper.updateById(tradingBoxFiles);
+				}
+			}
+			tradingBox.setTradingBoxFilesList(tradingBoxFilesList);
+		}
+		return tradingBox;
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public TradingBox checkTradingBox(TradingBox tradingBox) {

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

@@ -687,7 +687,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				items.setRemarks(transportItemFees.getRemarks());
 				items.setSrcBillNo(transport.getBillNo());
 				items.setStatusJT(0);
-				items.setBillNo(transport.getBillNo());
+				items.setBillNo(transport.getContractNo());
 				items.setStockTime(transport.getEffectiveDate());
 				items.setDepartureHarbor(transport.getDepartureHarbor());
 				items.setObjectiveHarbor(transport.getObjectiveHarbor());

+ 17 - 3
blade-service/blade-land/src/main/java/org/springblade/land/controller/StatisticsAnalysisController.java

@@ -21,6 +21,8 @@ import org.springblade.land.excel.DataAnalysisDetailsExcel;
 import org.springblade.land.excel.DataAnalysisEXcel;
 import org.springblade.land.service.IOrderService;
 import org.springblade.land.vo.DataAnalysisVO;
+import org.springblade.purchase.sales.entity.Order;
+import org.springblade.purchase.sales.feign.IOrderDescClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -38,6 +40,8 @@ public class StatisticsAnalysisController {
 
 	private final IOrderService orderService;
 
+	private final IOrderDescClient orderDescClient;
+
 	private final ICorpsDescClient corpsDescClient;
 
 
@@ -50,7 +54,12 @@ public class StatisticsAnalysisController {
 	public R<IPage<DataAnalysisVO>> dataAnalysis(DataAnalysisVO dataAnalysisVO, Query query) {
 		IPage<DataAnalysisVO> pages = orderService.getDataAnalysis(Condition.getPage(query), dataAnalysisVO);
 		for (DataAnalysisVO dataAnalysisVO_ : pages.getRecords()) {
-			dataAnalysisVO_.setPlatformBuy(0);
+			Order order = new Order();
+			order.setTradeType("YPJ");
+			order.setBillType("XS");
+			order.setCorpId(dataAnalysisVO_.getCorpId());
+			List<Order> orderList = orderDescClient.getByBillNo(order);
+			dataAnalysisVO_.setPlatformBuy(orderList.size());
 		}
 		return R.data(pages);
 	}
@@ -64,7 +73,12 @@ public class StatisticsAnalysisController {
 	public void dataAnalysisExport(DataAnalysisVO dataAnalysisVO, HttpServletResponse response) {
 		List<DataAnalysisVO> list = orderService.dataAnalysisExport(dataAnalysisVO);
 		for (DataAnalysisVO dataAnalysisVO_ : list) {
-			dataAnalysisVO_.setPlatformBuy(0);
+			Order order = new Order();
+			order.setTradeType("YPJ");
+			order.setBillType("XS");
+			order.setCorpId(dataAnalysisVO_.getCorpId());
+			List<Order> orderList = orderDescClient.getByBillNo(order);
+			dataAnalysisVO_.setPlatformBuy(orderList.size());
 		}
 		ExcelUtil.export(response, "导出箱档案信息", "导出数据表", BeanUtil.copy(list, DataAnalysisEXcel.class), DataAnalysisEXcel.class);
 	}
@@ -79,7 +93,7 @@ public class StatisticsAnalysisController {
 		LambdaQueryWrapper<LandOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(LandOrder::getIsDeleted, 0)
 			.eq(LandOrder::getTenantId, AuthUtil.getTenantId())
-			.eq(LandOrder::getCorpId, dataAnalysisVO.getCorpId());
+			.eq(ObjectUtils.isNotNull(dataAnalysisVO.getCorpId()),LandOrder::getCorpId, dataAnalysisVO.getCorpId());
 		if (dataAnalysisVO.getBsDateList() != null && dataAnalysisVO.getBsDateList().size() > 1) {
 			lambdaQueryWrapper.ge(LandOrder::getBsDate, dataAnalysisVO.getBsDateList().get(0));
 			lambdaQueryWrapper.le(LandOrder::getBsDate, dataAnalysisVO.getBsDateList().get(1));

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml

@@ -176,8 +176,8 @@
           AND lo.corp_id != ""
         <if test="dataAnalysisVO.corpName != null  and  dataAnalysisVO.corpName != ''">and bcd.cname like concat('%', #{dataAnalysisVO.corpName}, '%')</if>
         <if test="dataAnalysisVO.corpId != null and  dataAnalysisVO.corpId != ''">and lo.corp_id like concat('%', #{dataAnalysisVO.corpId}, '%')</if>
-        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[0] != ''">and t2.arrival_time &gt;= #{dataAnalysisVO.bsDateList[0]}</if>
-        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[1] != ''">and t2.arrival_time &lt;= #{dataAnalysisVO.bsDateList[1]}</if>
+        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[0] != ''">and lo.arrival_time &gt;= #{dataAnalysisVO.bsDateList[0]}</if>
+        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[1] != ''">and lo.arrival_time &lt;= #{dataAnalysisVO.bsDateList[1]}</if>
         GROUP BY
             lo.corp_id
     </select>
@@ -196,8 +196,8 @@
         AND lo.corp_id != ""
         <if test="dataAnalysisVO.corpName != null  and  dataAnalysisVO.corpName != ''">and bcd.cname like concat('%', #{dataAnalysisVO.corpName}, '%')</if>
         <if test="dataAnalysisVO.corpId != null and  dataAnalysisVO.corpId != ''">and lo.corp_id like concat('%', #{dataAnalysisVO.corpId}, '%')</if>
-        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[0] != ''">and t2.arrival_time &gt;= #{dataAnalysisVO.bsDateList[0]}</if>
-        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[1] != ''">and t2.arrival_time &lt;= #{dataAnalysisVO.bsDateList[1]}</if>
+        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[0] != ''">and lo.arrival_time &gt;= #{dataAnalysisVO.bsDateList[0]}</if>
+        <if test="dataAnalysisVO.bsDateList != null and  dataAnalysisVO.bsDateList[1] != ''">and lo.arrival_time &lt;= #{dataAnalysisVO.bsDateList[1]}</if>
         GROUP BY
         lo.corp_id
     </select>