Browse Source

修改上架单

master
fanzongzhe0036 1 month ago
parent
commit
7ebc048ce6
  1. 24
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java
  2. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java
  3. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java
  4. 20
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml
  5. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailService.java
  6. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java
  7. 29
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml
  8. 125
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java
  9. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetail.java
  10. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailDto.java

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

@ -221,6 +221,8 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetail.setShelfCount(BigDecimal.ZERO);
wmsReceiptBillDetail.setWaitShelfCount(new BigDecimal(detail.getActualInCount()));
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
}
if (type == 1) {
@ -277,6 +279,8 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetail.setShelfCount(BigDecimal.ZERO);
wmsReceiptBillDetail.setWaitShelfCount(new BigDecimal(detail.getActualInCount()));
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
}
if (type == 1) {
@ -341,9 +345,9 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i);
String detailsSid = wmsReceiptBillDetailDto2.getDetailsSid();
String allotmentNum = baseMapper.selallotmentNumByReceiptDetailSid(detailsSid);
wmsReceiptBillDetailDto2.setAllotmentNum(allotmentNum);
// String detailsSid = wmsReceiptBillDetailDto2.getDetailsSid();
// String allotmentNum = baseMapper.selallotmentNumByReceiptDetailSid(detailsSid);
// wmsReceiptBillDetailDto2.setAllotmentNum(w);
int a = i + 1;
wmsReceiptBillDetailDto2.setXh(String.valueOf(a));
List<WmsReceiptBillDetailBatchDto2> pcList2 = wmsReceiptBillDetailBatchService.getDetailsInit(sid, wmsReceiptBillDetailDto2.getDetailsSid());
@ -401,8 +405,8 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
shelfBillDto.setDeptSid(wmsReceiptBill.getDeptSid());
shelfBillDto.setDeptName(wmsReceiptBill.getDeptName());
//查询所有已上架的商品
List<String> stringList = wmsShelfBillDetailService.selectReceiptSidList();
stringList.removeAll(Collections.singleton(null));
// List<String> stringList = wmsShelfBillDetailService.selectReceiptSidList();
// stringList.removeAll(Collections.singleton(null));
//获取收货单据
shelfBillDto.setCreateTime(DateUtil.today());//单据日期
shelfBillDto.setSourceBillNo(wmsReceiptBill.getBillNo());//来源单编号
@ -413,21 +417,19 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
}
List<WmsShelfBillDetailDto> detailDtos = new ArrayList<>();
//获取收货单据的明细
List<WmsReceiptBillDetail> wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectByBillSid(sid, stringList);
List<WmsReceiptBillDetail> wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectListByBillSid(sid);
wmsReceiptBillDetailsList.removeAll(Collections.singleton(null));
if (!wmsReceiptBillDetailsList.isEmpty()) {
for (int i = 0; i < wmsReceiptBillDetailsList.size(); i++) {
WmsReceiptBillDetail v = wmsReceiptBillDetailsList.get(i);
// WmsReceiptBillDetailBatch wmsReceiptBillDetailBatch = wmsReceiptBillDetailBatchService.selectByDetails(v.getSid());
WmsShelfBillDetailDto shelfInitListVo = new WmsShelfBillDetailDto();
BeanUtil.copyProperties(v, shelfInitListVo, "sid");
shelfInitListVo.setReceiptDetailSid(v.getSid());
shelfInitListVo.setCount(v.getActualInCount().toString());
// shelfInitListVo.setBatchNumber(wmsReceiptBillDetailBatch.getBatchNumber());
// shelfInitListVo.setWarehouseSid(v.getWarehouseSid());
// shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid());
// shelfInitListVo.setWarehouseRackCode("");
shelfInitListVo.setActualCount("0");
shelfInitListVo.setNoShelfCount(v.getActualInCount().toString());
detailDtos.add(shelfInitListVo);
wmsReceiptBillDetailService.updateById(v);
}
}
shelfBillDto.setList(detailDtos);

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java

