Explorar el Código

总后台,批次号和溯源码详情、分页拼接展示

yjwang hace 2 semanas
padre
commit
9fa875e413

+ 39 - 17
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreAfterSalesScrmController.java

@@ -16,6 +16,7 @@ import com.fs.framework.web.service.TokenService;
 import com.fs.his.domain.FsUser;
 import com.fs.his.service.IFsUserService;
 import com.fs.hisStore.domain.*;
+import com.fs.hisStore.mapper.FsStoreOrderItemScrmMapper;
 import com.fs.hisStore.mapper.FsStoreVerifyCodeScrmMapper;
 import com.fs.hisStore.param.FsStoreAfterSalesAudit1Param;
 import com.fs.hisStore.param.FsStoreAfterSalesAudit2Param;
@@ -31,6 +32,7 @@ import java.text.ParseException;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 售后记录Controller
@@ -62,6 +64,9 @@ public class FsStoreAfterSalesScrmController extends BaseController
     @Autowired
     private FsStoreVerifyCodeScrmMapper fsStoreVerifyCodeService;
 
+    @Autowired
+    private FsStoreOrderItemScrmMapper fsStoreOrderItemMapper;
+
     /**
      * 查询售后记录列表
      */
@@ -124,27 +129,44 @@ public class FsStoreAfterSalesScrmController extends BaseController
         }
         afterSales.setVerifyCode(order.getVerifyCode() != null?order.getVerifyCode():null);
         afterSales.setBatchNumber(order.getBatchNumber() != null?order.getBatchNumber():null);
