Browse Source

销售单

master
fanzongzhe 10 months ago
parent
commit
eea903adbd
  1. 45
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillAitemRest.java
  2. 3
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java
  3. 8
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
  4. 5
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDetailsVo.java
  5. 16
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDto.java
  6. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.java
  7. 91
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml
  8. 37
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillQuery.java
  9. 201
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
  10. 31
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillVo.java
  11. 29
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitem.java
  12. 49
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitemMapper.java
  13. 6
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitemMapper.xml
  14. 49
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitemService.java
  15. 10
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbilldetail/SmsSalesBillDetail.java
  16. 8
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnService.java
  17. 21
      yxt-sms-biz/src/main/java/com/yxt/sms/utils/SmsBillNo.java
  18. 44
      yxt-sms-biz/src/main/java/com/yxt/sms/utils/SmsRule.java

45
yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillAitemRest.java

@ -0,0 +1,45 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.sms.apiadmin;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "销售单-附加项目")
@RestController
@RequestMapping("v1/SmsSalesBillAitem")
public class SmsSalesBillAitemRest {
}

3
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java

@ -43,6 +43,7 @@ public class SalesGoodsVo {
private String currentCount; private String currentCount;
@ApiModelProperty("厂家") @ApiModelProperty("厂家")
private String supplierName; private String supplierName;
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
} }

8
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java

@ -94,4 +94,12 @@ public class SmsSalesBill extends BaseEntity {
private String createOrgSid; // 创建组织sid private String createOrgSid; // 创建组织sid
@ApiModelProperty("应收金额") @ApiModelProperty("应收金额")
private BigDecimal receivableAmount; private BigDecimal receivableAmount;
@ApiModelProperty("制单部门sid")
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String deptName; // 制单部门
@ApiModelProperty("车牌号")
private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
} }

5
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDetailsVo.java

