Browse Source

2024年9月4日17:20:47

纪新园 1 year ago
parent
commit
af3adbb803

+ 0 - 1
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/entity/PjOrderItems.java

@@ -53,7 +53,6 @@ public class PjOrderItems implements Serializable {
 	 */
 	@ApiModelProperty(value = "租户id")
 	private String tenantId = AuthUtil.getTenantId();
-	;
 	/**
 	 * 主表id
 	 */

+ 74 - 0
blade-service-api/blade-sales-part-api/src/main/java/org/springblade/salesPart/excel/InventoryExportExcel.java

@@ -0,0 +1,74 @@
+package org.springblade.salesPart.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 库存导出实体类
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class InventoryExportExcel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 商品名称
+	 */
+	@ExcelProperty(value = "商品名称")
+	private String cname;
+	/**
+	 * 商品编码
+	 */
+	@ExcelProperty(value = "商品编码")
+	private String code;
+	/**
+	 * 仓库/库区名称
+	 */
+	@ExcelProperty(value = "仓库")
+	private String storageName;
+	/**
+	 * 批次号
+	 */
+	@ExcelProperty(value = "批次")
+	private String dot;
+	/**
+	 * 结余数量
+	 */
+	@ExcelProperty(value = "库存数量")
+	private BigDecimal balanceQuantity;
+	/**
+	 * 盘点库存
+	 */
+	@ExcelProperty(value = "实际库存")
+	private BigDecimal profitLossNum;
+	/**
+	 * 品牌名称
+	 */
+	@ExcelProperty(value = "品牌")
+	private String brandName;
+	/**
+	 * 花纹
+	 */
+	@ExcelProperty(value = "花纹")
+	private String brandItem;
+	/**
+	 * 尺寸
+	 */
+	@ExcelProperty(value = "尺寸")
+	private String goodsSize;
+	/**
+	 * 商品IDS
+	 */
+	@ExcelProperty(value = "商品IDS")
+	private String goods;
+}

+ 17 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/check/service/impl/AuditProecessServiceImpl.java

@@ -172,12 +172,27 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, P
 				message.setParameter(String.valueOf(auditProecessDTO.getBillId()));
 				if ("退款审批".equals(auditProecessDTO.getProcessType())) {
 					message.setMessageBody("您有新的售后审核,客户名:" + corpName + "," + "订单号:" +
-						"" + auditProecessDTO.getBillNo() + ",请审核。"
+						 auditProecessDTO.getBillNo() + ",请审核。"
 						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
 					);
 				} else if ("采购审核".equals(auditProecessDTO.getProcessType())) {
 					message.setMessageBody("您有新的采购审核,客户名:" + corpName + "," + "订单号:" +
-						"" + auditProecessDTO.getBillNo() + ",请审核。"
+						  auditProecessDTO.getBillNo() + ",请审核。"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
+				}else if ("出库任务审批".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有新的出库任务审核,客户名:" + corpName + "," + "订单号:" +
+						 auditProecessDTO.getBillNo() + ",请审核。"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
+				}else if ("采购融资审核".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有新的采购融资审核,客户名:" + corpName + "," + "订单号:" +
+						 auditProecessDTO.getBillNo() + ",请审核。"
+						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
+					);
+				}else if ("轮胎配件采购退货审核".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有新的采购退货审核,客户名:" + corpName + "," + "订单号:" +
+						 auditProecessDTO.getBillNo() + ",请审核。"
 						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
 					);
 				}

+ 27 - 15
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/controller/InventoryController.java

@@ -16,10 +16,13 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.salesPart.entity.PjGoodsDesc;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjOrderItems;
+import org.springblade.salesPart.excel.InventoryExportExcel;
 import org.springblade.salesPart.excel.PjOrderExportExcelPD;
 import org.springblade.salesPart.excel.StockExportExcel;
+import org.springblade.salesPart.goods.service.IGoodsDescService;
 import org.springblade.salesPart.order.service.IOrderItemsService;
 import org.springblade.salesPart.order.service.IOrderService;
 import org.springblade.system.user.entity.User;
