|
@ -425,12 +425,100 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 修改保存取消发货 (后续完善) |
|
|
* 修改保存取消发货 |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
@Override |
|
|
@Override |
|
|
public int updateCancelShipping(SysSalesShippingInform sysSalesShippingInform) { |
|
|
public int updateCancelShipping(SysSalesShippingInform sysSalesShippingInform) { |
|
|
|
|
|
|
|
|
return 1; |
|
|
String loginName = ShiroUtils.getLoginName(); |
|
|
|
|
|
String outOrderCode = sysSalesShippingInform.getOutOrderCode(); |
|
|
|
|
|
List<SysSalesShippingInformDetail> sysSalesShippingInformDetails = shippingInformDetailMapper.selectSysSalesShippingInformDetailByCode(outOrderCode); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (SysSalesShippingInformDetail sysSalesShippingInformDetail : sysSalesShippingInformDetails) { |
|
|
|
|
|
String materialNo = sysSalesShippingInformDetail.getMaterialNo(); |
|
|
|
|
|
Integer thisShippingNum = sysSalesShippingInformDetail.getThisShippingNum(); |
|
|
|
|
|
WarehouseInventoryInquiry inventoryInquiry = inventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); |
|
|
|
|
|
Integer availableStockNum = Optional.ofNullable(inventoryInquiry.getAvailableStockNum()) |
|
|
|
|
|
.orElse(0); |
|
|
|
|
|
Integer sharedStockNum = Optional.ofNullable(inventoryInquiry.getSharedAvailableStockNum()) |
|
|
|
|
|
.orElse(0); |
|
|
|
|
|
Integer fixedStockNum = Optional.ofNullable(inventoryInquiry.getFixedAvailableStockNum()) |
|
|
|
|
|
.orElse(0); |
|
|
|
|
|
Integer lockedStockNum = Optional.ofNullable(inventoryInquiry.getLockStockNum()) |
|
|
|
|
|
.orElse(0); |
|
|
|
|
|
Integer fixedStockAllocatedNum = Optional.ofNullable(sysSalesShippingInformDetail.getFixedStockAllocatedNum()) |
|
|
|
|
|
.orElse(0);//本次领料占用固定库存数
|
|
|
|
|
|
Integer sharedStockAllocatedNum = Optional.ofNullable(sysSalesShippingInformDetail.getSharedStockAllocatedNum()) |
|
|
|
|
|
.orElse(0);//本次领料占用共享库存数
|
|
|
|
|
|
sharedStockNum = sharedStockNum + sharedStockAllocatedNum; |
|
|
|
|
|
fixedStockNum = fixedStockNum + fixedStockAllocatedNum; |
|
|
|
|
|
availableStockNum = availableStockNum + thisShippingNum;//可用库存数返还
|
|
|
|
|
|
lockedStockNum = lockedStockNum - thisShippingNum;//锁定数减少
|
|
|
|
|
|
|
|
|
|
|
|
inventoryInquiry.setAvailableStockNum(availableStockNum); |
|
|
|
|
|
inventoryInquiry.setSharedAvailableStockNum(sharedStockNum); |
|
|
|
|
|
inventoryInquiry.setFixedAvailableStockNum(fixedStockNum); |
|
|
|
|
|
inventoryInquiry.setLockStockNum(lockedStockNum); |
|
|
|
|
|
|
|
|
|
|
|
inventoryInquiry.setUpdateBy(loginName); |
|
|
|
|
|
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); |
|
|
|
|
|
int inventoryUpdateResult = inventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); |
|
|
|
|
|
if (inventoryUpdateResult<=0){ |
|
|
|
|
|
throw new BusinessException("更新库存查询记录失败"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
AfterSalesShippingDevice afterSalesShippingDevice = new AfterSalesShippingDevice(); |
|
|
|
|
|
afterSalesShippingDevice.setMaterialNo(materialNo); |
|
|
|
|
|
afterSalesShippingDevice.setOutOrderCode(outOrderCode); |
|
|
|
|
|
List<AfterSalesShippingDevice> oldAfterSalesShippingDevices = salesShippingDeviceMapper.selectShippingDeviceWithCancelShipping(afterSalesShippingDevice); |
|
|
|
|
|
if (!CollectionUtils.isEmpty(oldAfterSalesShippingDevices)){ |
|
|
|
|
|
oldAfterSalesShippingDevices.forEach(item->{ |
|
|
|
|
|
item.setAddShippingDeviceFlag("1"); |
|
|
|
|
|
item.setOutOrderCode(null); |
|
|
|
|
|
item.setSnCode(null); |
|
|
|
|
|
item.setUpdateBy(loginName); |
|
|
|
|
|
item.setUpdateTime(new Date()); |
|
|
|
|
|
}); |
|
|
|
|
|
int updateAfterSalesShippingDeviceResult = salesShippingDeviceMapper.batchUpdateAfterSalesShippingDevices(oldAfterSalesShippingDevices); |
|
|
|
|
|
if (updateAfterSalesShippingDeviceResult <= 0){ |
|
|
|
|
|
throw new BusinessException("更新出货设备数据失败"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//取消仓库出库单
|
|
|
|
|
|
WarehouseOutOrder warehouseOutOrder = new WarehouseOutOrder(); |
|
|
|
|
|
warehouseOutOrder.setOutOrderCode(outOrderCode); |
|
|
|
|
|
warehouseOutOrder.setWarehouseOutStatus("8"); |
|
|
|
|
|
warehouseOutOrder.setUpdateBy(loginName); |
|
|
|
|
|
warehouseOutOrder.setUpdateTime(new Date()); |
|
|
|
|
|
int updateWarehouseOutOrderResult = warehouseOutOrderMapper.updateWarehouseOutOrderByCode(warehouseOutOrder); |
|
|
|
|
|
if (updateWarehouseOutOrderResult <= 0){ |
|
|
|
|
|
throw new BusinessException("更新出库单数据失败"); |
|
|
|
|
|
} |
|
|
|
|
|
//取消售后出库单
|
|
|
|
|
|
AftersalesOutOrder aftersalesOutOrder = new AftersalesOutOrder(); |
|
|
|
|
|
aftersalesOutOrder.setOutOrderCode(outOrderCode); |
|
|
|
|
|
aftersalesOutOrder.setWarehouseOutStatus("8"); |
|
|
|
|
|
aftersalesOutOrder.setUpdateBy(loginName); |
|
|
|
|
|
aftersalesOutOrder.setUpdateTime(new Date()); |
|
|
|
|
|
int updateAftersalesOutOrderResult = aftersalesOutOrderMapper.updateAftersalesOutOrderByOutOrderCode(aftersalesOutOrder); |
|
|
|
|
|
if (updateAftersalesOutOrderResult <= 0){ |
|
|
|
|
|
throw new BusinessException("更新售后出库单数据失败"); |
|
|
|
|
|
} |
|
|
|
|
|
//取消销售出货通知单
|
|
|
|
|
|
sysSalesShippingInform.setOutOrderCode(outOrderCode); |
|
|
|
|
|
sysSalesShippingInform.setWarehouseOutStatus("8"); |
|
|
|
|
|
sysSalesShippingInform.setUpdateBy(loginName); |
|
|
|
|
|
sysSalesShippingInform.setUpdateTime(new Date()); |
|
|
|
|
|
int updateShippingInformResult = sysSalesShippingInformMapper.updateSysSalesShippingInformByOutOrderCode(sysSalesShippingInform); |
|
|
|
|
|
if (updateShippingInformResult <= 0){ |
|
|
|
|
|
throw new BusinessException("更新销售出货通知单数据失败"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return updateShippingInformResult; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|