@ -58,8 +58,10 @@ public class WmsReceiptBillDetail extends BaseEntity {
@ApiModelProperty("打印次数")
private Integer printCount;
@ApiModelProperty("已上架数量")
@ApiModelProperty("已分配数量")
private BigDecimal shelfCount;
@ApiModelProperty("待分配数量")
private BigDecimal waitShelfCount;
// @ApiModelProperty("仓库名称")
// private String warehouseName;
// @ApiModelProperty("库位sid")

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java

@ -24,4 +24,6 @@ public interface WmsReceiptBillDetailMapper extends BaseMapper<WmsReceiptBillDet
List<WmsReceiptBillDetail> selByBillSid(@Param("sid") String sid);
List<WmsReceiptBillDetail> selectListByBillSid(@Param("sourceBillSid") String sourceBillSid);
List<WmsReceiptBillDetail> selectInitListByBillSid(@Param("sourceBillSid") String sourceBillSid);
}

20
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml

@ -31,7 +31,8 @@
wrbd.state,
wrbd.sid detailsSid,
wrbd.goodsSpuName,
wrbd.orderCount
wrbd.orderCount,
wrbd.shelfCount allotmentNum
from wms_receipt_bill_detail wrbd
where billSid = #{sid}
</select>
@ -50,15 +51,26 @@
<select id="selectByBillSidAndGoodsSkuCode"
resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail">
select *
from wms_receipt_bill_detail where billSid = #{sourceBillSid} and goodsSkuCode = #{goodsSkuCode}
from wms_receipt_bill_detail
where billSid = #{sourceBillSid}
and goodsSkuCode = #{goodsSkuCode}
</select>
<select id="selByBillSid" resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail">
select *
from wms_receipt_bill_detail where billSid = #{sid}
from wms_receipt_bill_detail
where billSid = #{sid}
</select>
<select id="selectListByBillSid"
resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail">
select *
from wms_receipt_bill_detail where billSid = #{sourceBillSid}
from wms_receipt_bill_detail
where billSid = #{sourceBillSid}
</select>
<select id="selectInitListByBillSid"
resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail">
select *
from wms_receipt_bill_detail
where billSid = #{sourceBillSid}
and waitShelfCount > 0
</select>
</mapper>

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailService.java

@ -8,7 +8,6 @@ import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailB
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@ -86,4 +85,8 @@ public class WmsReceiptBillDetailService extends MybatisBaseService<WmsReceiptBi
public List<WmsReceiptBillDetail> selectListByBillSid(String sourceBillSid) {
return baseMapper.selectListByBillSid(sourceBillSid);
}
public List<WmsReceiptBillDetail> selectInitListByBillSid(String sid) {
return baseMapper.selectInitListByBillSid(sid);
}
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.java

@ -26,4 +26,8 @@ public interface WmsShelfBillMapper extends BaseMapper<WmsShelfBill> {
IPage<AppShelfBillListVo> applistPage(IPage<WmsShelfBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsShelfBill> qw);
int getToDoNum(@Param("userSid") String userSid);
int selBillStateCount(String join);
int selReceiptBillDistributeType(String sid);
}

29
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillMapper.xml

