Browse Source

移动端上架,修改收货单保存接口

master
fanzongzhe 11 months ago
parent
commit
525382e80d
  1. 11
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/base/WmsWarehouseRackRest.java
  2. 27
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java
  3. 22
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java
  4. 20
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsHouseInfoVo.java
  5. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRack.java
  6. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackMapper.java
  7. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackMapper.xml
  8. 83
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackService.java
  9. 45
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTag.java
  10. 17
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java
  11. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml
  12. 19
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java
  13. 89
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java
  14. 232
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java
  15. 43
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppSaveBillRecordDto.java
  16. 44
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppScanVo.java
  17. 29
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppShelInitVo.java
  18. 7
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailMapper.java
  19. 20
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml
  20. 13
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailService.java

11
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/base/WmsWarehouseRackRest.java

@ -3,10 +3,7 @@ package com.yxt.wms.apiadmin.base;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackDto;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackQuery;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackVo;
import com.yxt.wms.biz.base.wmswarehouserack.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@ -65,4 +62,10 @@ public class WmsWarehouseRackRest {
public ResultBean updateIsEnable(@PathVariable("sid") String sid,@PathVariable("isEnable")String isEnable) {
return wmsWarehouseRackService.updateIsEnable(sid,isEnable);
}
@ApiOperation("根据库位全码查仓库库区库位信息")
@GetMapping("/selHouseInfoByFullCode")
public ResultBean<WmsHouseInfoVo> selHouseInfoByFullCode(@RequestParam("rackFullCode") String rackFullCode) {
return wmsWarehouseRackService.selHouseInfoByFullCode(rackFullCode);
}
}

27
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java

@ -0,0 +1,27 @@
package com.yxt.wms.apiadmin.inventroy;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService;
import com.yxt.wms.biz.inventory.wmsoutbill.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Api(tags = "商品标签表")
@RestController
@RequestMapping("/apiadmin/WmsGoodsTag")
public class WmsGoodsTagRest {
@Autowired
private WmsGoodsTagService wmsWmsGoodsTagService;
}

22
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java

@ -7,8 +7,7 @@ import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillDto2;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillPageVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillQuery;
import com.yxt.wms.biz.inventory.wmsshelfbill.*;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.AppShelfBillListQuery;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.AppShelfBillListVo;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
@ -75,12 +74,29 @@ public class WmsShelfBillRest {
//---------------------------app---------------------------------
@ApiOperation("分页列表")
@PostMapping("/applistPage")
@PostMapping("/getShelvesList")
public ResultBean<PagerVo<AppShelfBillListVo>> applistPage(@RequestBody PagerQuery<AppShelfBillListQuery> pq) {
ResultBean<PagerVo<AppShelfBillListVo>> rb = ResultBean.fireFail();
PagerVo<AppShelfBillListVo> pv = wmsShelfBillService.applistPage(pq);
return rb.success().setData(pv);
}
@ApiOperation("上架初始化")
@GetMapping("shelvesOperaInit/{sid}")
public ResultBean<AppShelInitVo> shelvesOperaInit(@PathVariable("sid") String sid) {
return wmsShelfBillService.shelvesOperaInit(sid);
}
@ApiOperation("扫码")
@GetMapping("scan")
public ResultBean<AppScanVo> scan(@RequestParam(value = "shelvesId", required = false) String shelvesId,@RequestParam(value = "content") String content) {
return wmsShelfBillService.scan(shelvesId,content);
}
@ApiOperation("上架保存")
@PostMapping("/shelvesSave")
public ResultBean shelvesSave(@RequestBody AppSaveBillRecordDto dto) {
return wmsShelfBillService.shelvesSave(dto);
}
}

20
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsHouseInfoVo.java

@ -0,0 +1,20 @@
package com.yxt.wms.biz.base.wmswarehouserack;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/5/30 11:29
*/
@Data
public class WmsHouseInfoVo {
private String warehouseSid;//仓库
private String warehouseName;
private String wareAreaSid;//库区
private String wareAreaName;
private String warehouseRackSid;//库位sid
private String warehouseRackCode;
private String warehouseRackName;
}