@@ -31,6 +34,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author :jixinyuan
@@ -44,6 +48,7 @@ public class InventoryController {
 
 	private final IOrderService orderService;
 	private final IOrderItemsService orderItemsService;
+	private final IGoodsDescService goodsDescService;
 	//获取用户信息
 	private final IUserClient iUserClient;
 
@@ -183,7 +188,7 @@ public class InventoryController {
 	@ApiOperation(value = "盘点明细导入", notes = "传入excel")
 	public R<List<PjOrderItems>> importItem(@RequestParam("file") MultipartFile file) {
 		//导入数据
-		List<StockExportExcel> excelList = ExcelUtil.read(file, StockExportExcel.class);
+		List<InventoryExportExcel> excelList = ExcelUtil.read(file, InventoryExportExcel.class);
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("数据不能为空");
 		}
@@ -205,22 +210,29 @@ public class InventoryController {
 			.eq(PjOrderItems::getTenantId, AuthUtil.getTenantId())
 			.eq(PjOrderItems::getIsDeleted, 0)
 			.eq(PjOrderItems::getPid, order.getId()));
-		List<StockExportExcel> list = new ArrayList<>();
+		List<Long> goodsId = orderItemsList.stream().map(PjOrderItems::getGoodsId).distinct().collect(Collectors.toList());
+		List<PjGoodsDesc> goodsDescList = goodsDescService.list(new LambdaQueryWrapper<PjGoodsDesc>()
+			.eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
+			.eq(PjGoodsDesc::getIsDeleted, 0)
+			.in(PjGoodsDesc::getId, goodsId));
+		List<InventoryExportExcel> list = new ArrayList<>();
 		for (PjOrderItems items : orderItemsList) {
-			StockExportExcel stockExportExcel = new StockExportExcel();
-			stockExportExcel.setCode(items.getGoodsNo());
-			stockExportExcel.setCname(items.getGoodsName());
-			stockExportExcel.setTypeno(items.getPropertyName());
-			stockExportExcel.setBrandItem(items.getPattern());
-			stockExportExcel.setBrandName(items.getBrandName());
-			stockExportExcel.setProductDescription(items.getGoodsDescription());
-			stockExportExcel.setStorageName(pjOrder.getStorageName());
-			stockExportExcel.setBalanceQuantity(items.getInventory());
-			stockExportExcel.setDot(items.getDot());
-			stockExportExcel.setGoods(items.getGoodsId()+"");
-			list.add(stockExportExcel);
+			PjGoodsDesc goodsDesc = goodsDescList.stream().filter(e-> e.getId().equals(items.getGoodsId())).findFirst().orElse(null);
+			if (goodsDesc != null){
+				InventoryExportExcel stockExportExcel = new InventoryExportExcel();
+				stockExportExcel.setCode(items.getGoodsNo());
+				stockExportExcel.setCname(items.getGoodsName());
+				stockExportExcel.setBrandItem(items.getPattern());
+				stockExportExcel.setBrandName(items.getBrandName());
+				stockExportExcel.setStorageName(pjOrder.getStorageName());
+				stockExportExcel.setBalanceQuantity(items.getInventory());
+				stockExportExcel.setDot(items.getDot());
+				stockExportExcel.setGoodsSize(goodsDesc.getGoodsSize());
+				stockExportExcel.setGoods(items.getGoodsId() + "");
+				list.add(stockExportExcel);
+			}
 		}
-		ExcelUtil.export(response, "盘点单", "盘点数据", list, StockExportExcel.class);
+		ExcelUtil.export(response, "盘点单", "盘点数据", list, InventoryExportExcel.class);
 	}
 
 	/**

+ 2 - 5
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/IOrderService.java

@@ -26,10 +26,7 @@ import org.springblade.salesPart.dto.SalespersonCustomer;
 import org.springblade.salesPart.entity.PjOrder;
 import org.springblade.salesPart.entity.PjOrderItems;
 import org.springblade.salesPart.entity.PjProductLaunch;
-import org.springblade.salesPart.excel.PjOrderStatisticsExcel;
-import org.springblade.salesPart.excel.ShipItemImportXSCodeExcel;
-import org.springblade.salesPart.excel.ShipItemImportXSExcel;
-import org.springblade.salesPart.excel.StockExportExcel;
+import org.springblade.salesPart.excel.*;
 import org.springblade.salesPart.vo.OrderStatistics;
 import org.springblade.salesPart.vo.OrderVO;
 import org.springblade.salesPart.vo.PjOrderStatisticsWeb;
@@ -192,7 +189,7 @@ public interface IOrderService extends IService<PjOrder> {
 
 	R confirmInventory(PjOrder order);
 
-	R<List<PjOrderItems>> importItem(List<StockExportExcel> excelList);
+	R<List<PjOrderItems>> importItem(List<InventoryExportExcel> excelList);
 
 	List<Map<String, Object>> brandSalesVolume(String statusDate, String endDate, String deptId, String tenantId);
 

+ 4 - 8
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -52,10 +52,7 @@ import org.springblade.salesPart.dto.SaleDetail;
 import org.springblade.salesPart.dto.SalespersonCustomer;
 import org.springblade.salesPart.entity.*;
 import org.springblade.salesPart.enums.OrderTypeEnum;
-import org.springblade.salesPart.excel.PjOrderStatisticsExcel;
-import org.springblade.salesPart.excel.ShipItemImportXSCodeExcel;
-import org.springblade.salesPart.excel.ShipItemImportXSExcel;
-import org.springblade.salesPart.excel.StockExportExcel;
+import org.springblade.salesPart.excel.*;
 import org.springblade.salesPart.funding.dto.FinancingShipItemDto;
 import org.springblade.salesPart.funding.entity.PjpfFunding;
 import org.springblade.salesPart.funding.entity.PjpfFundingItem;
@@ -1326,18 +1323,18 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 	}
 
 	@Override
-	public R<List<PjOrderItems>> importItem(List<StockExportExcel> excelList) {
+	public R<List<PjOrderItems>> importItem(List<InventoryExportExcel> excelList) {
 		if (CollectionUtils.isEmpty(excelList)) {
 			throw new SecurityException("导入数据不能为空");
 		}
 		List<PjOrderItems> list = new ArrayList<>();
-		List<String> storage = excelList.stream().map(StockExportExcel::getStorageName).distinct().collect(Collectors.toList());
+		List<String> storage = excelList.stream().map(InventoryExportExcel::getStorageName).distinct().collect(Collectors.toList());
 		if (storage.size() > 1) {
 			throw new RuntimeException("导入数据存在多个库存数据,请修改");
 		}
 		for (int i = 0; i < excelList.size(); i++) {
 			//判断必填项是否为空
-			StockExportExcel itemExcel = excelList.get(i);
+			InventoryExportExcel itemExcel = excelList.get(i);
 			if (ObjectUtil.isEmpty(itemExcel.getProfitLossNum())) {
 				throw new SecurityException("第" + (i + 2) + "行,盘点库存为空");
 			}
@@ -1360,7 +1357,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 				item.setGoodsDescription(goodsDesc.getGoodsDescription());
 				item.setUnits(goodsDesc.getUnit());
 				item.setSendNum(itemExcel.getProfitLossNum());
-				item.setCostprie(itemExcel.getInventoryCostPrice());
 				item.setInventory(itemExcel.getBalanceQuantity());
 			} else {
 				throw new RuntimeException("第" + (i + 2) + "行,商品名称不存在");

+ 6 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/ship/service/impl/ShipServiceImpl.java

@@ -933,6 +933,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				.eq(PjOrder::getIsDeleted, 0)
 				.eq(PjOrder::getWhetherFinancing, "1")
 				.eq(PjOrder::getBsType, "RZCG")
+				.eq(PjOrder::getFundingPartyId, pjpfFunding.getFundingPartyId())
 				.ge(PjOrder::getBusinesDate, dateTime)
 				.apply("goods_total_ship_num > out_goods_total_ship_num")
 				.orderByAsc(PjOrder::getBusinesDate)
@@ -1341,6 +1342,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			List<PjOrder> orderList = orderMapper.selectList(new LambdaQueryWrapper<PjOrder>()
 				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 				.eq(PjOrder::getIsDeleted, 0)
+				.eq(PjOrder::getFundingPartyId, pjpfFunding.getFundingPartyId())
 				.eq(PjOrder::getWhetherFinancing, "1")
 				.eq(PjOrder::getBsType, "RZCG")
 			);
@@ -1360,7 +1362,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				}
 			}
 			orderItemsService.updateBatchById(orderItemsList);
-			BigDecimal amount = itemsList.stream().map(PjShipItems::getSubTotalMoney)
+			BigDecimal amount = itemsList.stream().map(PjShipItems::getCostprie)
 				.filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
 			pjpfFunding.setAvailableAmount(pjpfFunding.getAvailableAmount().add(amount));
 			PjpfFundingItem item = new PjpfFundingItem();
@@ -1958,6 +1960,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			rwShip.setUpdateTime(new Date());
 			baseMapper.updateById(rwShip);
 		}
+		PjOrder order = orderMapper.selectById(ship.getOrdId());
 		if (!pjOrderItemsList.isEmpty()) {
 			//数量和
 			BigDecimal goodsNum = pjOrderItemsList.stream().map(PjOrderItems::getGoodsNum).filter(Objects::nonNull)
@@ -1968,7 +1971,6 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			//发货金额和
 			BigDecimal goodsTotalShipAmount = pjOrderItemsList.stream().map(PjOrderItems::getGoodsTotalShipAmount).filter(Objects::nonNull)
 				.reduce(BigDecimal.ZERO, BigDecimal::add);
-			PjOrder order = orderMapper.selectById(ship.getOrdId());
 			if (ObjectUtil.isNotEmpty(order)) {
 				order.setGoodsTotalShipNum(sendNum);
 				order.setGoodsTotalShipAmount(goodsTotalShipAmount);
@@ -2019,6 +2021,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 			List<PjOrder> orderList = orderMapper.selectList(new LambdaQueryWrapper<PjOrder>()
 				.eq(PjOrder::getTenantId, AuthUtil.getTenantId())
 				.eq(PjOrder::getIsDeleted, 0)
+				.eq(PjOrder::getFundingPartyId, pjpfFunding.getFundingPartyId())
 				.eq(PjOrder::getWhetherFinancing, "1")
 				.eq(PjOrder::getBsType, "RZCG")
 			);
@@ -2610,6 +2613,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
 				.eq(PjOrder::getIsDeleted, 0)
 				.eq(PjOrder::getWhetherFinancing, "1")
 				.eq(PjOrder::getBsType, "RZCG")
+				.eq(PjOrder::getFundingPartyId, pjpfFunding.getFundingPartyId())
 				.ge(PjOrder::getBusinesDate, dateTime)
 				.apply("goods_total_ship_num > out_goods_total_ship_num")
 				.orderByAsc(PjOrder::getBusinesDate)