|
|
|
|
@ -6,18 +6,15 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
import org.dromara.common.core.utils.DateUtils;
|
|
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
|
|
import org.dromara.system.api.RemoteCodeRuleService;
|
|
|
|
|
import org.dromara.wms.domain.*;
|
|
|
|
|
import org.dromara.wms.domain.WmsOutStockBill;
|
|
|
|
|
import org.dromara.wms.domain.WmsOutStockDetails;
|
|
|
|
|
import org.dromara.wms.domain.bo.WmsOutStockBillBo;
|
|
|
|
|
import org.dromara.wms.domain.vo.WmsOutStockBillVo;
|
|
|
|
|
import org.dromara.wms.mapper.WmsInventoryDetailsMapper;
|
|
|
|
|
import org.dromara.wms.mapper.WmsInventoryLedgerMapper;
|
|
|
|
|
import org.dromara.wms.mapper.WmsOutStockBillMapper;
|
|
|
|
|
import org.dromara.wms.mapper.WmsOutStockDetailsMapper;
|
|
|
|
|
import org.dromara.wms.service.IWmsInventoryDetailsService;
|
|
|
|
|
@ -25,8 +22,6 @@ import org.dromara.wms.service.IWmsOutStockBillService;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
@ -140,8 +135,22 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateByBo(WmsOutStockBillBo bo) {
|
|
|
|
|
WmsOutStockBill update = MapstructUtils.convert(bo, WmsOutStockBill.class);
|
|
|
|
|
boolean b = baseMapper.updateById(update) > 0;
|
|
|
|
|
if (b) {
|
|
|
|
|
// 更新出库单明细
|
|
|
|
|
Long outStockBillId = update.getOutStockBillId();
|
|
|
|
|
MPJLambdaWrapper<WmsOutStockDetails> lqw = JoinWrappers.lambda(WmsOutStockDetails.class)
|
|
|
|
|
.eq(WmsOutStockDetails::getOutStockBillId, outStockBillId);
|
|
|
|
|
wmsOutStockDetailsMapper.delete(lqw);
|
|
|
|
|
List<WmsOutStockDetails> outStockDetailsList = bo.getOutStockDetailsList();
|
|
|
|
|
outStockDetailsList.forEach(item -> {
|
|
|
|
|
item.setOutStockBillId(outStockBillId);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
|
|
wmsOutStockDetailsMapper.insert(outStockDetailsList);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -155,27 +164,57 @@ public class WmsOutStockBillServiceImpl implements IWmsOutStockBillService {
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
|
|
|
|
|
|
|
|
|
return baseMapper.deleteByIds(ids) > 0;
|
|
|
|
|
boolean b = baseMapper.deleteByIds(ids) > 0;
|
|
|
|
|
if (b) {
|
|
|
|
|
// 删除出库单明细
|
|
|
|
|
wmsOutStockDetailsMapper.deleteDetailsByBillIds(ids);
|
|
|
|
|
}
|
|
|
|
|
return b;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean deliver(Long outStockBillId) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WmsOutStockBill wmsOutStockBill = baseMapper.selectById(outStockBillId);
|
|
|
|
|
if (wmsOutStockBill == null) {
|
|
|
|
|
throw new ServiceException("出库单不存在");
|
|
|
|
|
}
|
|
|
|
|
wmsOutStockBill.setOutStockBillStatus(wmsOutStockBill.getProjectId() == null ? "1" : "2");//出库单状态 1出库 2已完成
|
|
|
|
|
baseMapper.updateById(wmsOutStockBill);
|
|
|
|
|
|
|
|
|
|
// 子表
|
|
|
|
|
MPJLambdaWrapper<WmsOutStockDetails> lqw = JoinWrappers.lambda(WmsOutStockDetails.class)
|
|
|
|
|
.selectAll(WmsOutStockDetails.class)
|
|
|
|
|
.eq(WmsOutStockDetails::getOutStockBillId, outStockBillId);
|
|
|
|
|
// 校验出库单是否存在
|
|
|
|
|
List<WmsOutStockDetails> outStockDetailsList = wmsOutStockDetailsMapper.selectList(lqw);
|
|
|
|
|
if (outStockDetailsList == null || outStockDetailsList.isEmpty()) {
|
|
|
|
|
throw new ServiceException("出库单不存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
outStockDetailsList.forEach(item -> {
|
|
|
|
|
item.setOutStockBillId(outStockBillId);
|
|
|
|
|
// 更新出库状态
|
|
|
|
|
WmsOutStockDetails tag = new WmsOutStockDetails();
|
|
|
|
|
tag.setOutStockDetailsId(item.getOutStockDetailsId());
|
|
|
|
|
tag.setOutState("1");
|
|
|
|
|
wmsOutStockDetailsMapper.updateById(tag);
|
|
|
|
|
// 从出库明细中获取库存ID
|
|
|
|
|
Long inventoryId = item.getInventoryDetailsId();
|
|
|
|
|
inventoryDetailsService.outStoreLossInventoryAmount(inventoryId,
|
|
|
|
|
item.getOutStockAmount(),item.getWarehouseId(),item.getBatchNumber(),item.getMaterielId(),"3");
|
|
|
|
|
item.getOutStockAmount(), item.getWarehouseId(), item.getBatchNumber(), item.getMaterielId(), "3");
|
|
|
|
|
});
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Boolean updateOutStockBillProject(WmsOutStockBillBo bo) {
|
|
|
|
|
WmsOutStockBill update = MapstructUtils.convert(bo, WmsOutStockBill.class);
|
|
|
|
|
boolean b = baseMapper.updateById(update) > 0;
|
|
|
|
|
if (b) {
|
|
|
|
|
String outStockBillStatus = update.getOutStockBillStatus();
|
|
|
|
|
if (outStockBillStatus.equals("1")) {
|
|
|
|
|
outStockBillStatus = "2";
|
|
|
|
|
}
|
|
|
|
|
wmsOutStockDetailsMapper.updateOutProjectIdByBillsId(bo.getOutStockBillId(), bo.getProjectId(), outStockBillStatus);
|
|
|
|
|
}
|
|
|
|
|
return b;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|