@ -73,4 +73,33 @@
select count(*)
from wms_shelf_bill wsb where wsb.upShelfSid = #{userSid} and wsb.billStateValue != '已完成'
</select>
<select id="selBillStateCount" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM wms_shelf_bill
WHERE billState != 0
and find_in_set(sid, #{list})
</select>
<select id="selReceiptBillDistributeType" resultType="java.lang.Integer">
SELECT
CASE
WHEN
a.actualInCount = a.waitShelfCount
AND a.shelfCount = 0 THEN 0
WHEN a.actualInCount > a.waitShelfCount
AND a.shelfCount > 0 AND a.actualInCount != a.shelfCount THEN 2
WHEN a.actualInCount = a.shelfCount
AND a.waitShelfCount = 0 THEN 1
END AS distributeType
FROM
(
SELECT
IFNULL( SUM( actualInCount ), 0 ) actualInCount,
IFNULL( SUM( shelfCount ), 0 ) shelfCount,
IFNULL( SUM( waitShelfCount ), 0 ) waitShelfCount
FROM
wms_receipt_bill_detail AS d
WHERE
d.billSid = #{sid}
) a
</select>
</mapper>

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

@ -174,8 +174,16 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
);
//单据状态
if (StringUtils.isNotBlank(query.getBillState())) {
qw.like("wsb.billState", query.getBillState());
String billState = query.getBillState();
if (billState.equals("新建")) {
qw.eq("wsb.billState", "0");
} else if (billState.equals("已完成")) {
qw.eq("wsb.billState", "1");
} else if (billState.equals("部分上架")) {
qw.eq("wsb.billState", "2");
}
}
qw.orderByDesc("wsb.createTime");
IPage<WmsShelfBill> page = PagerUtil.queryToPage(pq);
IPage<WmsShelfBillVo> pagging = baseMapper.listPage(page, qw);
PagerVo<WmsShelfBillVo> p = PagerUtil.pageToVo(pagging, null);
@ -213,6 +221,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
shelfCount = receiptBillDetail.getShelfCount();
}
receiptBillDetail.setShelfCount(shelfCount.add(actualCount));
receiptBillDetail.setWaitShelfCount(receiptBillDetail.getActualInCount().subtract(actualCount).subtract(shelfCount));
wmsReceiptBillDetailService.updateById(receiptBillDetail);
}
}
@ -229,37 +238,8 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
baseMapper.insert(wmsShelfBill);
if (StringUtils.isNotBlank(dto.getSourceBillSid())) {
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(dto.getSourceBillSid());
List<WmsReceiptBillDetail> vos = wmsReceiptBillDetailService.selectListByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsReceiptBillDetail vo : vos) {
BigDecimal count = BigDecimal.ZERO;
BigDecimal actualCount = BigDecimal.ZERO;
BigDecimal shelfCount = BigDecimal.ZERO;
if (null != vo.getShelfCount()) {
shelfCount = vo.getShelfCount();
}
if (null != vo.getActualInCount()) {
actualCount = vo.getActualInCount();
}
count = actualCount.subtract(shelfCount);
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsReceiptBill.setDistributeType(2);
} else {
wmsReceiptBill.setDistributeType(1);
for (Integer integer : integers) {
if (integer == 1) {
wmsReceiptBill.setDistributeType(2);
}
}
}
}
int receiptBillState = baseMapper.selReceiptBillDistributeType(wmsReceiptBill.getSid());
wmsReceiptBill.setDistributeType(receiptBillState);
wmsReceiptBillService.updateById(wmsReceiptBill);
}
@ -293,6 +273,7 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
shelfCount = receiptBillDetail.getShelfCount();
}
receiptBillDetail.setShelfCount(shelfCount.add(actualCount));
receiptBillDetail.setWaitShelfCount(receiptBillDetail.getActualInCount().subtract(actualCount).subtract(shelfCount));
wmsReceiptBillDetailService.updateById(receiptBillDetail);
}
}
@ -307,42 +288,11 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
baseMapper.updateById(wmsShelfBill);
if (StringUtils.isNotBlank(dto.getSourceBillSid())) {
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(dto.getSourceBillSid());
List<WmsReceiptBillDetail> vos = wmsReceiptBillDetailService.selectListByBillSid(dto.getSourceBillSid());
if (!vos.isEmpty()) {
HashSet<Integer> integers = new HashSet<>();
for (WmsReceiptBillDetail vo : vos) {
BigDecimal count = BigDecimal.ZERO;
BigDecimal actualCount = BigDecimal.ZERO;
BigDecimal shelfCount = BigDecimal.ZERO;
if (null != vo.getShelfCount()) {
shelfCount = vo.getShelfCount();
}
if (null != vo.getActualInCount()) {
actualCount = vo.getActualInCount();
}
count = actualCount.subtract(shelfCount);
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsReceiptBill.setDistributeType(2);
} else {
wmsReceiptBill.setDistributeType(1);
for (Integer integer : integers) {
if (integer == 1) {
wmsReceiptBill.setDistributeType(2);
}
}
}
}
int receiptBillState = baseMapper.selReceiptBillDistributeType(wmsReceiptBill.getSid());
wmsReceiptBill.setDistributeType(receiptBillState);
wmsReceiptBillService.updateById(wmsReceiptBill);
}
}
// saveWmsInventory(sid);
return rb.success().setData(sid);
}
@ -444,8 +394,29 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidss = Arrays.asList(sids);
int count = baseMapper.selBillStateCount(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("请选择单据状态为新建的数据进行删除!");
}
for (int i = 0; i < sidss.size(); i++) {
String s = sidss.get(i);
List<WmsShelfBillDetail> details = wmsShelfBillDetailService.selectByMainSid(s);
WmsShelfBill wmsShelfBill = fetchBySid(s);
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(wmsShelfBill.getSourceBillSid());
for (WmsShelfBillDetail detail : details) {
BigDecimal needCount = detail.getCount();//上架单需上架数量
String receiptDetailSid = detail.getReceiptDetailSid();
WmsReceiptBillDetail receiptBillDetail = wmsReceiptBillDetailService.fetchBySid(receiptDetailSid);
BigDecimal shelfCount = receiptBillDetail.getShelfCount();//收货单已分配数量
BigDecimal waitShelfCount = receiptBillDetail.getWaitShelfCount();//收货单待分配数量
receiptBillDetail.setShelfCount(shelfCount.subtract(needCount));
receiptBillDetail.setWaitShelfCount(waitShelfCount.add(needCount));
wmsReceiptBillDetailService.updateById(receiptBillDetail);
}
//查询收货单分配状态
int receiptBillState = baseMapper.selReceiptBillDistributeType(wmsReceiptBill.getSid());
wmsReceiptBill.setDistributeType(receiptBillState);
wmsReceiptBillService.updateById(wmsReceiptBill);
wmsShelfBillDetailMapper.deleteByMainSid(s);
}
delBySids(sids);
@ -512,9 +483,6 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
shelfInitVo.setUseOrgSid(createOrgSid);
}
}
//查询所有已上架的商品
// List<String> stringList = wmsShelfBillDetailService.selectReceiptSidList();
// stringList.removeAll(Collections.singleton(null));
//获取收货单据
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(sid);
shelfInitVo.setCreateTime(DateUtil.today());//单据日期
@ -526,31 +494,16 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
}
List<ShelfInitListVo> list = new ArrayList<>();
//获取收货单据的明细
// List<WmsReceiptBillDetail> wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectByBillSid(sid, stringList);
List<WmsReceiptBillDetail> wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectListByBillSid(sid);
List<WmsReceiptBillDetail> wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectInitListByBillSid(sid);
wmsReceiptBillDetailsList.removeAll(Collections.singleton(null));
if (!wmsReceiptBillDetailsList.isEmpty()) {
for (int i = 0; i < wmsReceiptBillDetailsList.size(); i++) {
WmsReceiptBillDetail v = wmsReceiptBillDetailsList.get(i);
// WmsReceiptBillDetailBatch wmsReceiptBillDetailBatch = wmsReceiptBillDetailBatchService.selectByDetails(v.getSid());
ShelfInitListVo shelfInitListVo = new ShelfInitListVo();
BeanUtil.copyProperties(v, shelfInitListVo, "sid");
shelfInitListVo.setReceiptDetailSid(v.getSid());
BigDecimal shelfCount = BigDecimal.ZERO;
if (null != v.getShelfCount()) {
shelfCount = v.getShelfCount();
}
BigDecimal actualInCount = BigDecimal.ZERO;
if (null != v.getActualInCount()) {
actualInCount = v.getActualInCount();
}
BigDecimal subtract = actualInCount.subtract(shelfCount);
shelfInitListVo.setCount(subtract.toString());
shelfInitListVo.setMaxCount(subtract.toString());
// shelfInitListVo.setBatchNumber(wmsReceiptBillDetailBatch.getBatchNumber());
// shelfInitListVo.setWarehouseSid(v.getWarehouseSid());
// shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid());
// shelfInitListVo.setWarehouseRackCode("");
shelfInitListVo.setCount(v.getWaitShelfCount().toString());
shelfInitListVo.setMaxCount(v.getWaitShelfCount().toString());
list.add(shelfInitListVo);
}
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetail.java

@ -39,5 +39,6 @@ public class WmsShelfBillDetail extends BaseEntity {
private BigDecimal actualCount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("未上架数量")
private BigDecimal noShelfCount;
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbilldetail/WmsShelfBillDetailDto.java

@ -35,5 +35,6 @@ public class WmsShelfBillDetailDto {
private String actualCount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("未上架数量")
private String noShelfCount;
}

Loading…
Cancel
Save