Bläddra i källkod

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 3 år sedan
förälder
incheckning
dde0be14c1
16 ändrade filer med 181 tillägg och 84 borttagningar
  1. 5 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderFee.java
  2. 5 0
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java
  3. 4 1
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/CdAcctExcel.java
  4. 4 1
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/KhAcctExcel.java
  5. 12 6
      blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/PtAcctExcel.java
  6. 16 0
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderController.java
  7. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java
  8. 6 0
      blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml
  9. 4 4
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java
  10. 17 0
      blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java
  11. 39 17
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java
  12. 30 40
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java
  13. 26 7
      blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java
  14. 1 1
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java
  15. 3 2
      blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java
  16. 5 1
      blade-service/trade-purchase/src/main/java/com/trade/purchase/office/service/impl/StockServiceImpl.java

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderFee.java

@@ -56,6 +56,11 @@ public class OrderFee implements Serializable {
 	@ApiModelProperty(value = "订单ID")
 	private Long orderId;
 	/**
+	 * 明细ID
+	 */
+	@ApiModelProperty(value = "明细ID")
+	private Long itemId;
+	/**
 	 * 客户ID
 	 */
 	@ApiModelProperty(value = "客户ID")

+ 5 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/OrderItem.java

@@ -294,6 +294,11 @@ public class OrderItem implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date realArrivalTime;
 	/**
+	 * 杂费确认状态
+	 */
+	@ApiModelProperty(value = "杂费确认状态")
+	private Integer confirmStatus;
+	/**
 	 * 租户
 	 */
 	@ApiModelProperty(value = "租户")

+ 4 - 1
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/CdAcctExcel.java

@@ -44,7 +44,7 @@ public class CdAcctExcel implements Serializable {
 	@ExcelProperty("场站")
 	private String station;
 
-	@ExcelProperty("尺寸箱型")
+	@ExcelProperty("箱型箱量")
 	private String ctnDetail;
 
 	@ExcelProperty("车队")
@@ -62,6 +62,9 @@ public class CdAcctExcel implements Serializable {
 	@ExcelProperty("杂费")
 	private BigDecimal extraAmountC;
 
+	@ExcelProperty("杂费明细")
+	private String extraAmountItemC;
+
 	@ExcelProperty("备注")
 	private String remarks;
 

+ 4 - 1
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/KhAcctExcel.java

@@ -44,7 +44,7 @@ public class KhAcctExcel implements Serializable {
 	@ExcelProperty("场站")
 	private String station;
 
-	@ExcelProperty("尺寸箱型")
+	@ExcelProperty("箱型箱量")
 	private String ctnDetail;
 
 	@ExcelProperty("车队")
@@ -62,6 +62,9 @@ public class KhAcctExcel implements Serializable {
 	@ExcelProperty("杂费")
 	private BigDecimal extraAmountD;
 
+	@ExcelProperty("杂费明细")
+	private String extraAmountItemD;
+
 	@ExcelProperty("备注")
 	private String remarks;
 

+ 12 - 6
blade-service-api/blade-land-api/src/main/java/org/springblade/land/excel/PtAcctExcel.java

@@ -44,7 +44,7 @@ public class PtAcctExcel implements Serializable {
 	@ExcelProperty("场站")
 	private String station;
 
-	@ExcelProperty("尺寸箱型")
+	@ExcelProperty("箱型箱量")
 	private String ctnDetail;
 
 	@ExcelProperty("车队")
@@ -56,17 +56,23 @@ public class PtAcctExcel implements Serializable {
 	@ExcelProperty("车号")
 	private String plateNo;
 
+	@ExcelProperty("应收运费")
+	private BigDecimal landAmountD;
+
+	@ExcelProperty("应收杂费")
+	private BigDecimal extraAmountD;
+
+	@ExcelProperty("应收杂费明细")
+	private String extraAmountItemD;
+
 	@ExcelProperty("应付运费")
 	private BigDecimal landAmountC;
 
 	@ExcelProperty("应付杂费")
 	private BigDecimal extraAmountC;
 
-	@ExcelProperty("应收运费")
-	private BigDecimal landAmountD;
-
-	@ExcelProperty("应收杂费")
-	private BigDecimal extraAmountD;
+	@ExcelProperty("应付杂费明细")
+	private String extraAmountItemC;
 
 	@ExcelProperty("利润")
 	private BigDecimal profit;

+ 16 - 0
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderController.java

@@ -209,4 +209,20 @@ public class OrderController extends BladeController {
 		}
 	}
 
+	/**
+	 * 附件上传
+	 */
+	@PostMapping("/file")
+	public R file(@RequestBody Order order) {
+		return R.status(orderService.file(order));
+	}
+
+	/**
+	 * 附件列表
+	 */
+	@GetMapping("/file-list")
+	public R fileList(Long id) {
+		return R.data(orderService.fileList(id));
+	}
+
 }

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/controller/OrderFeeController.java

@@ -157,16 +157,16 @@ public class OrderFeeController extends BladeController {
 	 * 确认
 	 */
 	@PostMapping("/confirm")
-	public R confirm(@RequestParam String ids) {
-		return R.status(orderFeeService.confirm(Func.toLongList(ids)));
+	public R confirm(@RequestParam Long itemId) {
+		return R.status(orderFeeService.confirm(itemId));
 	}
 
 	/**
 	 * 取消确认
 	 */
 	@PostMapping("/cancel-confirm")
-	public R cancelConfirm(@RequestParam String ids) {
-		return R.status(orderFeeService.cancelConfirm(Func.toLongList(ids)));
+	public R cancelConfirm(@RequestParam Long itemId) {
+		return R.status(orderFeeService.cancelConfirm(itemId));
 	}
 
 	/**

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

@@ -50,6 +50,7 @@
                t2.plate_no,
                sum(t2.land_amount_c) as landAmountC,
                sum(t2.land_amount_d) as landAmountD,
+               t2.confirm_status as confirmStatus,
                t2.status,
                t2.remarks
         from land_order t1
@@ -64,9 +65,11 @@
             and t2.kind = '2'
             and t1.is_deleted = 0
             <if test="acct.corpName != null and acct.corpName != ''">and t3.cname like concat('%', #{acct.corpName}, '%')</if>
+            <if test="acct.salesmanName != null and acct.salesmanName != ''">and t5.name like concat('%', #{acct.salesmanName}, '%')</if>
             <if test="acct.corpShortName != null and acct.corpShortName != ''">and t3.short_name like concat('%', #{acct.corpShortName}, '%')</if>
 
             <if test="acct.fleetId != null">and t2.fleet_id = #{acct.fleetId}</if>
+            <if test="acct.fleetShortName != null and acct.fleetShortName != ''">and t4.short_name like concat('%', #{acct.fleetShortName}, '%')</if>
             <if test="acct.addressDetail != null and acct.addressDetail != ''">and t1.address_detail like concat('%', #{acct.addressDetail}, '%')</if>
             <if test="acct.receiptNo != null and acct.receiptNo != ''">and t1.receipt_no like concat('%', #{acct.receiptNo}, '%')</if>
             <if test="acct.billNo != null and acct.billNo != ''">and t1.bill_no like concat('%', #{acct.billNo}, '%')</if>
@@ -77,12 +80,15 @@
             <if test="acct.endArrivalTime != null and acct.endArrivalTime != ''">and t2.arrival_time &lt;= #{acct.endArrivalTime}</if>
 
             <if test="acct.salesman != null">and t1.salesman = #{acct.salesman}</if>
+            <if test="acct.dispatcher != null">and t1.dispatcher = #{acct.dispatcher}</if>
+            <if test="acct.dispatchDept != null">and t1.dispatchDept = #{acct.dispatchDept}</if>
             <if test="acct.salesmanDeptList != null">and t1.salesman_dept in
                 <foreach item="dept" collection="acct.salesmanDeptList" open="(" separator="," close=")">
                     #{dept}
                 </foreach>
             </if>
             <if test="acct.shippingMode != null and acct.shippingMode != ''">and t1.shipping_mode = #{acct.shippingMode}</if>
+            <if test="acct.confirmStatus != null">and t2.confirm_status = #{acct.confirmStatus}</if>
             <if test="acct.status == 1">and t2.status in (0, 1)</if>
             <if test="acct.status == 2">and t2.status not in (0, 1, 4)</if>
             <if test="acct.status == 3">and t2.status = 4</if>

+ 4 - 4
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderFeeService.java

@@ -85,18 +85,18 @@ public interface IOrderFeeService extends IService<OrderFee> {
 	/**
 	 * 确认
 	 *
-	 * @param idList
+	 * @param itemId
 	 * @return
 	 */
-	boolean confirm(List<Long> idList);
+	boolean confirm(Long itemId);
 
 	/**
 	 * 取消确认
 	 *
-	 * @param idList
+	 * @param itemId
 	 * @return
 	 */
-	boolean cancelConfirm(List<Long> idList);
+	boolean cancelConfirm(Long itemId);
 
 	/**
 	 * 获取车队下拉

+ 17 - 0
blade-service/blade-land/src/main/java/org/springblade/land/service/IOrderService.java

@@ -18,6 +18,7 @@ package org.springblade.land.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.client.entity.CommonFile;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.land.entity.Order;
@@ -134,4 +135,20 @@ public interface IOrderService extends IService<Order> {
 	 */
 	boolean removeOrder(List<Long> idList);
 
+	/**
+	 * 附件上传
+	 *
+	 * @param order
+	 * @return
+	 */
+	boolean file(Order order);
+
+	/**
+	 * 附件列表
+	 *
+	 * @param id
+	 * @return
+	 */
+	List<CommonFile> fileList(Long id);
+
 }

+ 39 - 17
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderFeeServiceImpl.java

@@ -42,6 +42,7 @@ import org.springblade.land.vo.OrderFeeVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.Collections;
 import java.util.Date;
@@ -111,6 +112,20 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 			orderFee.setUpdateTime(new Date());
 			baseMapper.updateById(orderFee);
 		}
+
+		if (!ObjectUtil.isEmpty(orderFee.getCorpId())) {
+			R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(orderFee.getCorpId());
+			if (corpMessage.isSuccess() && corpMessage.getData() != null) {
+				orderFee.setCorpName(corpMessage.getData().getCname());
+				orderFee.setCorpShortName(corpMessage.getData().getShortName());
+			}
+		}
+		if (!ObjectUtil.isEmpty(orderFee.getFeeId())) {
+			R<FeesDesc> feesMessage = feesDescClient.detail(orderFee.getFeeId());
+			if (feesMessage.isSuccess() && feesMessage.getData() != null) {
+				orderFee.setFeeName(feesMessage.getData().getCname());
+			}
+		}
 		return orderFee;
 	}
 
@@ -148,27 +163,34 @@ public class OrderFeeServiceImpl extends ServiceImpl<OrderFeeMapper, OrderFee> i
 	}
 
 	@Override
-	public boolean confirm(List<Long> idList) {
-		idList.forEach(id -> {
-			OrderFee orderFee = new OrderFee();
-			orderFee.setId(id);
-			orderFee.setConfirmStatus(1);
-			orderFee.setConfirmUser(AuthUtil.getUserId());
-			orderFee.setConfirmTime(new Date());
-			baseMapper.updateById(orderFee);
-		});
+	@Transactional(rollbackFor = Exception.class)
+	public boolean confirm(Long itemId) {
+		OrderFee orderFee = new OrderFee();
+		orderFee.setConfirmStatus(1);
+		baseMapper.update(orderFee, new LambdaUpdateWrapper<OrderFee>()
+			.eq(OrderFee::getItemId, itemId)
+		);
+
+		OrderItem temp = new OrderItem();
+		temp.setId(itemId);
+		temp.setConfirmStatus(1);
+		orderItemMapper.updateById(temp);
 		return true;
 	}
 
 	@Override
-	public boolean cancelConfirm(List<Long> idList) {
-		idList.forEach(id -> {
-			baseMapper.update(null, new LambdaUpdateWrapper<OrderFee>()
-				.set(OrderFee::getConfirmStatus, 0)
-				.set(OrderFee::getConfirmUser, null)
-				.set(OrderFee::getConfirmTime, null)
-				.eq(OrderFee::getId, id));
-		});
+	@Transactional(rollbackFor = Exception.class)
+	public boolean cancelConfirm(Long itemId) {
+		OrderFee orderFee = new OrderFee();
+		orderFee.setConfirmStatus(0);
+		baseMapper.update(orderFee, new LambdaUpdateWrapper<OrderFee>()
+			.eq(OrderFee::getItemId, itemId)
+		);
+
+		OrderItem temp = new OrderItem();
+		temp.setId(itemId);
+		temp.setConfirmStatus(0);
+		orderItemMapper.updateById(temp);
 		return true;
 	}
 

+ 30 - 40
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderItemServiceImpl.java

@@ -486,54 +486,44 @@ public class OrderItemServiceImpl extends ServiceImpl<OrderItemMapper, OrderItem
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public List<OrderItem> changeFleet(OrderItem orderItem) {
-		orderItem.setStatus(1);
-		orderItem.setDispatchTime(new Date());
+		OrderItem temp = baseMapper.selectById(orderItem.getId());
+		if (!orderItem.getFleetId().equals(temp.getFleetId())) {
+			orderItem.setStatus(1);
+			orderItem.setDispatchTime(new Date());
+		}
 		orderItem.setUpdateUser(AuthUtil.getUserId());
 		orderItem.setUpdateTime(new Date());
 		baseMapper.updateById(orderItem);
 
-		baseMapper.update(null, new LambdaUpdateWrapper<OrderItem>()
-			.set(OrderItem::getVehicleId, null)
-			.set(OrderItem::getPlateNo, null)
-			.set(OrderItem::getDriverId, null)
-			.set(OrderItem::getTel, null)
-			.set(OrderItem::getFleetRemarks, null)
-			.set(OrderItem::getSendTime, null)
-			.set(OrderItem::getCtnNo, null)
-			.set(OrderItem::getDriverRemarks, null)
-			.set(OrderItem::getOneFeeC, "0.00")
-			.set(OrderItem::getTwoFeeC, "0.00")
-			.set(OrderItem::getThreeFeeC, "0.00")
-			.set(OrderItem::getFourFeeC, "0.00")
-			.set(OrderItem::getFiveFeeC, "0.00")
-			.set(OrderItem::getFeeRemarksC, null)
-			.set(OrderItem::getAcceptTime, null)
-			.eq(OrderItem::getId, orderItem.getId()));
-
-		Integer count = orderChangeMapper.selectCount(new LambdaQueryWrapper<OrderChange>()
-			.eq(OrderChange::getItemId, orderItem.getId())
-			.eq(OrderChange::getKind, 2)
-		);
-
-		if (count < 1) {
-			OrderChange changeTemp = orderChangeMapper.selectOne(new LambdaQueryWrapper<OrderChange>()
+		if (!orderItem.getFleetId().equals(temp.getFleetId())) {
+			Integer count = orderChangeMapper.selectCount(new LambdaQueryWrapper<OrderChange>()
 				.eq(OrderChange::getItemId, orderItem.getId())
-				.eq(OrderChange::getContent, "调度")
-				.eq(OrderChange::getKind, 1)
-				.orderByDesc(OrderChange::getChangeTime)
-				.last("limit 1")
+				.eq(OrderChange::getKind, 2)
 			);
 
-			OrderChange change = new OrderChange();
-			change.setItemId(orderItem.getId());
-			change.setContent(orderItem.getOriginalFleetName());
-			change.setKind(2);
-			change.setTenantId(changeTemp.getTenantId());
-			change.setChangeUser(changeTemp.getChangeUser());
-			change.setChangeTime(changeTemp.getChangeTime());
-			orderChangeMapper.insert(change);
+			if (count < 1) {
+				OrderChange changeTemp = orderChangeMapper.selectOne(new LambdaQueryWrapper<OrderChange>()
+					.eq(OrderChange::getItemId, orderItem.getId())
+					.eq(OrderChange::getContent, "调度")
+					.eq(OrderChange::getKind, 1)
+					.orderByDesc(OrderChange::getChangeTime)
+					.last("limit 1")
+				);
+
+				OrderChange change = new OrderChange();
+				change.setItemId(orderItem.getId());
+				change.setContent(orderItem.getOriginalFleetName());
+				change.setKind(2);
+				change.setTenantId(changeTemp.getTenantId());
+				change.setChangeUser(changeTemp.getChangeUser());
+				change.setChangeTime(changeTemp.getChangeTime());
+				orderChangeMapper.insert(change);
+			} else {
+				addChange(orderItem.getId(), orderItem.getFleetName(), 2);
+			}
 		}
-		addChange(orderItem.getId(), orderItem.getFleetName(), 2);
+
+		// 返回数据
 		List<OrderItem> itemList = baseMapper.selectList(new LambdaQueryWrapper<OrderItem>()
 			.eq(OrderItem::getOrderId, orderItem.getOrderId())
 			.eq(OrderItem::getKind, 2)

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

@@ -225,6 +225,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		orderQueryWrapper.in(CollectionUtil.isNotEmpty(orderIdList), Order::getId, orderIdList)
 			.eq(ObjectUtil.isNotEmpty(order.getCorpId()), Order::getCorpId, order.getCorpId())
 			.eq(ObjectUtil.isNotEmpty(order.getSalesman()), Order::getSalesman, order.getSalesman())
+			.eq(ObjectUtil.isNotEmpty(order.getDispatcher()), Order::getDispatcher, order.getDispatcher())
+			.eq(ObjectUtil.isNotEmpty(order.getDispatchDept()), Order::getDispatchDept, order.getDispatchDept())
 			.eq(ObjectUtil.isNotEmpty(itemStatus) && itemStatus == 999, Order::getStatus, 0)
 			.eq(StringUtil.isNotBlank(order.getShippingMode()), Order::getShippingMode, order.getShippingMode())
 			.like(StringUtil.isNotBlank(order.getOrderNo()), Order::getOrderNo, order.getOrderNo())
@@ -704,6 +706,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		return true;
 	}
 
+	@Override
+	@GlobalTransactional(rollbackFor = Exception.class)
+	public boolean file(Order order) {
+		List<CommonFile> fileList = order.getFileList();
+		fileList.forEach(file -> {
+			if (ObjectUtil.isEmpty(file.getId())) {
+				file.setPid(order.getId());
+				file.setSource(LandConstant.ORDER);
+			}
+		});
+		commonFileClient.saveList(fileList);
+		return true;
+	}
+
+	@Override
+	public List<CommonFile> fileList(Long id) {
+		R<List<CommonFile>> fileList = commonFileClient.getList(id, LandConstant.ORDER);
+		if (fileList.isSuccess() && fileList.getData() != null) {
+			return fileList.getData();
+		}
+		return Collections.emptyList();
+	}
+
 	private List<OrderItem> getOrderItemList(Long id) {
 		List<OrderItem> orderItemList = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
 			.eq(OrderItem::getOrderId, id)
@@ -758,8 +783,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	private void calculateAcct(List<OrderAcctVO> acctList) {
 		acctList.forEach(acct -> {
 			List<OrderFee> feeList = orderFeeMapper.selectList(new LambdaQueryWrapper<OrderFee>()
-				.eq(OrderFee::getOrderId, acct.getOrderId())
-				.eq(OrderFee::getPlateNo, acct.getPlateNo())
+				.eq(OrderFee::getItemId, acct.getItemId())
 				.eq(OrderFee::getIsDeleted, 0)
 			);
 
@@ -785,11 +809,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			acct.setExtraAmountC(feeList.stream().filter(e -> e.getType() == 2).reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getAmount()), BigDecimal::add));
 			acct.setExtraAmountItemC(extraAmountItemC.toString());
 			acct.setProfit(acct.getLandAmountD().add(acct.getExtraAmountD()).subtract(acct.getLandAmountC()).subtract(acct.getExtraAmountC()));
-			if (feeList.stream().anyMatch(e -> e.getConfirmStatus() == 1)) {
-				acct.setConfirmStatus(1);
-			} else {
-				acct.setConfirmStatus(0);
-			}
 		});
 	}
 

+ 1 - 1
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -108,7 +108,7 @@ public class UserController {
 	public R userList(UserVO userVO) {
 		LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.like(StringUtils.isNotBlank(userVO.getRealName()), User::getRealName, userVO.getRealName())
-			.eq(ObjectUtil.isNotEmpty(userVO.getDeptPid()), User::getDeptPid, userVO.getDeptPid())
+			.like(ObjectUtil.isNotEmpty(userVO.getDeptPid()), User::getDeptPid, userVO.getDeptPid())
 			.eq(User::getTenantId, AuthUtil.getTenantId())
 			.eq(User::getIsDeleted, 0);
 

+ 3 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -454,10 +454,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
 				if (ancestors.length > 1) {
 					pidList.add(ancestors[1]);
 				} else {
-					pidList.add(deptId);
+					pidList.add(id);
 				}
+			} else {
+				pidList.add(id);
 			}
-			pidList.add(deptId);
 		});
 		return pidList.stream().distinct().collect(Collectors.joining(","));
 	}

+ 5 - 1
blade-service/trade-purchase/src/main/java/com/trade/purchase/office/service/impl/StockServiceImpl.java

@@ -64,7 +64,11 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
 		stockVO.setTenantId(AuthUtil.getTenantId());
 		List<StockVO> records = baseMapper.selectList(page, stockVO);
 		records.forEach(record -> {
-			record.setUnitPrice(record.getAmount().divide(record.getBalanceQuantity(), RoundingMode.HALF_UP));
+			if (record.getBalanceQuantity().compareTo(BigDecimal.ZERO) > 0) {
+				record.setUnitPrice(record.getAmount().divide(record.getBalanceQuantity(), RoundingMode.HALF_UP));
+			} else {
+				record.setUnitPrice(BigDecimal.ZERO);
+			}
 
 			StockVO tempVO = new StockVO();
 			tempVO.setStorageId(record.getStorageId());