From 7bb22e67688232190a00ee3e63b5b93ea6037273 Mon Sep 17 00:00:00 2001
From: 姜友瑶 <935090232@qq.com>
Date: Wed, 15 Jun 2022 12:23:13 +0800
Subject: [PATCH] Merge branch 'developer'

---
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java                         |    2 
 zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java                 |    1 
 zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml                            |   21 +++
 zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml                     |   24 ++++
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java  |    5 
 zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java                 |  183 +++--------------------------
 zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml                        |    8 +
 zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java             |   71 ++++++++++-
 zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java                  |    3 
 zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java          |    2 
 zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/store-inout-sum.html |    2 
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java         |    8 +
 12 files changed, 158 insertions(+), 172 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java
index 8245e54..8329252 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/action/StoreInOutController.java
@@ -1,18 +1,20 @@
 package com.matrix.system.hive.action;
 
+import cn.hutool.core.collection.CollUtil;
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.pojo.PaginationVO;
 import com.matrix.core.tools.DateUtil;
 import com.matrix.core.tools.excl.ExcelSheetPO;
 import com.matrix.core.tools.excl.ExcelVersion;
-import com.matrix.system.common.tools.DataAuthUtil;
 import com.matrix.system.common.tools.ResponseHeadUtil;
 import com.matrix.system.constance.Dictionary;
 import com.matrix.system.hive.action.util.QueryUtil;
-import com.matrix.system.hive.bean.SysCheckInfo;
+import com.matrix.system.hive.bean.SysOrder;
+import com.matrix.system.hive.bean.SysProjServices;
 import com.matrix.system.hive.dao.SysStoreInfoDao;
-import com.matrix.core.tools.DateUtil;
 import com.matrix.system.hive.pojo.StoreInOutRecordVO;
+import com.matrix.system.hive.service.SysOrderService;
+import com.matrix.system.hive.service.SysProjServicesService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -23,10 +25,10 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.net.URLDecoder;
 import java.net.URLEncoder;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 
 /**
@@ -42,6 +44,12 @@
     @Autowired
     SysStoreInfoDao storeInfoDao;
 
+    @Autowired
+    SysOrderService orderService;
+
+    @Autowired
+    SysProjServicesService projServicesService;
+
     /**
      * 列表显示
      */
@@ -50,9 +58,52 @@
     AjaxResult showList(StoreInOutRecordVO inOutRecordVO, PaginationVO pageVo) {
         QueryUtil.setQueryLimitCom(inOutRecordVO);
         List<StoreInOutRecordVO> dataList =storeInfoDao.findStoreInOutRecord(inOutRecordVO,pageVo);
+
+        //原始订单号赋值
+        setExtInfo(dataList);
+
         return AjaxResult.buildSuccessInstance(dataList,storeInfoDao.findStoreInOutTotal(inOutRecordVO));
     }
 