1
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRack.java

@ -23,4 +23,5 @@ public class WmsWarehouseRack extends BaseEntity {
private String rackCode;//货架编码
private String warehouseSid;//仓库sid
private String locationSid;//库位sid
private String rackFullCode;//库位全码(仓库编码-库区编码-库位编码)
}

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackMapper.java

@ -23,4 +23,6 @@ public interface WmsWarehouseRackMapper extends BaseMapper<WmsWarehouseRack> {
WmsWarehouseRack checkForInsert(@Param("rackCode")String rackCode, @Param("locationSid")String locationSid);
WmsWarehouseRack checkForUpdate(@Param("rackCode")String rackCode,@Param("locationSid") String locationSid, @Param("sid")String sid);
WmsWarehouseRack selHouseInfoByFullCode(@Param("rackFullCode") String rackFullCode);
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackMapper.xml

@ -35,6 +35,9 @@ where rackCode =#{rackCode} and locationSid =#{locationSid} and isDelete=0
from wms_warehouse_rack
where rackCode =#{rackCode} and locationSid =#{locationSid} and sid !=#{sid} and isDelete=0
</select>
<select id="selHouseInfoByFullCode" resultType="com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack">
select * from wms_warehouse_rack where rackFullCode =#{rackFullCode}
</select>
<update id="updateBySidIsDelete">
UPDATE wms_warehouse_rack
SET isDelete=1

83
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackService.java

@ -11,7 +11,10 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseArea;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseAreaService;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseAreaVo;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfo;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfoService;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysuser.SysUserFeign;
import org.springframework.beans.factory.annotation.Autowired;
@ -31,6 +34,10 @@ import java.util.stream.Collectors;
public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRackMapper, WmsWarehouseRack> {
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private WmsWarehouseInfoService wmsWarehouseInfoService;
@Autowired
private WmsWarehouseAreaService wmsWarehouseAreaService;
public ResultBean<PagerVo<WmsWarehouseRackVo>> listPage(PagerQuery<WmsWarehouseRackQuery> pq) {
ResultBean rb = ResultBean.fireFail();
@ -72,29 +79,30 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
PagerVo<WmsWarehouseRackVo> p = new PagerVo<>();
return rb.success().setData(p);
}
if(StringUtils.isNotBlank(query.getName())){
qw.like("rackName",query.getName());
if (StringUtils.isNotBlank(query.getName())) {
qw.like("rackName", query.getName());
}
if(StringUtils.isNotBlank(query.getCode())){
qw.like("rackCode",query.getCode());
if (StringUtils.isNotBlank(query.getCode())) {
qw.like("rackCode", query.getCode());
}
if(StringUtils.isNotBlank(query.getAreaTypeSid())){
qw.eq("b.sid",query.getAreaTypeSid());
if (StringUtils.isNotBlank(query.getAreaTypeSid())) {
qw.eq("b.sid", query.getAreaTypeSid());
}
if(StringUtils.isNotBlank(query.getWarehouseSid())){
qw.eq("c.sid",query.getWarehouseSid());
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.eq("c.sid", query.getWarehouseSid());
}
qw.ne("a.isDelete","1");
qw.ne("a.isDelete", "1");
IPage<WmsWarehouseRack> page = PagerUtil.queryToPage(pq);
IPage<WmsWarehouseRackVo> pagging = baseMapper.listPage(page, qw);
PagerVo<WmsWarehouseRackVo> p = PagerUtil.pageToVo(pagging, null);
List<WmsWarehouseRackVo> records = pagging.getRecords();
return rb.success().setData(p);
}
public ResultBean<WmsWarehouseRackVo> getAllType() {
ResultBean rb = ResultBean.fireFail();
List<WmsWarehouseRack> pagging = baseMapper.selectList(new QueryWrapper<WmsWarehouseRack>().eq("isEnable",1)
.ne("isDelete","1"));
List<WmsWarehouseRack> pagging = baseMapper.selectList(new QueryWrapper<WmsWarehouseRack>().eq("isEnable", 1)
.ne("isDelete", "1"));
return rb.success().setData(pagging);
}
@ -103,16 +111,27 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
String sid = "";
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
WmsWarehouseRack rack = baseMapper.checkForUpdate(dto.getRackCode(),dto.getLocationSid(),sid);
WmsWarehouseRack rack = baseMapper.checkForUpdate(dto.getRackCode(), dto.getLocationSid(), sid);
if (null != rack) {
return rb.setMsg("同一个库区下的库位编码不能重复。");
}
WmsWarehouseRack wmsWarehouseRack = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, wmsWarehouseRack, "id", "sid");
wmsWarehouseRack.setModifyTime(new Date());
String houseCode = "";
String areaCode = "";
WmsWarehouseInfo warehouseInfo = wmsWarehouseInfoService.fetchBySid(dto.getWarehouseSid());
if (null != warehouseInfo) {
houseCode = warehouseInfo.getWarehouseCode();
}
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(dto.getWarehouseSid());
if (null != wmsWarehouseArea) {
areaCode = wmsWarehouseArea.getAreaCode();
}
wmsWarehouseRack.setRackFullCode(houseCode + "-" + areaCode + "-" + dto.getRackCode());
baseMapper.updateById(wmsWarehouseRack);
} else {
WmsWarehouseRack rack = baseMapper.checkForInsert(dto.getRackCode(),dto.getLocationSid());
WmsWarehouseRack rack = baseMapper.checkForInsert(dto.getRackCode(), dto.getLocationSid());
if (null != rack) {
return rb.setMsg("同一个库区下的库位编码不能重复。");
}
@ -121,6 +140,17 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
BeanUtil.copyProperties(dto, wmsWarehouseRack, "id", "sid");
wmsWarehouseRack.setCreateTime(new DateTime());
wmsWarehouseRack.setCreateBySid(dto.getUserSid());
String houseCode = "";
String areaCode = "";
WmsWarehouseInfo warehouseInfo = wmsWarehouseInfoService.fetchBySid(dto.getWarehouseSid());
if (null != warehouseInfo) {
houseCode = warehouseInfo.getWarehouseCode();
}
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(dto.getWarehouseSid());
if (null != wmsWarehouseArea) {
areaCode = wmsWarehouseArea.getAreaCode();
}
wmsWarehouseRack.setRackFullCode(houseCode + "-" + areaCode + "-" + dto.getRackCode());
baseMapper.insert(wmsWarehouseRack);
}
return rb.success().setMsg("成功");
@ -141,11 +171,12 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
}
return rb.success();
}
public void delAll(String[] sids) {
int count = baseMapper.updateBySidIsDelete(Arrays.stream(sids).collect(Collectors.toList()));
}
public ResultBean updateIsEnable(String sid,String isEnable) {
public ResultBean updateIsEnable(String sid, String isEnable) {
ResultBean rb = ResultBean.fireFail();
WmsWarehouseRack wmsWarehouseRack = fetchBySid(sid);
if (null != wmsWarehouseRack) {
@ -154,4 +185,28 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
}
return rb.success().setMsg("成功");
}
public ResultBean<WmsHouseInfoVo> selHouseInfoByFullCode(String rackFullCode) {
ResultBean rb = ResultBean.fireFail();
WmsHouseInfoVo info = new WmsHouseInfoVo();
WmsWarehouseRack rack = baseMapper.selHouseInfoByFullCode(rackFullCode);
if (null != rack) {
info.setWarehouseRackSid(rack.getSid());
info.setWarehouseRackName(rack.getRackName());
info.setWarehouseRackCode(rack.getRackCode());
WmsWarehouseInfo warehouseInfo = wmsWarehouseInfoService.fetchBySid(rack.getWarehouseSid());
if (null != warehouseInfo) {
info.setWarehouseSid(warehouseInfo.getSid());
info.setWarehouseName(warehouseInfo.getWarehouseName());
}
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(rack.getLocationSid());
if (null != wmsWarehouseArea) {
info.setWareAreaSid(wmsWarehouseArea.getSid());
info.setWareAreaName(wmsWarehouseArea.getAreaName());
}
} else {
return rb;
}
return rb.success().setData(info);
}
}

