Browse Source

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

lazhaoqian 4 years ago
parent
commit
eec26f14bd
14 changed files with 180 additions and 30 deletions
  1. 42 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderDTO.java
  2. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/DeliveryController.java
  3. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java
  4. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ImportDeliveryController.java
  5. 52 0
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java
  6. 2 2
      blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryServiceImpl.java
  7. 1 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/PurchaseSalesApplication.java
  8. 6 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java
  9. 0 1
      blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java
  10. 18 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java
  11. 4 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.java
  12. 33 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.xml
  13. 4 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java
  14. 12 20
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

+ 42 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/vo/OrderDTO.java

@@ -0,0 +1,42 @@
+package com.trade.purchase.order.vo;
+
+import com.trade.purchase.order.entity.OrderItems;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+/**
+ * 订单明细表视图实体类
+ *
+ * @author BladeX
+ * @since 2021-09-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "OrderDTO对象", description = "订单明细")
+public class OrderDTO extends OrderItems {
+	private static final long serialVersionUID = 1L;
+
+	private String orderNo;
+
+	private String billNo;
+
+	private Long corpId;
+
+	private String priceCategory;
+
+	private String itemType;
+
+	private BigDecimal purchaseQuantity;
+
+	private BigDecimal billWeight;
+
+	private BigDecimal invoiceWeight;
+
+	private BigDecimal price;
+
+	private BigDecimal amount;
+
+}

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

@@ -194,7 +194,7 @@ public class DeliveryController extends BladeController {
 	public R comfire(@RequestBody Delivery delivery)
 	{
 		deliveryService.comfire(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 
@@ -204,7 +204,7 @@ public class DeliveryController extends BladeController {
 	public R cancel(@RequestBody Delivery delivery)
 	{
 		deliveryService.cancel(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 }

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ExportDeliveryController.java

@@ -189,7 +189,7 @@ public class ExportDeliveryController extends BladeController {
 	public R comfire(@RequestBody Delivery delivery)
 	{
 		deliveryService.comfire(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 	@PostMapping("cancel")
@@ -198,7 +198,7 @@ public class ExportDeliveryController extends BladeController {
 	public R cancel(@RequestBody Delivery delivery)
 	{
 		deliveryService.cancel(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 
 }

+ 2 - 2
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/controller/ImportDeliveryController.java

@@ -191,7 +191,7 @@ public class ImportDeliveryController extends BladeController {
 	public R comfire(@RequestBody Delivery delivery)
 	{
 		deliveryService.comfire(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 	@PostMapping("cancel")
 	@ApiOperationSupport(order = 3)
@@ -199,7 +199,7 @@ public class ImportDeliveryController extends BladeController {
 	public R cancel(@RequestBody Delivery delivery)
 	{
 		deliveryService.cancel(delivery);
-		return R.success("操作成功");
+		return R.data(delivery);
 	}
 	/**
 	 * 确认发货通知单

+ 52 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -278,6 +278,58 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 			throw new RuntimeException("更新库存总账失败");
 		}
 	}
+
+	/**
+	 * 撤销收货
+	 * @param tradeType 单据类型 进口、出口、国内
+	 * @param stockId 库存账id
+	 * @param deliveryItems 货物明细信息
+	 */
+	 public void cancelStock(String tradeType,Long stockId,DeliveryItems deliveryItems)
+	 {
+		 //查询库存账
+		 R<StockGoods> stockById = stockGoodsClient.getStockById(stockId);
+		 if (!stockById.isSuccess()){
+			 throw  new RuntimeException("查询库存账出错");
+		 }
+		 if (stockById.getData() == null){
+			 throw  new RuntimeException("库存账不存在");
+		 }
+		 BigDecimal actualQuantity = deliveryItems.getActualQuantity();
+		 BigDecimal invoiceWeight = deliveryItems.getInvoiceWeight();
+		 BigDecimal billWeight = deliveryItems.getBillWeight();
+		 StockGoods stockGoods = stockById.getData();
+		 if(actualQuantity.compareTo(stockGoods.getInQuantity())==1)
+		 {
+                throw new SecurityException("操作数量大于入库数量,禁止操作");
+		 }
+		 if(actualQuantity.compareTo(stockGoods.getBalanceQuantity())==1)
+		 {
+			 throw new SecurityException("操作数量大于结余数量,禁止撤回");
+		 }
+		 if(actualQuantity.compareTo(stockGoods.getInQuantity())==1)
+		 {
+			 throw new SecurityException("操作数量大于可用数量,禁止操作");
+		 }
+		 stockGoods.setInQuantity(stockGoods.getInQuantity().subtract(actualQuantity));//入库数量 减
+		 stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(actualQuantity));//结余数量 减
+		 stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(actualQuantity));//可用数量 减
+		 if (tradeType.equals(OrderTypeEnum.IMPORT.getType())){
+			 stockGoods.setInWeight(stockGoods.getInWeight().subtract(invoiceWeight));//入库发票重量 减
+			 stockGoods.setBalanceWeight(stockGoods.getBalanceWeight().subtract(invoiceWeight));//结余发票重量 减
+			 stockGoods.setInVolumn(stockGoods.getInVolumn().subtract(billWeight));//入库码单重量 减
+			 stockGoods.setBalanceVolumn(stockGoods.getBalanceVolumn().subtract(billWeight));//结余码单重量 减
+		 }
+		 stockGoods.setUpdateTime(new Date());
+		 stockGoods.setUpdateUser(SecureUtil.getUserId());
+		 R updateStock = stockGoodsClient.updateStock(stockGoods);
+		 if (!updateStock.isSuccess()){
+			 throw new RuntimeException("更新库存总账失败");
+		 }
+	 }
+
+
+
 	/**
 	 * 收货单新增库存账
 	 * @param tradeType 单据类型 进口、出口、国内

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

@@ -297,7 +297,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 	public void cancel(Delivery delivery)
 	{
 		 //判断当前收货单状态,是否可以撤销
-         if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已货"))
+         if(delivery.getDeliveryStatus()==null||!delivery.getDeliveryStatus().equals("已货"))
          {
                 throw new SecurityException("非已发货状态,禁止撤回");
 		 }
@@ -339,7 +339,7 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
 			 }
 			 StockGoods stock=stockGoodsClient.getOneStock(model);
 			 //更新stock库存数量
-			 iDeliveryItemsService.revocationDeliverGoods(delivery.getTradeType(),stock.getId(),e);
+			 iDeliveryItemsService.cancelStock(delivery.getTradeType(),stock.getId(),e);
 		 });
 		//更新收货单状态为:录入
 		delivery.setDeliveryStatus("录入");

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

@@ -33,7 +33,7 @@ import org.springframework.cloud.client.SpringCloudApplication;
  */
 @EnableBladeFeign
 @SpringCloudApplication
