|
|
@ -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); |
|
|
|
} |
|
|
|
} |
|
|
|