Explorar el Código

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

# Conflicts:
#	src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.java
koushanshan hace 1 año
padre
commit
aeada78cdb

+ 12 - 2
src/main/java/com/dk/mdm/mapper/ivt/InboundItemMapper.xml

@@ -758,7 +758,8 @@
         'intoQty', tpii.into_qty,
         'costPrice', tpii.cost_price,
         'costAmt', tpii.cost_amt,
-        'brandId', tmgs.brand_id
+        'brandId', tmgs.brand_id,
+        'fromItemId', tpii.from_item_id
         )) AS "itemList"
         FROM
         dkic_b.t_psi_inbound_item tpii
@@ -794,6 +795,11 @@
                 AND tpii.into_status =
                 any(#{intoStatusList, typeHandler= StringListTypeHandler})
             </if>
+            <if test="searchText !=null">
+                AND  (tpii.sku_model LIKE concat('%',my_ex.likequery(#{searchText}), '%')
+                OR   tpii.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
+                )
+            </if>
         </where>
         GROUP BY
         tpii.sku_model,
@@ -852,7 +858,11 @@
                 AND tpii.into_status =
                 any(#{intoStatusList, typeHandler= StringListTypeHandler})
             </if>
-
+            <if test="searchText !=null">
+                AND  (tpii.sku_model LIKE concat('%',my_ex.likequery(#{searchText}), '%')
+                OR   tpii.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
+                )
+            </if>
         </where>
         GROUP BY
         tpii.sku_model,

+ 1 - 0
src/main/java/com/dk/mdm/mapper/report/ReportMapper.xml

@@ -3087,6 +3087,7 @@
         </if>
         GROUP BY a.object_id, tmc.cus_name, tmc.cus_phone, tmc.address_full
         HAVING SUM(COALESCE(tpo.out_amt, 0) + COALESCE(tpo.return_amt, 0)) - SUM(COALESCE(tmrp.sum_amt_rec, 0) + COALESCE(sum_amt_pay, 0)) > 0
+
         <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
             limit #{end} offset #{start}
         </if>

+ 5 - 6
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.java

@@ -1,5 +1,6 @@
 package com.dk.mdm.mapper.sale;
 
+import com.dk.mdm.model.pojo.ivt.InboundItem;
 import com.dk.mdm.model.pojo.ivt.OutboundItem;
 import com.dk.mdm.model.pojo.sale.OrderItem;
 import com.dk.common.mapper.BaseMapper;
@@ -106,12 +107,10 @@ public interface OrderItemMapper extends BaseMapper<OrderItem> {
     Long selectBySaleOutByCound(OrderItemQuery orderItemQuery);
 
     /**
-     * @desc   : 修改退货信息
-     * @date   : 2024/3/29 9:05
-     * @author : 寇珊珊
+     * @desc   : 成本核对
+     * @author : 常皓宁
+     * @date   : 2024/4/18 9:07
      */
-    int  updateOutMessage(OrderItem orderItem);
-
-
+    int  updateCost(OrderItem orderItem);
 }
 

+ 14 - 0
src/main/java/com/dk/mdm/mapper/sale/OrderItemMapper.xml

@@ -438,6 +438,7 @@
                tmgs.sku_code                                        as "skuCode",
                tpobi.sku_model                                       as "skuModel",
                tpobi.sku_name                                        as "skuName",
+               tmgs.sku_images                                        as "skuImages",
                tpobi.out_qty                                        as "outboundOutQty",
                sys.f_remove_zero(tpobi.out_qty - tpobi.return_qty)                     as "canReturnQty",
                - sys.f_remove_zero(tpobi.out_qty - tpobi.return_qty)                 as outing_qty,
@@ -771,4 +772,17 @@
         </if>
     </select>
 
+    <update id="updateCost" parameterType="com.dk.mdm.model.pojo.sale.OrderItem">
+        update dkic_b.t_psi_order_item
+        <set>
+            <if test="costPrice!= null">
+                cost_price= #{costPrice},
+            </if>
+            <if test="costAmt!= null">
+                cost_amt = #{costAmt},
+            </if>
+        </set>
+        where item_id = #{itemId}::uuid
+    </update>
+
 </mapper>

+ 86 - 67
src/main/java/com/dk/mdm/service/ivt/inbound/InboundItemService.java

@@ -7,9 +7,11 @@ import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.ivt.InboundItemConvert;
 import com.dk.mdm.mapper.ivt.*;
+import com.dk.mdm.mapper.sale.OrderItemMapper;
 import com.dk.mdm.model.pojo.ivt.*;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.sale.OrderItem;
 import com.dk.mdm.model.query.ivt.InboundItemQuery;
 import com.dk.mdm.model.query.ivt.InventoryBatchQuery;
 import com.dk.mdm.model.query.ivt.OutboundItemCostQuery;
@@ -59,6 +61,9 @@ public class InboundItemService extends BaseService<InboundItem> {
 	@Autowired
 	private InventoryMapper inventoryMapper;
 
+	@Autowired
+	private OrderItemMapper orderItemMapper;
+
 	/**
 	 * @desc   : 条件查询 (采购入库用)
 	 * @author : 常皓宁
@@ -124,84 +129,98 @@ public class InboundItemService extends BaseService<InboundItem> {
 					.setCostPrice(inboundItem.getCostPrice())
 					.setCostAmt(inboundItem.getCostAmt());
 			inboundItemMapper.updateCost(inboundItem1);
+			//修改销售订单
+			if(inboundItem.getFromItemId() != null){
+				OrderItem orderItem = new OrderItem()
+						.setItemId(inboundItem.getFromItemId())
+						.setCostPrice(inboundItem.getCostPrice())
+						.setCostAmt(inboundItem.getCostAmt());
+				orderItemMapper.updateCost(orderItem);
+			}
+
 			//查询存货批次明细
 			InventoryBatchResponse inventoryBatchResponse =
 					inventoryBatchMapper.selectCostCondition(new InventoryBatchQuery().setFromItemId(inboundItem.getItemId()));
-			//查询出库成本
-			List<OutboundItemCostResponse> outboundItemCostResponses =
-					outboundItemCostMapper.selectCostOutbound(new OutboundItemCostQuery().setBatchId(inventoryBatchResponse.getBatchId()));
-			//当出库成本有数据且数量不为0(理论上是没有数据 数量就是0)
-			BigDecimal outCostAmtTotal = BigDecimal.ZERO;//总出库成本总和
-			if(outboundItemCostResponses.size() > 0){
-				for(OutboundItemCostResponse outboundItemCostResponse : outboundItemCostResponses){
-					//出库数量不是0
-					if(outboundItemCostResponse.getOutQty().compareTo(BigDecimal.ZERO) != 0){
-						//出库成本 单独计算后面需要合计
-						BigDecimal outCostAmt = inboundItem.getCostPrice().multiply(outboundItemCostResponse.getOutQty());
-						//先用出库单价*出库数量计算金额 如果后面有差额 就更最后一条数据
-						OutboundItemCostQuery outboundItemCostQuery = new OutboundItemCostQuery()
-								.setBatchId(outboundItemCostResponse.getBatchId())
-								.setCostPrice(inboundItem.getCostPrice())
-								.setCostAmt(outCostAmt);
-						//修改出库成本
-						outboundItemCostMapper.updateOutboundCost(outboundItemCostQuery);
-						//修改出库明细表
-						OutboundItemQuery outboundItemQuery = new OutboundItemQuery()
-								.setItemId(outboundItemCostResponse.getOutItemId())
-								.setCostPrice(inboundItem.getCostPrice())
-								.setCostAmt(outCostAmt);
-						outboundItemMapper.updateOutCost(outboundItemQuery);
 
-						outCostAmtTotal = outCostAmtTotal.add(outCostAmt);
-						//修改存货批次明细
-						InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
-								.setBatchId(inventoryBatchResponse.getBatchId())
-								.setCostPrice(inboundItem.getCostPrice())
-								.setCostAmt(inboundItem.getCostPrice().multiply(inventoryBatchResponse.getInvQty()));
-						inventoryBatchMapper.updateInventoryBatchCost(inventoryBatchQuery);
-						//修改总单
-						this.updateInventory(new InventoryBatchQuery().setInvId(inventoryBatchResponse.getInvId()));
+			//外协没有批次
+			if(inventoryBatchResponse != null && inventoryBatchResponse.getBatchId() != null){
+				//查询出库成本
+				List<OutboundItemCostResponse> outboundItemCostResponses =
+						outboundItemCostMapper.selectCostOutbound(new OutboundItemCostQuery().setBatchId(inventoryBatchResponse.getBatchId()));
+				//当出库成本有数据且数量不为0(理论上是没有数据 数量就是0)
+				BigDecimal outCostAmtTotal = BigDecimal.ZERO;//总出库成本总和
+				if(outboundItemCostResponses.size() > 0){
+					for(OutboundItemCostResponse outboundItemCostResponse : outboundItemCostResponses){
+						//出库数量不是0
+						if(outboundItemCostResponse.getOutQty().compareTo(BigDecimal.ZERO) != 0){
+							//出库成本 单独计算后面需要合计
+							BigDecimal outCostAmt = inboundItem.getCostPrice().multiply(outboundItemCostResponse.getOutQty());
+							//先用出库单价*出库数量计算金额 如果后面有差额 就更最后一条数据
+							OutboundItemCostQuery outboundItemCostQuery = new OutboundItemCostQuery()
+									.setBatchId(outboundItemCostResponse.getBatchId())
+									.setCostPrice(inboundItem.getCostPrice())
+									.setCostAmt(outCostAmt);
+							//修改出库成本
+							outboundItemCostMapper.updateOutboundCost(outboundItemCostQuery);
+							//修改出库明细表
+							OutboundItemQuery outboundItemQuery = new OutboundItemQuery()
+									.setItemId(outboundItemCostResponse.getOutItemId())
+									.setCostPrice(inboundItem.getCostPrice())
+									.setCostAmt(outCostAmt);
+							outboundItemMapper.updateOutCost(outboundItemQuery);
+
+							outCostAmtTotal = outCostAmtTotal.add(outCostAmt);
+							//修改存货批次明细
+							InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
+									.setBatchId(inventoryBatchResponse.getBatchId())
+									.setCostPrice(inboundItem.getCostPrice())
+									.setCostAmt(inboundItem.getCostPrice().multiply(inventoryBatchResponse.getInvQty()));
+							inventoryBatchMapper.updateInventoryBatchCost(inventoryBatchQuery);
+							//修改总单
+							this.updateInventory(new InventoryBatchQuery().setInvId(inventoryBatchResponse.getInvId()));
+						}
+						//出库数量是0
+						else if(outboundItemCostResponse.getOutQty().compareTo(BigDecimal.ZERO) == 0){
+							InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
+									.setBatchId(inventoryBatchResponse.getBatchId())
+									.setCostPrice(inboundItem.getCostPrice())
+									.setCostAmt(inboundItem.getCostAmt());
+							inventoryBatchMapper.updateInventoryBatchCost(inventoryBatchQuery);
+							//修改总单
+							this.updateInventory(new InventoryBatchQuery().setInvId(inventoryBatchResponse.getInvId()));
+						}
 					}
-					//出库数量是0
-					else if(outboundItemCostResponse.getOutQty().compareTo(BigDecimal.ZERO) == 0){
-						InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
-								.setBatchId(inventoryBatchResponse.getBatchId())
+					//出库成本 金额之和 加上 存货批次明细成本金额(存货资产) = 核对金额
+					//如果出库成本核对有差额 就更最后一条数据
+					BigDecimal batchCostAmt = inboundItem.getCostPrice().multiply(inventoryBatchResponse.getInvQty());//存货资产
+					//修改的成本金额总和(存货资产 + 出库成本 金额)
+					BigDecimal costAmtTotal = batchCostAmt.add(outCostAmtTotal);
+					if(costAmtTotal.compareTo(inboundItem.getCostAmt())!= 0){
+						//修改出库成本
+						OutboundItemCostQuery updateLastCost = new OutboundItemCostQuery()
+								.setBatchId(outboundItemCostResponses.get(outboundItemCostResponses.size() - 1).getBatchId())
+								.setCostAmt(inboundItem.getCostAmt().subtract(costAmtTotal));
+						outboundItemCostMapper.updateLastCost(updateLastCost);
+						//修改出库明细
+						OutboundItemQuery outboundItemQuery = new OutboundItemQuery()
+								.setItemId(outboundItemCostResponses.get(outboundItemCostResponses.size() - 1).getOutItemId())
 								.setCostPrice(inboundItem.getCostPrice())
-								.setCostAmt(inboundItem.getCostAmt());
-						inventoryBatchMapper.updateInventoryBatchCost(inventoryBatchQuery);
-						//修改总单
-						this.updateInventory(new InventoryBatchQuery().setInvId(inventoryBatchResponse.getInvId()));
+								.setCostAmt(inboundItem.getCostAmt().subtract(costAmtTotal));
+						outboundItemMapper.updateLastCost(outboundItemQuery);
 					}
 				}
-				//出库成本 金额之和 加上 存货批次明细成本金额(存货资产) = 核对金额
-				//如果出库成本核对有差额 就更最后一条数据
-				BigDecimal batchCostAmt = inboundItem.getCostPrice().multiply(inventoryBatchResponse.getInvQty());//存货资产
-				//修改的成本金额总和(存货资产 + 出库成本 金额)
-				BigDecimal costAmtTotal = batchCostAmt.add(outCostAmtTotal);
-				if(costAmtTotal.compareTo(inboundItem.getCostAmt())!= 0){
-					//修改出库成本
-					OutboundItemCostQuery updateLastCost = new OutboundItemCostQuery()
-							.setBatchId(outboundItemCostResponses.get(outboundItemCostResponses.size() - 1).getBatchId())
-							.setCostAmt(inboundItem.getCostAmt().subtract(costAmtTotal));
-					outboundItemCostMapper.updateLastCost(updateLastCost);
-					//修改出库明细
-					OutboundItemQuery outboundItemQuery = new OutboundItemQuery()
-							.setItemId(outboundItemCostResponses.get(outboundItemCostResponses.size() - 1).getOutItemId())
+				//当出库成本没有数据 只修改存货批次明细
+				else{
+					InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
+							.setBatchId(inventoryBatchResponse.getBatchId())
 							.setCostPrice(inboundItem.getCostPrice())
-							.setCostAmt(inboundItem.getCostAmt().subtract(costAmtTotal));
-					outboundItemMapper.updateLastCost(outboundItemQuery);
+							.setCostAmt(inboundItem.getCostAmt());
+					inventoryBatchMapper.updateInventoryBatchCost(inventoryBatchQuery);
+					//修改总单
+					this.updateInventory(new InventoryBatchQuery().setInvId(inventoryBatchResponse.getInvId()));
 				}
 			}
-			//当出库成本没有数据 只修改存货批次明细
-			else{
-				InventoryBatchQuery inventoryBatchQuery = new InventoryBatchQuery()
-						.setBatchId(inventoryBatchResponse.getBatchId())
-						.setCostPrice(inboundItem.getCostPrice())
-						.setCostAmt(inboundItem.getCostAmt());
-				inventoryBatchMapper.updateInventoryBatchCost(inventoryBatchQuery);
-				//修改总单
-				this.updateInventory(new InventoryBatchQuery().setInvId(inventoryBatchResponse.getInvId()));
-			}
+
 		}
 		return ResponseResultUtil.success();
 	}

+ 16 - 4
src/main/java/com/dk/mdm/service/report/ReportService.java

@@ -36,10 +36,7 @@ import java.math.RoundingMode;
 import java.rmi.MarshalledObject;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 import java.util.regex.Matcher;
@@ -767,6 +764,21 @@ public class ReportService {
 //            map.put("item", userArrearsItem);
             map.put("arrears", total);
         }
+        if(params.get("sort") != null) {
+            switch (String.valueOf(params.get("sort"))){
+                case "order":
+                    arrears = arrears.stream()
+                            .sorted(Comparator.comparingDouble((Map map) -> Double.valueOf(String.valueOf(map.get("arrears")))))
+                            .collect(Collectors.toList());
+                    break;
+                case "down":
+                default:
+                    arrears = arrears.stream()
+                            .sorted(Comparator.comparingDouble((Map map) -> Double.valueOf(String.valueOf(map.get("arrears")))).reversed())
+                            .collect(Collectors.toList());
+                    break;
+            }
+        }
         if (Integer.parseInt(params.get("currentPage").toString()) == 1) {
             // 查询公司概况
             // 获取销售额