修改批量出入库

This commit is contained in:
韩鹏辉 2024-07-09 10:50:30 +08:00
parent 8245ae9b8c
commit 90bfde259c
5 changed files with 42 additions and 7 deletions

View File

@ -68,4 +68,8 @@ public class TbOrderInfoQueryCriteria{
/** BETWEEN */ /** BETWEEN */
@Query(type = Query.Type.BETWEEN) @Query(type = Query.Type.BETWEEN)
private List<Long> createdAt; private List<Long> createdAt;
@Query
private String tableName;
} }

View File

@ -6,6 +6,11 @@ import java.util.List;
@Data @Data
public class TbPayCountQueryCriteria { public class TbPayCountQueryCriteria {
private String shopId; private String shopId;
private String tableName;
private List<Long> createdAt; private List<Long> createdAt;
} }

View File

@ -39,19 +39,19 @@ import java.util.List;
public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Integer>, JpaSpecificationExecutor<TbOrderInfo> { public interface TbOrderInfoRepository extends JpaRepository<TbOrderInfo, Integer>, JpaSpecificationExecutor<TbOrderInfo> {
@Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " + @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo(info.payType, SUM(info.orderAmount)) " +
"FROM TbOrderInfo info " + "FROM TbOrderInfo info " +
"WHERE info.shopId = :shopId " + "WHERE 1=1 and (:tableName is null or info.tableName=:tableName ) and info.shopId = :shopId " +
"AND info.createdAt>:start AND info.createdAt<:end " + "AND info.createdAt>:start AND info.createdAt<:end " +
"AND ((info.status = 'closed') OR (info.status = 'refund' AND info.orderType != 'return')) " + "AND ((info.status = 'closed') OR (info.status = 'refund' AND info.orderType != 'return')) " +
"GROUP BY info.payType") "GROUP BY info.payType")
List<TbOrderPayCountVo> queryTbOrderPayCount(@Param("shopId")String shopId, @Param("start") Long start, @Param("end") Long end); List<TbOrderPayCountVo> queryTbOrderPayCount(@Param("shopId")String shopId,@Param("tableName") String tableName ,@Param("start") Long start, @Param("end") Long end);
@Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo('refund', SUM(info.orderAmount)) " + @Query("SELECT new cn.ysk.cashier.vo.TbOrderPayCountVo('refund', SUM(info.orderAmount)) " +
"FROM TbOrderInfo info " + "FROM TbOrderInfo info " +
"WHERE info.shopId = :shopId " + "WHERE 1=1 and (:tableName is null or info.tableName=:tableName ) and info.shopId = :shopId " +
"AND info.status = 'refund' AND info.orderType = 'return' " + "AND info.status = 'refund' AND info.orderType = 'return' " +
"AND info.createdAt>:start AND info.createdAt<:end") "AND info.createdAt>:start AND info.createdAt<:end")
TbOrderPayCountVo queryTbOrderRefund(@Param("shopId")String shopId, @Param("start") Long start, @Param("end") Long end); TbOrderPayCountVo queryTbOrderRefund(@Param("shopId")String shopId, @Param("tableName") String tableName ,@Param("start") Long start, @Param("end") Long end);
@Query(value = "SELECT COUNT(1) ,pay_type AS payType FROM tb_order_info Where shop_id = :shopId AND " + @Query(value = "SELECT COUNT(1) ,pay_type AS payType FROM tb_order_info Where shop_id = :shopId AND " +
" created_at BETWEEN :startTime AND :endTime AND status='closed'AND order_type <>'return' GROUP BY pay_type" ,nativeQuery = true) " created_at BETWEEN :startTime AND :endTime AND status='closed'AND order_type <>'return' GROUP BY pay_type" ,nativeQuery = true)

View File

