Browse Source

2023年2月2日17:39:16

纪新园 2 years ago
parent
commit
0fe6daefad

+ 10 - 0
blade-service/blade-purchase-sales/src/main/java/org/springblade/purchase/sales/service/impl/OrderServiceImpl.java

@@ -274,6 +274,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 			if (StringUtils.isBlank(order.getMorderNo()) && order.getTradeType().equals(OrderTypeEnum.DOMESTIC.getType())) {
 				order.setMorderNo(order.getOrderNo());
 			}
+			if (ObjectUtils.isNotNull(order.getSrcOrderNo())) {
+				String[] arrs = order.getSrcOrderNo().split(",");
+				for (String arr : arrs) {
+					Order order1 = baseMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getSysNo, arr));
+					if (ObjectUtils.isNotNull(order1)){
+						order1.setSrcOrderNo(order.getSysNo());
+						baseMapper.updateById(order1);
+					}
+				}
+			}
 			order.setTenantId(SecureUtil.getTenantId());
 			order.setCreateTime(date);
 			order.setCreateUser(SecureUtil.getUserId());

+ 8 - 2
blade-service/trade-finance/src/main/java/org/springblade/finance/service/impl/SettlementServiceImpl.java

@@ -1243,8 +1243,14 @@ public class SettlementServiceImpl extends ServiceImpl<SettlementMapper, Settlem
 			}*/
 			Acc acc = new Acc();
 			BeanUtils.copyProperties(e, acc);