@ -54,8 +54,13 @@ import java.util.List;
public class SmsSalesBillDetailsVo implements Vo { public class SmsSalesBillDetailsVo implements Vo {
private String sid; // sid private String sid; // sid
private String createTime;
@ApiModelProperty("制单人姓名") @ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名 private String createByName; // 制单人姓名
@ApiModelProperty("制单部门sid")
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String deptName; // 制单部门
@ApiModelProperty("创建者") @ApiModelProperty("创建者")
private String createBySid; private String createBySid;
@ApiModelProperty("客户sid") @ApiModelProperty("客户sid")

16
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillDto.java

@ -54,6 +54,10 @@ import java.util.List;
public class SmsSalesBillDto implements Dto { public class SmsSalesBillDto implements Dto {
private String sid; // sid private String sid; // sid
@ApiModelProperty("制单部门sid")
private String deptSid; // 制单部门sid
@ApiModelProperty("制单部门")
private String deptName; // 制单部门
@ApiModelProperty("制单人姓名") @ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名 private String createByName; // 制单人姓名
@ApiModelProperty("创建者") @ApiModelProperty("创建者")
@ -96,4 +100,16 @@ public class SmsSalesBillDto implements Dto {
@ApiModelProperty("创建组织sid") @ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid private String createOrgSid; // 创建组织sid
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("备注")
private String remarks; // 车架号
@ApiModelProperty("客户单位")
private String customerOrg; // 客户单位
@ApiModelProperty("应收金额")
private String receivableAmount;
private List<SmsAttachitemVo> aitemVos = new ArrayList<>();// 附加项目
} }

2
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.java

@ -73,4 +73,6 @@ public interface SmsSalesBillMapper extends BaseMapper<SmsSalesBill> {
IPage<SmsSalesGoodsTotalsVo> goodsTotalsReport(IPage<SmsSalesBill> page,@Param(Constants.WRAPPER) QueryWrapper<SmsSalesBill> qw); IPage<SmsSalesGoodsTotalsVo> goodsTotalsReport(IPage<SmsSalesBill> page,@Param(Constants.WRAPPER) QueryWrapper<SmsSalesBill> qw);
IPage<SmsSalesTrendVo> goodsTrendReport(IPage<SmsSalesBill> page,@Param(Constants.WRAPPER) QueryWrapper<SmsSalesBill> qw); IPage<SmsSalesTrendVo> goodsTrendReport(IPage<SmsSalesBill> page,@Param(Constants.WRAPPER) QueryWrapper<SmsSalesBill> qw);
int selectNum(String bill);
} }

91
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml

@ -5,19 +5,19 @@
<!-- ${ew.customSqlSegment} --> <!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.sms.biz.smssalesbill.SmsSalesBillVo"> <select id="selectPageVo" resultType="com.yxt.sms.biz.smssalesbill.SmsSalesBillVo">
SELECT SELECT
sid, a.sid,
createTime, a.billNo,
-- date_format(createTime, '%Y-%m-%d') as createTime, b.`name` as useOrgName,
createByName, a.deptName,
billNo, a.createByName,
salesName, date_format(a.createTime, '%Y-%m-%d') as createTime,
shotRemarks, a.salesName,
printRemarks, a.customerName,
customerName, a.vehMark,
mobile, a.vinNo
vehMark, FROM sms_sales_bill as a
`state` left join anrui_portal.sys_organization as s on a.deptSid = s.sid
FROM sms_sales_bill left join anrui_portal.sys_organization as b on a.createOrgSid = b.sid
<where>${ew.sqlSegment}</where> <where>${ew.sqlSegment}</where>
</select> </select>
@ -53,45 +53,48 @@
<select id="goodsDetailsReport" <select id="goodsDetailsReport"
resultType="com.yxt.sms.biz.smssalesbill.report.SmsSalesBillGoodsDetailsReportVo"> resultType="com.yxt.sms.biz.smssalesbill.report.SmsSalesBillGoodsDetailsReportVo">
SELECT SELECT
d.* d.*
FROM FROM
sms_sales_bill_detail AS d sms_sales_bill_detail AS d
LEFT JOIN sms_sales_bill AS s ON d.billSid = s.sid LEFT JOIN sms_sales_bill AS s ON d.billSid = s.sid
<where>${ew.sqlSegment}</where> <where>${ew.sqlSegment}</where>
</select> </select>
<select id="goodsTotalsReport" resultType="com.yxt.sms.biz.smssalesbill.report.SmsSalesGoodsTotalsVo"> <select id="goodsTotalsReport" resultType="com.yxt.sms.biz.smssalesbill.report.SmsSalesGoodsTotalsVo">
SELECT SELECT
d.inventorySid, d.inventorySid,
d.goodsSpuName, d.goodsSpuName,
d.goodsSkuTitle, d.goodsSkuTitle,
d.goodsSkuCode, d.goodsSkuCode,
d.unit, d.unit,
d.warehouse, d.warehouse,
d.`subject`, d.`subject`,
d.count, d.count,
d.amount, d.amount,
rd.backCount, rd.backCount,
rd.backAmount rd.backAmount
FROM FROM
sms_sales_bill_detail AS d sms_sales_bill_detail AS d
LEFT JOIN sms_sales_bill AS s ON d.billSid = s.sid LEFT JOIN sms_sales_bill AS s ON d.billSid = s.sid
LEFT JOIN sms_sales_return AS r ON s.sid = r.sourceBillSid LEFT JOIN sms_sales_return AS r ON s.sid = r.sourceBillSid
AND r.state = '0' AND r.state = '0'
LEFT JOIN sms_sales_return_detail AS rd ON r.sid = rd.billSid LEFT JOIN sms_sales_return_detail AS rd ON r.sid = rd.billSid
AND d.goodSpuSid = rd.goodSpuSid AND d.goodSpuSid = rd.goodSpuSid
AND d.inventorySid = rd.inventorySid AND d.inventorySid = rd.inventorySid
<where>${ew.sqlSegment}</where> <where>${ew.sqlSegment}</where>
</select> </select>
<select id="goodsTrendReport" resultType="com.yxt.sms.biz.smssalesbill.report.SmsSalesTrendVo"> <select id="goodsTrendReport" resultType="com.yxt.sms.biz.smssalesbill.report.SmsSalesTrendVo">
SELECT SELECT s.createTime,
s.createTime, s.customerName,
s.customerName, s.vehMark,
s.vehMark, d.price,
d.price, d.count,
d.count, d.amount
d.amount FROM sms_sales_bill_detail AS d
FROM LEFT JOIN sms_sales_bill AS s ON d.billSid = s.sid
sms_sales_bill_detail AS d </select>
LEFT JOIN sms_sales_bill AS s ON d.billSid = s.sid <select id="selectNum" resultType="java.lang.Integer">
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED), 0) as code
from sms_sales_bill
where billNo LIKE concat(#{bill}, '%')
</select> </select>
</mapper> </mapper>

37
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillQuery.java

@ -51,20 +51,29 @@ import java.math.BigDecimal;
@ApiModel(value = "销售单 查询条件", description = "销售单 查询条件") @ApiModel(value = "销售单 查询条件", description = "销售单 查询条件")
public class SmsSalesBillQuery implements Query { public class SmsSalesBillQuery implements Query {
// @ApiModelProperty("制单人姓名") @ApiModelProperty("分公司")
// private String createByName; // 制单人姓名 private String useOrgName;//分公司
// @ApiModelProperty("单据编号") @ApiModelProperty("制单部门")
// private String billNo; // 单据编号 private String deptName;//制单部门
// @ApiModelProperty("销售姓名") @ApiModelProperty("制单人姓名")
// private String salesName; // 销售姓名 private String createByName; // 制单人姓名
// @ApiModelProperty("客户名称") @ApiModelProperty("单据编号")
// private String customerName; // 客户名称 private String billNo; // 单据编号
// @ApiModelProperty("联系电话") private String startDate; //开始日期
// private String mobile; // 联系电话 private String endDate; //结束日期
@ApiModelProperty("客户名称")
private String queryName; private String customerName; // 客户名称
private String startDate; @ApiModelProperty("车牌号")
private String endDate; private String vehMark; // 车牌号
@ApiModelProperty("车架号")
private String vinNo; // 车架号
@ApiModelProperty("服务顾问")
private String salesName; // 服务顾问
@ApiModelProperty("使用组织sid")
private String orgPath;
private String userSid;
@ApiModelProperty("菜单url")
private String menuUrl;
} }

201
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java

@ -26,19 +26,29 @@
package com.yxt.sms.biz.smssalesbill; package com.yxt.sms.biz.smssalesbill;
import cn.hutool.core.bean.BeanUtil; 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.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.sms.biz.smsgoods.SmsGoods;
import com.yxt.sms.biz.smsgoods.SmsGoodsService;
import com.yxt.sms.biz.smssalesbill.report.*; import com.yxt.sms.biz.smssalesbill.report.*;
import com.yxt.sms.biz.smssalesbillaitem.SmsSalesBillAitem;
import com.yxt.sms.biz.smssalesbillaitem.SmsSalesBillAitemService;
import com.yxt.sms.biz.smssalesbilldetail.SmsSalesBillDetail; import com.yxt.sms.biz.smssalesbilldetail.SmsSalesBillDetail;
import com.yxt.sms.biz.smssalesbilldetail.SmsSalesBillDetailService; import com.yxt.sms.biz.smssalesbilldetail.SmsSalesBillDetailService;
import com.yxt.sms.biz.smssalesbillinvoice.SmsSalesBillInvoice; import com.yxt.sms.biz.smssalesbillinvoice.SmsSalesBillInvoice;
import com.yxt.sms.biz.smssalesbillinvoice.SmsSalesBillInvoiceService; import com.yxt.sms.biz.smssalesbillinvoice.SmsSalesBillInvoiceService;
import com.yxt.sms.biz.smssalesbillsettle.SmsSalesBillSettle;
import com.yxt.sms.biz.smssalesbillsettle.SmsSalesBillSettleService; import com.yxt.sms.biz.smssalesbillsettle.SmsSalesBillSettleService;
import com.yxt.sms.feign.fms.fmsreceivesettle.FmsReceivesettle; import com.yxt.sms.feign.fms.fmsreceivesettle.FmsReceivesettle;
import com.yxt.sms.feign.fms.fmsreceivesettle.FmsReceivesettleDto; import com.yxt.sms.feign.fms.fmsreceivesettle.FmsReceivesettleDto;
import com.yxt.sms.feign.fms.fmsreceivesettle.FmsReceivesettleFeign; import com.yxt.sms.feign.fms.fmsreceivesettle.FmsReceivesettleFeign;
import com.yxt.sms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.sms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.sms.feign.privilege.PrivilegeQuery;
import com.yxt.sms.feign.sysuser.SysUserFeign;
import com.yxt.sms.feign.wms.wmsinventory.*; import com.yxt.sms.feign.wms.wmsinventory.*;
import com.yxt.sms.utils.SmsBillNo;
import com.yxt.sms.utils.SmsRule;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.base.utils.PagerUtil;
@ -82,45 +92,132 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
private SmsSalesBillSettleService smsSalesBillSettleService; private SmsSalesBillSettleService smsSalesBillSettleService;
@Resource @Resource
private FmsReceivesettleFeign fmsReceivesettleFeign; private FmsReceivesettleFeign fmsReceivesettleFeign;
@Autowired
private SmsSalesBillAitemService smsSalesBillAitemService;
@Autowired
private SmsGoodsService smsGoodsService;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
private QueryWrapper<SmsSalesBill> createQueryWrapper(SmsSalesBillQuery query) { private QueryWrapper<SmsSalesBill> createQueryWrapper(SmsSalesBillQuery query) {
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>(); QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getQueryName())) {
qw.and(wrapper -> wrapper.like("createByName", query.getQueryName())
.or().like("billNo", query.getQueryName())
.or().like("salesName", query.getQueryName())
.or().like("customerName", query.getQueryName())
.or().like("mobile", query.getQueryName())
.or().like("vehMark", query.getQueryName())
);
}
String startDate = query.getStartDate(); String startDate = query.getStartDate();
String endDate = query.getEndDate(); String endDate = query.getEndDate();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). qw.apply(StringUtils.isNotEmpty(startDate), "date_format (createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" apply(StringUtils.isNotEmpty(endDate), "date_format (createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
); );
qw.eq("1", "1");
qw.orderByDesc("createTime"); qw.orderByDesc("createTime");
return qw; return qw;
} }
public PagerVo<SmsSalesBillVo> listPageVo(PagerQuery<SmsSalesBillQuery> pq) { public PagerVo<SmsSalesBillVo> listPageVo(PagerQuery<SmsSalesBillQuery> pq) {
SmsSalesBillQuery query = pq.getParams(); SmsSalesBillQuery query = pq.getParams();
QueryWrapper<SmsSalesBill> qw = createQueryWrapper(query); QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("s.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("s.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("s.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("s.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("a.createBySid", query.getUserSid());
} else {
PagerVo<SmsSalesBillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<SmsSalesBillVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("b.`name`", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("a.deptName", query.getDeptName());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("a.createByName", query.getCreateByName());
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("a.billNo", query.getBillNo());
}
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("a.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("a.vehMark", query.getVehMark());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("a.vinNo", query.getVinNo());
}
String createStartTime = query.getStartDate();
String createEndTime = query.getEndDate();
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (a.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (a.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getSalesName())) {
qw.like("a.salesName", query.getSalesName());
}
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq); IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<SmsSalesBillVo> pagging = baseMapper.selectPageVo(page, qw); IPage<SmsSalesBillVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SmsSalesBillVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<SmsSalesBillVo> p = PagerUtil.pageToVo(pagging, null);
return p; return p;
} }
/**
* 生成单据编号
*
* @param orgSid
* @return
*/
public String getApplyCode(String orgSid) {
//获取分公司sid
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(orgSid);
String orgCode = resultBean1.getData().getOrgCode();
SmsBillNo b = new SmsBillNo();
b.setOrgCode(orgCode);
b.setBillType("XSD");
String bill = SmsRule.getBill(b);
int i = baseMapper.selectNum(bill);
String billNo = SmsRule.getBillNo(bill, i);
return billNo;
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String saveOrUpdateDto(SmsSalesBillDto dto) { public String saveOrUpdateDto(SmsSalesBillDto dto) {
String dtoSid = dto.getSid(); String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) { if (StringUtils.isBlank(dtoSid)) {
SmsSalesBill entity = new SmsSalesBill(); SmsSalesBill entity = new SmsSalesBill();
BeanUtil.copyProperties(dto, entity, "id", "sid"); BeanUtil.copyProperties(dto, entity, "id", "sid");
String applyCode = getApplyCode(dto.getCreateOrgSid());
entity.setBillNo(applyCode);
baseMapper.insert(entity); baseMapper.insert(entity);
SalesInvoiceVo invoiceVo = dto.getInvoiceVo(); SalesInvoiceVo invoiceVo = dto.getInvoiceVo();
if (null != invoiceVo) { if (null != invoiceVo) {
@ -138,6 +235,15 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
smsSalesBillDetailService.insert(salesBillDetail); smsSalesBillDetailService.insert(salesBillDetail);
} }
} }
List<SmsAttachitemVo> smsAttachitemVos = dto.getAitemVos();
if (!smsAttachitemVos.isEmpty()) {
for (SmsAttachitemVo smsAttachitemVo : smsAttachitemVos) {
SmsSalesBillAitem aitem = new SmsSalesBillAitem();
BeanUtil.copyProperties(smsAttachitemVo, aitem, "id", "sid");
aitem.setBillSid(entity.getSid());
smsSalesBillAitemService.insert(aitem);
}
}
return entity.getSid(); return entity.getSid();
} }
SmsSalesBill smsSalesBill = fetchBySid(dtoSid); SmsSalesBill smsSalesBill = fetchBySid(dtoSid);
@ -146,6 +252,7 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
baseMapper.updateById(smsSalesBill); baseMapper.updateById(smsSalesBill);
smsSalesBillDetailService.delByMainSid(dtoSid); smsSalesBillDetailService.delByMainSid(dtoSid);
smsSalesBillInvoiceService.delByMainSid(dtoSid); smsSalesBillInvoiceService.delByMainSid(dtoSid);
smsSalesBillAitemService.delByBillSid(dtoSid);
SalesInvoiceVo invoiceVo = dto.getInvoiceVo(); SalesInvoiceVo invoiceVo = dto.getInvoiceVo();
if (null != invoiceVo) { if (null != invoiceVo) {
SmsSalesBillInvoice invoice = new SmsSalesBillInvoice(); SmsSalesBillInvoice invoice = new SmsSalesBillInvoice();
@ -162,6 +269,15 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
smsSalesBillDetailService.insert(salesBillDetail); smsSalesBillDetailService.insert(salesBillDetail);
} }
} }
List<SmsAttachitemVo> smsAttachitemVos = dto.getAitemVos();
if (!smsAttachitemVos.isEmpty()) {
for (SmsAttachitemVo smsAttachitemVo : smsAttachitemVos) {
SmsSalesBillAitem aitem = new SmsSalesBillAitem();
BeanUtil.copyProperties(smsAttachitemVo, aitem, "id", "sid");
aitem.setBillSid(dtoSid);
smsSalesBillAitemService.insert(aitem);
}
}
} }
return dtoSid; return dtoSid;
} }
@ -188,11 +304,18 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
List<SalesGoodsVo> goodsVos = new ArrayList<>(); //商品信息 List<SalesGoodsVo> goodsVos = new ArrayList<>(); //商品信息
if (null != entity) { if (null != entity) {
BeanUtil.copyProperties(entity, vo); BeanUtil.copyProperties(entity, vo);
vo.setCreateTime(DateUtil.formatDate(entity.getCreateTime()));
List<SmsSalesBillDetail> billDetailList = smsSalesBillDetailService.fetchByMainSid(sid); List<SmsSalesBillDetail> billDetailList = smsSalesBillDetailService.fetchByMainSid(sid);
if (!billDetailList.isEmpty()) { if (!billDetailList.isEmpty()) {
for (SmsSalesBillDetail smsSalesBillDetail : billDetailList) { for (SmsSalesBillDetail smsSalesBillDetail : billDetailList) {
SalesGoodsVo salesGoodsVo = new SalesGoodsVo(); SalesGoodsVo salesGoodsVo = new SalesGoodsVo();
BeanUtil.copyProperties(smsSalesBillDetail, salesGoodsVo); BeanUtil.copyProperties(smsSalesBillDetail, salesGoodsVo);
SmsGoods goods = smsGoodsService.fetchEntityByGoodsID(smsSalesBillDetail.getGoodsID());
if (null != goods) {
if (StringUtils.isNotBlank(goods.getSupplierName())) {
salesGoodsVo.setSupplierName(goods.getSupplierName());
}
}
goodsVos.add(salesGoodsVo); goodsVos.add(salesGoodsVo);
} }
vo.setGoodsVos(goodsVos); vo.setGoodsVos(goodsVos);
@ -203,6 +326,28 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
BeanUtil.copyProperties(smsSalesBillInvoice, invoiceVo); BeanUtil.copyProperties(smsSalesBillInvoice, invoiceVo);
vo.setInvoiceVo(invoiceVo); vo.setInvoiceVo(invoiceVo);
} }
List<SmsSalesBillAitem> aitems = smsSalesBillAitemService.fetchByBillSid(sid);
if (!aitems.isEmpty()) {
List<SmsAttachitemVo> aitemVos = new ArrayList<>();// 附加项目
for (SmsSalesBillAitem aitem : aitems) {
SmsAttachitemVo aitemVo = new SmsAttachitemVo();
if (StringUtils.isNotBlank(aitem.getAttachItemSid())) {
aitemVo.setAitemsid(aitem.getAttachItemSid());
}
if (StringUtils.isNotBlank(aitem.getAttachItem())) {
aitemVo.setAitemName(aitem.getAttachItem());
}
if (StringUtils.isNotBlank(aitem.getRemarks())) {
aitemVo.setRemarks(aitem.getRemarks());
}
if (null != aitem.getPrice()) {
aitemVo.setPrice(aitem.getPrice().toString());
}
aitemVos.add(aitemVo);
}
vo.setAitemVos(aitemVos);
}
SettlementVo settlementVo = new SettlementVo(); SettlementVo settlementVo = new SettlementVo();
FmsReceivesettle receivesettle = fmsReceivesettleFeign.fetchBySourceSid(sid).getData(); FmsReceivesettle receivesettle = fmsReceivesettleFeign.fetchBySourceSid(sid).getData();
if (null != receivesettle) { if (null != receivesettle) {
@ -253,7 +398,7 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
if (!billDetailList.isEmpty()) { if (!billDetailList.isEmpty()) {
for (SmsSalesBillDetail salesBillDetail : billDetailList) { for (SmsSalesBillDetail salesBillDetail : billDetailList) {
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery(); WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
countQuery.setSid(salesBillDetail.getInventorySid()); // countQuery.setSid(salesBillDetail.getInventorySid());
countQuery.setCount(salesBillDetail.getCount()); countQuery.setCount(salesBillDetail.getCount());
countQuery.setAddOrReduce(1); countQuery.setAddOrReduce(1);
wmsInventoryFeign.updateInventoryCount(countQuery); wmsInventoryFeign.updateInventoryCount(countQuery);
@ -267,26 +412,26 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesBillGoodsDetailsReportQuery query = pq.getParams(); SmsSalesBillGoodsDetailsReportQuery query = pq.getParams();
QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>(); QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUseOrgSid())) { if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.eq("s.useOrgSid",query.getUseOrgSid()); qw.eq("s.useOrgSid", query.getUseOrgSid());
} }
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("d.goodsSkuCode",query.getGoodsSkuCode()); qw.like("d.goodsSkuCode", query.getGoodsSkuCode());
} }
if (StringUtils.isNotBlank(query.getGoodsSkuTitle())) { if (StringUtils.isNotBlank(query.getGoodsSkuTitle())) {
qw.like("d.goodsSkuTitle",query.getGoodsSkuTitle()); qw.like("d.goodsSkuTitle", query.getGoodsSkuTitle());
} }
if (StringUtils.isNotBlank(query.getGoodsSpuName())) { if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("d.goodsSpuName",query.getGoodsSpuName()); qw.like("d.goodsSpuName", query.getGoodsSpuName());
} }
if (StringUtils.isNotBlank(query.getWarehouse())) { if (StringUtils.isNotBlank(query.getWarehouse())) {
qw.like("d.warehouse",query.getWarehouse()); qw.like("d.warehouse", query.getWarehouse());
} }
String startDate = query.getStartDate(); String startDate = query.getStartDate();
String endDate = query.getEndDate(); String endDate = query.getEndDate();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
); );
qw.eq("s.state","0"); qw.eq("s.state", "0");
qw.orderByDesc("s.createTime"); qw.orderByDesc("s.createTime");
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq); IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<SmsSalesBillGoodsDetailsReportVo> pagging = baseMapper.goodsDetailsReport(page, qw); IPage<SmsSalesBillGoodsDetailsReportVo> pagging = baseMapper.goodsDetailsReport(page, qw);
@ -298,26 +443,26 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesGoodsTotalsQuery query = pq.getParams(); SmsSalesGoodsTotalsQuery query = pq.getParams();
QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>(); QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUseOrgSid())) { if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.eq("s.useOrgSid",query.getUseOrgSid()); qw.eq("s.useOrgSid", query.getUseOrgSid());
} }
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("d.goodsSkuCode",query.getGoodsSkuCode()); qw.like("d.goodsSkuCode", query.getGoodsSkuCode());
} }
if (StringUtils.isNotBlank(query.getGoodsSkuTitle())) { if (StringUtils.isNotBlank(query.getGoodsSkuTitle())) {
qw.like("d.goodsSkuTitle",query.getGoodsSkuTitle()); qw.like("d.goodsSkuTitle", query.getGoodsSkuTitle());
} }
if (StringUtils.isNotBlank(query.getGoodsSpuName())) { if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("d.goodsSpuName",query.getGoodsSpuName()); qw.like("d.goodsSpuName", query.getGoodsSpuName());
} }
if (StringUtils.isNotBlank(query.getWarehouse())) { if (StringUtils.isNotBlank(query.getWarehouse())) {
qw.like("d.warehouse",query.getWarehouse()); qw.like("d.warehouse", query.getWarehouse());
} }
String startDate = query.getStartDate(); String startDate = query.getStartDate();
String endDate = query.getEndDate(); String endDate = query.getEndDate();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
); );
qw.eq("s.state","0"); qw.eq("s.state", "0");
qw.orderByDesc("s.createTime"); qw.orderByDesc("s.createTime");
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq); IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<SmsSalesGoodsTotalsVo> pagging = baseMapper.goodsTotalsReport(page, qw); IPage<SmsSalesGoodsTotalsVo> pagging = baseMapper.goodsTotalsReport(page, qw);
@ -344,10 +489,10 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesTrendQuery query = pq.getParams(); SmsSalesTrendQuery query = pq.getParams();
QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>(); QueryWrapper<SmsSalesBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUseOrgSid())) { if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.eq("s.useOrgSid",query.getUseOrgSid()); qw.eq("s.useOrgSid", query.getUseOrgSid());
} }
if (StringUtils.isNotBlank(query.getGoodsSpuName())) { if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("d.goodsSpuName",query.getGoodsSpuName()); qw.like("d.goodsSpuName", query.getGoodsSpuName());
} else { } else {
PagerVo<SmsSalesTrendVo> pagerVo = new PagerVo<>(); PagerVo<SmsSalesTrendVo> pagerVo = new PagerVo<>();
return pagerVo; return pagerVo;
@ -357,7 +502,7 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
); );
qw.eq("s.state","0"); qw.eq("s.state", "0");
qw.orderByDesc("s.createTime"); qw.orderByDesc("s.createTime");
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq); IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<SmsSalesTrendVo> pagging = baseMapper.goodsTrendReport(page, qw); IPage<SmsSalesTrendVo> pagging = baseMapper.goodsTrendReport(page, qw);

