Browse Source

客户想查看每个员工的销售的详细明细;

dev
wangfukang 1 year ago
parent
commit
7bd590493b
  1. 16
      hiver-admin/test-output/test-report.html
  2. 2
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/SaleMapper.java
  3. 3
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SalesRankingVo.java
  4. 7
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java
  5. 13
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java
  6. 13
      hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml

16
hiver-admin/test-output/test-report.html

@ -35,7 +35,7 @@
<a href="#"><span class="badge badge-primary">Hiver</span></a>
</li>
<li class="m-r-10">
<a href="#"><span class="badge badge-primary">十一月 25, 2024 17:30:25</span></a>
<a href="#"><span class="badge badge-primary">十一月 26, 2024 09:27:39</span></a>
</li>
</ul>
</div>
@ -84,7 +84,7 @@
<div class="test-detail">
<span class="meta text-white badge badge-sm"></span>
<p class="name">passTest</p>
<p class="text-sm"><span>17:30:25 下</span> / <span>0.019 secs</span></p>
<p class="text-sm"><span>09:27:40 上</span> / <span>0.027 secs</span></p>
</div>
<div class="test-contents d-none">
<div class="detail-head">
@ -92,9 +92,9 @@
<div class="info">
<div class='float-right'><span class='badge badge-default'>#test-id=1</span></div>
<h5 class="test-status text-pass">passTest</h5>
<span class='badge badge-success'>11.25.2024 17:30:25</span>
<span class='badge badge-danger'>11.25.2024 17:30:25</span>
<span class='badge badge-default'>0.019 secs</span>
<span class='badge badge-success'>11.26.2024 09:27:40</span>
<span class='badge badge-danger'>11.26.2024 09:27:40</span>
<span class='badge badge-default'>0.027 secs</span>
</div>
<div class="m-t-10 m-l-5"></div>
</div>
@ -104,7 +104,7 @@
<tbody>
<tr class="event-row">
<td><span class="badge log pass-bg">Pass</span></td>
<td>17:30:25</td>
<td>9:27:40</td>
<td>
Test passed
</td>
@ -128,13 +128,13 @@
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Started</p>
<h3>十一月 25, 2024 17:30:25</h3>
<h3>十一月 26, 2024 09:27:39</h3>
</div></div>
</div>
<div class="col-md-3">
<div class="card"><div class="card-body">
<p class="m-b-0">Ended</p>
<h3>十一月 25, 2024 17:30:25</h3>
<h3>十一月 26, 2024 09:27:40</h3>
</div></div>
</div>
<div class="col-md-3">

2
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/dao/mapper/SaleMapper.java

