|
|
|
package com.glxp.api.service.inout;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.glxp.api.entity.inout.IoCodeEntity;
|
|
|
|
import com.glxp.api.entity.inout.IoSplitFifoCodeEntity;
|
|
|
|
import com.glxp.api.util.IntUtil;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.glxp.api.entity.inout.IoSplitFifoInv;
|
|
|
|
import com.glxp.api.dao.inout.IoSplitFifoInvMapper;
|
|
|
|
|
|
|
|
@Service
|
|
|
|
public class IoSplitFifoInvService extends ServiceImpl<IoSplitFifoInvMapper, IoSplitFifoInv> {
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
IoSplitFifoCodeService splitFifoCodeService;
|
|
|
|
|
|
|
|
public void insertInv(List<IoCodeEntity> codeList, Long workPlaceCode) {
|
|
|
|
|
|
|
|
List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>();
|
|
|
|
if (CollUtil.isNotEmpty(codeList)) {
|
|
|
|
for (IoCodeEntity codeEntity : codeList) {
|
|
|
|
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = null;
|
|
|
|
if (StrUtil.isEmpty(codeEntity.getSerialNo())) {
|
|
|
|
ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode);
|
|
|
|
}
|
|
|
|
if (ioSplitFifoCodeEntity != null) {
|
|
|
|
ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) + IntUtil.value(codeEntity.getCount()));
|
|
|
|
ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount());
|
|
|
|
ioSplitFifoCodeEntity.setUpdateTime(new Date());
|
|
|
|
splitFifoCodeService.updateById(ioSplitFifoCodeEntity);
|
|
|
|
} else {
|
|
|
|
IoSplitFifoCodeEntity splitCodeEntity = new IoSplitFifoCodeEntity();
|
|
|
|
BeanUtils.copyProperties(codeEntity, splitCodeEntity);
|
|
|
|
splitCodeEntity.setInBactchNo(codeEntity.getInBatchNo());
|
|
|
|
splitCodeEntity.setScanCount(codeEntity.getCount());
|
|
|
|
splitCodeEntity.setTotalCount(IntUtil.value(splitCodeEntity.getTotalCount()) + codeEntity.getReCount());
|
|
|
|
splitCodeEntity.setSupId(Long.parseLong(codeEntity.getSupId()));
|
|
|
|
splitCodeEntity.setWorkPlaceCode(workPlaceCode);
|
|
|
|
splitCodeEntity.setFifoSplit(codeEntity.getFifoSplit());
|
|
|
|
splitCodeEntity.setId(null);
|
|
|
|
splitCodeEntities.add(splitCodeEntity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
splitFifoCodeService.saveBatch(splitCodeEntities);
|
|
|
|
|
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
|
// splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void removeInv(List<IoCodeEntity> codeList, Long workPlaceCode) {
|
|
|
|
List<IoSplitFifoCodeEntity> splitCodeEntities = new ArrayList<>();
|
|
|
|
if (CollUtil.isNotEmpty(codeList)) {
|
|
|
|
for (IoCodeEntity codeEntity : codeList) {
|
|
|
|
IoSplitFifoCodeEntity ioSplitFifoCodeEntity = splitFifoCodeService.findByCode(codeEntity.getCode(), workPlaceCode);
|
|
|
|
if (StrUtil.isEmpty(codeEntity.getSerialNo())) {
|
|
|
|
if (ioSplitFifoCodeEntity != null) {
|
|
|
|
ioSplitFifoCodeEntity.setScanCount(IntUtil.value(ioSplitFifoCodeEntity.getScanCount()) - IntUtil.value(codeEntity.getCount()));
|
|
|
|
ioSplitFifoCodeEntity.setTotalCount(ioSplitFifoCodeEntity.getTotalCount() + codeEntity.getReCount());
|
|
|
|
ioSplitFifoCodeEntity.setUpdateTime(new Date());
|
|
|
|
splitFifoCodeService.updateById(ioSplitFifoCodeEntity);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
splitCodeEntities.add(ioSplitFifoCodeEntity);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
splitFifoCodeService.removeBatchByIds(splitCodeEntities);
|
|
|
|
ThreadUtil.execAsync(() -> {
|
|
|
|
// splitFifoCodeService.preAllotInv(orderEntity.getWorkPlaceCode());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|