You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/service/inout/IoSplitFifoInvService.java

89 lines
4.1 KiB
Java

10 months ago
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;
10 months ago
import org.springframework.stereotype.Service;
10 months ago
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
10 months ago
import java.util.List;
10 months ago
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());
});
}
10 months ago
}