From 2ea2802e10e7cbb2f3faf4dc406c474dcb8131c1 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Wed, 31 Jul 2024 17:08:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=8D=95=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8D=95=E6=8D=AE=E7=BC=96=E5=8F=B7=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/purchasebill/PurchaseBillDto.java | 2 + .../biz/purchasebill/PurchaseBillService.java | 13 ++++++ .../java/com/yxt/purchase/utils/Rule.java | 45 +++++++++++++++++++ .../com/yxt/purchase/utils/domain/BillNo.java | 24 ++++++++++ 4 files changed, 84 insertions(+) create mode 100644 src/main/java/com/yxt/purchase/utils/Rule.java create mode 100644 src/main/java/com/yxt/purchase/utils/domain/BillNo.java diff --git a/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillDto.java b/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillDto.java index a5c10ec..376e92a 100644 --- a/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillDto.java +++ b/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillDto.java @@ -96,6 +96,8 @@ public class PurchaseBillDto implements Dto { private String deptSid; @ApiModelProperty("创建部门") private String deptName; + @ApiModelProperty("组织编码") + private String orgCode; @ApiModelProperty("采购单费用/预付款") private PurchaseBillAmountDto purchaseBillAmount; diff --git a/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillService.java b/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillService.java index d79f721..b6e7be3 100644 --- a/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillService.java +++ b/src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillService.java @@ -26,6 +26,7 @@ package com.yxt.purchase.biz.purchasebill; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.common.base.config.component.FileUploadComponent; @@ -49,6 +50,7 @@ import com.yxt.purchase.biz.purchasebillextend.PurchaseBillExtendDto; import com.yxt.purchase.biz.purchasebillextend.PurchaseBillExtendService; import com.yxt.purchase.biz.purchaseflownode.PurchaseFlowNodeDto; import com.yxt.purchase.biz.purchaseflownode.PurchaseFlowNodeService; +import com.yxt.purchase.utils.Rule; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -168,6 +170,17 @@ public class PurchaseBillService extends MybatisBaseService purchaseBillDetailList = dto.getPurchaseBillDetailList(); List purchaseAppendixList = dto.getPurchaseAppendixList(); if (StringUtils.isBlank(dtoSid)) { + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "CGD" + dto.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + dto.setBillNo(billNo); String sid = this.insertByDto(dto); //保存采购单费用/预付款 purchaseBillAmount.setBillSid(sid); diff --git a/src/main/java/com/yxt/purchase/utils/Rule.java b/src/main/java/com/yxt/purchase/utils/Rule.java new file mode 100644 index 0000000..1ea8d69 --- /dev/null +++ b/src/main/java/com/yxt/purchase/utils/Rule.java @@ -0,0 +1,45 @@ +package com.yxt.purchase.utils; + +import cn.hutool.core.date.DateUtil; +import com.yxt.purchase.utils.domain.BillNo; +import org.springframework.util.StringUtils; + +/** + * @Author dimengzhe + * @Date 2022/7/1 9:44 + * @Description 规则 + */ +public class Rule { + + /** + * 单据编号规则:单据名称大写首字母+分公司编码+年份+月份+4位顺序号 + * 单据名称大写首字母+分公司编码+年份+月份 + * 注意:品牌编码暂不用 + * + * @return + */ + public static String getBill(BillNo b) { + String billType = b.getBillType(); + String orgCode = b.getOrgCode(); + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + String bill = billType; + if (!StringUtils.isEmpty(orgCode)) { + bill = bill + orgCode; + } + bill = bill + date; + return bill; + } + + /** + * 生成单据编号规则 + * + * @param bill 单据名称大写首字母+分公司编码+年份+月份 + * @param i 根据单据编号包含单据名称大写首字母+分公司编码+年份+月份查询出来的单据的个数 + * @return + */ + public static String getBillNo(String bill, int i) { + String num = String.format("%04d", i + 1); // 不足4位补0 + String billNo = bill + num; + return billNo; + } +} diff --git a/src/main/java/com/yxt/purchase/utils/domain/BillNo.java b/src/main/java/com/yxt/purchase/utils/domain/BillNo.java new file mode 100644 index 0000000..d0e7d9f --- /dev/null +++ b/src/main/java/com/yxt/purchase/utils/domain/BillNo.java @@ -0,0 +1,24 @@ +package com.yxt.purchase.utils.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author dimengzhe + * @Date 2022/7/1 9:46 + * @Description + */ +@Data +public class BillNo implements Serializable { + private static final long serialVersionUID = 1598887042562656350L; + +// @ApiModelProperty(value = "品牌编码") +// private String brandCode; + @ApiModelProperty(value = "单据名称首字母") + private String billType; + @ApiModelProperty(value = "分公司编码") + private String orgCode; + +}