Browse Source

优化售后销售开单

master
fanzongzhe 12 months ago
parent
commit
972659d661
  1. 4
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smsgoods/SmsGoods.java
  2. 3
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SalesGoodsVo.java
  3. 3
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.java
  4. 21
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml
  5. 43
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
  6. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsWmsInventorySalesQuery.java
  7. 44
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsWmsInventorySalesVo.java
  8. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/fms/fmsreceivesettle/FmsReceivesettleFeign.java

4
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smsgoods/SmsGoods.java

@ -78,4 +78,8 @@ public class SmsGoods extends BaseEntity {
private String unit; // 计量单位 private String unit; // 计量单位
@ApiModelProperty("组织全路径") @ApiModelProperty("组织全路径")
private BigDecimal price; // 销售单价 private BigDecimal price; // 销售单价
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
} }

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

@ -14,6 +14,9 @@ import java.math.BigDecimal;
public class SalesGoodsVo { public class SalesGoodsVo {
private String sid; private String sid;
//商品sid
private String goodSpuSid;
private String goodsSkuSid;
//商品名称 //商品名称
private String goodsSpuName; private String goodsSpuName;
//商品编码(图号) //商品编码(图号)

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

@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.sms.biz.smsgoods.SmsGoods;
import com.yxt.sms.biz.smssalesbill.report.SmsSalesBillGoodsDetailsReportVo; import com.yxt.sms.biz.smssalesbill.report.SmsSalesBillGoodsDetailsReportVo;
import com.yxt.sms.biz.smssalesbill.report.SmsSalesGoodsTotalsVo; import com.yxt.sms.biz.smssalesbill.report.SmsSalesGoodsTotalsVo;
import com.yxt.sms.biz.smssalesbill.report.SmsSalesTrendVo; import com.yxt.sms.biz.smssalesbill.report.SmsSalesTrendVo;
@ -75,4 +76,6 @@ public interface SmsSalesBillMapper extends BaseMapper<SmsSalesBill> {
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); int selectNum(String bill);
IPage<SmsWmsInventorySalesVo> listPageSalesGoods(IPage<SmsSalesBill> page, @Param(Constants.WRAPPER)QueryWrapper<SmsGoods> qw);
} }

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

@ -97,4 +97,25 @@
from sms_sales_bill from sms_sales_bill
where billNo LIKE concat(#{bill}, '%') where billNo LIKE concat(#{bill}, '%')
</select> </select>
<select id="listPageSalesGoods" resultType="com.yxt.sms.biz.smssalesbill.SmsWmsInventorySalesVo">
SELECT
*
FROM
(
SELECT
a.*,
(
SELECT
IFNULL( SUM( wi.count ), 0 )
FROM
yxt_wms.wms_inventory AS wi
WHERE
wi.goodsID = a.goodsID
AND wi.useOrgSid = a.useOrgSid
) AS currentCount
FROM
sms_goods AS a
) AS s
<where>${ew.sqlSegment}</where>
</select>
</mapper> </mapper>

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

@ -241,6 +241,9 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesBillAitem aitem = new SmsSalesBillAitem(); SmsSalesBillAitem aitem = new SmsSalesBillAitem();
BeanUtil.copyProperties(smsAttachitemVo, aitem, "id", "sid"); BeanUtil.copyProperties(smsAttachitemVo, aitem, "id", "sid");
aitem.setBillSid(entity.getSid()); aitem.setBillSid(entity.getSid());
if (StringUtils.isNotBlank(smsAttachitemVo.getAitemName())) {
aitem.setAttachItem(smsAttachitemVo.getAitemName());
}
smsSalesBillAitemService.insert(aitem); smsSalesBillAitemService.insert(aitem);
} }
} }
@ -275,6 +278,9 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
SmsSalesBillAitem aitem = new SmsSalesBillAitem(); SmsSalesBillAitem aitem = new SmsSalesBillAitem();
BeanUtil.copyProperties(smsAttachitemVo, aitem, "id", "sid"); BeanUtil.copyProperties(smsAttachitemVo, aitem, "id", "sid");
aitem.setBillSid(dtoSid); aitem.setBillSid(dtoSid);
if (StringUtils.isNotBlank(smsAttachitemVo.getAitemName())) {
aitem.setAttachItem(smsAttachitemVo.getAitemName());
}
smsSalesBillAitemService.insert(aitem); smsSalesBillAitemService.insert(aitem);
} }
} }
@ -367,14 +373,19 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
public ResultBean<PagerVo<SmsWmsInventorySalesVo>> listPageSales(PagerQuery<SmsWmsInventorySalesQuery> pq) { public ResultBean<PagerVo<SmsWmsInventorySalesVo>> listPageSales(PagerQuery<SmsWmsInventorySalesQuery> pq) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
PagerVo<SmsWmsInventorySalesVo> pagerVo = new PagerVo<>(); SmsWmsInventorySalesQuery query = pq.getParams();
PagerQuery<WmsInventorySalesQuery> pagerQuery = new PagerQuery<>(); QueryWrapper<SmsGoods> qw = new QueryWrapper<>();
BeanUtil.copyProperties(pq, pagerQuery); if (StringUtils.isNotBlank(query.getGoodsName())) {
PagerVo<WmsInventorySalesVo> voPagerVo = wmsInventoryFeign.listPageSales(pagerQuery).getData(); qw.like("s.goodsSpuName", query.getGoodsName());
if (null != voPagerVo) { }
BeanUtil.copyProperties(voPagerVo, pagerVo); if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.like("s.useOrgSid", query.getUseOrgSid());
} }
return rb.success().setData(pagerVo); qw.apply("s.currentCount > 0");
IPage<SmsSalesBill> page = PagerUtil.queryToPage(pq);
IPage<SmsWmsInventorySalesVo> pagging = baseMapper.listPageSalesGoods(page, qw);
PagerVo<SmsWmsInventorySalesVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
} }
public ResultBean settlement(SmsSalesBillDto dto) { public ResultBean settlement(SmsSalesBillDto dto) {
@ -395,15 +406,15 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
smsSalesBill.setState(0); smsSalesBill.setState(0);
baseMapper.updateById(smsSalesBill); baseMapper.updateById(smsSalesBill);
List<SmsSalesBillDetail> billDetailList = smsSalesBillDetailService.fetchByMainSid(sid); List<SmsSalesBillDetail> billDetailList = smsSalesBillDetailService.fetchByMainSid(sid);
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);
} // }
} // }
} }
return rb.success(); return rb.success();
} }

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