45
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTag.java

@ -0,0 +1,45 @@
package com.yxt.wms.biz.inventory.wmsgoodstag;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author Fan
* @description
* @date 2024/5/30 13:36
*/
@Data
public class WmsGoodsTag extends BaseEntity {
@ApiModelProperty("单据sid(收货单sid)")
private String billSid;
@ApiModelProperty("单据明细sid")
private String billDetailSid;
@ApiModelProperty("批次号(入库日期+有效日期,如240320-241009)")
private String batchNumber;
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("数量")
private BigDecimal goodsCount;
@ApiModelProperty("标签图片地址")
private String tagPicUrl;
@ApiModelProperty("打印次数")
private Integer printCount;
}

17
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java

@ -0,0 +1,17 @@
package com.yxt.wms.biz.inventory.wmsgoodstag;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Mapper
public interface WmsGoodsTagMapper extends BaseMapper<WmsGoodsTag> {
WmsGoodsTag selByBillSidAndGoodsID(@Param("billSid") String billSid, @Param("goodsID") String goodsID);
}

8
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml

@ -0,0 +1,8 @@
<?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.wms.biz.inventory.wmsgoodstag.WmsGoodsTagMapper">
<select id="selByBillSidAndGoodsID" resultType="com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag">
select * from wms_goods_tag where billSid =#{billSid} and goodsID =#{goodsID}
</select>
</mapper>