31
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillVo.java

@ -53,22 +53,25 @@ public class SmsSalesBillVo implements Vo {
private String sid; // sid private String sid; // sid
private String createTime;
@ApiModelProperty("制单人姓名") @ApiModelProperty("单据编号")
private String createByName; // 制单人姓名
@ApiModelProperty("单据编号")
private String billNo; // 单据编号 private String billNo; // 单据编号
@ApiModelProperty("销售姓名") @ApiModelProperty("分公司")
private String salesName; // 销售姓名 private String useOrgName; //分公司
@ApiModelProperty("快捷备注(选择)") @ApiModelProperty("制单部门")
private String shotRemarks; // 快捷备注(选择) private String deptName; //制单部门
@ApiModelProperty("备注(打印)") @ApiModelProperty("制单人姓名")
private String printRemarks; // 备注(打印) private String createByName; // 制单人姓名
@ApiModelProperty("客户名称") @ApiModelProperty("制单日期")
private String createTime;
@ApiModelProperty("服务顾问")
private String salesName; // 服务顾问
@ApiModelProperty("客户名称")
private String customerName; // 客户名称 private String customerName; // 客户名称
@ApiModelProperty("联系电话")
private String mobile; // 联系电话
@ApiModelProperty("车辆牌照") @ApiModelProperty("车辆牌照")
private String vehMark; // 车辆牌照 private String vehMark; // 车辆牌照
private String state; @ApiModelProperty("车架号")
private String vinNo; // 车架号
} }