@ -11,6 +11,6 @@ import lombok.Data;
@Data @Data
public class SmsWmsInventorySalesQuery implements Query { public class SmsWmsInventorySalesQuery implements Query {
private String queryName; //名称 private String goodsName; //名称
private String useOrgSid; private String useOrgSid;
} }

44
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsWmsInventorySalesVo.java

@ -1,6 +1,7 @@
package com.yxt.sms.biz.smssalesbill; package com.yxt.sms.biz.smssalesbill;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
@ -11,18 +12,37 @@ import lombok.Data;
@Data @Data
public class SmsWmsInventorySalesVo implements Vo { public class SmsWmsInventorySalesVo implements Vo {
private String inventorySid;
private String goodsID; //商品sid
private String goodSpuSid;//商品基础信息sid private String goodSpuSid;
private String goodsSpuName;//商品名称 private String goodsSkuSid;
private String goodsSkuSid;//商品Skusid //商品名称
private String goodsSkuTitle;//商品Sku名称 private String goodsSpuName;
private String goodsSkuCode;//商品编码(图号) //商品编码(图号)
private String unit;//计量单位 private String goodsSkuCode;
private String currentCount;//库存数量 //规格型号
private String warehouseSid;//仓库sid private String goodsSkuOwnSpec;
private String warehouse;//仓库名称 @ApiModelProperty("计量单位")
private String price;//销售价 private String unit;
@ApiModelProperty("厂家")
private String supplierName;
@ApiModelProperty("库存数量")
private String currentCount;
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
@ApiModelProperty("销售价(元)")
private String price;
@ApiModelProperty("出/退库数量")
private String count;
//折扣(0-10,0免费,10不打折)
private String discount;
//优惠金额(=销售价*(1-折扣*0.1))
private String discountAmount;
//金额(销售价-优惠金额)
private String amount;
@ApiModelProperty("备注")
private String remarks;
} }

2
yxt-sms-biz/src/main/java/com/yxt/sms/feign/fms/fmsreceivesettle/FmsReceivesettleFeign.java

@ -27,6 +27,6 @@ public interface FmsReceivesettleFeign {
public ResultBean save(@RequestBody FmsReceivesettleDto dto); public ResultBean save(@RequestBody FmsReceivesettleDto dto);
@ApiOperation("根据来源SID获取一条记录") @ApiOperation("根据来源SID获取一条记录")
@GetMapping("/fetchBySourceSid/{sid}") @GetMapping("/fetchBySourceSid/{sourceBillSid}")
public ResultBean<FmsReceivesettle> fetchBySourceSid(@PathVariable("sourceBillSid") String sourceBillSid); public ResultBean<FmsReceivesettle> fetchBySourceSid(@PathVariable("sourceBillSid") String sourceBillSid);
} }

Loading…
Cancel
Save