19
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java

@ -0,0 +1,19 @@
package com.yxt.wms.biz.inventory.wmsgoodstag;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Service
public class WmsGoodsTagService extends MybatisBaseService<WmsGoodsTagMapper, WmsGoodsTag> {
public WmsGoodsTag selByBillSidAndGoodsID(String billSid, String goodsID) {
return baseMapper.selByBillSidAndGoodsID(billSid,goodsID);
}
}

89
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

@ -205,33 +205,35 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
}
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsAnsListDetailsVo vo : vos) {
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
if (StringUtils.isNotBlank(dto.getSourceBillSid())) {
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsAnsListDetailsVo vo : vos) {
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
}
}
}
}
wmsAnsBillService.updateById(wmsAnsBill);
}
wmsAnsBillService.updateById(wmsAnsBill);
}
wmsReceiptBill.setBillState("0");
String applyCode = getApplyCode(dto.getCreateOrgSid());
@ -276,33 +278,36 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
}
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsAnsListDetailsVo vo : vos) {
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
if (StringUtils.isNotBlank(dto.getSourceBillSid())) {
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsAnsListDetailsVo vo : vos) {
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
}
}
}
}
wmsAnsBillService.updateById(wmsAnsBill);
}
wmsAnsBillService.updateById(wmsAnsBill);
}
baseMapper.updateById(wmsReceiptBill);
}

232
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

