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; + +}