Browse Source

2022年11月24日17:59:53

纪新园 3 years ago
parent
commit
be0f4d8c18

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

@@ -122,5 +122,11 @@ public class ArchivesTrajectory implements Serializable {
 	@ApiModelProperty(value = "业务类型")
 	private String billType;
 
+	/**
+	 * 合同号
+	 */
+	@ApiModelProperty(value = "合同号")
+	private String contractNo;
+
 
 }

+ 3 - 2
blade-service/blade-box-tube/src/main/java/org/springblade/box/tube/controller/BoxDataAnalysisController.java

@@ -71,11 +71,12 @@ public class BoxDataAnalysisController extends BladeController {
 	@GetMapping("/details")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "箱分布", notes = "传入archives")
-	public R details(@RequestParam("address") String address, Query query) {
+	public R details(@RequestParam(value = "address",required = false) String address, Query query) {
 		LambdaQueryWrapper<Archives> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(Archives::getTenantId, AuthUtil.getTenantId())
 			.eq(Archives::getIsDeleted, 0)
-			.eq(Archives::getAddress, address);
+			.eq(Archives::getAddress, address)
+			.eq(Archives::getStatus, "使用");
 		IPage<Archives> archivesList = archivesService.page(Condition.getPage(query),lambdaQueryWrapper);
 		return R.data(archivesList);
 	}

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

@@ -17,8 +17,10 @@
 package org.springblade.box.tube.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;

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

@@ -17,10 +17,12 @@
 package org.springblade.box.tube.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
@@ -223,7 +225,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
 			}
 			baseMapper.updateById(repair);
 			for (RepairItem repairItem : repairItemList) {
-				//明细附件
+				//明细
 				List<Files> itemFilesList = repairItem.getItemFilesList();
 				if (ObjectUtils.isNotNull(itemFilesList) && itemFilesList.size() > 0) {
 					if (repairItem.getId() == null) {
@@ -243,7 +245,7 @@ public class RepairServiceImpl extends ServiceImpl<RepairMapper, Repair> impleme
 						repairItem.setUpdateUserName(AuthUtil.getUserName());
 						repairItemMapper.updateById(repairItem);
 					}
-
+					//明细附件
 					for (Files files : itemFilesList) {
 						if (files.getId() == null) {
 							files.setCreateUser(AuthUtil.getUserId());

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

@@ -17,10 +17,12 @@
 package org.springblade.box.tube.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
@@ -296,6 +298,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 					} else if ("SELL".equals(tradingBox.getType())) {
 						archivesTrajectory.setStatus("空箱离场");
 					}
+					archivesTrajectory.setContractNo(tradingBox.getContractNo());
 					archivesTrajectory.setBillType(tradingBox.getType());
 					archivesTrajectory.setCode(tradingBoxItem.getCode());
 					archivesTrajectory.setAddress(tradingBoxItem.getAddress());

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

@@ -17,10 +17,13 @@
 package org.springblade.box.tube.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 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.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.AllArgsConstructor;
@@ -39,9 +42,11 @@ import org.springblade.client.feign.ICorpsDescClient;
 import org.springblade.client.feign.IFeesDescClient;
 import org.springblade.client.feign.IMessageClient;
 import org.springblade.client.feign.ISerialClient;
+import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.finance.dto.ApplyDTO;
 import org.springblade.finance.feign.IFinanceClient;
@@ -59,10 +64,7 @@ import java.math.BigDecimal;
 import java.math.MathContext;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -280,7 +282,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 		//获取订单生效、失效日期
 		Transport transport = baseMapper.selectById(transportId);
 		if (ObjectUtils.isNull(transport) || ObjectUtils.isNull(transport.getEffectiveDate()) || ObjectUtils.isNull(transport.getExpiryDate())) {
-			throw new RuntimeException("数据不全,操作失败");
+			throw new RuntimeException("操作失败,合同生效日期或合同失效日期不能为空");
 		}
 
 		//最新时间
@@ -319,25 +321,42 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 					//计算超期金额 并增加一条费用明细
 					BigDecimal 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())
+					.eq(TransportItemFees::getPid,transport.getId())
+						.eq(TransportItemFees::getIsDeleted,0)
+						.eq(TransportItemFees::getTenantId,AuthUtil.getTenantId());
 					R<FeesDesc> feesDescR = feesDescClient.getFeesByName("超期费");
 					if (feesDescR.isSuccess() && ObjectUtils.isNotNull(feesDescR.getData())) {
-						TransportItemFees transportItemFees = new TransportItemFees();
-						transportItemFees.setCreateUser(AuthUtil.getUserId());
-						transportItemFees.setCreateTime(new Date());
-						transportItemFees.setTenantId(AuthUtil.getTenantId());
-						transportItemFees.setPid(transport.getId());
-						transportItemFees.setFeesType(1);
-						transportItemFees.setCode(transportItem.getCode());
-						transportItemFees.setSort(1);
-						transportItemFees.setItemId(feesDescR.getData().getId());
-						transportItemFees.setCorpId(transport.getCorpId());
-						transportItemFees.setQuantity(new BigDecimal(days));
-						transportItemFees.setPrice(transportItem.getPrice());
-						transportItemFees.setAmount(amount);
-						transportItemFees.setCurrency("CNY");
-						transportItemFees.setAutoGenerate("0");
-						transportItemFees.setUnit(transportItem.getBoxType());
-						transportItemFeesMapper.insert(transportItemFees);
+						lambdaUpdateWrapper.eq(TransportItemFees::getItemId,feesDescR.getData().getId());
+						TransportItemFees selectTransportItemFees = transportItemFeesMapper.selectOne(lambdaUpdateWrapper);
+						if (ObjectUtils.isNotNull(selectTransportItemFees)){
+							selectTransportItemFees.setAmount(amount);
+							transportItemFeesMapper.updateById(selectTransportItemFees);
+						}else{
+							TransportItemFees transportItemFees = new TransportItemFees();
+							transportItemFees.setCreateUser(AuthUtil.getUserId());
+							transportItemFees.setCreateTime(new Date());
+							transportItemFees.setTenantId(AuthUtil.getTenantId());
+							transportItemFees.setPid(transport.getId());
+							transportItemFees.setFeesType(1);
+							transportItemFees.setCode(transportItem.getCode());
+							transportItemFees.setSort(1);
+							transportItemFees.setItemId(feesDescR.getData().getId());
+							if (ObjectUtils.isNotNull(transport.getCorpId())){
+								transportItemFees.setCorpId(transport.getCorpId());
+							}else{
+								transportItemFees.setCorpId(transport.getShippingCompanyId());
+							}
+							transportItemFees.setQuantity(new BigDecimal(days));
+							transportItemFees.setPrice(transportItem.getPrice());
+							transportItemFees.setAmount(amount);
+							transportItemFees.setCurrency("CNY");
+							transportItemFees.setAutoGenerate("0");
+							transportItemFees.setUnit(transportItem.getBoxType());
+							transportItemFees.setExchangeRate(new BigDecimal("1"));
+							transportItemFeesMapper.insert(transportItemFees);
+						}
 					}
 				}
 			}