@ -10,7 +10,12 @@ import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventorySaveDto;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryService;
import com.yxt.wms.biz.inventory.wmsinventoryrecord.WmsInventoryRecordDto;
@ -22,8 +27,7 @@ import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailDto2;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailService;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatch;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.AppShelfBillListQuery;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.AppShelfBillListVo;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.*;
import com.yxt.wms.biz.inventory.wmsshelfbilldetail.*;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeign;
@ -38,13 +42,11 @@ import com.yxt.wms.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.*;
/**
* @description:
@ -77,6 +79,11 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private WmsWarehouseRackService wmsWarehouseRackService;
@Autowired
private WmsGoodsTagService wmsGoodsTagService;
public PagerVo<WmsShelfBillVo> listPage(PagerQuery<WmsShelfBillQuery> pq) {
WmsShelfBillQuery query = pq.getParams();
QueryWrapper<WmsShelfBill> qw = new QueryWrapper<>();
@ -143,7 +150,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
if (StringUtils.isBlank(sid)) {
WmsShelfBill wmsShelfBill = new WmsShelfBill();
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("新建")){
if (dto.getBillState().equals("新建")) {
dto.setBillState("0");
} else if (dto.getBillState().equals("完成")) {
dto.setBillState("1");
@ -160,7 +167,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
String applyCode = getApplyCode(dto.getCreateOrgSid());
wmsShelfBill.setBillNo(applyCode);
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("0")){
if (dto.getBillState().equals("0")) {
wmsShelfBill.setBillStateValue("新建");
} else if (dto.getBillState().equals("1")) {
wmsShelfBill.setBillStateValue("完成");
@ -173,7 +180,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
return rb.setMsg("该单据不存在");
}
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("新建")){
if (dto.getBillState().equals("新建")) {
dto.setBillState("0");
} else if (dto.getBillState().equals("完成")) {
dto.setBillState("1");
@ -187,7 +194,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
wmsShelfBillDetailService.saveShelfDetails(sid, list);
}
if (StringUtils.isNotBlank(dto.getBillState())) {
if (dto.getBillState().equals("0")){
if (dto.getBillState().equals("0")) {
wmsShelfBill.setBillStateValue("新建");
} else if (dto.getBillState().equals("1")) {
wmsShelfBill.setBillStateValue("完成");
@ -411,7 +418,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
AppShelfBillListQuery query = pq.getParams();
QueryWrapper<WmsShelfBill> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("wsb.upShelfSid",query.getUserSid());
qw.eq("wsb.upShelfSid", query.getUserSid());
}
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getName())) {
@ -420,9 +427,212 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
.or().like("wsb.billStateValue", query.getName())
);
}
qw.ne("wsb.billStateValue", "已完成");
IPage<WmsShelfBill> page = PagerUtil.queryToPage(pq);
IPage<AppShelfBillListVo> pagging = baseMapper.applistPage(page, qw);
List<AppShelfBillListVo> records = pagging.getRecords();
if (!records.isEmpty()) {
for (AppShelfBillListVo record : records) {
if (!record.getShelvesState().equals("完成")) {
record.setShelvesBtn(true);
}
if (!record.getShelvesState().equals("新建")) {
record.setRecordBtn(true);
}
}
}
PagerVo<AppShelfBillListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<AppShelInitVo> shelvesOperaInit(String sid) {
ResultBean rb = ResultBean.fireFail();
AppShelInitVo vo = new AppShelInitVo();
WmsShelfBill wmsShelfBill = fetchBySid(sid);
if (null != wmsShelfBill) {
vo.setShelvesId(wmsShelfBill.getBillNo());
List<WmsShelfBillDetail> details = wmsShelfBillDetailService.selectByMainSid(sid);
if (!details.isEmpty()) {
List<AppShelInitVo.AppShelInitVoDetails> goods = new ArrayList<>();
for (WmsShelfBillDetail detail : details) {
AppShelInitVo.AppShelInitVoDetails voDetails = new AppShelInitVo.AppShelInitVoDetails();
if (StringUtils.isNotBlank(detail.getGoodsSpuName())) {
voDetails.setName(detail.getGoodsSpuName());
}
BigDecimal count = new BigDecimal("0");
BigDecimal acCount = new BigDecimal("0");
if (null != detail.getCount()) {
count = detail.getCount();
}
if (null != detail.getActualCount()) {
acCount = detail.getActualCount();
}
String c = String.valueOf(count.subtract(acCount).intValue());
voDetails.setNumber(c);
if (!c.equals("0")) {
goods.add(voDetails);
}
}
vo.setGoods(goods);
}
}
return rb.success().setData(vo);
}
public ResultBean<AppScanVo> scan(String shelvesId, String content) {
ResultBean rb = ResultBean.fireFail();
AppScanVo vo = new AppScanVo();
if (StringUtils.isNotBlank(shelvesId)) {
if (content.contains("#")) {
String[] split = content.split("#");
String houseCode = split[0];
ResultBean<WmsHouseInfoVo> wmsHouseInfoVoResultBean = wmsWarehouseRackService.selHouseInfoByFullCode(houseCode);
if (wmsHouseInfoVoResultBean.getSuccess()) {
WmsHouseInfoVo houseInfoVo = wmsHouseInfoVoResultBean.getData();
if (null != houseInfoVo) {
vo.setHouseCode(houseCode);
vo.setHouseName(houseInfoVo.getWareAreaName() + "-" + houseInfoVo.getWarehouseRackName());
vo.setHouseAddress(houseInfoVo.getWarehouseRackCode());
vo.setType(1);
}
} else {
return rb.setMsg("扫描库位码为空");
}
} else {
vo.setType(0);
WmsShelfBill wmsShelfBill = fetchBySid(shelvesId);
String sourceBillSid = wmsShelfBill.getSourceBillSid();
//判断该商品ID是否属于该上架单对应的收货单
WmsGoodsTag wmsGoodsTag = wmsGoodsTagService.selByBillSidAndGoodsID(sourceBillSid, content);
if (null != wmsGoodsTag) {
vo.setGoodsID(wmsGoodsTag.getGoodsID());
vo.setGoodsName(wmsGoodsTag.getGoodsSpuName());
if (wmsGoodsTag.getState() == 1) {
return rb.setMsg("该商品已上架完成");
}
//获取该商品编码,判断此上架单是否有对应的商品编码
String goodsSkuCode = wmsGoodsTag.getGoodsSkuCode();
WmsShelfBillDetail shelfBillGoods = wmsShelfBillDetailService.selByBillSidAndSkuCode(shelvesId, goodsSkuCode);
if (null == shelfBillGoods) {
return rb.setMsg("该商品不属于您的上架单");
}
BigDecimal count = new BigDecimal("0");
BigDecimal acCount = new BigDecimal("0");
if (null != shelfBillGoods.getCount()) {
count = shelfBillGoods.getCount();
}
if (null != shelfBillGoods.getActualCount()) {
acCount = shelfBillGoods.getActualCount();
}
BigDecimal subtractCount = count.subtract(acCount);
if (subtractCount.compareTo(BigDecimal.ZERO) > 0) {
if (wmsGoodsTag.getGoodsCount().compareTo(new BigDecimal("1")) == 0) {
vo.setGoodsMax("1");
} else {
vo.setGoodsMax(String.valueOf(subtractCount.intValue()));
}
} else {
return rb.setMsg("您的上架单中的该商品已经上架完成");
}
} else {
return rb.setMsg("该商品不属于您的收货单");
}
}
} else {
vo.setUrl("");
}
return rb.success().setData(vo);
}
@Transactional(rollbackFor = Exception.class)
public ResultBean shelvesSave(AppSaveBillRecordDto dto) {
ResultBean rb = ResultBean.fireFail();
String shelvesId = dto.getShelvesSid();
WmsShelfBill wmsShelfBill = fetchBySid(shelvesId);
String sourceBillSid = wmsShelfBill.getSourceBillSid();
List<AppSaveBillRecordDto.AppSaveBillRecordDetailsDto> goodsList = dto.getGoodsList();
if (!goodsList.isEmpty()) {
Map<String, BigDecimal> map = new HashMap<>();
for (AppSaveBillRecordDto.AppSaveBillRecordDetailsDto detailsDto : goodsList) {
BigDecimal decimal = map.get(detailsDto.getGoodsID());
if (null != decimal) {
map.put(detailsDto.getGoodsID(), decimal.add(new BigDecimal(detailsDto.getCount())));
} else {
map.put(detailsDto.getGoodsID(), new BigDecimal(detailsDto.getCount()));
}
}
for (AppSaveBillRecordDto.AppSaveBillRecordDetailsDto r : goodsList) {
String goodsID = r.getGoodsID();
String houseCode = r.getHouseCode();
if (StringUtils.isBlank(goodsID)) {
return rb.setMsg("请扫描商品码");
}
if (StringUtils.isBlank(houseCode)) {
return rb.setMsg("请扫描库位码");
}
WmsGoodsTag wmsGoodsTag = wmsGoodsTagService.selByBillSidAndGoodsID(sourceBillSid, goodsID);
String goodsSkuCode = wmsGoodsTag.getGoodsSkuCode();
WmsShelfBillDetail shelfBillGoods = wmsShelfBillDetailService.selByBillSidAndSkuCode(shelvesId, goodsSkuCode);
BigDecimal actualCount = shelfBillGoods.getActualCount();
BigDecimal subtract = shelfBillGoods.getCount().subtract(actualCount);
if (subtract.compareTo(map.get(goodsID)) < 0) {
return rb.setMsg("请勿超过商品上架最大数量");
}
}
for (AppSaveBillRecordDto.AppSaveBillRecordDetailsDto r : goodsList) {
String count = r.getCount();
String goodsID = r.getGoodsID();
String houseCode = r.getHouseCode();
WmsGoodsTag wmsGoodsTag = wmsGoodsTagService.selByBillSidAndGoodsID(sourceBillSid, goodsID);
String goodsSkuCode = wmsGoodsTag.getGoodsSkuCode();
WmsShelfBillDetail shelfBillGoods = wmsShelfBillDetailService.selByBillSidAndSkuCode(shelvesId, goodsSkuCode);
BigDecimal actualCount = shelfBillGoods.getActualCount();
BigDecimal add = actualCount.add(new BigDecimal(count));
shelfBillGoods.setActualCount(add);
wmsShelfBillDetailService.updateById(shelfBillGoods);
if (wmsGoodsTag.getGoodsCount().compareTo(new BigDecimal("1")) == 0) {
wmsGoodsTag.setState(1);
wmsGoodsTagService.updateById(wmsGoodsTag);
}
}
List<WmsShelfBillDetail> vos = wmsShelfBillDetailService.selectByMainSid(dto.getShelvesSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsShelfBillDetail vo : vos) {
if (vo.getActualCount().compareTo(vo.getCount()) >= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsShelfBill.setBillState(2);
wmsShelfBill.setBillStateValue("部分上架");
} else {
wmsShelfBill.setBillState(1);
wmsShelfBill.setBillStateValue("已完成");
for (Integer integer : integers) {
if (integer == 1) {
wmsShelfBill.setBillState(2);
wmsShelfBill.setBillStateValue("部分上架");
}
}
}
}
baseMapper.updateById(wmsShelfBill);
for (AppSaveBillRecordDto.AppSaveBillRecordDetailsDto r : goodsList) {
String goodsID = r.getGoodsID();
WmsGoodsTag wmsGoodsTag = wmsGoodsTagService.selByBillSidAndGoodsID(sourceBillSid, goodsID);
String goodsSkuCode = wmsGoodsTag.getGoodsSkuCode();
if (wmsGoodsTag.getGoodsCount().compareTo(new BigDecimal("1")) > 0) {
String count = wmsShelfBillDetailService.selAcCountBySourceBillSidAndSkuCode(sourceBillSid, goodsSkuCode);
if (new BigDecimal(count).compareTo(wmsGoodsTag.getGoodsCount()) >= 0) {
wmsGoodsTag.setState(1);
wmsGoodsTagService.updateById(wmsGoodsTag);
}
}
}
}
return rb.success();
}
}

43
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppSaveBillRecordDto.java

@ -0,0 +1,43 @@
package com.yxt.wms.biz.inventory.wmsshelfbill.app;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/5/30 14:21
*/
@Data
public class AppSaveBillRecordDto implements Dto {
/**
* 商品列表
*/
private List<AppSaveBillRecordDetailsDto> goodsList = new ArrayList<>();
private String orgPath;
/**
* 上架单sid
*/
private String shelvesSid;
private String userSid;
@Data
public static class AppSaveBillRecordDetailsDto {
/**
* 数量
*/
private String count;
/**
* 商品ID
*/
private String goodsID;
/**
* 库位码
*/
private String houseCode;
}
}

