Parcourir la source

20230218 1:01

wangzhuo il y a 2 ans
Parent
commit
9bd3441b6b

+ 10 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/ICorpsDescClient.java

@@ -45,6 +45,7 @@ public interface ICorpsDescClient {
 	String GRT_CORPS_BANK = API_PREFIX + "/getCorpsBank";
 	String INSERT_CORP = API_PREFIX + "/insertCorp";
 	String CORP_BY_IDS = API_PREFIX + "/selectByCorpIds";
+	String GET_CODE_CORP = API_PREFIX + "/getCodeCorp";
 	@PostMapping(CORPS_UPDATE)
 	R corpsUpdate(@RequestBody CorpsDesc corpsDesc);
 
@@ -186,4 +187,13 @@ public interface ICorpsDescClient {
 	 */
 	@PostMapping(INSERT_CORP)
 	int insertCorps(@RequestBody CorpsDesc corpsDesc);
+
+	/**
+	 * 根据code模糊查询客户
+	 *
+	 * @param code	编码
+	 * @return
+	 */
+	@GetMapping(GET_CODE_CORP)
+	List<CorpsDesc> getCodeCorp(@RequestParam("code") String code);
 }

+ 12 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/Delivery.java

@@ -624,4 +624,16 @@ public class Delivery implements Serializable {
 	@TableField(exist = false)
 	private Integer documentaryStatusType;
 
+	/**
+	 * 实际到货数量
+	 */
+	@TableField(exist = false)
+	private BigDecimal actualArrivalQuantity;
+
+	/**
+	 * 实际到货金额
+	 */
+	@TableField(exist = false)
+	private BigDecimal actualArrivalAmount;
+
 }

+ 13 - 1
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/excel/SaleDeliveryExcel.java

@@ -48,7 +48,19 @@ public class SaleDeliveryExcel {
 	 * 出库数量
 	 */
 	@ExcelProperty(value = "出库数量")
-	private BigDecimal freightQuantity;
+	private BigDecimal totalQuantity;
+
+	/**
+	 * 实际到货数量
+	 */
+	@ExcelProperty(value = "到货数量")
+	private BigDecimal actualArrivalQuantity;
+
+	/**
+	 * 实际到货金额
+	 */
+	@ExcelProperty(value = "实际到货金额")
+	private BigDecimal actualArrivalAmount;
 
 	/**
 	 * 制单人

+ 5 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/feign/CorpsDescClient.java

@@ -218,4 +218,9 @@ public class CorpsDescClient implements ICorpsDescClient {
 		return goodsTypeService.goodTypeIdList(goodTypeId.toString());
 	}
 
+	@Override
+	public List<CorpsDesc> getCodeCorp(String code){
+		return service.getCodeCorp(code);
+	}
+
 }

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/ICorpsDescService.java

@@ -205,4 +205,12 @@ public interface ICorpsDescService extends IService<CorpsDesc> {
 	CorpsDescDto getDetailsById(Long id);
 
 	CorpsDesc getMessageByIDParts(CorpsDesc corpsDesc);
+
+	/**
+	 * 根据code模糊查询客户
+	 *
+	 * @param code	编码
+	 * @return
+	 */
+	List<CorpsDesc> getCodeCorp(String code);
 }

+ 15 - 0
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsDescServiceImpl.java

@@ -740,6 +740,21 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		return baseMapper.selectByCorpIds(collect);
 	}
 
