|
|
@ -181,7 +181,13 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
return billNo; |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto) { |
|
|
|
/** |
|
|
|
* |
|
|
|
* @param dto |
|
|
|
* @param type 0 保存,1确认 |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto,int type) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
|
if (StringUtils.isBlank(sid)) { |
|
|
@ -198,51 +204,34 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
for (WmsReceiptBillDetailDto2 detail : list) { |
|
|
|
String goodsSpuSid = detail.getGoodsSpuSid(); |
|
|
|
String sourceBillSid = dto.getSourceBillSid(); |
|
|
|
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid); |
|
|
|
// String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
|
|
|
|
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid); |
|
|
|
BigDecimal count = new BigDecimal(goodsCount); |
|
|
|
// BigDecimal count = new BigDecimal(goodsCount);
|
|
|
|
if (type == 1) { |
|
|
|
//确认时,统计预期到货通知单实收数量
|
|
|
|
if (null != goods) { |
|
|
|
BigDecimal orderCount = new BigDecimal(goods.getOrderCount()); |
|
|
|
BigDecimal accCount = count.add(new BigDecimal(detail.getActualInCount())); |
|
|
|
BigDecimal waitInCount = goods.getWaitInCount(); |
|
|
|
BigDecimal actualInCount = goods.getActualInCount(); |
|
|
|
BigDecimal accCount = actualInCount.add(new BigDecimal(detail.getActualInCount())); |
|
|
|
goods.setActualInCount(accCount); |
|
|
|
goods.setWaitInCount(orderCount.subtract(accCount)); |
|
|
|
goods.setWaitInCount(waitInCount.subtract(new BigDecimal(detail.getActualInCount()))); |
|
|
|
wmsAnsBillDetailService.updateById(goods); |
|
|
|
} |
|
|
|
} |
|
|
|
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); |
|
|
|
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid"); |
|
|
|
wmsReceiptBillDetail.setBillSid(sid); |
|
|
|
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail); |
|
|
|
} |
|
|
|
if (type == 1) { |
|
|
|
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 (integers.size() > 1) { |
|
|
|
wmsAnsBill.setBillState(1); |
|
|
|
} else { |
|
|
|
wmsAnsBill.setBillState(2); |
|
|
|
for (Integer integer : integers) { |
|
|
|
if (integer == 1) { |
|
|
|
wmsAnsBill.setBillState(1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
int billState = selAnsBillState(dto.getSourceBillSid()); |
|
|
|
wmsAnsBill.setBillState(billState); |
|
|
|
wmsAnsBillService.updateById(wmsAnsBill); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
wmsReceiptBill.setBillState("0"); |
|
|
|
String applyCode = getApplyCode(dto.getCreateOrgSid()); |
|
|
|
wmsReceiptBill.setBillNo(applyCode); |
|
|
@ -271,50 +260,33 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
for (WmsReceiptBillDetailDto2 detail : list) { |
|
|
|
String goodsSpuSid = detail.getGoodsSpuSid(); |
|
|
|
String sourceBillSid = dto.getSourceBillSid(); |
|
|
|
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid); |
|
|
|
// String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
|
|
|
|
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid); |
|
|
|
BigDecimal count = new BigDecimal(goodsCount); |
|
|
|
// BigDecimal count = new BigDecimal(goodsCount);
|
|
|
|
if (type == 1) { |
|
|
|
//确认时,统计预期到货通知单实收数量
|
|
|
|
if (null != goods) { |
|
|
|
BigDecimal orderCount = new BigDecimal(goods.getOrderCount()); |
|
|
|
BigDecimal accCount = count.add(new BigDecimal(detail.getActualInCount())); |
|
|
|
BigDecimal waitInCount = goods.getWaitInCount(); |
|
|
|
BigDecimal actualInCount = goods.getActualInCount(); |
|
|
|
BigDecimal accCount = actualInCount.add(new BigDecimal(detail.getActualInCount())); |
|
|
|
goods.setActualInCount(accCount); |
|
|
|
goods.setWaitInCount(orderCount.subtract(accCount)); |
|
|
|
goods.setWaitInCount(waitInCount.subtract(new BigDecimal(detail.getActualInCount()))); |
|
|
|
wmsAnsBillDetailService.updateById(goods); |
|
|
|
} |
|
|
|
} |
|
|
|
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); |
|
|
|
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid"); |
|
|
|
wmsReceiptBillDetail.setBillSid(sid); |
|
|
|
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail); |
|
|
|
} |
|
|
|
if (type == 1) { |
|
|
|
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 (integers.size() > 1) { |
|
|
|
wmsAnsBill.setBillState(1); |
|
|
|
} else { |
|
|
|
wmsAnsBill.setBillState(2); |
|
|
|
for (Integer integer : integers) { |
|
|
|
if (integer == 1) { |
|
|
|
wmsAnsBill.setBillState(1); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
int billState = selAnsBillState(dto.getSourceBillSid()); |
|
|
|
wmsAnsBill.setBillState(billState); |
|
|
|
wmsAnsBillService.updateById(wmsAnsBill); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
baseMapper.updateById(wmsReceiptBill); |
|
|
@ -322,6 +294,11 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
return rb.success().setData(sid); |
|
|
|
} |
|
|
|
|
|
|
|
private int selAnsBillState(String sourceBillSid) { |
|
|
|
return baseMapper.selAnsBillState(sourceBillSid); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<WmsReceiptBillVo> getInitDetails(String sourceSid) { |
|
|
|
ResultBean<WmsReceiptBillVo> rb = ResultBean.fireFail(); |
|
|
|
WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo(); |
|
|
@ -396,10 +373,17 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i); |
|
|
|
wmsReceiptBillDetailDto2.setState(1); |
|
|
|
//判断确认时,实收数量不能大于待收货数量
|
|
|
|
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(wmsReceiptBillDetailDto2.getGoodsSpuSid(), dto.getSourceBillSid()); |
|
|
|
BigDecimal waitInCount = goods.getWaitInCount(); |
|
|
|
String actualInCount = wmsReceiptBillDetailDto2.getActualInCount(); |
|
|
|
if (new BigDecimal(actualInCount).compareTo(waitInCount) > 0) { |
|
|
|
return rb.setMsg("实收数量请勿大于待收货数量!"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
dto.setList(list); |
|
|
|
ResultBean<String> resultBean = saveOrUpdateBill2(dto); |
|
|
|
ResultBean<String> resultBean = saveOrUpdateBill2(dto,1); |
|
|
|
String sid = resultBean.getData(); |
|
|
|
WmsReceiptBill wmsReceiptBill = fetchBySid(sid); |
|
|
|
if (null != wmsReceiptBill) { |
|
|
|