-			if (!tradeType.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())) {
-				if ((StringUtils.isBlank(tradeType)) || (StringUtils.isNotBlank(tradeType)) && !tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
+			String tradeType_ = "";
+			if(ObjectUtils.isNull(tradeType)){
+				tradeType_ = e.getTradeType();
+			}else{
+				tradeType_ = tradeType;
+			}
+			if (!tradeType_.equals(OrderTypeEnum.WOOD_HARVESTING_CLOUD.getType())) {
+				if ((StringUtils.isBlank(tradeType_)) || (StringUtils.isNotBlank(tradeType_)) && !tradeType_.equals(OrderTypeEnum.DOMESTIC.getType())) {
 					if (e.getSrcType() == 2) {
 						OrderFees orderFees = orderFeesClient.getById(e.getSrcFeesId());
 						if (orderFees == null) {

+ 28 - 0
blade-service/trade-purchase/src/main/java/com/trade/purchase/excel/RubberStockDto.java

@@ -13,6 +13,10 @@ import java.util.Date;
 public class RubberStockDto {
 
 	/**
+	 * 采购id
+	 */
+	private Long idC;
+	/**
 	 * 采购供应商id
 	 */
 	private Long corpIdC;
@@ -62,6 +66,11 @@ public class RubberStockDto {
 	 * 采购合同金额
 	 */
 	private BigDecimal amountC;
+
+	/**
+	 * 采购合同重量
+	 */
+	private BigDecimal contractWeightC;
 	/**
 	 * 采购付款情况
 	 */
@@ -71,6 +80,10 @@ public class RubberStockDto {
 	 */
 	private String orderNoX;
 	/**
+	 * 销售Id
+	 */
+	private Long idX;
+	/**
 	 * 销售公司Id
 	 */
 	private Long belongToCorpIdX;
@@ -134,10 +147,25 @@ public class RubberStockDto {
 	private String balanceAmountX;
 
 	/**
+	 * 销售合同重量
+	 */
+	private BigDecimal contractWeightX;
+
+	/**
+	 * 库存重量
+	 */
+	private BigDecimal stockWeight;
+
+	/**
 	 * 销售收款情况
 	 */
 	private String tenantId;
 
+	/**
+	 * 销售收款情况
+	 */
+	private String billType;
+
 	private Integer current;
 	private Integer size;
 

+ 52 - 12
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/controller/PurchaseOrderController.java

@@ -31,18 +31,21 @@ import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.feign.IRedisClient;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.*;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.CollectionUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.system.feign.IDictBizClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.web.bind.annotation.*;
-import org.springblade.core.excel.util.ExcelUtil;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
@@ -926,14 +929,46 @@ public class PurchaseOrderController extends BladeController {
 				if (ObjectUtils.isNotNull(goodsDesc)) {
 					rubberStock.setItemNameC(goodsDesc.getCname());
 				}
-				if (ObjectUtils.isNotNull(rubberStock.getAmountX()) && ObjectUtils.isNotNull(rubberStock.getAmountC())) {
-					rubberStock.setProfit(rubberStock.getAmountX().subtract(rubberStock.getAmountC()));
-					rubberStock.setNoProfit(rubberStock.getAmountX().subtract(rubberStock.getAmountC()));
+				if (ObjectUtils.isNotNull(rubberStock.getOrderQuantityX())) {
+					if (ObjectUtils.isNotNull(rubberStock.getPriceX())) {
+						if (ObjectUtils.isNotNull(rubberStock.getPriceC())) {
+							rubberStock.setProfit((rubberStock.getPriceX().subtract(rubberStock.getPriceC())).multiply(rubberStock.getOrderQuantityX()));
+							rubberStock.setNoProfit((rubberStock.getPriceX().subtract(rubberStock.getPriceC())).multiply(rubberStock.getOrderQuantityX()));
+						} else {
+							rubberStock.setProfit(rubberStock.getPriceX().multiply(rubberStock.getOrderQuantityX()));
+							rubberStock.setNoProfit(rubberStock.getPriceX().multiply(rubberStock.getOrderQuantityX()));
+						}
+					} else {
+						if (ObjectUtils.isNotNull(rubberStock.getPriceC())) {
+							rubberStock.setProfit(new BigDecimal("0.00").subtract(rubberStock.getAmountC()));
+							rubberStock.setNoProfit(new BigDecimal("0.00").subtract(rubberStock.getAmountC()));
+						} else {
+							rubberStock.setProfit(new BigDecimal(0.00));
+							rubberStock.setNoProfit(new BigDecimal(0.00));
+						}
+					}
 				} else {
-					rubberStock.setProfit(new BigDecimal(0.00));
-					rubberStock.setNoProfit(new BigDecimal(0.00));
+					if (ObjectUtils.isNotNull(rubberStock.getPriceC())) {
+						rubberStock.setProfit(new BigDecimal("0.00").subtract(rubberStock.getAmountC()));
+						rubberStock.setNoProfit(new BigDecimal("0.00").subtract(rubberStock.getAmountC()));
+					} else {
+						rubberStock.setProfit(new BigDecimal(0.00));
+						rubberStock.setNoProfit(new BigDecimal(0.00));
+					}
+				}
+				if (ObjectUtils.isNotNull(rubberStock.getContractWeightC())) {
+					if (ObjectUtils.isNotNull(rubberStock.getContractWeightX())) {
+						rubberStock.setStockWeight(rubberStock.getContractWeightC().subtract(rubberStock.getContractWeightX()));
+					} else {
+						rubberStock.setStockWeight(rubberStock.getContractWeightC());
+					}
+				} else {
+					if (ObjectUtils.isNotNull(rubberStock.getContractWeightX())) {
+						rubberStock.setStockWeight(new BigDecimal("0.00").subtract(rubberStock.getContractWeightX()));
+					} else {
+						rubberStock.setStockWeight(new BigDecimal("0.00"));
+					}
 				}
-
 			}
 			return R.data(pages);
 		} else {
@@ -964,14 +999,19 @@ public class PurchaseOrderController extends BladeController {
 				if (ObjectUtils.isNotNull(goodsDesc)) {
 					rubberStock.setItemNameC(goodsDesc.getCname());
 				}
-				if (ObjectUtils.isNotNull(rubberStock.getAmountX()) && ObjectUtils.isNotNull(rubberStock.getAmountC())) {
-					rubberStock.setProfit(rubberStock.getAmountX().subtract(rubberStock.getAmountC()));
-					rubberStock.setNoProfit(rubberStock.getAmountX().subtract(rubberStock.getAmountC()));
+				rubberStock.setStockWeight(new BigDecimal("0.00").subtract(rubberStock.getContractWeightX()));
+				if (ObjectUtils.isNotNull(rubberStock.getOrderQuantityX())) {
+					if (ObjectUtils.isNotNull(rubberStock.getPriceX())) {
+						rubberStock.setProfit(rubberStock.getPriceX().multiply(rubberStock.getOrderQuantityX()));
+						rubberStock.setNoProfit(rubberStock.getPriceX().multiply(rubberStock.getOrderQuantityX()));
+					} else {
+						rubberStock.setProfit(new BigDecimal(0.00));
+						rubberStock.setNoProfit(new BigDecimal(0.00));
+					}
 				} else {
 					rubberStock.setProfit(new BigDecimal(0.00));
 					rubberStock.setNoProfit(new BigDecimal(0.00));
 				}
-
 			}
 			return R.data(pages);
 		}

+ 24 - 11
blade-service/trade-purchase/src/main/java/com/trade/purchase/order/mapper/OrderMapper.xml

@@ -692,6 +692,7 @@
     </select>
     <select id="rubberStock" resultType="com.trade.purchase.excel.RubberStockDto">
         SELECT DISTINCT
+            boC.id AS idC,
             boC.corp_id AS corpIdC,
             boC.busines_date AS businesDate,
             boCi.item_id AS itemIdC,
@@ -700,7 +701,9 @@
             boC.invoice_weight AS invoiceWeightC,
             boCi.price AS priceC,
             boCi.amount AS amountC,
-            boC.balance_amount AS balanceAmountC,
+            boCf.settlment_amount AS balanceAmountC,
+            boC.contract_weight AS contractWeightC,
+            boX.id AS idX,
             boX.order_no AS orderNoX,
             boX.belong_to_corp_id AS belongToCorpIdX,
             boX.corp_id AS corpIdX,
@@ -711,17 +714,19 @@
             boX.bill_no AS billNoX,
             boX.sales_name AS salesName,
             boX.if_tax AS ifTax,
-            boX.balance_amount AS balanceAmountX
+            boX.settlment_amount AS balanceAmountX,
+            boX.contract_weight AS contractWeightX
         FROM
             business_order boC
                 LEFT JOIN (
                 SELECT
+                    bo.id,
                     bo.sys_no,
                     bo.order_no,
-                    bo.morder_no,
+                    bo.src_order_no,
                     bo.belong_to_corp_id,
                     bo.planned_delivery_date,
-                    bo.balance_amount,
+                    boXf.settlment_amount,
                     bo.sales_name,
                     boXi.if_tax,
                     bo.corp_id,
@@ -731,11 +736,13 @@
                     boXi.bill_no,
                     bo.bill_no as bill_noS,
                     boXi.storage_id,
-                    boXi.freight
+                    boXi.freight,
+                    bo.contract_weight
                 FROM
                     business_order bo
-                        LEFT JOIN business_order_items boXi ON bo.id = boXi.pid
-                WHERE
+                    LEFT JOIN business_order_items boXi ON bo.id = boXi.pid
+                    LEFT JOIN business_order_fees boXf ON bo.id = boXf.pid
+                    WHERE
                     bo.is_deleted = 0
                   AND bo.bill_type = 'XS'
                     AND bo.order_type = '橡胶'
@@ -763,8 +770,9 @@
         <if test="rubberStockDto.salesName !=null and rubberStockDto.salesName != ''">
             and bo.sales_name like CONCAT(CONCAT('%', #{rubberStockDto.salesName}), '%')
         </if>
-            ) boX ON boC.sys_no = boX.morder_no
+            ) boX ON boC.sys_no = boX.src_order_no
                 LEFT JOIN business_order_items boCi ON boC.id = boCi.pid
+                LEFT JOIN business_order_fees boCf ON boC.id = boCf.pid
         WHERE
             boC.is_deleted = 0
           AND boC.bill_type = 'CG'
@@ -796,25 +804,30 @@
     </select>
     <select id="rubberStockXS" resultType="com.trade.purchase.excel.RubberStockDto">
         SELECT DISTINCT
+            boX.id AS idX,
             boX.order_no AS orderNoX,
             boX.belong_to_corp_id AS belongToCorpIdX,
             boX.corp_id AS corpIdX,
+            boXi.item_id AS itemIdC,
             boXi.price AS priceX,
             boXi.order_quantity AS orderQuantityX,
             boXi.amount AS amountX,
             boX.planned_delivery_date AS plannedDeliveryDateX,
+            boX.required_arrival_date AS requiredArrivalDateC,
             boX.bill_no AS billNoX,
             boX.sales_name AS salesName,
             boXi.if_tax AS ifTax,
-            boX.balance_amount AS balanceAmountX
+            boXf.settlment_amount AS balanceAmountX,
+            boX.contract_weight AS contractWeightX
         FROM
             business_order boX
                 LEFT JOIN business_order_items boXi ON boX.id = boXi.pid
+                LEFT JOIN business_order_fees boXf ON boX.id = boXf.pid
         WHERE
             boX.is_deleted = 0
-          AND boX.bill_type = 'XS'
+            AND boX.bill_type = 'XS'
           AND boX.order_type = '橡胶'
-          AND ISNULL( boX.morder_no )
+          AND ISNULL( boX.src_order_no )
         <if test="rubberStockDto.tenantId != null and rubberStockDto.tenantId != ''">
             and boX.tenant_id = #{rubberStockDto.tenantId}
         </if>