From 7ea3ee3ec02100cae81208847273b9bc6a8b94d7 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 1 Jul 2024 18:11:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=20=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E9=87=91=E9=A2=9D=20=E8=B4=9F=E6=95=B0=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E4=BB=98=E6=AC=BE=E8=AE=B0=E5=BD=95=20=E8=B4=AD?= =?UTF-8?q?=E7=89=A9=E8=BD=A6=E5=9B=9E=E6=BB=9A=E5=BA=93=E5=AD=98=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20=E6=97=A5=E5=BA=93=E5=AD=98=E8=AE=B0=E5=BD=95=20?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TbShopPurveyorTransactController.java | 33 +++---- .../cashier/dto/order/TbCashierCartDto.java | 2 +- .../entity/TbShopPurveyorTransactPay.java | 89 +++++++++++++++++++ .../TbShopPurveyorTransactPayMapper.java | 15 ++++ .../TbShopPurveyorTransactPayService.java | 15 ++++ .../TbShopPurveyorTransactPayServiceImpl.java | 19 ++++ .../ysk/cashier/pojo/order/TbCashierCart.java | 2 +- .../cn/ysk/cashier/quartz/task/TestTask.java | 22 +++-- .../order/StockCountRepository.java | 6 +- .../TbShopPurveyorTransactServiceImpl.java | 18 +++- 10 files changed, 194 insertions(+), 27 deletions(-) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopPurveyorTransactPay.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPurveyorTransactPayMapper.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopPurveyorTransactPayService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopPurveyorTransactPayServiceImpl.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopPurveyorTransactController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopPurveyorTransactController.java index b4057457..ea3b4154 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopPurveyorTransactController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopPurveyorTransactController.java @@ -1,26 +1,15 @@ -/* -* Copyright 2019-2020 Zheng Jie -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ package cn.ysk.cashier.controller.shop; import cn.ysk.cashier.dto.shop.TbShopPurveyorTransactQueryCriteria; +import cn.ysk.cashier.mybatis.entity.TbShopPurveyorTransactPay; +import cn.ysk.cashier.mybatis.service.TbShopPurveyorTransactPayService; import cn.ysk.cashier.pojo.shop.TbShopPurveyorTransact; import cn.ysk.cashier.service.shop.TbShopPurveyorTransactService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; +import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; @@ -39,6 +28,8 @@ public class TbShopPurveyorTransactController { private final TbShopPurveyorTransactService tbShopPurveyorTransactService; + private final TbShopPurveyorTransactPayService transactPayService; + /** * 供应商列表 * @param criteria @@ -77,6 +68,18 @@ public class TbShopPurveyorTransactController { return new ResponseEntity<>(HttpStatus.OK); } + @GetMapping("/transactPayInfos") + @ApiOperation("付款记录") + public ResponseEntity transactPayInfos(@RequestParam Integer id,@RequestParam String type){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("transact_id", id); + if(StringUtils.isNotBlank(type)){ + queryWrapper.like("pay_type", type); + } + queryWrapper.orderByDesc("create_time"); + return new ResponseEntity<>(transactPayService.list(queryWrapper),HttpStatus.OK); + } + @PostMapping @ApiOperation("新增帐目往来") public ResponseEntity createTbShopPurveyorTransact(@Validated @RequestBody TbShopPurveyorTransact resources){ diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbCashierCartDto.java b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbCashierCartDto.java index 79f159d3..56490399 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbCashierCartDto.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/dto/order/TbCashierCartDto.java @@ -93,7 +93,7 @@ public class TbCashierCartDto implements Serializable { private Integer userId; /** 台桌id */ - private Integer tableId; + private Long tableId; /** 打包费 */ private BigDecimal packFee; diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopPurveyorTransactPay.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopPurveyorTransactPay.java new file mode 100644 index 00000000..5c3e5bc1 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopPurveyorTransactPay.java @@ -0,0 +1,89 @@ +package cn.ysk.cashier.mybatis.entity; + +import java.math.BigDecimal; +import java.util.Date; + +import com.baomidou.mybatisplus.extension.activerecord.Model; + +/** + * (TbShopPurveyorTransactPay)表实体类 + * + * @author ww + * @since 2024-07-01 11:23:28 + */ +@SuppressWarnings("serial") +public class TbShopPurveyorTransactPay extends Model { + //自增id + private Integer id; + //进出帐id + private Integer transactId; + //付款方式 + private String payType; + //付款金额 + private BigDecimal paidAmount; + //备注 + private String remark; + //创建时间 + private Date createTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getTransactId() { + return transactId; + } + + public void setTransactId(Integer transactId) { + this.transactId = transactId; + } + + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType; + } + + public BigDecimal getPaidAmount() { + return paidAmount; + } + + public void setPaidAmount(BigDecimal paidAmount) { + this.paidAmount = paidAmount; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public TbShopPurveyorTransactPay() { + } + + public TbShopPurveyorTransactPay(Integer transactId, String payType, BigDecimal paidAmount, String remark, Date createTime) { + this.transactId = transactId; + this.payType = payType; + this.paidAmount = paidAmount; + this.remark = remark; + this.createTime = createTime; + } +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPurveyorTransactPayMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPurveyorTransactPayMapper.java new file mode 100644 index 00000000..4e2d2102 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopPurveyorTransactPayMapper.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.mybatis.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import cn.ysk.cashier.mybatis.entity.TbShopPurveyorTransactPay; + +/** + * (TbShopPurveyorTransactPay)表数据库访问层 + * + * @author ww + * @since 2024-07-01 11:23:28 + */ +public interface TbShopPurveyorTransactPayMapper extends BaseMapper { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopPurveyorTransactPayService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopPurveyorTransactPayService.java new file mode 100644 index 00000000..d52c4f50 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopPurveyorTransactPayService.java @@ -0,0 +1,15 @@ +package cn.ysk.cashier.mybatis.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import cn.ysk.cashier.mybatis.entity.TbShopPurveyorTransactPay; + +/** + * (TbShopPurveyorTransactPay)表服务接口 + * + * @author ww + * @since 2024-07-01 11:23:28 + */ +public interface TbShopPurveyorTransactPayService extends IService { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopPurveyorTransactPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopPurveyorTransactPayServiceImpl.java new file mode 100644 index 00000000..7243bb30 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopPurveyorTransactPayServiceImpl.java @@ -0,0 +1,19 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.ysk.cashier.mybatis.mapper.TbShopPurveyorTransactPayMapper; +import cn.ysk.cashier.mybatis.entity.TbShopPurveyorTransactPay; +import cn.ysk.cashier.mybatis.service.TbShopPurveyorTransactPayService; +import org.springframework.stereotype.Service; + +/** + * (TbShopPurveyorTransactPay)表服务实现类 + * + * @author ww + * @since 2024-07-01 11:23:28 + */ +@Service("tbShopPurveyorTransactPayService") +public class TbShopPurveyorTransactPayServiceImpl extends ServiceImpl implements TbShopPurveyorTransactPayService { + +} + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java index f767252b..9dac0ef8 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/pojo/order/TbCashierCart.java @@ -128,7 +128,7 @@ public class TbCashierCart implements Serializable { @Column(name = "`table_id`") @ApiModelProperty(value = "台桌id") - private Integer tableId; + private Long tableId; @Column(name = "`pack_fee`") @ApiModelProperty(value = "打包费") diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java b/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java index b0028139..e3d8f0f2 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/quartz/task/TestTask.java @@ -96,10 +96,20 @@ public class TestTask { } @Transactional(rollbackFor = Exception.class) - public void countStock(){ - log.info("记录当日库存损耗开始"); - List stockCountDTOS = stockCountRepository.countStock(DateUtil.getStrTime(DateUtil.getBeginDayOfYesterday()), DateUtil.getStrTime(DateUtil.getEndDayOfYesterday())); - System.out.println(stockCountDTOS); + public void countStock(String str) { + String startTime = ""; + String endTime = ""; + if (!"today".equals(str)) { + startTime = str + " 00:00:00"; + endTime = str + " 23:59:59"; + } else { + startTime = DateUtil.getStrTime(DateUtil.getBeginDayOfYesterday()); + endTime = DateUtil.getStrTime(DateUtil.getEndDayOfYesterday()); + str = DateUtil.getYMDTime(DateUtil.getBeginDayOfYesterday()); + } + log.info("记录" + str + " 库存损耗开始"); + List stockCountDTOS = stockCountRepository.countStock(startTime, endTime); + String finalStr = str; stockCountDTOS.forEach(s->{ TbProductStockDetail productStockDetail = new TbProductStockDetail(); productStockDetail.setCreatedAt(System.currentTimeMillis()); @@ -115,9 +125,9 @@ public class TestTask { productStockDetail.setStockNumber(-Double.valueOf(s.getStockCount())); productStockDetail.setSourcePath("NORMAL"); productStockDetail.setType("other-out"); - productStockDetail.setRemark(DateUtil.getYMDTime(DateUtil.getBeginDayOfYesterday())+"日统计库存"); + productStockDetail.setType(finalStr +"日售出记录"); + productStockDetail.setRemark(finalStr +"日统计库存"); productStockDetail.setSubType(-1); - productStockDetail.setType(DateUtil.getYMDTime(DateUtil.getBeginDayOfYesterday())+"日售出记录"); entityManager.persist(productStockDetail); }); log.info("记录当日库存损耗结束"); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/StockCountRepository.java b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/StockCountRepository.java index e400adfb..34a2d5f2 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/StockCountRepository.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/repository/order/StockCountRepository.java @@ -14,15 +14,15 @@ import java.util.List; **/ public interface StockCountRepository extends JpaRepository { - @Query(value = "SELECT pro.shop_id as shop_id, pro.id as pro_id, info.product_name as pro_name,pro.stock_number, pro.is_stock," + + @Query(value = "SELECT pro.shop_id as shop_id, pro.id as pro_id, info.product_name as pro_name, pro.is_stock," + " info.product_sku_name as sku_name, unit.NAME as unit_name ," + "SUM( CASE WHEN orders.order_type != 'return' THEN info.num ELSE 0 END )- SUM( CASE WHEN orders.order_type = 'return' THEN info.num ELSE 0 END ) as stock_count," + - "CASE WHEN pro.is_distribute = '1' THEN sum(sku.stock_number) ELSE pro.stock_number END as stock_number " + + "CASE WHEN pro.is_distribute = '1' THEN sku.stock_number ELSE pro.stock_number END AS stock_number " + "FROM " + "tb_order_info orders " + "LEFT JOIN tb_order_detail info ON orders.id = info.order_id " + "LEFT JOIN tb_product pro ON info.product_id = pro.id " + - "LEFT JOIN tb_product_sku sku ON info.product_id = sku.product_id " + + "LEFT JOIN (SELECT product_id,sum(stock_number) as stock_number from tb_product_sku GROUP BY product_id) sku ON info.product_id = sku.product_id " + "LEFT JOIN tb_shop_unit unit ON unit.id = pro.unit_id " + "WHERE " + "info.create_time > :startTime " + diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopPurveyorTransactServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopPurveyorTransactServiceImpl.java index a035d2cf..a211c443 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopPurveyorTransactServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopPurveyorTransactServiceImpl.java @@ -2,7 +2,10 @@ package cn.ysk.cashier.service.impl.shopimpl; import cn.ysk.cashier.dto.shop.TbShopPurveyorTransactDto; import cn.ysk.cashier.dto.shop.TbShopPurveyorTransactQueryCriteria; +import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mapper.shop.TbShopPurveyorTransactMapper; +import cn.ysk.cashier.mybatis.entity.TbShopPurveyorTransactPay; +import cn.ysk.cashier.mybatis.service.TbShopPurveyorTransactPayService; import cn.ysk.cashier.pojo.shop.TbShopPurveyorTransact; import cn.ysk.cashier.repository.shop.TbShopPurveyorRepository; import cn.ysk.cashier.repository.shop.TbShopPurveyorTransactRepository; @@ -21,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.util.*; /** @@ -36,6 +40,7 @@ public class TbShopPurveyorTransactServiceImpl implements TbShopPurveyorTransact private final TbShopPurveyorTransactRepository tbShopPurveyorTransactRepository; private final TbShopPurveyorTransactMapper tbShopPurveyorTransactMapper; private final TbShopPurveyorRepository tbShopPurveyorRepository; + private final TbShopPurveyorTransactPayService transactPayService; @Override public Map queryPurveyorTransact(TbShopPurveyorTransactQueryCriteria criteria) { @@ -103,7 +108,17 @@ public class TbShopPurveyorTransactServiceImpl implements TbShopPurveyorTransact TbShopPurveyorTransact tbShopPurveyorTransact = tbShopPurveyorTransactRepository.findById(resources.getId()).orElseGet(TbShopPurveyorTransact::new); ValidationUtil.isNull(tbShopPurveyorTransact.getId(), "TbShopPurveyorTransact", "id", resources.getId()); tbShopPurveyorTransact.setPaidAmount(tbShopPurveyorTransact.getPaidAmount().add(resources.getPaidAmount())); - tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().subtract(resources.getPaidAmount())); + if (resources.getPaidAmount().compareTo(BigDecimal.ZERO) == 0) { + throw new BadRequestException("付款金额不能为 0"); + } else { + if (tbShopPurveyorTransact.getWaitAmount().compareTo(BigDecimal.ZERO) > 0 && resources.getPaidAmount().compareTo(BigDecimal.ZERO) > 0) {//待付款金额大于0 + tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().subtract(resources.getPaidAmount())); + } else if (tbShopPurveyorTransact.getWaitAmount().compareTo(BigDecimal.ZERO) < 0 && resources.getPaidAmount().compareTo(BigDecimal.ZERO) < 0) { + tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().subtract(resources.getPaidAmount())); + } else { + tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().add(resources.getPaidAmount())); + } + } tbShopPurveyorTransact.setPaidAt(System.currentTimeMillis()); if (tbShopPurveyorTransact.getWaitAmount().compareTo(tbShopPurveyorTransact.getPaidAmount()) <= 0) { tbShopPurveyorTransact.setStatus(1); @@ -112,6 +127,7 @@ public class TbShopPurveyorTransactServiceImpl implements TbShopPurveyorTransact } tbShopPurveyorTransact.setPayType(resources.getPayType()); tbShopPurveyorTransactRepository.save(tbShopPurveyorTransact); + transactPayService.save(new TbShopPurveyorTransactPay(resources.getId(),resources.getPayType(),resources.getPaidAmount(),resources.getRemark(),new Date())); }