-        //获取溯源码相关数据
-        List<FsStoreVerifyCodeScrm> verifyCodes = fsStoreVerifyCodeService.selectList(new LambdaQueryWrapper<FsStoreVerifyCodeScrm>().select(FsStoreVerifyCodeScrm::getVerifyCode,FsStoreVerifyCodeScrm::getProductId).eq(FsStoreVerifyCodeScrm::getOrderId, order.getId()));
-        if(!verifyCodes.isEmpty()){
-            Map<Long, String> verifyCodMap=new HashMap<>();
-            for (FsStoreVerifyCodeScrm v : verifyCodes){
-                if(verifyCodMap.containsKey(v.getProductId())){
-                    verifyCodMap.put(v.getProductId(),verifyCodMap.get(v.getProductId())+","+v.getVerifyCode());
-                }else {
-                    verifyCodMap.put(v.getProductId(),v.getVerifyCode());
-                }
-            }
-
+        if(!items.isEmpty()){
+            FsStoreOrderItemScrm fsStoreOrderItem=new FsStoreOrderItemScrm();
+            fsStoreOrderItem.setOrderId(order.getId());
+            List<FsStoreOrderItemScrm> fsStoreOrderItemScrmList = fsStoreOrderItemMapper.selectFsStoreOrderItemList(fsStoreOrderItem);
+            Map<Long,FsStoreOrderItemScrm> itemMap = fsStoreOrderItemScrmList.stream().collect(Collectors.toMap(i->i.getProductId(),item->item));
             for (FsStoreAfterSalesItemScrm item : items){
-                if(verifyCodMap.containsKey(item.getProductId())){
-                    JSONObject jsonObject = JSONObject.parseObject(item.getJsonInfo());
-                    jsonObject.put("verifyCods", verifyCodMap.get(item.getProductId()));
-                    item.setJsonInfo(jsonObject.toJSONString());
+                if(itemMap.containsKey(item.getProductId())){
+                    FsStoreOrderItemScrm itemScrm=itemMap.get(item.getProductId());
+                    if(itemScrm.getVerifyCode() != null){
+                        item.setVerifyCode(itemScrm.getVerifyCode());
+                    }
+                    if(itemScrm.getBatchNumber() != null){
+                        item.setBatchNumber(itemScrm.getBatchNumber());
+                    }
                 }
             }
-
         }
+//        //获取溯源码相关数据
+//        List<FsStoreVerifyCodeScrm> verifyCodes = fsStoreVerifyCodeService.selectList(new LambdaQueryWrapper<FsStoreVerifyCodeScrm>().select(FsStoreVerifyCodeScrm::getVerifyCode,FsStoreVerifyCodeScrm::getProductId).eq(FsStoreVerifyCodeScrm::getOrderId, order.getId()));
+//        if(!verifyCodes.isEmpty()){
+//            Map<Long, String> verifyCodMap=new HashMap<>();
+//            for (FsStoreVerifyCodeScrm v : verifyCodes){
+//                if(verifyCodMap.containsKey(v.getProductId())){
+//                    verifyCodMap.put(v.getProductId(),verifyCodMap.get(v.getProductId())+","+v.getVerifyCode());
+//                }else {
+//                    verifyCodMap.put(v.getProductId(),v.getVerifyCode());
+//                }
+//            }
+//
+//            for (FsStoreAfterSalesItemScrm item : items){
+//                if(verifyCodMap.containsKey(item.getProductId())){
+//                    JSONObject jsonObject = JSONObject.parseObject(item.getJsonInfo());
+//                    jsonObject.put("verifyCods", verifyCodMap.get(item.getProductId()));
+//                    item.setJsonInfo(jsonObject.toJSONString());
+//                }
+//            }
+//
+//        }
         return R.ok().put("afterSales",afterSales).put("items",items).put("logs",logs).put("user",user).put("order",order).put("store",storeScrm);
     }
 

+ 23 - 20
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -581,27 +581,30 @@ public class FsStoreOrderScrmController extends BaseController {
             tuiMoneyLogs=moneyLogsService.selectCompanyStoreOrderMoneyLogsList(moneyLogsMap);
         }
 
-        //获取溯源码相关数据
-        List<FsStoreVerifyCodeScrm> verifyCodes = fsStoreVerifyCodeService.selectList(new LambdaQueryWrapper<FsStoreVerifyCodeScrm>().select(FsStoreVerifyCodeScrm::getVerifyCode,FsStoreVerifyCodeScrm::getProductId).eq(FsStoreVerifyCodeScrm::getOrderId, order.getId()));
-        if(!verifyCodes.isEmpty()){
-            Map<Long, String> verifyCodMap=new HashMap<>();
-            for (FsStoreVerifyCodeScrm v : verifyCodes){
-                if(verifyCodMap.containsKey(v.getProductId())){
-                    verifyCodMap.put(v.getProductId(),verifyCodMap.get(v.getProductId())+","+v.getVerifyCode());
-                }else {
-                    verifyCodMap.put(v.getProductId(),v.getVerifyCode());
-                }
-            }
-
-            for (FsStoreOrderItemScrm item : items){
-                if(verifyCodMap.containsKey(item.getProductId())){
-                    JSONObject jsonObject = JSONObject.parseObject(item.getJsonInfo());
-                    jsonObject.put("verifyCods", verifyCodMap.get(item.getProductId()));
-                    item.setJsonInfo(jsonObject.toJSONString());
-                }
-            }
+//        //获取溯源码相关数据
+//        List<FsStoreVerifyCodeScrm> verifyCodes = fsStoreVerifyCodeService.selectList(new LambdaQueryWrapper<FsStoreVerifyCodeScrm>().select(FsStoreVerifyCodeScrm::getVerifyCode,FsStoreVerifyCodeScrm::getProductId).eq(FsStoreVerifyCodeScrm::getOrderId, order.getId()));
+//        if(!verifyCodes.isEmpty()){
+//            Map<Long, String> verifyCodMap=new HashMap<>();
+//            for (FsStoreVerifyCodeScrm v : verifyCodes){
+//                if(verifyCodMap.containsKey(v.getProductId())){
+//                    verifyCodMap.put(v.getProductId(),verifyCodMap.get(v.getProductId())+","+v.getVerifyCode());
+//                }else {
+//                    verifyCodMap.put(v.getProductId(),v.getVerifyCode());
+//                }
+//            }
+//
+//            for (FsStoreOrderItemScrm item : items){
+//                item.setVerifyCode("112344567789");
+//                item.setBatchNumber("16699878855");
+//                if(verifyCodMap.containsKey(item.getProductId())){
+//                    JSONObject jsonObject = JSONObject.parseObject(item.getJsonInfo());
+//                    jsonObject.put("verifyCods", verifyCodMap.get(item.getProductId()));
+//                    item.setJsonInfo(jsonObject.toJSONString());
+//                }
+//            }
+//
+//        }
 
-        }
         List<FsStoreOrderAuditLogVO> auditLogs = orderAuditLogService.selectStoreOrderAuditLogVOByOrderId(order.getId());
         return R.ok().put("order", order).put("items", items).put("logs", logs).put("user", user).put("payments",payments).put("tuiMoneyLogs",tuiMoneyLogs)
                 .put("auditLogs",auditLogs).put("storeScrm",storeScrm);

+ 10 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsStoreAfterSalesItemScrm.java

@@ -61,6 +61,8 @@ public class FsStoreAfterSalesItemScrm extends BaseEntity
      */
     private String commonName;
 
+    //溯源码
+    private String verifyCode;
     //子表信息数据集合
     List<FsStoreAfterSalesItemScrm> fsStoreAfterSalesItemScrms;
 
@@ -163,4 +165,12 @@ public class FsStoreAfterSalesItemScrm extends BaseEntity
     public void setFsStoreAfterSalesItemScrms(List<FsStoreAfterSalesItemScrm> fsStoreAfterSalesItemScrms) {
         this.fsStoreAfterSalesItemScrms = fsStoreAfterSalesItemScrms;
     }
+
+    public String getVerifyCode() {
+        return verifyCode;
+    }
+
+    public void setVerifyCode(String verifyCode) {
+        this.verifyCode = verifyCode;
+    }
 }

