Browse Source

采购单新增生成单据编号修改

master
God 10 months ago
parent
commit
2ea2802e10
  1. 2
      src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillDto.java
  2. 13
      src/main/java/com/yxt/purchase/biz/purchasebill/PurchaseBillService.java
  3. 45
      src/main/java/com/yxt/purchase/utils/Rule.java
  4. 24
      src/main/java/com/yxt/purchase/utils/domain/BillNo.java

2
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;

13
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<PurchaseBillMapper,
List<PurchaseBillDetailDto> purchaseBillDetailList = dto.getPurchaseBillDetailList();
List<PurchaseAppendixUrl> 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);

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

24
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;
}
Loading…
Cancel
Save