29
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitem.java

@ -0,0 +1,29 @@
package com.yxt.sms.biz.smssalesbillaitem;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/4/17 14:56
*/
@Data
@ApiModel(value = "销售单-附加项目", description = "销售单-附加项目")
@TableName("sms_sales_bill_aitem")
public class SmsSalesBillAitem extends BaseEntity {
@ApiModelProperty("工单sid")
private String billSid;
@ApiModelProperty("附加项目sid")
private String attachItemSid;
@ApiModelProperty("附加项目名称")
private String attachItem;
@ApiModelProperty("销售价")
private BigDecimal price;
}

49
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitemMapper.java

@ -0,0 +1,49 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.sms.biz.smssalesbillaitem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface SmsSalesBillAitemMapper extends BaseMapper<SmsSalesBillAitem> {
@Select("select * from sms_sales_bill_aitem where billSid = #{billSid}")
List<SmsSalesBillAitem> fetchByBillSid(@Param("billSid") String billSid);
@Delete("delete from sms_sales_bill_aitem where billSid = #{sid}")
void delByBillSid(String billSid);
}

6
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitemMapper.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.sms.biz.smssalesbillaitem.SmsSalesBillAitemMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
</mapper>

49
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbillaitem/SmsSalesBillAitemService.java

@ -0,0 +1,49 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.sms.biz.smssalesbillaitem;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class SmsSalesBillAitemService extends MybatisBaseService<SmsSalesBillAitemMapper, SmsSalesBillAitem> {
public List<SmsSalesBillAitem> fetchByBillSid(String billSid) {
return baseMapper.fetchByBillSid(billSid);
}
public void delByBillSid(String billSid) {
baseMapper.delByBillSid(billSid);
}
}