+ 3 - 3
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreAfterSalesScrmMapper.java

@@ -87,7 +87,7 @@ public interface FsStoreAfterSalesScrmMapper
     List<FsStoreAfterSalesQueryVO>  selectFsStoreAfterSalesListQuery(@Param("maps") FsStoreAfterSalesQueryParam storeAfterSalesParam);
 
     @Select({"<script> " +
-            "select DISTINCT s.*,o.delivery_status,o.delivery_id,u.phone as user_phone,c.company_name,o.verify_code,o.batch_number," +
+            "select DISTINCT s.*,o.id AS order_id,o.delivery_status,o.delivery_id,u.phone as user_phone,c.company_name,o.verify_code,o.batch_number," +
             "cu.nick_name as company_user_nick_name ,cu.phonenumber as company_usere_phonenumber,ssc.store_name as storeName,ssc.store_seq as storeSeq,ssc.merchant_id as merchantId,hps.serial_no " +
             "from fs_store_after_sales_scrm s INNER join fs_store_order_scrm o on o.order_code=s.order_code " +
             "inner join fs_store_order_item_scrm ois on o.id = ois.order_id " +
@@ -143,10 +143,10 @@ public interface FsStoreAfterSalesScrmMapper
             "and o.user_phone like CONCAT('%',#{maps.consigneePhone},'%') " +
             "</if>" +
             "          <if test=\"maps.verifyCode != null and  maps.verifyCode !=  '' \">\n" +
-            "                and o.verify_code like concat('%', #{maps.verifyCode}, '%')\n" +
+            "                and ois.verify_code like concat('%', #{maps.verifyCode}, '%')\n" +
             "            </if>" +
             "          <if test=\"maps.batchNumber != null and  maps.batchNumber !=  '' \">\n" +
-            "                and o.batch_number like concat('%', #{maps.batchNumber}, '%')\n" +
+            "                and ois.batch_number like concat('%', #{maps.batchNumber}, '%')\n" +
             "            </if>" +
             "<if test = 'maps.endTime != null and maps.endTime != \"\"   '> " +
             " AND date_format(s.create_time,'%y%m%d') &lt;= date_format(#{maps.endTime},'%y%m%d') " +

+ 7 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java

@@ -266,4 +266,11 @@ public interface FsStoreOrderItemScrmMapper
 
     @Select("select product_id,json_info,num from fs_store_order_item_scrm where order_id=#{orderId}")
     List<FsStoreOrderItemListDVO> selectFsStoreOrderItemListDVOByOrderId(Long orderId);
+
+    /**
+     * 拼接溯源码、产品批次号
+     * @param orderIds
+     * @return List<FsStoreOrderItemVO>
+     * **/
+    List<FsStoreOrderItemScrm> selectOrderItemSpliceByOrderIds(@Param("orderIds") List<Long> orderIds);
 }

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesItemScrmServiceImpl.java

@@ -62,7 +62,7 @@ public class FsStoreAfterSalesItemScrmServiceImpl implements IFsStoreAfterSalesI
             if(null != activity){
                 item.setMah(activity.getMah());
                 item.setDrugRegCertNo(activity.getDrugRegCertNo());
-                item.setBatchNumber(activity.getBatchNumber());
+//                item.setBatchNumber(activity.getBatchNumber());
                 item.setDosageForm(activity.getDosageForm());
                 item.setCommonName(activity.getCommonName());
             }

+ 25 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreAfterSalesScrmServiceImpl.java

@@ -40,6 +40,7 @@ import com.fs.his.vo.FsStoreAfterSalesLogsVO;
 import com.fs.hisStore.enums.*;
 import com.fs.hisStore.mapper.*;
 import com.fs.hisStore.param.*;
+import com.fs.hisStore.vo.FsStoreOrderVO;
 import com.fs.huifuPay.domain.HuiFuRefundResult;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
@@ -581,7 +582,30 @@ public class FsStoreAfterSalesScrmServiceImpl implements IFsStoreAfterSalesScrmS
     @Override
     @DataScope(deptAlias = "cu",userAlias = "cu")
     public List<FsStoreAfterSalesVO> selectFsStoreAfterSalesListVO(FsStoreAfterSalesScrm fsStoreAfterSales) {
-        return fsStoreAfterSalesMapper.selectFsStoreAfterSalesListVO(fsStoreAfterSales);
+        List<FsStoreAfterSalesVO> list = fsStoreAfterSalesMapper.selectFsStoreAfterSalesListVO(fsStoreAfterSales);
+        if (!list.isEmpty()) {
+            List<Long> orderIds = list.stream().map(FsStoreAfterSalesVO::getOrderId).collect(Collectors.toList());
+            Map<Long, FsStoreOrderItemScrm> itemMap = fsStoreOrderItemMapper.selectOrderItemSpliceByOrderIds(orderIds).stream().collect(Collectors.toMap(FsStoreOrderItemScrm::getOrderId, item -> item));
+            for (FsStoreAfterSalesVO vo : list) {
+                if(itemMap.containsKey(vo.getOrderId())){
+                    FsStoreOrderItemScrm item = itemMap.get(vo.getOrderId());
+                    if(item.getBatchNumber() != null){
+                        vo.setBatchNumber(item.getBatchNumber());
+                    }else {
+                        vo.setBatchNumber(null);
+                    }
+                    if(item.getVerifyCode() != null){
+                        vo.setVerifyCode(item.getVerifyCode());
+                    }else {
+                        vo.setVerifyCode(null);
+                    }
+                }else {
+                    vo.setBatchNumber(null);
+                    vo.setVerifyCode(null);
+                }
+            }
+        }
+        return list;
     }
 
 //    @Override

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderItemScrmServiceImpl.java

@@ -66,7 +66,7 @@ public class FsStoreOrderItemScrmServiceImpl implements IFsStoreOrderItemScrmSer
             if(null != activity){
                 item.setMah(activity.getMah());
                 item.setDrugRegCertNo(activity.getDrugRegCertNo());
-                item.setBatchNumber(activity.getBatchNumber());
+//                item.setBatchNumber(activity.getBatchNumber());
                 item.setDosageForm(activity.getDosageForm());
                 item.setCommonName(activity.getCommonName());
             }

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreAfterSalesVO.java

@@ -123,4 +123,7 @@ public class FsStoreAfterSalesVO implements Serializable
 
     //产品批次号
     private String batchNumber;
+
+    //订单ID
+    private Long orderId;
 }