@ -454,7 +454,7 @@ public class SummaryServiceImpl implements SummaryService {
endTime = new Date(); endTime = new Date();
} }
TbOrderPayCountVo payCount = tbOrderInfoRepository.queryOrderPayCount(shopId, start, end); TbOrderPayCountVo payCount = tbOrderInfoRepository.queryOrderPayCount(shopId, start, end);
TbOrderPayCountVo refCount = tbOrderInfoRepository.queryTbOrderRefund(shopId, start, end); TbOrderPayCountVo refCount = tbOrderInfoRepository.queryTbOrderRefund(shopId, null,start, end);
payCount.setPayAmount(new BigDecimal(payCount.getPayAmount().toString()).subtract(new BigDecimal(refCount.getPayAmount().toString()))); payCount.setPayAmount(new BigDecimal(payCount.getPayAmount().toString()).subtract(new BigDecimal(refCount.getPayAmount().toString())));
payCount.setIcon("el-icon-coin"); payCount.setIcon("el-icon-coin");
list.add(payCount); list.add(payCount);

View File

@ -150,7 +150,10 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
end = createdAt.get(1); end = createdAt.get(1);
} }
} }
List<TbOrderPayCountVo> payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(criteria.getShopId(), start, end); if(ObjectUtil.isEmpty(criteria.getTableName())){
criteria.setTableName(null);
}
List<TbOrderPayCountVo> payCountVoList = tbOrderInfoRepository.queryTbOrderPayCount(criteria.getShopId(),criteria.getTableName(), start, end);
BigDecimal totalPayAmount = BigDecimal.ZERO; BigDecimal totalPayAmount = BigDecimal.ZERO;
for (TbOrderPayCountVo payCount : payCountVoList) { for (TbOrderPayCountVo payCount : payCountVoList) {
totalPayAmount = totalPayAmount.add(new BigDecimal(payCount.getPayAmount().toString())); totalPayAmount = totalPayAmount.add(new BigDecimal(payCount.getPayAmount().toString()));
@ -167,7 +170,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
result.add(payCount); result.add(payCount);
} }
} }
TbOrderPayCountVo payRufund = tbOrderInfoRepository.queryTbOrderRefund(criteria.getShopId(), start, end); TbOrderPayCountVo payRufund = tbOrderInfoRepository.queryTbOrderRefund(criteria.getShopId(),criteria.getTableName(), start, end);
if (payRufund != null) { if (payRufund != null) {
totalPayAmount = totalPayAmount.subtract(new BigDecimal(payRufund.getPayAmount().toString())); totalPayAmount = totalPayAmount.subtract(new BigDecimal(payRufund.getPayAmount().toString()));
payRufund.setPayType("退单"); payRufund.setPayType("退单");
@ -400,6 +403,28 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
.collect(Collectors.joining("/")); .collect(Collectors.joining("/"));
map.put("商品信息", productNames); map.put("商品信息", productNames);
// //
if(ObjectUtil.isNotEmpty(tbOrderInfo.getOrderType())&&ObjectUtil.isNotNull(tbOrderInfo.getOrderType())){
switch (tbOrderInfo.getPayType()){
case "scanCode":
tbOrderInfo.setPayType("收款码支付");
break;
case "deposit":
tbOrderInfo.setPayType("会员卡支付");
break;
case "cash":
tbOrderInfo.setPayType("现金支付");
break;
case "wx_lite":
tbOrderInfo.setPayType("微信支付");
break;
}
}else {
tbOrderInfo.setPayType("");
}
map.put("支付类型", tbOrderInfo.getPayType()); map.put("支付类型", tbOrderInfo.getPayType());
map.put("订单金额", tbOrderInfo.getOrderAmount()); map.put("订单金额", tbOrderInfo.getOrderAmount());
map.put("退单金额", tbOrderInfo.getRefundAmount()); map.put("退单金额", tbOrderInfo.getRefundAmount());
@ -442,6 +467,7 @@ public class TbOrderInfoServiceImpl implements TbOrderInfoService {
map.put("状态", tbOrderInfo.getStatus()); map.put("状态", tbOrderInfo.getStatus());
map.put("创建日期", DateUtil.timeStampFormatyMdHms(tbOrderInfo.getCreatedAt())); map.put("创建日期", DateUtil.timeStampFormatyMdHms(tbOrderInfo.getCreatedAt()));
map.put("备注", tbOrderInfo.getRemark()); map.put("备注", tbOrderInfo.getRemark());
map.put("台桌",tbOrderInfo.getTableName());
list.add(map); list.add(map);
} }
FileUtil.downloadExcel(list, response); FileUtil.downloadExcel(list, response);