Browse Source

发货费用中加类别

lazhaoqian 4 years ago
parent
commit
ef77ad1597

+ 5 - 0
blade-service-api/blade-deliver-goods-api/src/main/java/org/springblade/deliver/goods/entity/DeliveryFees.java

@@ -174,6 +174,11 @@ public class DeliveryFees implements Serializable {
 		@ApiModelProperty(value = "支付方名称")
 		@TableField(exist = false)
 		private String corpName;
+	/**
+	 * 1.应收 2.应付
+	 */
+	@ApiModelProperty(value = "1.应收 2.应付")
+		private int feesType;
 
 
 }

+ 4 - 1
blade-service/blade-client/src/main/java/org/springblade/client/corps/mapper/CorpsDescMapper.xml

@@ -64,9 +64,12 @@
         <if test="CorpsDesc.code!=null and CorpsDesc.code != ''">
             and code like CONCAT(CONCAT('%', #{CorpsDesc.code}), '%')
         </if>
-        <if test="CorpsDesc.corpType!=null and CorpsDesc.corpType != ''">
+        <if test="CorpsDesc.corpType!=null and CorpsDesc.corpType != '' and CorpsDesc.corpType != 'KG'">
             and corp_type = #{CorpsDesc.corpType}
         </if>
+        <if test="CorpsDesc.corpType!=null and CorpsDesc.corpType != '' and CorpsDesc.corpType == 'KG'">
+            and corp_type in ('KH','GYS')
+        </if>
         <if test="CorpsDesc.cname!=null and CorpsDesc.cname != ''">
             and cname like CONCAT(CONCAT('%', #{CorpsDesc.cname}), '%')
         </if>

+ 1 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryFeesMapper.xml

@@ -26,6 +26,7 @@
         <result column="update_time" property="updateTime"/>
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
+        <result column="fees_type" property="feesType"/>
     </resultMap>
 
 

+ 15 - 0
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.java

@@ -21,6 +21,8 @@ import org.springblade.deliver.goods.entity.DeliveryItems;
 import org.springblade.deliver.goods.vo.DeliveryItemsVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.web.bind.annotation.PostMapping;
+
 import java.util.List;
 
 /**
@@ -45,4 +47,17 @@ public interface DeliveryItemsMapper extends BaseMapper<DeliveryItems> {
 	 */
 	void updateByPid (@Param("id") Long id);
 
+	/**
+	 * 查询已发货商品金额
+	 * @param tenantId 租户id
+	 * @param deliveryStatus 订单状态
+	 * @param contractNumber 合同号
+	 * @param tradeType 贸易类型 内贸 进口 出来
+	 * @return
+	 */
+	List<DeliveryItems> selectItem(@Param("tenantId") String tenantId,
+								   @Param("deliveryStatus") String deliveryStatus,
+								   @Param("contractNumber") String contractNumber,
+								   @Param("tradeType")String tradeType);
+
 }

+ 14 - 1
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/mapper/DeliveryItemsMapper.xml

@@ -59,5 +59,18 @@
     <update id="updateByPid" parameterType="long">
         UPDATE business_delivery_items SET is_deleted = '1' WHERE pid = #{id}
     </update>
-
+    <select id="selectItem" resultMap="deliveryItemsResultMap">
+        SELECT
+	        item.*
+        FROM
+	        business_delivery_items item
+	        LEFT JOIN business_delivery bd ON item.pid = bd.id
+        WHERE
+	        item.is_deleted = 0
+	        AND bd.is_deleted = 0
+	        AND item.tenant_id = #{tenantId}
+	        AND item.delivery_status =  #{deliveryStatus}
+	        AND item.contract_number =  #{contractNumber}
+	        AND bd.trade_type = #{tradeType}
+    </select>
 </mapper>

+ 6 - 8
blade-service/blade-deliver-goods/src/main/java/org/springblade/deliver/goods/service/impl/DeliveryItemsServiceImpl.java

@@ -555,17 +555,15 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
 				}
 				//本次金额
 				List<DeliveryItems> itemsList = deliveryItemsList.stream().filter(e -> e.getSrcOrderNo().equals(srcOrderNo)).collect(Collectors.toList());
-				//已收金额
-				LambdaQueryWrapper<DeliveryItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-				lambdaQueryWrapper.eq(DeliveryItems::getContractNumber,srcOrderNo);
-				lambdaQueryWrapper.eq(DeliveryItems::getTenantId,SecureUtil.getTenantId());
-				lambdaQueryWrapper.eq(DeliveryItems::getIsDeleted,0);
-				lambdaQueryWrapper.eq(DeliveryItems::getDeliveryStatus, DeliveryStatusEnum.DELIVER.getType());
-				List<DeliveryItems> deliveryItems = baseMapper.selectList(lambdaQueryWrapper);
+				//已发金额
+				List<DeliveryItems> deliveryItems = baseMapper.selectItem(SecureUtil.getTenantId(),DeliveryStatusEnum.DELIVER.getType(),srcOrderNo,tradeType);
 				newDelivery = itemsList.stream().reduce(BigDecimal.ZERO,(x,y) ->{ return x.add(y.getContractAmount().multiply(y.getExRate())); },BigDecimal::add);//本次发货金额
 				oldDelivery = deliveryItems.stream().reduce(BigDecimal.ZERO,(x,y) ->{ return x.add(y.getContractAmount().multiply(y.getExRate())); },BigDecimal::add);//历史发货金额
+				if (gathering.subtract(newDelivery.add(oldDelivery)).compareTo(BigDecimal.ZERO) <= 0){
+					throw new RuntimeException("订单"+srcOrderNo+"可发货金额为:"+BigDecimal.ZERO);
+				}
 				if (gathering.compareTo((newDelivery.add(oldDelivery))) < 0){
-					throw new RuntimeException("订单"+srcOrderNo+"可发货金额为:"+gathering.subtract(oldDelivery));
+					throw new RuntimeException("订单"+srcOrderNo+"可发货金额为:"+gathering.subtract(oldDelivery.add(newDelivery)));
 				}
 			}
 			return R.success("可以发货");