+ 15 - 2
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml

@@ -14,10 +14,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="num"    column="num"    />
         <result property="isAfterSales"    column="is_after_sales"    />
         <result property="isPrescribe"    column="is_prescribe"    />
+        <result property="verifyCode"    column="verify_code"    />
+        <result property="batchNumber"    column="batch_number"    />
     </resultMap>
 
     <sql id="selectFsStoreOrderItemVo">
-        select item_id, order_id, order_code, cart_id, product_id, json_info, num, is_after_sales,is_prescribe from fs_store_order_item_scrm
+        select item_id, order_id, order_code, cart_id, product_id, json_info, num, is_after_sales,is_prescribe,verify_code,batch_number from fs_store_order_item_scrm
     </sql>
 
     <select id="selectFsStoreOrderItemList" parameterType="FsStoreOrderItemScrm" resultMap="FsStoreOrderItemResult">
@@ -94,5 +96,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{itemId}
         </foreach>
     </delete>
-
+    <select id="selectOrderItemSpliceByOrderIds" resultType="FsStoreOrderItemScrm">
+        SELECT
+        order_id,
+        GROUP_CONCAT(verify_code) AS verify_code,
+        GROUP_CONCAT(batch_number) AS batch_number
+        FROM fs_store_order_item_scrm
+        WHERE order_id IN
+        <foreach collection="orderIds" item="orderId" open="(" separator="," close=")">
+            #{orderId}
+        </foreach>
+        GROUP BY order_id
+    </select>
 </mapper>

+ 2 - 2
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1689,10 +1689,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 and fsp.product_name like concat('%', #{maps.productName}, '%')
             </if>
             <if test="maps.verifyCode != null and  maps.verifyCode !=  '' ">
-                and o.verify_code like concat('%', #{maps.verifyCode}, '%')
+                and oi.verify_code like concat('%', #{maps.verifyCode}, '%')
             </if>
             <if test="maps.batchNumber != null and  maps.batchNumber !=  '' ">
-                and o.batch_number like concat('%', #{maps.batchNumber}, '%')
+                and oi.batch_number like concat('%', #{maps.batchNumber}, '%')
             </if>
             <if test="maps.orderType != null    ">
                 and o.order_type =#{maps.orderType}