+	/**
+	 * 根据code模糊查询客户
+	 *
+	 * @param code	编码
+	 * @return
+	 */
+	@Override
+	public List<CorpsDesc> getCodeCorp(String code) {
+		LambdaQueryWrapper<CorpsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(CorpsDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(CorpsDesc::getIsDeleted, 0)
+			.like(CorpsDesc::getCode, code);
+		return baseMapper.selectList(lambdaQueryWrapper);
+	}
+
 	@Override
 	public IPage<CorpsDescDto> selectPartsCorpsDescPage(IPage<CorpsDescDto> page, CorpsDescDto corpsDescDto) {
 		//获取客户子类别

+ 7 - 7
blade-service/blade-client/src/main/java/org/springblade/client/land/excel/VehicleExcel.java

@@ -88,12 +88,12 @@ public class VehicleExcel implements Serializable {
 	/**
 	 * 牵引车辆型号
 	 */
-	@ExcelProperty(value = "牵引车辆型号(必填)")
+	@ExcelProperty(value = "牵引车辆型号")
 	private String towModel;
 	/**
 	 * 牵引车车架号
 	 */
-	@ExcelProperty(value = "牵引车车架号(必填)")
+	@ExcelProperty(value = "牵引车车架号")
 	private String towVin;
 	/**
 	 * 挂车型号
@@ -108,7 +108,7 @@ public class VehicleExcel implements Serializable {
 	/**
 	 * 发动机型号
 	 */
-	@ExcelProperty(value = "发动机型号(必填)")
+	@ExcelProperty(value = "发动机型号")
 	private String engineModel;
 	/**
 	 * 核载人数
@@ -123,7 +123,7 @@ public class VehicleExcel implements Serializable {
 	/**
 	 * 注册日期
 	 */
-	@ExcelProperty(value = "注册日期(必填)")
+	@ExcelProperty(value = "注册日期")
 	private Date registerDate;
 	/**
 	 * 报废日期
@@ -133,7 +133,7 @@ public class VehicleExcel implements Serializable {
 	/**
 	 * 过户日期
 	 */
-	@ExcelProperty(value = "过户日期(必填)")
+	@ExcelProperty(value = "过户日期")
 	private Date transferDate;
 	/**
 	 * 外廓尺寸(mm)
@@ -148,12 +148,12 @@ public class VehicleExcel implements Serializable {
 	/**
 	 * 核定重量(kg)
 	 */
-	@ExcelProperty(value = "核定重量(kg)(必填)")
+	@ExcelProperty(value = "核定重量(kg)")
 	private BigDecimal approvedWeight;
 	/**
 	 * 装备重量(kg)
 	 */
-	@ExcelProperty(value = "装备重量(kg)(必填)")
+	@ExcelProperty(value = "装备重量(kg)")
 	private BigDecimal equipmentWeight;
 	/**
 	 * 备注

+ 22 - 26
blade-service/blade-client/src/main/java/org/springblade/client/land/service/impl/LandVehicleServiceImpl.java

@@ -188,27 +188,6 @@ public class LandVehicleServiceImpl extends ServiceImpl<LandVehicleMapper, LandV
 			if (StringUtil.isBlank(excel.getPlateNo())) {
 				throw new SecurityException("第" + (i + 1) + "行数据异常,车号不能为空");
 			}
-			if (StringUtil.isBlank(excel.getTowModel())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,牵引车辆型号不能为空");
-			}
-			if (ObjectUtil.isEmpty(excel.getRegisterDate())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,注册日期不能为空");
-			}
-			if (StringUtil.isBlank(excel.getEngineModel())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,发动机型号不能为空");
-			}
-			if (StringUtil.isBlank(excel.getTowVin())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,牵引车车架号不能为空");
-			}
-			if (ObjectUtil.isEmpty(excel.getTransferDate())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,过户日期不能为空");
-			}
-			if (ObjectUtil.isEmpty(excel.getApprovedWeight())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,核定重量不能为空");
-			}
-			if (ObjectUtil.isEmpty(excel.getEquipmentWeight())){
-				throw new SecurityException("第" + (i + 1) + "行数据异常,装备重量不能为空");
-			}
 
 			/*Integer count = baseMapper.selectCount(new LambdaQueryWrapper<LandVehicle>()
 				.eq(LandVehicle::getPlateNo, excel.getPlateNo())
@@ -249,11 +228,28 @@ public class LandVehicleServiceImpl extends ServiceImpl<LandVehicleMapper, LandV
 
 			LandVehicle vehicle = BeanUtil.copy(excel, LandVehicle.class);
 			if (!ObjectUtil.isEmpty(vehicle)) {
-				vehicle.setFleetId(fleetId);
-				vehicle.setDriverId(driverId);
-				vehicle.setCreateUser(AuthUtil.getUserId());
-				vehicle.setCreateTime(new Date());
-				baseMapper.insert(vehicle);
+
+				LambdaQueryWrapper<LandVehicle> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+				lambdaQueryWrapper.eq(LandVehicle::getTenantId, AuthUtil.getTenantId())
+					.eq(LandVehicle::getIsDeleted, 0)
+					.eq(LandVehicle::getFleetId, fleetId)
+					.eq(LandVehicle::getDriverId, driverId)
+					.eq(LandVehicle::getPlateNo, vehicle.getPlateNo());
+
+				LandVehicle landVehicle = baseMapper.selectOne(lambdaQueryWrapper);
+
+				if (ObjectUtil.isNotEmpty(landVehicle)){
+					vehicle.setId(landVehicle.getId());
+					vehicle.setUpdateUser(AuthUtil.getUserId());
+					vehicle.setUpdateTime(new Date());
+					baseMapper.updateById(vehicle);
+				}else {
+					vehicle.setFleetId(fleetId);
+					vehicle.setDriverId(driverId);
+					vehicle.setCreateUser(AuthUtil.getUserId());
+					vehicle.setCreateTime(new Date());
+					baseMapper.insert(vehicle);
+				}
 
 				if (ObjectUtil.isNotEmpty(driverId)) {
 					LandVehicleChange vehicleChange = new LandVehicleChange();

+ 30 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java

@@ -59,8 +59,10 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 国内发货通知单 控制器
@@ -168,6 +170,20 @@ public class DeliveryController extends BladeController {
 					item.setStorageName(storageDesc.getCname());
 				}
 
+				//获得明细到货数量和到货金额
+				LambdaQueryWrapper<DeliveryItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				itemsLambdaQueryWrapper.eq(DeliveryItems::getTenantId, AuthUtil.getTenantId())
+					.eq(DeliveryItems::getIsDeleted, 0)
+					.eq(DeliveryItems::getPid, item.getId());
+
+				List<DeliveryItems> itemsList = deliveryItemsService.list(itemsLambdaQueryWrapper);
+				//实际到货数量
+				item.setActualArrivalQuantity(itemsList.stream().map(DeliveryItems::getArrivalQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				//实际到货金额
+				item.setActualArrivalAmount(itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> {
+					return x.add(y.getArrivalQuantity().multiply(y.getPrice()));
+				},BigDecimal::add));
+
 			});
 		}
 		return R.data(pages);
@@ -234,6 +250,20 @@ public class DeliveryController extends BladeController {
 					item.setStorageName(storageDesc.getCname());
 				}
 
+				//获得明细到货数量和到货金额
+				LambdaQueryWrapper<DeliveryItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+				itemsLambdaQueryWrapper.eq(DeliveryItems::getTenantId, AuthUtil.getTenantId())
+					.eq(DeliveryItems::getIsDeleted, 0)
+					.eq(DeliveryItems::getPid, item.getId());
+
+				List<DeliveryItems> itemsList = deliveryItemsService.list(itemsLambdaQueryWrapper);
+				//实际到货数量
+				item.setActualArrivalQuantity(itemsList.stream().map(DeliveryItems::getArrivalQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
+				//实际到货金额
+				item.setActualArrivalAmount(itemsList.stream().reduce(BigDecimal.ZERO, (x, y) -> {
+					return x.add(y.getArrivalQuantity().multiply(y.getPrice()));
+				},BigDecimal::add));
+
 			});
 		}
 

+ 22 - 5
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/BusinessOverpaymentController.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.mocha.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -28,6 +29,7 @@ import org.springblade.client.feign.ICorpsDescClient;
 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.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
@@ -41,6 +43,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 客户溢付款主表 控制器
@@ -75,8 +78,20 @@ public class BusinessOverpaymentController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入businessOverpayment")
 	public R<IPage<BusinessOverpayment>> list(BusinessOverpayment businessOverpayment, Query query) {
-		businessOverpayment.setTenantId(SecureUtil.getTenantId());
-		IPage<BusinessOverpayment> pages = businessOverpaymentService.page(Condition.getPage(query), Condition.getQueryWrapper(businessOverpayment));
+
+		LambdaQueryWrapper<BusinessOverpayment> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(BusinessOverpayment::getTenantId, AuthUtil.getTenantId())
+			.eq(BusinessOverpayment::getIsDeleted, 0)
+			.eq(ObjectUtil.isNotEmpty(businessOverpayment.getCorpId()), BusinessOverpayment::getCorpId, businessOverpayment.getCorpId());//客户
+
+		if (ObjectUtil.isNotEmpty(businessOverpayment.getCorpCode())){
+			//根据编码获取客户信息
+			List<CorpsDesc> list = corpsDescClient.getCodeCorp(businessOverpayment.getCorpCode());
+			List<Long> corpIds = list.stream().map(CorpsDesc::getId).collect(Collectors.toList());
+			lambdaQueryWrapper.in(BusinessOverpayment::getCorpId, corpIds);//编码
+		}
+
+		IPage<BusinessOverpayment> pages = businessOverpaymentService.page(Condition.getPage(query), lambdaQueryWrapper);
 
 		String corpIds = "";//客户拼接ids
 		for (BusinessOverpayment bo : pages.getRecords()){
@@ -93,9 +108,11 @@ public class BusinessOverpaymentController extends BladeController {
 						item.setCorpCode(corpsDescList.stream().filter(e -> e.getId().equals(item.getCorpId())).findFirst().get().getCode());
 					}
 				}
-				R<User> user = userClient.userInfoById(item.getCreateUser());
-				if (user.isSuccess() && user.getData() != null){
-					item.setCreateUserName(user.getData().getName());
+				if (ObjectUtil.isNotEmpty(item.getCreateUser())){
+					R<User> user = userClient.userInfoById(item.getCreateUser());
+					if (user.isSuccess() && user.getData() != null){
+						item.setCreateUserName(user.getData().getName());
+					}
 				}
 			});
 		}