独占库存修改

workplace
yewj 10 months ago
parent e6e0ece77a
commit 854e569282

@ -9,6 +9,7 @@ import com.glxp.api.entity.basic.SysWorkplaceDocumentEntity;
import com.glxp.api.req.basic.WorkBindBusTypeRequest; import com.glxp.api.req.basic.WorkBindBusTypeRequest;
import com.glxp.api.res.basic.SysWorkplaceDocumentResponse; import com.glxp.api.res.basic.SysWorkplaceDocumentResponse;
import com.glxp.api.res.basic.WorkBindWorkResponse; import com.glxp.api.res.basic.WorkBindWorkResponse;
import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -44,6 +45,16 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
.eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, busType).last("limit 1")); .eq(SysWorkplaceDocumentEntity::getDocumentTypeCode, busType).last("limit 1"));
} }
public Boolean isOnlyInv(Long workPlaceCode, String busType) {
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = findByWorkplaceCode(workPlaceCode, busType);
if (IntUtil.value(sysWorkplaceDocumentEntity.getMonopoly()) == 0) {
return false;
} else
return true;
}
public Boolean bindBusType(WorkBindBusTypeRequest request, Long userId) { public Boolean bindBusType(WorkBindBusTypeRequest request, Long userId) {
// List<String> documentTypeCodes = request.getDocumentTypeCode(); // List<String> documentTypeCodes = request.getDocumentTypeCode();
// for (String documentTypeCode: documentTypeCodes) { // for (String documentTypeCode: documentTypeCodes) {

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

Loading…
Cancel
Save