Browse Source

出口贸易修改

lazhaoqian 3 years ago
parent
commit
edf331bc1d
14 changed files with 114 additions and 24 deletions
  1. 6 0
      blade-ops/blade-report/pom.xml
  2. 8 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderItems.java
  3. 2 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/entity/OrderParts.java
  4. 1 0
      blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderItemsVO.java
  5. 2 0
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java
  6. 2 1
      blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderParts.java
  7. 8 12
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/SerialServiceImpl.java
  8. 13 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java
  9. 8 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java
  10. 10 1
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml
  11. 6 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/IOrderItemsService.java
  12. 22 0
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderItemsServiceImpl.java
  13. 25 9
      blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java
  14. 1 0
      blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderItemsMapper.xml

+ 6 - 0
blade-ops/blade-report/pom.xml

@@ -50,6 +50,12 @@
             <version>2.8.2.RELEASE</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-deliver-goods-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
     <build>

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

@@ -398,6 +398,8 @@ public class OrderItems implements Serializable {
 	private String currency;
 	@ApiModelProperty(value = "采购成本")
 	private BigDecimal purchaseCost;
+	@ApiModelProperty(value = "配件成本")
+	private BigDecimal partsCost;
 	@ApiModelProperty(value = "商品信息")
 	private String productRemark;
 
@@ -420,4 +422,10 @@ public class OrderItems implements Serializable {
 	private String updateUserName;
 	@TableField(exist = false)
 	private String createUserName;
+	/**
+	 * 产品毛利
+	 */
+	@ApiModelProperty(value = "产品毛利")
+	@TableField(exist = false)
+	private BigDecimal productGrossMargin;
 }

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

@@ -157,5 +157,7 @@ public class OrderParts implements Serializable {
 	 */
 		@ApiModelProperty(value = "供应商名称")
 		private String corpName;
+	@ApiModelProperty(value = "配件成本")
+	private BigDecimal partsCost;
 
 }

+ 1 - 0
blade-service-api/blade-purchase-sales-api/src/main/java/org/springblade/purchase/sales/vo/OrderItemsVO.java

@@ -23,6 +23,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**

+ 2 - 0
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderItems.java

@@ -373,6 +373,8 @@ public class OrderItems extends OrderBase {
 	private String currency;
 	@ApiModelProperty(value = "采购成本")
 	private BigDecimal purchaseCost;
+	@ApiModelProperty(value = "配件成本")
+	private BigDecimal partsCost;
 	@ApiModelProperty(value = "商品信息")
 	private String productRemark;
 

+ 2 - 1
blade-service-api/trade-purchase-api/src/main/java/com/trade/purchase/order/entity/OrderParts.java

@@ -142,6 +142,7 @@ public class OrderParts implements Serializable {
 	 */
 		@ApiModelProperty(value = "租户id")
 		private String tenantId;
-
+	@ApiModelProperty(value = "配件成本")
+	private BigDecimal partsCost;
 
 }

+ 8 - 12
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/SerialServiceImpl.java

@@ -72,16 +72,14 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 				serial.setSerial(serial.getSerial() + 1);
 				baseMapper.updateById(serial);
 				if (serial.getSerial() <= 9) {
-					billNo = "000" + serial.getSerial()+ "-" + yyyyMM ;
-				} else if (serial.getSerial() <= 99) {
 					billNo = "00" + serial.getSerial()+ "-" + yyyyMM ;
-				} else if (serial.getSerial() <= 999) {
-					billNo =  "0" + serial.getSerial()+ "-" + yyyyMM;
-				}else if (serial.getSerial() <= 1000) {
-					billNo = serial.getSerial() + "-" + yyyyMM;
+				} else if (serial.getSerial() <= 99) {
+					billNo = "0" + serial.getSerial()+ "-" + yyyyMM ;
+				} else {
+					billNo =  "" + serial.getSerial()+ "-" + yyyyMM;
 				}
 			} else {
-				billNo =  "0001-" + yyyyMM ;
+				billNo =  "001-" + yyyyMM ;
 				billNoSerial.setSerial(1);
 				baseMapper.insert(billNoSerial);
 			}
@@ -90,16 +88,14 @@ public class SerialServiceImpl extends ServiceImpl<SerialMapper, Serial> impleme
 				serial.setSerial(serial.getSerial() + 1);
 				baseMapper.updateById(serial);
 				if (serial.getSerial() <= 9) {
-					billNo = yyyyMM + "000" + serial.getSerial();
-				} else if (serial.getSerial() <= 99) {
 					billNo = yyyyMM + "00" + serial.getSerial();
-				} else if (serial.getSerial() <= 999) {
+				} else if (serial.getSerial() <= 99) {
 					billNo = yyyyMM + "0" + serial.getSerial();
-				}else if (serial.getSerial() <= 1000) {
+				}else{
 					billNo = yyyyMM + "" + serial.getSerial();
 				}
 			} else {
-				billNo = yyyyMM + "0001";
+				billNo = yyyyMM + "001";
 				billNoSerial.setSerial(1);
 				baseMapper.insert(billNoSerial);
 			}

