Browse Source

国内加生成工厂
订单明细加导入

lazhaoqian 3 years ago
parent
commit
c0b82931fd

+ 10 - 0
blade-service-api/blade-mocha-item-api/src/main/java/org/springblade/mocha/vo/PriceBankVO.java

@@ -39,5 +39,15 @@ public class PriceBankVO extends PriceBank {
 	 */
 	@ApiModelProperty(value = "有效时间")
 	private String statusTime;
+	/**
+	 * 有效日期开始
+	 */
+	@ApiModelProperty(value = "有效日期开始")
+	private String dateValidityStart;
+	/**
+	 * 有效日期结束
+	 */
+	@ApiModelProperty(value = "有效日期结束")
+	private String dateValidityEnd;
 
 }

+ 2 - 2
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java

@@ -57,9 +57,9 @@ public class OrderItems implements Serializable {
 	@ApiModelProperty(value = "排序")
 	private Integer sort;
 	/**
-	 * 类别(销售政策 秒杀)
+	 * 商品类别
 	 */
-	@ApiModelProperty(value = "类别(销售政策 秒杀)")
+	@ApiModelProperty(value = "商品类别")
 	private String priceCategory;
 	/**
 	 * 价格类别

+ 8 - 0
blade-service/blade-mocha-item/src/main/java/org/springblade/mocha/controller/PriceBankController.java

@@ -109,11 +109,17 @@ public class PriceBankController extends BladeController {
 	public R<IPage<PriceBank>> page(PriceBankVO priceBank, Query query) {
 		LambdaQueryWrapper<PriceBank> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(PriceBank::getIsDeleted,0);
+		lambdaQueryWrapper.eq(PriceBank::getStatus,0);
 		lambdaQueryWrapper.eq(PriceBank::getTenantId, SecureUtil.getTenantId());
 		lambdaQueryWrapper.eq(PriceBank::getTradeType,"CK");
 		lambdaQueryWrapper.like(Func.isNotEmpty(priceBank.getCname()),PriceBank::getCname,priceBank.getCname());
 		lambdaQueryWrapper.eq(Func.isNotEmpty(priceBank.getCorpId()),PriceBank::getCorpId,priceBank.getCorpId());
 		lambdaQueryWrapper.like(Func.isNotEmpty(priceBank.getSpecs()),PriceBank::getSpecs,priceBank.getSpecs());
+		lambdaQueryWrapper.like(Func.isNotEmpty(priceBank.getGoodsTypeName()),PriceBank::getGoodsTypeName,priceBank.getGoodsTypeName());
+		//lambdaQueryWrapper.le(Func.isNotEmpty(priceBank.getStatusTime()),PriceBank::getStartTime,priceBank.getStatusTime());
+		lambdaQueryWrapper.ge(Func.isNotEmpty(priceBank.getStatusTime()),PriceBank::getEndTime,priceBank.getStatusTime());
+		lambdaQueryWrapper.le(Func.isNotEmpty(priceBank.getDateValidityStart()),PriceBank::getStartTime,priceBank.getDateValidityStart());
+		lambdaQueryWrapper.ge(Func.isNotEmpty(priceBank.getDateValidityEnd()),PriceBank::getEndTime,priceBank.getDateValidityEnd());
 		lambdaQueryWrapper.eq(Func.isNotEmpty(priceBank.getBillType()),PriceBank::getBillType,priceBank.getBillType());
 		IPage<PriceBank> pages = priceBankService.page(Condition.getPage(query), lambdaQueryWrapper);
 		return R.data(pages);
@@ -177,6 +183,8 @@ public class PriceBankController extends BladeController {
 		lambdaQueryWrapper.like(Func.isNotEmpty(priceBank.getGoodsTypeName()),PriceBank::getGoodsTypeName,priceBank.getGoodsTypeName());
 		//lambdaQueryWrapper.le(Func.isNotEmpty(priceBank.getStatusTime()),PriceBank::getStartTime,priceBank.getStatusTime());
 		lambdaQueryWrapper.ge(Func.isNotEmpty(priceBank.getStatusTime()),PriceBank::getEndTime,priceBank.getStatusTime());
+		lambdaQueryWrapper.le(Func.isNotEmpty(priceBank.getDateValidityStart()),PriceBank::getStartTime,priceBank.getDateValidityStart());
+		lambdaQueryWrapper.ge(Func.isNotEmpty(priceBank.getDateValidityEnd()),PriceBank::getEndTime,priceBank.getDateValidityEnd());
 		lambdaQueryWrapper.eq(Func.isNotEmpty(priceBank.getBillType()),PriceBank::getBillType,priceBank.getBillType());
 		List<PriceBank> list = priceBankService.list(lambdaQueryWrapper);
 		return R.data(priceBankService.list(lambdaQueryWrapper));

+ 10 - 0
blade-service/blade-purchase-sales/pom.xml

@@ -61,6 +61,16 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-stock-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 32 - 2
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/controller/OrderItemsController.java

@@ -16,25 +16,32 @@
  */
 package org.springblade.purchase.sales.controller;
 
-import com.trade.purchase.order.enums.OrderTypeEnum;
+import org.springblade.core.excel.util.ExcelUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
+
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
-import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.purchase.sales.excel.OrderItemsExcel;
 import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 订单明细表 控制器
@@ -127,6 +134,29 @@ public class OrderItemsController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(orderItemsService.removeByIds(Func.toLongList(ids)));
 	}
