|
|
|
@ -7,11 +7,14 @@ import cn.hutool.core.util.IdUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoCodeEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
|
|
|
|
|
import com.glxp.api.req.inout.IoSplitFifoInvRequest;
|
|
|
|
|
import com.glxp.api.res.inout.IoSplitInvResponse;
|
|
|
|
|
import com.glxp.api.service.basic.SysWorkplaceDocumentService;
|
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
|
import org.apache.xpath.operations.Bool;
|
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
@ -31,7 +34,16 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
IoSplitFifoCodeService splitFifoCodeService;
|
|
|
|
|
@Resource
|
|
|
|
|
SysWorkplaceDocumentService sysWorkplaceDocumentService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 插入库存
|
|
|
|
|
*
|
|
|
|
|
* @param codeList
|
|
|
|
|
* @param workPlaceCode
|
|
|
|
|
* @param busType
|
|
|
|
|
*/
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void insertInv(List<IoCodeEntity> codeList, Long workPlaceCode, String busType) {
|
|
|
|
|
|
|
|
|
@ -65,7 +77,7 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (IoSplitFifoCodeEntity ioSplitFifoCodeEntity : splitCodeEntities) {
|
|
|
|
|
|
|
|
|
|
Boolean isOnlyInv = sysWorkplaceDocumentService.isOnlyInv(ioSplitFifoCodeEntity.getWorkPlaceCode(), ioSplitFifoCodeEntity.getBusType());
|
|
|
|
|
IoSplitFifoInv splitFifoInv = findByFifoCode(ioSplitFifoCodeEntity);
|
|
|
|
|
if (splitFifoInv != null) {
|
|
|
|
|
splitFifoInv.setInCount(IntUtil.value(splitFifoInv.getInCount()) + IntUtil.value(ioSplitFifoCodeEntity.getTotalCount()));
|
|
|
|
@ -78,7 +90,6 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
.invCode(ioSplitFifoCodeEntity.getInvCode())
|
|
|
|
|
.productType(ioSplitFifoCodeEntity.getProductType())
|
|
|
|
|
.fifoSplit(ioSplitFifoCodeEntity.getFifoSplit())
|
|
|
|
|
.busType(ioSplitFifoCodeEntity.getBusType())
|
|
|
|
|
.relId(ioSplitFifoCodeEntity.getRelId())
|
|
|
|
|
.batchNo(ioSplitFifoCodeEntity.getBatchNo())
|
|
|
|
|
.produceDate(ioSplitFifoCodeEntity.getProduceDate())
|
|
|
|
@ -94,17 +105,22 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
.remark(null)
|
|
|
|
|
.enableRemind(false)
|
|
|
|
|
.invRemindCount(0).build();
|
|
|
|
|
if (isOnlyInv) {
|
|
|
|
|
splitFifoInv.setBusType(ioSplitFifoCodeEntity.getBusType());
|
|
|
|
|
}
|
|
|
|
|
save(splitFifoInv);
|
|
|
|
|
}
|
|
|
|
|
ioSplitFifoCodeEntity.setInvIdFk(splitFifoInv.getId());
|
|
|
|
|
}
|
|
|
|
|
splitFifoCodeService.saveBatch(splitCodeEntities);
|
|
|
|
|
|
|
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
|
|
// splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode());
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 移除库存
|
|
|
|
|
*
|
|
|
|
|
* @param codeList
|
|
|
|
|
* @param workPlaceCode
|
|
|
|
|
*/
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void removeInv(List<IoCodeEntity> codeList, Long workPlaceCode) {
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>();
|
|
|
|
@ -133,20 +149,16 @@ public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoS
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//todo 根据工位,产品ID,批次号,供应商 进行库存表进行移除
|
|
|
|
|
|
|
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
|
|
// splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode());
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IoSplitFifoInv findByFifoCode(IoSplitFifoCodeEntity ioSplitFifoCodeEntity) {
|
|
|
|
|
Boolean isOnlyInv = sysWorkplaceDocumentService.isOnlyInv(ioSplitFifoCodeEntity.getWorkPlaceCode(), ioSplitFifoCodeEntity.getBusType());
|
|
|
|
|
IoSplitFifoInv splitFifoInv = getOne(new LambdaQueryWrapper<IoSplitFifoInv>()
|
|
|
|
|
.eq(IoSplitFifoInv::getRelId, ioSplitFifoCodeEntity.getRelId())
|
|
|
|
|
.eq(IoSplitFifoInv::getWorkPlaceCode, ioSplitFifoCodeEntity.getWorkPlaceCode())
|
|
|
|
|
.eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBatchNo()), IoSplitFifoInv::getBatchNo, ioSplitFifoCodeEntity.getBatchNo())
|
|
|
|
|
.eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()), IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
|
|
|
|
|
.eq(StrUtil.isNotEmpty(ioSplitFifoCodeEntity.getBusType()) && isOnlyInv, IoSplitFifoInv::getBusType, ioSplitFifoCodeEntity.getBusType())
|
|
|
|
|
.eq(ioSplitFifoCodeEntity.getSupId() != null, IoSplitFifoInv::getSupId, ioSplitFifoCodeEntity.getSupId()).last("limit 1"));
|
|
|
|
|
|
|
|
|
|
return splitFifoInv;
|
|
|
|
|