+    /**
+     * 填充扩展信息
+     * @param dataList
+     */
+    private void setExtInfo(List<StoreInOutRecordVO> dataList) {
+        List<Long> serviceIds = dataList.stream().map(StoreInOutRecordVO::getServiceId).filter(e -> Objects.nonNull(e)).collect(Collectors.toList());
+        List<Long> orderIds = dataList.stream().map(StoreInOutRecordVO::getOrderId).filter(e -> Objects.nonNull(e)).collect(Collectors.toList());
+        List<SysOrder> orderList = orderService.findByIds(orderIds);
+        Map<String, SysOrder> orderMap=new HashMap<>();
+        Map<String, SysProjServices> serviceMap=new HashMap<>();
+        if(CollUtil.isNotEmpty(orderList)){
+            orderMap = orderList.stream().collect(Collectors.toMap(e->String.format("%s_%s",e.getId(),"DD"), Function.identity(), (a, b) -> a));
+        }
+        List<SysProjServices> projServicesList = projServicesService.findByIds(serviceIds);
+        if(CollUtil.isNotEmpty(projServicesList)){
+            serviceMap= projServicesList.stream().collect(Collectors.toMap(e->String.format("%s_%s",e.getId(),"FWD"), Function.identity(), (a, b) -> a));
+        }
+        if(orderMap.size()>0){
+            for (StoreInOutRecordVO e : dataList){
+                if(Objects.nonNull(e.getOrderId())){
+                    SysOrder order = orderMap.get(String.format("%s_%s", e.getOrderId(), "DD"));
+                    if(Objects.nonNull(order)){
+                        e.setSourceOrderNo(order.getOrderNo() );
+                        e.setVipName(order.getVipName());
+                    }
+                }
+                if(Objects.nonNull(e.getServiceId())){
+                    SysProjServices sysProjServices = serviceMap.get(String.format("%s_%s", e.getServiceId(), "FWD"));
+                    if(Objects.nonNull(sysProjServices)){
+                        e.setSourceOrderNo( sysProjServices.getServiceNo());
+                        e.setVipName(sysProjServices.getVipName());
+                    }
+                }
+            }
+
+
+
+        }
+    }
 
 
     /**
@@ -77,13 +128,17 @@
         String title = "库存流向明细";
         orderSheet.setSheetName(title);
         orderSheet.setTitle(title);
-        String[] header = {"时间", "产品编码", "商品名称", "库存分类", "出库数量", "出库单价", "出库金额", "单据编号", "单据类型", "库存批次", "操作人", "单据备注", "门店"};
+        String[] header = {"时间", "产品编码", "商品名称", "库存分类", "出库数量", "出库单价", "出库金额", "来源单据",  "下单客户",  "单据编号", "单据类型", "库存批次", "操作人", "单据备注", "门店"};
         orderSheet.setHeaders(header);
 
         if (getMe().getShopRole().equals(Dictionary.FLAG_NO_N)) {
             inOutRecordVO.setShopId(getMe().getShopId());
         }
         List<StoreInOutRecordVO> dataList =storeInfoDao.findStoreInOutRecord(inOutRecordVO,null);
+
+        //原始订单号赋值
+        setExtInfo(dataList);
+
         List<List<Object>> list = new ArrayList<>();
         if (dataList.size() > 0) {
             for (StoreInOutRecordVO item : dataList) {
@@ -96,6 +151,8 @@
                 temp.add(item.getAmount());
                 temp.add(item.getGoodsPrice());
                 temp.add(item.getTotalPrice());
+                temp.add(item.getSourceOrderNo());
+                temp.add(item.getVipName());
                 temp.add(item.getOrderNo());
                 temp.add(item.getOrderType());
                 temp.add(item.getBatch());
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
index 22ef160..ec8828a 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysOrderDao.java
@@ -36,6 +36,8 @@
 
 	public SysOrder  selectById(Long id);
 
+	public List<SysOrder>  selectByIds(@Param("list")List<Long> ids);
+
 	public int selectInPageCount(@Param("record") SysOrder sysOrder);
 
 	public void updateOrderTime(@Param("payTime") Date orderTime, @Param("id") Long id);
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
index 588612c..9c7955f 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/dao/SysProjServicesDao.java
@@ -9,7 +9,6 @@
 import com.matrix.system.shopXcx.api.vo.ErpServiceOrderListVo;
 import org.apache.ibatis.annotations.Param;
 
-import java.util.Date;
 import java.util.List;
 
 
@@ -71,4 +70,6 @@
 	int updateNoticeTimes(@Param("list")List<Long> noticedIds);
 
 	List<SysProjServices> selectProjServicesByOrderItemId(@Param("itemId") Long itemId);
+
+    List<SysProjServices> selectByIds(@Param("list")List<Long> ids);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java b/zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java
index 3e84fff..a5457fc 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/pojo/StoreInOutRecordVO.java
@@ -1,8 +1,8 @@
 package com.matrix.system.hive.pojo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.matrix.core.pojo.EntityDTO;
 import com.matrix.core.tools.DateUtil;
+import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
@@ -11,7 +11,18 @@
  * 库存出入库明细
  * @author JYY
  */