@ -66,7 +66,7 @@ public interface SaleMapper extends BaseMapper<Sale> {
Page<CustomerBuyProductLogVo> getCustomerBuyProductLog(Page<CustomerBuyProductLogVo> page, @Param("salePageQuery") SalePageQuery salePageQuery);
List<CustomerBuyProductDetailLogVo> getCustomerBuyProductLogDetailLog(@Param("userId") String userId, @Param("shopId") String shopId, @Param("productIds") List<String> productIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
List<CustomerBuyProductDetailLogVo> getCustomerBuyProductLogDetailLog(@Param("userId") String userId,@Param("createBy") String createBy, @Param("shopId") String shopId, @Param("productIds") List<String> productIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
BigDecimal queryTotalAlreadyEarn(@Param("shopId") String shopId, @Param("startTime") String startTime, @Param("endTime") String endTime);

3
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/SalesRankingVo.java

@ -10,6 +10,9 @@ import java.io.Serializable;
@Data
public class SalesRankingVo implements Serializable {
@ApiModelProperty(value = "销售人员")
private String createBy;
@ApiModelProperty(value = "销售人员")
private String createByName;

7
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/serviceimpl/mybatis/SaleServiceImpl.java

@ -425,6 +425,7 @@ public class SaleServiceImpl extends ServiceImpl<SaleMapper, Sale> implements Sa
// 先拿到该客户购买的所有商品信息
final Page<CustomerBuyProductLogVo> page = new Page<>(salePageQuery.getPageNum(), salePageQuery.getPageSize());
final String userId = salePageQuery.getUserId();
final String createBy = salePageQuery.getCreateBy();
final Page<CustomerBuyProductLogVo> salePage = saleMapper.getCustomerBuyProductLog(page, salePageQuery);
final List<CustomerBuyProductLogVo> records = salePage.getRecords();
final List<String> productIds = new ArrayList<>();
@ -437,8 +438,8 @@ public class SaleServiceImpl extends ServiceImpl<SaleMapper, Sale> implements Sa
if(StringUtils.isNotEmpty(userId)){
customerBuySaleVoList = saleMapper.getByUserId(userId);
}
if(StringUtils.isNotEmpty(salePageQuery.getCreateBy())){
customerBuySaleVoList = saleMapper.getByCreUserId(salePageQuery.getCreateBy());
if(StringUtils.isNotEmpty(createBy)){
customerBuySaleVoList = saleMapper.getByCreUserId(createBy);
}
final Map<String, CustomerBuySaleVo> customerBuySaleVoMap = new HashMap<>();
for (CustomerBuySaleVo customerBuySaleVo : customerBuySaleVoList) {
@ -446,7 +447,7 @@ public class SaleServiceImpl extends ServiceImpl<SaleMapper, Sale> implements Sa
}
if (!productIds.isEmpty()) {
// 获取商品各规格售卖的数量
final List<CustomerBuyProductDetailLogVo> customerBuyProductDetailLogVos = saleMapper.getCustomerBuyProductLogDetailLog(userId, salePageQuery.getShopId(), productIds, salePageQuery.getStartDate(), salePageQuery.getEndDate());
final List<CustomerBuyProductDetailLogVo> customerBuyProductDetailLogVos = saleMapper.getCustomerBuyProductLogDetailLog(userId,createBy, salePageQuery.getShopId(), productIds, salePageQuery.getStartDate(), salePageQuery.getEndDate());
// 进行数据封装Map<商品id,Map<销售单id,商品明细>>
final Map<String, Map<String, List<CustomerBuyProductDetailLogVo>>> allMap = new HashMap<>();

13
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/utils/AliOcrUtil.java

@ -106,7 +106,7 @@ public class AliOcrUtil {
messages.add(systemMessage);
messages.add(userMessage);
final MultiModalConversationParam param = MultiModalConversationParam.builder()
.model("qwen-vl-ocr")
.model("qwen-vl-max-1119")
.messages(messages)
.build();
stopWatch.start("一轮会话");
@ -841,11 +841,12 @@ public class AliOcrUtil {
"1.productSn的返回值中去掉颜色,尺码等信息,\n" +
"2.如果识别到多种颜色,按不同颜色拆分返回。如果没有识别到\"color\"的内容,则\"color\"赋值“均色”。如果没有识别到\"size\"的内容,则\"size\"赋值“均码”,返回1条JSON数据即可。\n" +
"3.如果指令内容中有\"SYYS色\"则\"color\"字段返回“SYYS色”即可,如果指令内容中有\"SYCM码\"则\"size\"字段返回“SYCM码”即可,没有则忽略。\n" +
"4.如果指令中有“各N件”,则每个尺码数量返回N。\n" +
"5.如果指令中尺码是?码到?码,请完整返回跨度内所有尺码JSON、不要省略中间的尺码。(常见的尺码顺序:S码-M码-L码-XL码-2XL码-3XL码-4XL码-5XL码-6XL码-7XL码......)。\n" +
"6.如果没有识别到\"wholesalePrice\"的内容,则\"wholesalePrice\"赋值\"0\"。\n" +
"7.只输出JSON数据即可,禁止返回除JSON数据外的任何内容!" +
"8.返回的JSON数据不用换行,以最快的速度返回!";
"4. 如果数量为负数,则productCount返回负数。" +
"5.如果指令中有“各N件”,则每个尺码数量返回N。\n" +
"6.如果指令中尺码是?码到?码,请完整返回跨度内所有尺码JSON、不要省略中间的尺码。(常见的尺码顺序:S码-M码-L码-XL码-2XL码-3XL码-4XL码-5XL码-6XL码-7XL码......)。\n" +
"7.如果没有识别到\"wholesalePrice\"的内容,则\"wholesalePrice\"赋值\"0\"。\n" +
"8.只输出JSON数据即可,禁止返回除JSON数据外的任何内容!" +
"9.返回的JSON数据不用换行,以最快的速度返回!";
final Message userMsg = Message.builder().role(Role.USER.getValue()).content(questionMsg).build();
msgManager.add(systemMsg);
msgManager.add(userMsg);

13
hiver-modules/hiver-mall/src/main/resources/mapper/SaleMapper.xml

@ -779,7 +779,7 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr
<select id="getSalesRankingByShopId" resultType="cc.hiver.mall.pojo.vo.SalesRankingVo">
SELECT
create_by_name,count(*) as totalCount,sum( total_amount ) as totalPrice
create_by,create_by_name,count(*) as totalCount,sum( total_amount ) as totalPrice
FROM
t_sale
<where>
@ -792,7 +792,7 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr
</if>
</where>
GROUP BY
create_by_name
create_by,create_by_name
order by totalPrice desc
</select>
@ -923,7 +923,14 @@ trans_company, company_name, product_count, remark, sale_name, company_phone, cr
t_sale_detail
WHERE
shop_id = #{shopId}
and sale_id in ( SELECT id FROM t_sale WHERE user_id = #{userId} and status not in ('2','6','7'))
and sale_id in ( SELECT id FROM t_sale WHERE status not in ('2','6','7')
<if test='userId !=null and userId !=null'>
and user_id = #{userId}
</if>
<if test='createBy !=null and createBy !=null'>
and create_by = #{createBy}
</if>
)
and product_id in
<foreach close=")" collection="productIds" item="listItem" open="(" separator=",">
#{listItem}

Loading…
Cancel
Save