+ 13 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/export/ExportOrderController.java

@@ -288,7 +288,7 @@ public class ExportOrderController extends BladeController {
 	 * 销售利润
 	 */
 	@GetMapping("/profit")
-	@ApiOperationSupport(order = 3)
+	@ApiOperationSupport(order = 11)
 	@ApiOperation(value = "销售利润", notes = "传入order")
 	public R<IPage<Order>> profit(OrderVO order, Query query) {
 		LambdaQueryWrapper<Order> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -344,4 +344,16 @@ public class ExportOrderController extends BladeController {
 		}
 		return R.data(page);
 	}
+	/**
+	 * 出口查询销售利润明细
+	 */
+	@GetMapping("/getProfitItem")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "出口查询销售利润明细", notes = "传入order的 id")
+	public R getProfitItem(Order order) {
+		if (order.getId() == null){
+			throw  new SecurityException("缺少必要的参数");
+		}
+		return R.data(orderItemsService.getProfitItem(order.getId()));
+	}
 }

+ 8 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.java

@@ -22,6 +22,7 @@ import org.springblade.purchase.sales.vo.OrderItemsVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 订单明细表 Mapper 接口
@@ -66,4 +67,11 @@ public interface OrderItemsMapper extends BaseMapper<OrderItems> {
 	 */
 	void updateByPid (@Param("id") Long id);
 
+	/**
+	 * 获取销售利润明细
+	 * @param pid
+	 * @return
+	 */
+	List<OrderItems> getProfitItem(@Param("pid") Long pid);
+
 }

+ 10 - 1
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/mapper/OrderItemsMapper.xml

@@ -71,6 +71,7 @@
         <result column="integral" property="integral"/>
         <result column="purchase_cost" property="purchaseCost"/>
         <result column="product_remark" property="productRemark"/>
+        <result column="parts_cost" property="partsCost"/>
     </resultMap>
 
 
@@ -117,5 +118,13 @@
     <update id="updateByPid" parameterType="long">
         UPDATE business_order_items SET is_deleted = '1' WHERE pid = #{id}
     </update>
-
+    <select id="getProfitItem" resultMap="orderItemsResultMap">
+    SELECT
+	   *,
+	    (IFNULL(amount,0) * IFNULL(exchange_rate,0)-(IFNULL(purchase_amount,0) + IFNULL(parts_price,0)))* order_quantity AS productGrossMargin
+    FROM
+	    business_order_items
+    WHERE is_deleted = 0
+    AND pid = #{pid}
+    </select>
 </mapper>

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

@@ -77,5 +77,11 @@ public interface IOrderItemsService extends IService<OrderItems> {
 	 * @param id
 	 */
 	public void updateByPid(Long id);
+	/**
+	 * 出口贸易获取销售利润明细
+	 * @param id
+	 * @return
+	 */
+	List<OrderItems> getProfitItem(Long id);
 
 }

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

@@ -16,6 +16,7 @@
  */
 package org.springblade.purchase.sales.service.impl;
 