+	/**
+	 * 导出订单明细模板
+	 */
+	@GetMapping("/exportPrice")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "导出订单明细模板")
+	public void exportPrice(HttpServletResponse response) {
+		List<OrderItemsExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "订单明细", "订单明细数据表", list, OrderItemsExcel.class);
+	}
+	/**
+	 * 导入订单明细
+	 */
+	@PostMapping("/importPrice")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入订单明细", notes = "传入excel")
+	public R importUser(MultipartFile file) {
+		List<OrderItemsExcel> excelList = ExcelUtil.read(file, OrderItemsExcel.class);
+		if (CollectionUtils.isEmpty(excelList)){
+			throw new SecurityException("数据不能为空");
+		}
+		return orderItemsService.importUser(excelList,false);
+	}
 
 
 }

+ 33 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/excel/OrderItemsExcel.java

@@ -0,0 +1,33 @@
+package org.springblade.purchase.sales.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 com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 销售订单导入商品明细
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class OrderItemsExcel   implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 商品编码
+	 */
+	@ExcelProperty(value = "商品编码")
+	private String code;
+	/**
+	 * 订货数量
+	 */
+	@ExcelProperty(value = "订货数量")
+	private BigDecimal orderQuantity;
+}

+ 11 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java

@@ -16,14 +16,16 @@
  */
 package org.springblade.purchase.sales.service;
 
-import org.apache.ibatis.annotations.Param;
+import org.springblade.core.tool.api.R;
 import org.springblade.purchase.sales.entity.OrderItems;
+import org.springblade.purchase.sales.excel.OrderItemsExcel;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.List;
 
+
 /**
  * 订单明细表 服务类
  *
@@ -54,5 +56,13 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 */
 	IPage<OrderItemsVO> orderItemsList(IPage<OrderItemsVO> page,String orderNo,Long corpId, String orderStartDate,String orderEndDate,
 									  String tradeType, String billType,String tenantId);
+	/**
+	 * 导入订单明细数据
+	 *
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	R<List<OrderItems>> importUser(List<OrderItemsExcel> data, Boolean isCovered);
 
 }

+ 38 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java

@@ -22,6 +22,7 @@ import com.trade.purchase.order.enums.OrderTypeEnum;
 import lombok.AllArgsConstructor;
 import org.aspectj.weaver.ast.Or;
 import org.springblade.client.entity.GoodsDesc;
+import org.springblade.client.entity.GoodsType;
 import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.secure.utils.SecureUtil;
@@ -31,16 +32,20 @@ import org.springblade.mocha.feign.IPriceItemClient;
 import org.springblade.purchase.sales.entity.Order;
 import org.springblade.purchase.sales.entity.OrderItems;
 import org.springblade.purchase.sales.entity.OrderParts;
+import org.springblade.purchase.sales.excel.OrderItemsExcel;
 import org.springblade.purchase.sales.mapper.OrderPartsMapper;
 import org.springblade.purchase.sales.vo.OrderItemsVO;
 import org.springblade.purchase.sales.mapper.OrderItemsMapper;
 import org.springblade.purchase.sales.service.IOrderItemsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.stock.entity.StockGoods;
+import org.springblade.stock.feign.IStockGoodsClient;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -56,6 +61,7 @@ import java.util.List;
 public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderItems> implements IOrderItemsService {
 	private IGoodsDescClient goodsDescClient;//获取商品信息
 	private IPriceItemClient priceItemClient;//价格管理对外接口
+	private IStockGoodsClient stockGoodsClient;//库存
 
 	@Resource
 	private OrderPartsMapper orderPartsMapper;
@@ -69,6 +75,38 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		return page.setRecords( baseMapper.orderItemsList(page,orderNo,corpId,orderStartDate,orderEndDate,tradeType,billType,tenantId));
 	}
 
+	@Override
+	public R<List<OrderItems>> importUser(List<OrderItemsExcel> data, Boolean isCovered) {
+		List<OrderItems> list = new ArrayList<>();
+		data.stream().forEach(item ->{
+			R<GoodsDesc> goods = goodsDescClient.GoodsByCode(item.getCode());
+			if (goods.isSuccess() && goods.getData() != null){
+				OrderItems orderItems = new OrderItems();
+				orderItems.setCode(item.getCode());
+				orderItems.setOrderQuantity(item.getOrderQuantity());
+				orderItems.setCname(goods.getData().getCname());//商品名称
+				orderItems.setItemId(goods.getData().getId());//商品id
+				orderItems.setTypeno(goods.getData().getTypeno());//商品规格
+				orderItems.setPriceCategory("一般");//价格类别
+				orderItems.setCorpId(goods.getData().getCorpId());//供应id
+				orderItems.setCorpName(goods.getData().getCorpName());//供应商名称
+				GoodsType goodsType = goodsDescClient.goodTypeId(goods.getData().getId());
+				orderItems.setPriceCategory(goodsType.getCname());//商品类别名称
+				StockGoods stockGoods = new StockGoods();
+				stockGoods.setGoodsId(goods.getData().getId());
+				stockGoods.setItemType(goods.getData().getTypeno());
+				R<?> stock = stockGoodsClient.getStock(stockGoods);
+				if (stock.isSuccess()){
+					orderItems.setStorageQuantity((BigDecimal) stock.getData());
+				}else {
+					orderItems.setStorageQuantity(new BigDecimal(BigInteger.ZERO));
+				}
+				list.add(orderItems);
+			}
+		});
+		return R.data(list);
+	}
+
 	/**
 	 * 保存订单明细信息
 	 * @param list 订单明细