package com.vincent.rsf.server.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.entity.params.PdaGeneralParam; import com.vincent.rsf.server.api.service.PdaOtherService; import com.vincent.rsf.server.manager.entity.Loc; import com.vincent.rsf.server.manager.entity.LocItem; import com.vincent.rsf.server.manager.entity.Transfer; import com.vincent.rsf.server.manager.enums.LocStatusType; import com.vincent.rsf.server.manager.enums.LocStsType; import com.vincent.rsf.server.manager.service.LocItemService; import com.vincent.rsf.server.manager.service.LocService; import com.vincent.rsf.server.manager.service.TransferService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class PdaOtherServiceImpl implements PdaOtherService { @Autowired private TransferService transferService; @Autowired private LocService locService; @Autowired private LocItemService locItemService; @Override public R transferPage(String orderNo, Integer curr, Integer limit) { Page page = new Page<>(curr, limit); LambdaQueryWrapper transferLambdaQueryWrapper = new LambdaQueryWrapper<>(); transferLambdaQueryWrapper.eq(!Cools.isEmpty(orderNo), Transfer::getCode, orderNo); Page page1 = transferService.page(page, transferLambdaQueryWrapper); return R.ok(page1); } @Override public R inspectList(PdaGeneralParam generalParam) { if (Cools.isEmpty(generalParam.getContainerNo())) { throw new CoolException("容器码为空"); } Loc loc = null; try { loc = locService.getOne(new LambdaQueryWrapper().eq(Loc::getBarcode, generalParam.getContainerNo())); }catch (Exception e){ throw new CoolException("数据错误,查询到多条库位"); } if (Cools.isEmpty(loc)) { throw new CoolException("未找到对应的库位"); } if (!loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)){ throw new CoolException("库位不为在库状态"); } List list = locItemService.list(new LambdaQueryWrapper() .eq(LocItem::getLocId, loc.getId()) .eq(!Cools.isEmpty(generalParam.getMatnrCode()),LocItem::getMatnrCode, generalParam.getMatnrCode()) ); if (Cools.isEmpty(list)) { throw new CoolException("库位为在库状态,但库位为空"); } return R.ok(list); } @Override public R inspectConfirm(PdaGeneralParam generalParam) { if (Cools.isEmpty(generalParam.getMatnrList())){ throw new CoolException("参数为空"); } for (LocItem locItem : generalParam.getMatnrList()) { LocItem locItem1 = locItemService.getById(locItem.getId()); if (Cools.isEmpty(locItem1)) { throw new CoolException("数据错误"); } if (locItem1.getStatus().equals(LocStatusType.FREEZE.type)){ continue; } if (locItem.getStatus().equals(LocStatusType.FREEZE.type)){ locItem1.setStatus(LocStatusType.FREEZE.type); locItemService.updateById(locItem1); } } return R.ok(); } @Override public R inspectConfirm2(PdaGeneralParam generalParam) { if (Cools.isEmpty(generalParam.getMatnrList())){ throw new CoolException("参数为空"); } for (LocItem locItem : generalParam.getMatnrList()) { LocItem locItem1 = locItemService.getById(locItem.getId()); if (Cools.isEmpty(locItem1)) { throw new CoolException("数据错误"); } if (locItem1.getStatus().equals(LocStatusType.NORMAL.type)){ continue; } if (locItem.getStatus().equals(LocStatusType.NORMAL.type)){ locItem1.setStatus(LocStatusType.NORMAL.type); locItemService.updateById(locItem1); } } return R.ok(); } }