Browse Source

2023年1月12日17:02:47

纪新园 2 years ago
parent
commit
f51f1f0226

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

@@ -264,6 +264,12 @@ public class TradingBox implements Serializable {
 	@ApiModelProperty(value = "明细箱号集合")
 	private String code;
 
+	/**
+	 * 来源
+	 */
+	@TableField(exist = false)
+	private String source;
+
 
 
 }

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

@@ -173,6 +173,12 @@ public class TransportItem implements Serializable {
 	@ApiModelProperty(value = "修改char值")
 	private String updateChar;
 
+	/**
+	 * 堆存状态(0  堆存中  1 已使用)
+	 */
+	@ApiModelProperty(value = "堆存状态")
+	private String stockpilingStatus;
+
 
 
 }

+ 13 - 2
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/controller/ArchivesController.java

@@ -186,6 +186,17 @@ public class ArchivesController extends BladeController {
 	@ApiOperation(value = "删除", notes = "传入ids")
 	@RepeatSubmit
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		if (ObjectUtils.isNotNull(ids)) {
+			String[] arrs = ids.split(",");
+			for (String arr : arrs) {
+				Archives archives = archivesService.getById(Long.parseLong(arr));
+				if (ObjectUtils.isNotNull(archives)){
+					if ("使用".equals(archives.getStatus())){
+						throw new RuntimeException("该箱正在使用中无法删除");
+					}
+				}
+			}
+		}
 		return R.status(archivesService.removeByIds(Func.toLongList(ids)));
 	}
 
@@ -294,10 +305,10 @@ public class ArchivesController extends BladeController {
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(archives.getBoxMakingCompanyId()), Archives::getBoxMakingCompanyId, archives.getBoxMakingCompanyId());
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(archives.getBoxStatus()), Archives::getBoxStatus, archives.getBoxStatus());
 		lambdaQueryWrapper.eq(ObjectUtils.isNotNull(archives.getStatus()), Archives::getStatus, archives.getStatus());
-		if (ObjectUtils.isNotNull(archives.getCode()) && !"undefined".equals(archives.getCode())){
+		if (ObjectUtils.isNotNull(archives.getCode()) && !"undefined".equals(archives.getCode())) {
 			lambdaQueryWrapper.apply(ObjectUtils.isNotNull(archives.getCode()), "find_in_set(code ,'" + archives.getCode() + "')");
 		}
-		List<Archives> list = archivesService.list( lambdaQueryWrapper);
+		List<Archives> list = archivesService.list(lambdaQueryWrapper);
 		return R.data(list);
 	}
 

+ 1 - 1
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/controller/TransferController.java