-/*@SeataCloudApplication*/
+@SeataCloudApplication
 public class PurchaseSalesApplication {
 
 	public static void main(String[] args) {

+ 6 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/feign/OrderItemsClient.java

@@ -36,6 +36,12 @@ public class OrderItemsClient implements IOrderItemsClient{
 		OrderItems items = new OrderItems();
 		items.setId(orderItemsId);
 		if (deliveryType == DeliveryEnum.DELIVER.getType()){ //发货
+			//判断 已发货数量 或者 已收货数量 ,不能大于(订货数量-已收数量)
+			if(actualQuantity.compareTo(orderItems.getPurchaseQuantity().subtract(orderItems.getActualQuantity()))==1)
+			{
+				throw  new RuntimeException("操作数量禁止大于订货数量");
+			}
+
 			items.setActualQuantity(orderItems.getActualQuantity().add(actualQuantity));
 		}else if (deliveryType == DeliveryEnum.REPEAL.getType()){ //撤销发货
 			if (orderItems.getActualQuantity().compareTo(actualQuantity) <0){

+ 0 - 1
blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

@@ -110,7 +110,6 @@ public class StockGoodsClient implements IStockGoodsClient{
 	public StockGoods getOneStock(StockGoods stockGoods)
 	{
 		stockGoods.setTenantId(AuthUtil.getTenantId());
-		stockGoods.setCreateTime(new Date());
 		QueryWrapper<StockGoods> queryWrapper = Condition.getQueryWrapper(stockGoods);
 
 		return stockGoodsService.getOne(queryWrapper);

+ 18 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -19,6 +19,7 @@ import com.trade.purchase.order.service.IOrderFeesService;
 import com.trade.purchase.order.service.IOrderFilesService;
 import com.trade.purchase.order.service.IOrderItemsService;
 import com.trade.purchase.order.service.IOrderService;
+import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -296,4 +297,21 @@ public class PurchaseOrderController extends BladeController {
 	{
 		return orderService.getSysNo(prefix);
 	}
+
+	@GetMapping("getItemListByConditions")
+	@ApiOperation(value = "收发单-获取商品明细", notes = "收发单-获取商品明细")
+	public R getItemListByConditions(@RequestParam(name = "current", defaultValue = "1") Integer current,
+									 @RequestParam(name = "size", defaultValue = "10") Integer size,
+									 @RequestParam(name = "tradeType", required = true) String tradeType,
+									 @RequestParam(name = "orderNo", required = false) String orderNo,
+									 @RequestParam(name = "corpId", required = false) Long corpId,
+									 @RequestParam(name = "startDate", required = false) String  startDate,
+									 @RequestParam(name = "endDate", required = false) String  endDate
+									 )
+	{
+		Page<OrderDTO> page=new Page<>(current,size);
+		IPage<OrderDTO> iPage = orderService.listOrderItem(page, tradeType, orderNo, corpId, startDate, endDate);
+		return R.data(iPage);
+	}
+
 }

+ 4 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.java

@@ -4,7 +4,9 @@ package com.trade.purchase.order.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.trade.purchase.order.entity.OrderItems;
+import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderItemsVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -25,4 +27,6 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 	 */
 	List<OrderItemsVO> selectOrderItemsPage(IPage page, OrderItemsVO orderItems);
 
+	IPage<OrderDTO>  listOrderItem(IPage<OrderDTO> iPage, @Param("tradeType") String tradeType,@Param("orderNo") String orderNo,@Param("corpId")  Long corpId,@Param("startDate")  String startDate, @Param("endDate") String endDate);
+
 }

+ 33 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.xml

@@ -58,4 +58,37 @@
         select * from business_order_items where is_deleted = 0
     </select>
 
+    <select id="listOrderItem" resultType="com.trade.purchase.order.vo.OrderDTO">
+        SELECT
+        a.order_no as orderNo,
+        b.bill_no as billNo,
+        a.corp_id as corpId,
+        b.price_category as priceCategory,
+        b.item_type as itemType,
+        b.purchase_quantity as purchaseQuantity,
+        b.bill_weight as billWeight,
+        b.invoice_weight as invoiceWeight,
+        b.price as price,
+        b.amount as amount
+        FROM
+        business_order a,
+        business_order_items b
+        WHERE
+        a.id = b.pid
+        and b.purchase_quantity>b.actual_quantity
+        and a.bill_type='CG'
+        and a.trade_type=#{tradeType}
+        and a.is_deleted=0
+        and b.is_deleted=0
+        <if test="orderNo!=null and orderNo != ''">
+            and a.order_no like concat(concat('%',  #{orderNo}),'%')
+        </if>
+        <if test="corpId!=null">
+            and a.corp_id = #{corpId}
+        </if>
+        <if test="startDate != null and endDate != null">
+            and a.create_time between #{startDate} and #{endDate}
+        </if>
+    </select>
+
 </mapper>

+ 4 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/IOrderService.java

@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.Order;
+import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderVO;
 import lombok.Synchronized;
+import org.apache.ibatis.annotations.Param;
 import org.springblade.core.tool.api.R;
 
 /**
@@ -100,4 +102,6 @@ public interface IOrderService extends IService<Order> {
 	 */
 	R<OrderSubmitDto> savePurchase(OrderSubmitDto submitDto);
 
+	IPage<OrderDTO>  listOrderItem(IPage<OrderDTO> iPage, String tradeType, String orderNo,  Long corpId,  String startDate,String endDate);
+
 }

+ 12 - 20
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/service/impl/OrderServiceImpl.java

@@ -13,8 +13,10 @@ import com.trade.purchase.order.component.IOrderSave;
 import com.trade.purchase.order.dto.OrderSubmitDto;
 import com.trade.purchase.order.entity.*;
 import com.trade.purchase.order.enums.OrderTypeEnum;
+import com.trade.purchase.order.mapper.OrderItemsMapper;
 import com.trade.purchase.order.mapper.OrderMapper;
 import com.trade.purchase.order.service.IOrderService;
+import com.trade.purchase.order.vo.OrderDTO;
 import com.trade.purchase.order.vo.OrderItemsVO;
 import com.trade.purchase.order.vo.OrderVO;
 import io.seata.spring.annotation.GlobalTransactional;
@@ -64,6 +66,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	private ICorpsDescClient corpsDescClient;//获取客户信息
 	private OrderMapper orderMapper;
 	private IStockGoodsClient stockGoodsClient;
+	private OrderItemsMapper orderItemsMapper;
 
 
 
@@ -249,7 +252,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
 		if (CollectionUtils.isNotEmpty(list)){
 			list.stream().forEach(item ->{
-				item.setSrcId(item.getId());
 				item.setId(null);
 				item.setPid(purchaseEnquiry.getId());
 				item.setUpdateUser(SecureUtil.getUserId());
@@ -432,25 +434,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 	}
 
 	@Override
-	public R<OrderVO> submit(Order order) {
-		order.setOrderStatus("已确认");
-		order.setUpdateUser(SecureUtil.getUserId());
-		order.setUpdateTime(new Date());
-		baseMapper.updateById(order);
-		OrderVO vo = OrderMapstructMapper.INSTANCE.toVo(order);
-		//保存明细数据
-		List<OrderItems> list = orderItemsService.list(new QueryWrapper<OrderItems>().eq("pid", order.getId())
-			.eq("tenant_id", SecureUtil.getTenantId()).eq("is_deleted", 0).orderByAsc("sort"));
-		if (CollectionUtils.isNotEmpty(list)){
-			list.stream().forEach(item ->{
-				OrderItems orderItems = new OrderItems();
-				orderItems.setId(item.getSrcId());
-				orderItems.setPurchaseAmount(item.getPurchaseAmount());
-				orderItemsService.updateById(orderItems);
-			});
-		}
-		vo.setItemsVOList(list.stream().map(orderItemMapstructMapper::toVo).collect(Collectors.toList()));
-		return R.data(vo);
+	public R<OrderVO> submit(Order order)
+	{
+		return null;
+	}
+
+	@Override
+	public IPage<OrderDTO> listOrderItem(IPage<OrderDTO> iPage, String tradeType, String orderNo, Long corpId, String startDate, String endDate)
+	{
+		return orderItemsMapper.listOrderItem(iPage,tradeType,orderNo,corpId,startDate,endDate);
 	}
 
 	@Override