44
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppScanVo.java

@ -0,0 +1,44 @@
package com.yxt.wms.biz.inventory.wmsshelfbill.app;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/5/30 11:12
*/
@Data
public class AppScanVo {
/**
* 商品id
*/
private String goodsID;
/**
* 商品最大可上架数量通过shelvesId去查询出来的当前上架单无需上架此商品 false
*/
private String goodsMax;
/**
* 商品名称
*/
private String goodsName;
/**
* 1-2-50
*/
private String houseAddress;
/**
* 库位码
*/
private String houseCode;
/**
* 库区名+库位名
*/
private String houseName;
/**
* 0 商品码 1库位码
*/
private Integer type;
/**
* 网址
*/
private String url;
}

29
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/app/AppShelInitVo.java

@ -0,0 +1,29 @@
package com.yxt.wms.biz.inventory.wmsshelfbill.app;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/5/30 10:41
*/
@Data
public class AppShelInitVo {
private String shelvesId;
private List<AppShelInitVoDetails> goods = new ArrayList<>();
@Data
public static class AppShelInitVoDetails {
private String name;
private String number;
}
}

7
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailMapper.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.inventory.wmsshelfbilldetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -21,4 +22,10 @@ public interface WmsShelfBillDetailMapper extends BaseMapper<WmsShelfBillDetail>
List<String> selectReceiptSidList();
List<ShelfInitListVo> selDetailsByMainSid(String sid);
List<WmsShelfBillDetail> selectByMainSid(String sid);
WmsShelfBillDetail selByBillSidAndSkuCode(@Param("shelvesId") String shelvesId,@Param("goodsSkuCode") String goodsSkuCode);
String selAcCountBySourceBillSidAndSkuCode(@Param("sourceBillSid")String sourceBillSid, @Param("goodsSkuCode")String goodsSkuCode);
}