@@ -108,7 +108,7 @@ public class TransferController extends BladeController {
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入transport")
-	public R<TradingBox> submit(TradingBox tradingBox) {
+	public R<TradingBox> submit(@RequestBody TradingBox tradingBox) {
 		TradingBox detail = transferService.submit(tradingBox);
 		return R.data(detail);
 	}

+ 1 - 0
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/controller/TransportController.java

@@ -88,6 +88,7 @@ public class TransportController extends BladeController {
 			.like(ObjectUtils.isNotNull(transport.getSysNo()), Transport::getSysNo, transport.getSysNo())//业务编号
 			.like(ObjectUtils.isNotNull(transport.getContractNo()), Transport::getContractNo, transport.getContractNo())//合同号
 			.like(ObjectUtils.isNotNull(transport.getCode()), Transport::getCode, transport.getCode())//箱号
+			.like(ObjectUtils.isNotNull(transport.getBillNo()), Transport::getBillNo, transport.getBillNo())//提单号
 			.eq(ObjectUtils.isNotNull(transport.getStatus()), Transport::getStatus, transport.getStatus())//审核状态
 			.eq(ObjectUtils.isNotNull(transport.getCorpId()), Transport::getCorpId, transport.getCorpId())//客户id
 			.eq(ObjectUtils.isNotNull(transport.getDepartureHarborId()), Transport::getDepartureHarborId, transport.getDepartureHarborId())//起运港

+ 25 - 6
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/service/impl/TransferServiceImpl.java

@@ -67,6 +67,8 @@ public class TransferServiceImpl implements ITransferService {
 
 	private final TradingBoxMapper tradingBoxMapper;
 
+	private final TransportItemMapper transportItemMapper;
+
 	private final ICheckClient iCheckClient;
 
 	private final IFinanceClient financeClient;//财务
@@ -126,12 +128,27 @@ public class TransferServiceImpl implements ITransferService {
 			List<String> codes = tradingBoxItemList.stream().map(TradingBoxItem::getCode).distinct().collect(Collectors.toList());
 			tradingBox.setCode(String.join(",", codes));
 			for (TradingBoxItem tradingBoxItem : tradingBoxItemList) {
+				if (ObjectUtils.isNotNull(tradingBox.getSource())) {
+					if ("JKFC".equals(tradingBox.getSource()) || "CKZY".equals(tradingBox.getSource())) {
+						TransportItem transportItem = new TransportItem();
+						transportItem.setId(tradingBoxItem.getId());
+						transportItem.setStockpilingStatus("0");
+						transportItemMapper.updateById(transportItem);
+					} else {
+						TradingBoxItem tradingBoxItem_ = new TradingBoxItem();
+						tradingBoxItem_.setId(tradingBoxItem.getId());
+						tradingBoxItem_.setStockpilingStatus("0");
+						tradingBoxItemMapper.updateById(tradingBoxItem_);
+					}
+					tradingBoxItem.setId(null);
+				}
 				tradingBoxItem.setAddress(tradingBox.getAddress());
 				tradingBoxItem.setAddressId(tradingBox.getAddressId());
 				//明细数据修改添加
 				if (tradingBoxItem.getId() == null) {
 					tradingBoxItem.setCreateUser(AuthUtil.getUserId());
 					tradingBoxItem.setCreateTime(new Date());
+					tradingBoxItem.setRentStartDate(new Date());
 					tradingBoxItem.setCreateUserName(AuthUtil.getUserName());
 					tradingBoxItem.setTenantId(AuthUtil.getTenantId());
 					tradingBoxItem.setPid(tradingBox.getId());
@@ -226,7 +243,7 @@ public class TransferServiceImpl implements ITransferService {
 
 		//账单数据
 		ApplyDTO applyDTO = new ApplyDTO();
-		applyDTO.setBillType("申请");
+		applyDTO.setBillType("付费");
 		applyDTO.setTradeType("BOX");
 		applyDTO.setBelongCompany(tradingBox.getPurchaseCompanyName());
 		//账单明细
@@ -268,14 +285,15 @@ public class TransferServiceImpl implements ITransferService {
 			tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
 			tradingBoxItem.setRentEndDate(tradingBox.getRentCalculationDate());
 			tradingBoxItem.setRentStartDate(tradingBox.getRentStartDate());
+			tradingBoxItem.setCount(tradingBoxItem.getCount() + 1);
 			tradingBoxItemMapper.updateById(tradingBoxItem);
 
 			Items items = new Items();
-			if (1 == tradingBoxFees.getFeesType()) {
+			/*if (1 == tradingBoxFees.getFeesType()) {
 				items.setSrcFeesType("收费");
-			} else {
+			} else {*/
 				items.setSrcFeesType("付费");
-			}
+//			}
 			items.setSrcBoxBillType(tradingBoxFees.getBillType());
 			items.setItemType(tradingBox.getType());
 			items.setPrice(tradingBoxFees.getPrice());
@@ -368,7 +386,7 @@ public class TransferServiceImpl implements ITransferService {
 				Acc acc = new Acc();
 				acc.setSrcParentId(tradingBox.getId());
 				acc.setSrcFeesId(tradingBoxFeesList.get(0).getId());
-				acc.setBillType("堆存费");
+				acc.setBillType("费");
 				acc.setTradeType("BOX");
 				acc.setSrcType(5);
 				R<List<Acc>> r = financeClient.getAccListByCondition(acc);
@@ -388,6 +406,7 @@ public class TransferServiceImpl implements ITransferService {
 			tradingBoxItem.setUpdateTime(new Date());
 			tradingBoxItem.setUpdateUser(AuthUtil.getUserId());
 			tradingBoxItem.setUpdateUserName(AuthUtil.getUserName());
+			tradingBoxItem.setCount(tradingBoxItem.getCount()-1);
 			if (tradingBoxFeesList.size() == 1) {
 				tradingBoxItem.setRentEndDate(tradingBoxItem.getLeaseCommencementDate());
 				tradingBoxItem.setRentStartDate(tradingBoxItem.getLeaseCommencementDate());
@@ -419,7 +438,7 @@ public class TransferServiceImpl implements ITransferService {
 			TradingBox tradingBox = tradingBoxMapper.selectById(tradingBoxItemDetail.getPid());
 			if (ObjectUtils.isNull(tradingBox)) {
 				throw new RuntimeException("未找到单据信息");
-			}else{
+			} else {
 				//账单数据
 				ApplyDTO applyDTO = new ApplyDTO();
 				applyDTO.setBillType("申请");

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

@@ -354,7 +354,10 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 				//判断空箱入场时间是否大于合同时间  true 计算超期金额  false 不计算
 				if (transport.getExpiryDate().compareTo(newDate) < 0) {
 					//计算超期金额 并增加一条费用明细
-					BigDecimal amount = transportItem.getPrice().multiply(new BigDecimal(days), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+					BigDecimal amount = new BigDecimal("0.00");
+					if (!transportItem.getPrice().equals(new BigDecimal("0"))) {
+						amount = transportItem.getPrice().multiply(new BigDecimal(days), MathContext.DECIMAL32).setScale(2, BigDecimal.ROUND_HALF_UP);
+					}
 					transportItem.setOverdueAmount(amount);
 					LambdaUpdateWrapper<TransportItemFees> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
 					lambdaUpdateWrapper.eq(TransportItemFees::getCode, transportItem.getCode())

+ 14 - 1
blade-service/blade-land/src/main/java/org/springblade/land/controller/StatisticsAnalysisController.java

@@ -17,8 +17,10 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.land.entity.LandOrder;
+import org.springblade.land.entity.OrderItem;
 import org.springblade.land.excel.DataAnalysisDetailsExcel;
 import org.springblade.land.excel.DataAnalysisEXcel;
+import org.springblade.land.service.IOrderItemService;
 import org.springblade.land.service.IOrderService;
 import org.springblade.land.vo.DataAnalysisVO;
 import org.springblade.purchase.sales.entity.Order;
@@ -42,6 +44,8 @@ public class StatisticsAnalysisController {
 
 	private final IOrderService orderService;
 
+	private final IOrderItemService orderItemService;
+
 	private final IOrderDescClient orderDescClient;
 
 	private final ICorpsDescClient corpsDescClient;
@@ -113,7 +117,16 @@ public class StatisticsAnalysisController {
 			DataAnalysisVO_.setOrderNo(landOrder.getOrderNo());
 			DataAnalysisVO_.setPlateNo(landOrder.getPlateNo());
 			DataAnalysisVO_.setFreightCollect(landOrder.getFreightCollect());
-			DataAnalysisVO_.setFreightPay(landOrder.getFreightPay());
+			LambdaQueryWrapper<OrderItem> orderItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
+			orderItemLambdaQueryWrapper.eq(OrderItem::getOrderId,landOrder.getId())
+				.eq(OrderItem::getKind,2)
+				.eq(OrderItem::getIsDeleted,0)
+				.eq(OrderItem::getTenantId,AuthUtil.getTenantId());
+			List<OrderItem> orderItemList = orderItemService.list(orderItemLambdaQueryWrapper);
+			if (ObjectUtils.isNotNull(landOrder.getFreightPay())){
+				DataAnalysisVO_.setFreightPay(landOrder.getFreightPay().add(orderItemList.stream().map(OrderItem::getLandAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
+			}
+//			DataAnalysisVO_.setFreightPay(landOrder.getFreightPay());
 			dataAnalysisVOList.add(DataAnalysisVO_);
 		}
 		IPage<DataAnalysisVO> newPage = new Page<>();

+ 26 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -46,6 +46,7 @@ import org.springblade.land.util.MessageUtil;
 import org.springblade.land.vo.DataAnalysisVO;
 import org.springblade.land.vo.OrderAcctVO;
 import org.springblade.land.vo.OrderVO;
+import org.springblade.purchase.sales.entity.Order;
 import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
@@ -1271,6 +1272,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 	public IPage<DataAnalysisVO> getDataAnalysis(IPage<DataAnalysisVO> page, DataAnalysisVO dataAnalysisVO) {
 		dataAnalysisVO.setTenantId(AuthUtil.getTenantId());
 		List<DataAnalysisVO> dataAnalysisVOList = baseMapper.getDataAnalysis(page, dataAnalysisVO);
+		for (DataAnalysisVO dataAnalysis : dataAnalysisVOList) {
+			LambdaQueryWrapper<OrderItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(OrderItem::getOrderId,dataAnalysis.getOrderId())
+				.eq(OrderItem::getKind,2)
+				.eq(OrderItem::getIsDeleted,0)
+				.eq(OrderItem::getTenantId,AuthUtil.getTenantId());
+			List<OrderItem> orderItemList = orderItemMapper.selectList(lambdaQueryWrapper);
+			if (ObjectUtils.isNotNull(dataAnalysis.getFreightPay())){
+				dataAnalysis.setFreightPay(dataAnalysis.getFreightPay().add(orderItemList.stream().map(OrderItem::getLandAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
+			}
+		}
 //		calculateAcct(acctList);
 		return page.setRecords(dataAnalysisVOList);
 	}
@@ -1278,7 +1290,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 	@Override
 	public List<DataAnalysisVO> dataAnalysisExport(DataAnalysisVO dataAnalysisVO) {
 		dataAnalysisVO.setTenantId(AuthUtil.getTenantId());
-		return baseMapper.dataAnalysisExport(dataAnalysisVO);
+		List<DataAnalysisVO> dataAnalysisVOList = baseMapper.dataAnalysisExport(dataAnalysisVO);
+		for (DataAnalysisVO dataAnalysis : dataAnalysisVOList) {
+			LambdaQueryWrapper<OrderItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(OrderItem::getOrderId,dataAnalysis.getOrderId())
+				.eq(OrderItem::getKind,2)
+				.eq(OrderItem::getIsDeleted,0)
+				.eq(OrderItem::getTenantId,AuthUtil.getTenantId());
+			List<OrderItem> orderItemList = orderItemMapper.selectList(lambdaQueryWrapper);
+			if (ObjectUtils.isNotNull(dataAnalysis.getFreightPay())){
+				dataAnalysis.setFreightPay(dataAnalysis.getFreightPay().add(orderItemList.stream().map(OrderItem::getLandAmountC).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)));
+			}
+		}
+		return dataAnalysisVOList;
 	}
 
 	@Override
@@ -1314,7 +1338,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, LandOrder> implem
 			LandOrderItems.setChargeMember(corpsDesc.getCname());
 		}
 		LandOrderItems.setDepartureHarbor(order.getStation());
-		if (ObjectUtils.isNotNull(order.getDispatcher())){
+		if (ObjectUtils.isNotNull(order.getDispatcher())) {
 			LandOrderItems.setShipName(order.getDispatcher() + "");
 		}
 		LambdaQueryWrapper<OrderAddress> orderAddressLambdaQueryWrapper = new LambdaQueryWrapper<>();

+ 4 - 0
blade-service/trade-finance/src/main/java/org/springblade/finance/controller/SettlementController.java

@@ -143,6 +143,10 @@ public class SettlementController extends BladeController {
 				if (ObjectUtil.isNotEmpty(e.getCorpId())) {
 					e.setCorpName(corpsDescClient.getCorpMessage(e.getCorpId()).getData().getCname());
 				}
+				//客户名称
+				if (ObjectUtil.isNotEmpty(e.getFleetId())) {
+					e.setCorpName(corpsDescClient.getCorpMessage(e.getCorpId()).getData().getCname());
+				}
 				//费用名称
 				if (StringUtil.isNotBlank(e.getCostType())) {
 					R<FeesDesc> r = iFeesDescClient.detail(Long.valueOf(e.getCostType()));

+ 11 - 9
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -1238,6 +1238,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				}
 			}*/
 			Acc acc = new Acc();
+			BeanUtils.copyProperties(e, acc);
 			if (!tradeType.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())) {
 				if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
 					if (e.getSrcType() == 2) {
@@ -1275,7 +1276,6 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 				acc.setBillType(e.getSrcFeesType());
 				acc.setSrcDate(e.getStockTime());
 			}
-			BeanUtils.copyProperties(e, acc);
 			acc.setId(null);
 			acc.setCompanyid(e.getBelongToCorpId());
 			acc.setItemType(e.getItemType());
@@ -1311,12 +1311,14 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 		BeanUtils.copyProperties(settlementDTO, model);
 		List<Files> filesList = settlementDTO.getFilesList();
 		List<Items> itemsList = settlementDTO.getItemsList();
-		Collections.sort(itemsList, new Comparator<Items>() {
-			@Override
-			public int compare(Items o1, Items o2) {
-				return o2.getDc().compareTo(o1.getDc());
-			}
-		});
+		if("234557".equals(AuthUtil.getTenantId())){
+			Collections.sort(itemsList, new Comparator<Items>() {
+				@Override
+				public int compare(Items o1, Items o2) {
+					return o2.getDc().compareTo(o1.getDc());
+				}
+			});
+		}
 		BigDecimal total = itemsList.stream().filter(e -> e.getAmount() != null && "CNY".equals(e.getCurrency())).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		BigDecimal foreignTotal = itemsList.stream().filter(e -> e.getAmount() != null && !"CNY".equals(e.getCurrency())).map(Items::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
 		model.setForeignAmount(foreignTotal);
@@ -2748,6 +2750,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	public void paymentApplyBoxTube(List<Items> itemsList, String billType, String belongCompany, String tradeType) {
 		itemsList.forEach(e -> {
 			Acc acc = new Acc();
+			BeanUtils.copyProperties(e, acc);
 			if ("064132".equals(AuthUtil.getTenantId())){
 				acc.setBillType(e.getSrcFeesType());
 			}else {
@@ -2759,7 +2762,6 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			} else {
 				acc.setDc("c");
 			}
-			BeanUtils.copyProperties(e, acc);
 			acc.setItemType(e.getItemType());
 			acc.setAccSysNo(e.getSrcOrderno());
 			acc.setSrcRefno(e.getSrcOrderno());
@@ -2792,6 +2794,7 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 	public void paymentApplyLandOrder(List<Items> itemsList) {
 		itemsList.forEach(e -> {
 			Acc acc = new Acc();
+			BeanUtils.copyProperties(e, acc);
 			acc.setAccDate(new Date());
 			if ("付费".equals(e.getSrcFeesType())) {
 				acc.setDc("c");
@@ -2800,7 +2803,6 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			}
 			acc.setBillType(e.getSrcFeesType());
 			acc.setSrcDate(e.getStockTime());
-			BeanUtils.copyProperties(e, acc);
 			acc.setId(null);
 			acc.setCompanyid(e.getBelongToCorpId());
 			acc.setItemType(e.getItemType());