diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/controller/PurchaseRecordController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/controller/PurchaseRecordController.java new file mode 100644 index 0000000..1c688b8 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/controller/PurchaseRecordController.java @@ -0,0 +1,67 @@ +package com.njzscloud.dispose.wh.controller; + +import com.njzscloud.common.core.utils.R; +import com.njzscloud.common.mp.support.PageParam; +import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.dispose.wh.pojo.entity.PurchaseRecordEntity; +import com.njzscloud.dispose.wh.pojo.result.PurchaseRecordResult; +import com.njzscloud.dispose.wh.service.PurchaseRecordService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 采购记录 + */ +@Slf4j +@RestController +@RequestMapping("/purchase_record") +@RequiredArgsConstructor +public class PurchaseRecordController { + private final PurchaseRecordService purchaseRecordService; + + /** + * 新增 + */ + @PostMapping("/add") + public R add(@RequestBody PurchaseRecordEntity purchaseRecordEntity) { + purchaseRecordService.add(purchaseRecordEntity); + return R.success(); + } + + /** + * 修改 + */ + @PostMapping("/modify") + public R modify(@RequestBody PurchaseRecordEntity purchaseRecordEntity) { + purchaseRecordService.modify(purchaseRecordEntity); + return R.success(); + } + + /** + * 删除 + */ + @PostMapping("/del") + public R del(@RequestBody List ids) { + purchaseRecordService.del(ids); + return R.success(); + } + + /** + * 详情 + */ + @GetMapping("/detail") + public R detail(@RequestParam("id") Long id) { + return R.success(purchaseRecordService.detail(id)); + } + + /** + * 分页查询 + */ + @GetMapping("/paging") + public R> paging(PageParam pageParam, PurchaseRecordEntity purchaseRecordEntity) { + return R.success(purchaseRecordService.paging(pageParam, purchaseRecordEntity)); + } +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/mapper/PurchaseRecordMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/mapper/PurchaseRecordMapper.java new file mode 100644 index 0000000..ce57fd6 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/mapper/PurchaseRecordMapper.java @@ -0,0 +1,27 @@ +package com.njzscloud.dispose.wh.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njzscloud.dispose.wh.pojo.entity.PurchaseRecordEntity; +import com.njzscloud.dispose.wh.pojo.result.PurchaseRecordResult; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 采购记录 + */ +@Mapper +public interface PurchaseRecordMapper extends BaseMapper { + + /** + * 详情查询 + */ + PurchaseRecordResult detail(@Param("id") Long id); + + /** + * 分页查询 + */ + IPage paging(Page page, @Param("ew") com.baomidou.mybatisplus.core.conditions.query.QueryWrapper queryWrapper); + +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/pojo/entity/PurchaseRecordEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/pojo/entity/PurchaseRecordEntity.java new file mode 100644 index 0000000..0584264 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/pojo/entity/PurchaseRecordEntity.java @@ -0,0 +1,113 @@ +package com.njzscloud.dispose.wh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 采购记录 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("wh_purchase_record") +public class PurchaseRecordEntity { + + /** + * Id + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 采购单号 + */ + private String sn; + + /** + * 经办人Id + */ + private Long handlerId; + + /** + * 供应商名称 + */ + private String supplierName; + + /** + * 商品名称 + */ + private String productName; + + /** + * 规格 + */ + private String spec; + + /** + * 数量 + */ + private Long quantity; + + /** + * 单位 + */ + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 总金额 + */ + private BigDecimal totalAmount; + + /** + * 采购日期 + */ + private LocalDateTime purchaseDate; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人 Id;sys_user.id + */ + @TableField(fill = FieldFill.INSERT) + private Long creatorId; + + /** + * 修改人 Id;sys_user.id + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private Long modifierId; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime modifyTime; + + /** + * 是否删除; 0-->未删除、1-->已删除 + */ + @TableLogic + private Boolean deleted; + +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/pojo/result/PurchaseRecordResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/pojo/result/PurchaseRecordResult.java new file mode 100644 index 0000000..bfd555e --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/pojo/result/PurchaseRecordResult.java @@ -0,0 +1,114 @@ +package com.njzscloud.dispose.wh.pojo.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + * 采购记录-结果类 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +public class PurchaseRecordResult { + + /** + * Id + */ + private Long id; + + /** + * 采购单号 + */ + private String sn; + + /** + * 经办人Id + */ + private Long handlerId; + + /** + * 经办人名称 + */ + private String handlerName; + + /** + * 供应商名称 + */ + private String supplierName; + + /** + * 商品名称 + */ + private String productName; + + /** + * 规格 + */ + private String spec; + + /** + * 数量 + */ + private Long quantity; + + /** + * 单位 + */ + private String unit; + + /** + * 单价 + */ + private BigDecimal unitPrice; + + /** + * 总金额 + */ + private BigDecimal totalAmount; + + /** + * 采购日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime purchaseDate; + + /** + * 备注 + */ + private String remark; + + /** + * 创建人 Id;sys_user.id + */ + private Long creatorId; + + /** + * 修改人 Id;sys_user.id + */ + private Long modifierId; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime modifyTime; + + /** + * 是否删除;0-->未删除、1-->已删除 + */ + private Boolean deleted; + +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/PurchaseRecordService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/PurchaseRecordService.java new file mode 100644 index 0000000..2c5aff0 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/PurchaseRecordService.java @@ -0,0 +1,88 @@ +package com.njzscloud.dispose.wh.service; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njzscloud.common.mp.support.PageParam; +import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.common.sn.support.SnUtil; +import com.njzscloud.dispose.wh.mapper.PurchaseRecordMapper; +import com.njzscloud.dispose.wh.pojo.entity.PurchaseRecordEntity; +import com.njzscloud.dispose.wh.pojo.result.PurchaseRecordResult; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 采购记录 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class PurchaseRecordService extends ServiceImpl implements IService { + + /** + * 新增 + */ + public void add(PurchaseRecordEntity purchaseRecordEntity) { + purchaseRecordEntity.setSn(this.generateSn()); + this.save(purchaseRecordEntity); + } + + /** + * 修改 + */ + public void modify(PurchaseRecordEntity purchaseRecordEntity) { + this.updateById(purchaseRecordEntity); + } + + /** + * 删除 + */ + @Transactional(rollbackFor = Exception.class) + public void del(List ids) { + this.removeBatchByIds(ids); + } + + /** + * 详情 + */ + public PurchaseRecordResult detail(Long id) { + return baseMapper.detail(id); + } + + /** + * 分页查询 + */ + public PageResult paging(PageParam pageParam, PurchaseRecordEntity purchaseRecordEntity) { + String sn = purchaseRecordEntity.getSn(); + String supplierName = purchaseRecordEntity.getSupplierName(); + String productName = purchaseRecordEntity.getProductName(); + Long handlerId = purchaseRecordEntity.getHandlerId(); + + QueryWrapper ew = Wrappers.query() + .eq("wpr.deleted", Boolean.FALSE) + .like(StrUtil.isNotBlank(sn), "wpr.sn", sn) + .like(StrUtil.isNotBlank(supplierName), "wpr.supplier_name", supplierName) + .like(StrUtil.isNotBlank(productName), "wpr.product_name", productName) + .eq(handlerId != null, "wpr.handler_id", handlerId); + + IPage page = baseMapper.paging(pageParam.toPage(), ew); + return PageResult.of(page); + } + + public String generateSn() { + String sn = SnUtil.next("PR-SN"); + if (this.exists(Wrappers.lambdaQuery().eq(PurchaseRecordEntity::getSn, sn) + .eq(PurchaseRecordEntity::getDeleted, Boolean.FALSE))) { + this.generateSn(); + } + return sn; + } +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/WarehouseService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/WarehouseService.java index f9e6d2f..9137ee3 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/WarehouseService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/wh/service/WarehouseService.java @@ -68,7 +68,7 @@ public class WarehouseService extends ServiceImpl ew = Wrappers.query() - .eq("ww.deleted", 0) + .eq("ww.deleted", Boolean.FALSE) .like(StrUtil.isNotBlank(warehouseName), "ww.warehouse_name", warehouseName) .eq(stationId != null, "ww.station_id", stationId) .eq(StrUtil.isNotBlank(type), "ww.type", type); diff --git a/njzscloud-svr/src/main/resources/mapper/wh/PurchaseRecordMapper.xml b/njzscloud-svr/src/main/resources/mapper/wh/PurchaseRecordMapper.xml new file mode 100644 index 0000000..262d37a --- /dev/null +++ b/njzscloud-svr/src/main/resources/mapper/wh/PurchaseRecordMapper.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT wpr.id AS id, + wpr.sn AS sn, + wpr.handler_id AS handler_id, + su.nickname AS handler_name, + wpr.supplier_name AS supplier_name, + wpr.product_name AS product_name, + wpr.spec AS spec, + wpr.quantity AS quantity, + wpr.unit AS unit, + wpr.unit_price AS unit_price, + wpr.total_amount AS total_amount, + wpr.purchase_date AS purchase_date, + wpr.remark AS remark, + wpr.creator_id AS creator_id, + wpr.modifier_id AS modifier_id, + wpr.create_time AS create_time, + wpr.modify_time AS modify_time, + wpr.deleted AS deleted + FROM wh_purchase_record wpr + LEFT JOIN sys_user su ON su.id = wpr.handler_id AND su.deleted = 0 + + + + + +