20
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml

@ -48,4 +48,24 @@
from wms_shelf_bill_detail wsd
where billSid = #{sid}
</select>
<select id="selectByMainSid" resultType="com.yxt.wms.biz.inventory.wmsshelfbilldetail.WmsShelfBillDetail">
select *
from wms_shelf_bill_detail where billSid = #{sid}
</select>
<select id="selByBillSidAndSkuCode"
resultType="com.yxt.wms.biz.inventory.wmsshelfbilldetail.WmsShelfBillDetail">
SELECT
*
FROM
wms_shelf_bill_detail AS d
WHERE d.billSid = #{shelvesId} and d.goodsSkuCode = #{goodsSkuCode}
</select>
<select id="selAcCountBySourceBillSidAndSkuCode" resultType="java.lang.String">
SELECT
IFNULL(SUM(d.actualCount),0)
FROM
wms_shelf_bill_detail AS d
LEFT JOIN wms_shelf_bill AS b ON d.billSid = b.sid
WHERE b.sourceBillSid = #{sourceBillSid} and d.goodsSkuCode = #{goodsSkuCode}
</select>
</mapper>

13
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailService.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.inventory.wmsshelfbilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import java.util.List;
@ -38,4 +39,16 @@ public class WmsShelfBillDetailService extends MybatisBaseService<WmsShelfBillDe
public List<ShelfInitListVo> selDetailsByMainSid(String sid) {
return baseMapper.selDetailsByMainSid(sid);
}
public List<WmsShelfBillDetail> selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
public WmsShelfBillDetail selByBillSidAndSkuCode(String shelvesId,String goodsSkuCode) {
return baseMapper.selByBillSidAndSkuCode(shelvesId,goodsSkuCode);
}
public String selAcCountBySourceBillSidAndSkuCode(String sourceBillSid, String goodsSkuCode) {
return baseMapper.selAcCountBySourceBillSidAndSkuCode(sourceBillSid,goodsSkuCode);
}
}

Loading…
Cancel
Save