+import com.alibaba.druid.sql.ast.expr.SQLCaseExpr;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.trade.purchase.order.enums.OrderTypeEnum;
@@ -237,4 +238,25 @@ public class OrderItemsServiceImpl extends ServiceImpl<OrderItemsMapper, OrderIt
 		baseMapper.updateByPid(id);
 	}
 
+	@Override
+	public List<OrderItems> getProfitItem(Long id) {
+		List<OrderItems> profitItem = baseMapper.getProfitItem(id);
+		if (CollectionUtils.isNotEmpty(profitItem)){
+			profitItem.stream().forEach(item ->{
+				if (item.getItemId() != null){
+					//获取商品编码,名称,规格编码,规格型号
+					R<GoodsDescVO> goodsMessage = goodsDescClient.selectGoodsMessage(item.getItemId());
+					if (goodsMessage.isSuccess() && goodsMessage.getData() != null){
+						item.setCode(goodsMessage.getData().getCode());
+						item.setCname(goodsMessage.getData().getCname());
+						item.setTypeno(goodsMessage.getData().getTypeno());
+						item.setSpecificationAndModel(goodsMessage.getData().getSpecificationAndModel());
+						item.setEname(goodsMessage.getData().getEname());
+					}
+				}
+			});
+		}
+		return profitItem;
+	}
+
 }

+ 25 - 9
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -154,16 +154,32 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			}
 			order.setSysNo((String) billNo.getData());
 			if (!order.getTradeType().equals(OrderTypeEnum.IMPORT.getType()) && StringUtils.isBlank(order.getOrderNo())){
-				R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
-				if (corpMessage.isSuccess()){
-					R clientBillNo = serialClient.getBillNo(corpMessage.getData().getCode(),order.getTradeType(),order.getBillType());
-					if (!clientBillNo.isSuccess()){
-						TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-						return R.fail(500,"生成订单编号失败");
+				if (order.getBillType().equals(OrderTypeEnum.ENQUIRY.getType())){
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
+					if (corpMessage.isSuccess() && StringUtils.isNotBlank(corpMessage.getData().getCode())){
+						String substring = corpMessage.getData().getCode().substring(corpMessage.getData().getCode().length() - 3, corpMessage.getData().getCode().length());
+						R clientBillNo = serialClient.getBillNo(substring,order.getTradeType(),order.getBillType());
+						if (!clientBillNo.isSuccess()){
+							TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+							return R.fail(500,"生成订单编号失败");
+						}
+						order.setOrderNo((String) clientBillNo.getData());
+						if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())){   //进口的orgOrderNo 存的是采购订单号  出口国内存的是本身的订单号码
+							order.setOrgOrderNo((String) clientBillNo.getData());
+						}
 					}
-					order.setOrderNo((String) clientBillNo.getData());
-					if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())){   //进口的orgOrderNo 存的是采购订单号  出口国内存的是本身的订单号码
-						order.setOrgOrderNo((String) clientBillNo.getData());
+				}else {
+					R<CorpsDesc> corpMessage = corpsDescClient.getCorpMessage(order.getCorpId());
+					if (corpMessage.isSuccess()){
+						R clientBillNo = serialClient.getBillNo(corpMessage.getData().getCode(),order.getTradeType(),order.getBillType());
+						if (!clientBillNo.isSuccess()){
+							TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+							return R.fail(500,"生成订单编号失败");
+						}
+						order.setOrderNo((String) clientBillNo.getData());
+						if (!order.getBillType().equals(OrderTypeEnum.IMPORT.getType())){   //进口的orgOrderNo 存的是采购订单号  出口国内存的是本身的订单号码
+							order.setOrgOrderNo((String) clientBillNo.getData());
+						}
 					}
 				}
 			}

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

@@ -62,6 +62,7 @@
         <result column="integral" property="integral"/>
         <result column="purchase_cost" property="purchaseCost"/>
         <result column="product_remark" property="productRemark"/>
+        <result column="parts_cost" property="partsCost"/>
     </resultMap>