10
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbilldetail/SmsSalesBillDetail.java

@ -54,8 +54,6 @@ public class SmsSalesBillDetail extends BaseEntity {
@ApiModelProperty("工单sid") @ApiModelProperty("工单sid")
private String billSid; // 工单sid private String billSid; // 工单sid
@ApiModelProperty("商品库存sid")
private String inventorySid; // 商品库存sid
@ApiModelProperty("商品ID") @ApiModelProperty("商品ID")
private String goodsID; // 商品ID private String goodsID; // 商品ID
@ApiModelProperty("商品基础信息Sid") @ApiModelProperty("商品基础信息Sid")
@ -70,14 +68,6 @@ public class SmsSalesBillDetail extends BaseEntity {
private String goodsSkuCode; // 商品编码(图号) private String goodsSkuCode; // 商品编码(图号)
@ApiModelProperty("计量单位") @ApiModelProperty("计量单位")
private String unit; // 计量单位 private String unit; // 计量单位
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("仓库名称")
private String warehouse; // 仓库名称
@ApiModelProperty("科目sid")
private String subjectSid; // 科目sid
@ApiModelProperty("科目(自费、保内等)")
private String subject; // 科目(自费、保内等)
@ApiModelProperty("销售前库存数量") @ApiModelProperty("销售前库存数量")
private BigDecimal currentCount; // 销售前库存数量 private BigDecimal currentCount; // 销售前库存数量
@ApiModelProperty("销售价") @ApiModelProperty("销售价")

8
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnService.java

@ -264,10 +264,10 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
SalesGoodsReturnVo salesGoodsVo = new SalesGoodsReturnVo(); SalesGoodsReturnVo salesGoodsVo = new SalesGoodsReturnVo();
BeanUtil.copyProperties(salesBillDetail, salesGoodsVo); BeanUtil.copyProperties(salesBillDetail, salesGoodsVo);
//查询对应销售单已退商品数量 //查询对应销售单已退商品数量
String count = baseMapper.selRetunGoodsNum(sid, salesBillDetail.getInventorySid()); // String count = baseMapper.selRetunGoodsNum(sid, salesBillDetail.getInventorySid());
if (StringUtils.isNotBlank(count)) { // if (StringUtils.isNotBlank(count)) {
salesGoodsVo.setReturnedCount(count); // salesGoodsVo.setReturnedCount(count);
} // }
billGoods.add(salesGoodsVo); billGoods.add(salesGoodsVo);
} }
vo.setBillGoods(billGoods); vo.setBillGoods(billGoods);

21
yxt-sms-biz/src/main/java/com/yxt/sms/utils/SmsBillNo.java

@ -0,0 +1,21 @@
package com.yxt.sms.utils;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author Fan
* @description
* @date 2024/6/20 15:39
*/
@Data
public class SmsBillNo implements Serializable {
private static final long serialVersionUID = 1598887042562656350L;
@ApiModelProperty(value = "单据名称首字母")
private String billType;
@ApiModelProperty(value = "分公司编码")
private String orgCode;
}

44
yxt-sms-biz/src/main/java/com/yxt/sms/utils/SmsRule.java

@ -0,0 +1,44 @@
package com.yxt.sms.utils;
import cn.hutool.core.date.DateUtil;
import org.springframework.util.StringUtils;
/**
* @Author dimengzhe
* @Date 2022/7/1 9:44
* @Description 规则
*/
public class SmsRule {
/**
* 单据编号规则单据名称大写首字母+分公司编码+年份+月份+4位顺序号
* 单据名称大写首字母+分公司编码+年份+月份
* 注意品牌编码暂不用
*
* @return
*/
public static String getBill(SmsBillNo 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;
}
}
Loading…
Cancel
Save