@@ -362,6 +381,7 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 			archivesTrajectory.setCreateUser(AuthUtil.getUserId());
 			archivesTrajectory.setCreateUserName(AuthUtil.getUserName());
 			archivesTrajectory.setTenantId(AuthUtil.getTenantId());
+			archivesTrajectory.setContractNo(transport.getContractNo());
 			archivesTrajectoryMapper.insert(archivesTrajectory);
 
 			transportItemList.add(transportItem);
@@ -465,6 +485,9 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 			BigDecimal payAmount = new BigDecimal("0.00");
 			if (ObjectUtils.isNotNull(receivableOrderFeesList)) {
 				for (TransportItemFees transportItemFees : receivableOrderFeesList) {
+					if (ObjectUtils.isNull(transportItemFees.getExchangeRate())) {
+						throw new RuntimeException("箱号:" + transportItemFees.getCode() + ",汇率不能为空");
+					}
 					payAmount = payAmount.add(transportItemFees.getPrice().multiply(transportItemFees.getExchangeRate(), MathContext.DECIMAL32));
 				}
 			}
@@ -479,6 +502,9 @@ public class TransportServiceImpl extends ServiceImpl<TransportMapper, Transport
 			BigDecimal receivableAmount = new BigDecimal("0.00");
 			if (ObjectUtils.isNotNull(payOrderFeesList)) {
 				for (TransportItemFees transportItemFees : payOrderFeesList) {
+					if (ObjectUtils.isNull(transportItemFees.getExchangeRate())) {
+						throw new RuntimeException("箱号:" + transportItemFees.getCode() + ",汇率不能为空");
+					}
 					receivableAmount = receivableAmount.add(transportItemFees.getPrice().multiply(transportItemFees.getExchangeRate(), MathContext.DECIMAL32));
 				}
 			}

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java

@@ -147,7 +147,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	@Transactional(rollbackFor = Exception.class)
 	public R submitDelivery(Delivery delivery) {
 		String status = null;//订单状态
-		if (!"888390".equals(AuthUtil.getTenantId())){
+		if ("681169".equals(AuthUtil.getTenantId())){
 			if(ObjectUtil.isEmpty(delivery.getSalesCompany())){
 				throw new SecurityException("单据所属公司不能为空");
 			}
@@ -605,7 +605,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 		if (select == null) {
 			throw new SecurityException("未查到相关数据,操作失败");
 		}
-		if (!"888390".equals(AuthUtil.getTenantId())){
+		if ("681169".equals(AuthUtil.getTenantId())){
 			if (ObjectUtil.isEmpty(select.getCorpId())){
 				throw new SecurityException("供应商必填");
 			}