+@Data
 public class StoreInOutRecordVO {
+
+    /**
+     * 服务单id
+     */
+    private Long serviceId;
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
     private Date createTime;
@@ -44,6 +55,16 @@
      * 单据编号
      */
     private String orderNo;
+
+    /**
+     * 原单据号
+     */
+    private String sourceOrderNo;
+    /**
+     * 客户姓名
+     */
+    private String vipName;
+
     /**
      * 单据类型
      */
@@ -86,165 +107,5 @@
 
     private Long id;
 
-    public Long getId() {
-        return id;
-    }
 
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public String getCode() {
-        return code;
-    }
-
-    public void setCode(String code) {
-        this.code = code;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-
-    public String getTypeName() {
-        return typeName;
-    }
-
-    public void setTypeName(String typeName) {
-        this.typeName = typeName;
-    }
-
-    public Double getAmount() {
-        return amount;
-    }
-
-    public void setAmount(Double amount) {
-        this.amount = amount;
-    }
-
-    public Double getGoodsPrice() {
-        return goodsPrice;
-    }
-
-    public void setGoodsPrice(Double goodsPrice) {
-        this.goodsPrice = goodsPrice;
-    }
-
-    public Double getTotalPrice() {
-        return totalPrice;
-    }
-
-    public void setTotalPrice(Double totalPrice) {
-        this.totalPrice = totalPrice;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
-
-    public String getOrderType() {
-        return orderType;
-    }
-
-    public void setOrderType(String orderType) {
-        this.orderType = orderType;
-    }
-
-    public String getBatch() {
-        return batch;
-    }
-
-    public void setBatch(String batch) {
-        this.batch = batch;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getShopName() {
-        return shopName;
-    }
-
-    public void setShopName(String shopName) {
-        this.shopName = shopName;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-
-    public Date getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
-    }
-
-    public Long getShopId() {
-        return shopId;
-    }
-
-    public void setShopId(Long shopId) {
-        this.shopId = shopId;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public Date getBeginTime() {
-        return beginTime;
-    }
-
-    public void setBeginTime(Date beginTime) {
-        this.beginTime = beginTime;
-    }
-
-    public Long getGoodsSortId() {
-        return goodsSortId;
-    }
-
-    public void setGoodsSortId(Long goodsSortId) {
-        this.goodsSortId = goodsSortId;
-    }
-
-    public Long getCompanyId() {
-        return companyId;
-    }
-
-    public void setCompanyId(Long companyId) {
-        this.companyId = companyId;
-    }
 }
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
index 5f21562..177ca3d 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysOrderService.java
@@ -145,4 +145,5 @@
 
 	BigDecimal findVipArrearsByVipId(Long vipId);
 
+    List<SysOrder> findByIds(List<Long> orderIds);
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
index 6383e2d..224b2cd 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/SysProjServicesService.java
@@ -62,6 +62,8 @@
      */
     public SysProjServices findById(Long id);
 
+    public List<SysProjServices> findByIds(List<Long> id);
+
     /**
      * 排班
      */
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 4e47ea7..4228c40 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -183,11 +183,17 @@
     }
 
     @Override
-    public SysOrder findById(Long id) {
+    public  SysOrder  findById(Long id) {
         return sysOrderDao.selectById(id);
 
     }
 
+    @Override
+    public List<SysOrder> findByIds(List<Long> ids) {
+        return sysOrderDao.selectByIds(ids);
+
+    }
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
index 2cc0337..048b4a8 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
+++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysProjServicesServiceImpl.java
@@ -341,7 +341,12 @@
         return sysProjServicesDao.selectById(id);
 
     }
+    @Override
+    public List<SysProjServices> findByIds(List<Long> ids) {
 
+        return sysProjServicesDao.selectByIds(ids);
+
+    }
 
     /**
      * TODO 做成配置项目 校验服务单中的项目是否存在欠款
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
index eb2c3aa..c7df75e 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderDao.xml
@@ -360,6 +360,27 @@
         where a.id=#{id}
     </select>
 
+    <!-- 根据id查询 -->
+    <select id="selectByIds" resultMap="SysOrderMap">
+        select
+            a.*,
+            c.su_name as STAFF_NAME, e.su_name as cashierName,
+            d.SHOP_NAME,
+            d.shop_short_name,
+            b.PHONE,
+            b.VIP_NAME
+        from sys_order a
+                 LEFT JOIN sys_vip_info b on b.ID=a.VIP_ID
+                 left JOIN sys_users c on c.su_id=a.STAFF_ID
+                 left JOIN sys_users e on e.su_id=a.cashier_id
+                 left JOIN sys_shop_info d on d.ID=a.SHOP_ID
+        where a.id  in
+        <foreach collection="list" index="index" item="item" open="("
+                 separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
 
     <!-- 根据对象查询 -->
     <select id="selectByModel" resultMap="SysOrderMap">
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
index ac6c675..30b5c74 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysProjServicesDao.xml
@@ -446,6 +446,30 @@
 		where  a.ID=#{id}
 	</select>
 
+	<!-- 根据id查询-->
+	<select id="selectByIds" resultMap="SysProjServicesMap">
+		select	distinct
+			a.*,
+			b.PHONE ,
+			b.VIP_Name ,
+			b.VIP_NO,
+			(select  su_name from  sys_users f where  a.CREATE_STAFF_ID=f.su_id ) as  createStaffName,
+			(select  su_name from  sys_users j where  a.BEAUTICIAN_ID=j.su_id ) as  beautiName,
+			(select  su_name from  sys_users k where  a.devision_id=k.su_id ) as plsName,
+			(select  su_name from  sys_users l where  a.cashier_id=l.su_id ) as cashierName,
+			(select  shop_name from  sys_shop_info h where  a.SHOP_ID=h.ID ) as shopName,
+			(select  bed_name from  sys_bed_info i where  a.BED_ID=i.ID ) as bedName
+		FROM sys_proj_services a
+				 LEFT JOIN sys_vip_info b on b.ID=a.VIP_ID
+				 left join sys_beautician_state c on a.id=c.SERVICES_ID
+		where  a.ID in
+		<foreach collection="list" index="index" item="item" open="("
+				 separator="," close=")">
+			#{item}
+		</foreach>
+	</select>
+
+
 	<select id="selectNeedNoticeService" resultMap="SysProjServicesMap">
 	select
 		a.id,
diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml
index 6bafe6f..f93a4cf 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysStoreInfoDao.xml
@@ -679,7 +679,9 @@
 		b.remark,
 		b.TYPE AS orderType ,
 		c.su_name as userName,
-		d.SHOP_NAME as shopName
+		d.SHOP_NAME as shopName,
+		b.SERVICE_ID as serviceId,
+		b.ORDER_ID as orderId
 	FROM
 		sys_out_store_item a
 		LEFT JOIN sys_out_store b ON a.OUT_STORE_ID = b.id
@@ -731,7 +733,9 @@
 		t2_b.remark,
 		t2_b.instore_type,
 		t2_c.su_name,
-		t2_d.SHOP_NAME
+		t2_d.SHOP_NAME,
+		'' as serviceId,
+		'' as orderId
 	FROM
 		sys_instore_detail t2_a
 		LEFT JOIN sys_instore_info t2_b ON t2_a.INSTORE_ID = t2_b.id
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/store-inout-sum.html b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/store-inout-sum.html
index 76493a9..869ea1c 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/store-inout-sum.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/store-inout-sum.html
@@ -84,6 +84,8 @@
 			<th data-field="amount" data-footer-formatter="countColumn">出库数量</th>
 			<th data-field="goodsPrice" >出库单价</th>
 			<th data-field="totalPrice" data-footer-formatter="countColumn">出库金额</th>
+			<th data-field="sourceOrderNo">来源单据</th>
+			<th data-field="vipName">下单客户</th>
 			<th data-field="orderNo">单据编号</th>
 			<th data-field="orderType">单据类型</th>
 			<th data-field="batch">库存批次</th>

--
Gitblit v1.9.1