package doumeemes.service.ext.impl; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.dao.business.model.WOutboundDetail; import doumeemes.dao.ext.WOutboundDetailExtMapper; import doumeemes.dao.ext.bean.FinishedInBillBean; import doumeemes.dao.ext.beanDto.QueryWOutBoundDto; import doumeemes.dao.ext.beanDto.QueryWSOutBoundDto; import doumeemes.dao.ext.dto.QueryNoticesExtDTO; import doumeemes.dao.ext.dto.QueryWOutboundExtDTO; import doumeemes.dao.ext.vo.NoticeExtListCountVO; import doumeemes.dao.ext.vo.WOutboundExtListVO; import doumeemes.dao.ext.vo.WOutboundListCountVO; import doumeemes.dao.ext.vo.WorkOrderOutboundExtListVO; import doumeemes.service.ext.WOutboundExtService; import doumeemes.dao.ext.WOutboundExtMapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * 出入库单信息Service实现 * @author 江蹄蹄 * @date 2022/04/20 10:57 */ @Service public class WOutboundExtServiceImpl implements WOutboundExtService { @Autowired private WOutboundExtMapper wOutboundExtMapper; @Autowired private WOutboundDetailExtMapper wOutboundDetailExtMapper; @Override public PageData findPage(PageWrap pageWrap) { PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); List result = wOutboundExtMapper.selectList(pageWrap.getModel()); return PageData.from(new PageInfo<>(result)); } @Override public PageData findListPage(PageWrap pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); } //只能查看当前根组织的数据 pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); pageWrap.getModel().setDepartId(user.getCurComDepartment().getId()); //数据权限 List dataPermission = user.getDepartPermissionList(); if(dataPermission!=null){ pageWrap.getModel().setCreateUser(user.getId()); if(dataPermission.size() == 0){ //只能看自己的(生产人员信息) pageWrap.getModel().setProUserId(user.getId()); }else{ //否则走数据权限 pageWrap.getModel().setDepartIds(dataPermission); } } PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); List result = wOutboundExtMapper.selectAdminList(pageWrap.getModel()); result.forEach(i->{ //判断当前状态,根据状态获取明细记录 若是已取消业务,查询 0 Integer status = i.getStatus(); if(i.getStatus()==2){ status = 0 ; } i.setWOutboundDetails(wOutboundDetailExtMapper.wOutboundDetailListById(i.getId(),status)); }); return PageData.from(new PageInfo<>(result)); } @Override public List listForExcel(QueryWOutBoundDto queryWOutBoundDto) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); } //只能查看当前根组织的数据 queryWOutBoundDto.setRootDepartId(user.getRootDepartment().getId()); queryWOutBoundDto.setDepartId(user.getCurComDepartment().getId()); //数据权限 List dataPermission = user.getDepartPermissionList(); if(dataPermission!=null){ queryWOutBoundDto.setCreateUser(user.getId()); if(dataPermission.size() == 0){ //只能看自己的(生产人员信息) queryWOutBoundDto.setProUserId(user.getId()); }else{ //否则走数据权限 queryWOutBoundDto.setDepartIds(dataPermission); } } List result = wOutboundExtMapper.selectAdminList(queryWOutBoundDto); return result; } @Override public WOutboundListCountVO pageCount(QueryWOutBoundDto param){ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); } //只能查看当前根组织的数据 param.setRootDepartId(user.getRootDepartment().getId()); param.setDepartId(user.getCurComDepartment().getId()); //数据权限 List dataPermission = user.getDepartPermissionList(); if(dataPermission!=null){ if(dataPermission.size() == 0){ //只能看自己的(生产人员信息) param.setProUserId(user.getId()); }else{ //否则走数据权限 param.setDepartIds(dataPermission); } } WOutboundListCountVO result = new WOutboundListCountVO(); //全部数量 result.setAllNum(wOutboundExtMapper.selectCount(param)); //未完成数量 param.setStatus(Constants.ZERO); result.setStartNum(wOutboundExtMapper.selectCount(param)); //已完成数量 param.setStatus(Constants.ONE); result.setEndNum(wOutboundExtMapper.selectCount(param)); //已取消数量 param.setStatus(Constants.TWO); result.setCancelNum(wOutboundExtMapper.selectCount(param)); return result; } /** * 完工入库使用 根据入库货位筛选 13 件小时内,设备对应货位的转库单入库后产生的入库单记录 * @param inLocationIds * @return */ @Override public List finishedInBill(String inLocationIds,String inIds){ return wOutboundExtMapper.finishedInBill(inLocationIds,inIds); } @Override public PageData workOrderOutList(PageWrap pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); } //只能查看当前根组织的数据 pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); pageWrap.getModel().setDepartId(user.getCurComDepartment().getId()); PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); List result = wOutboundExtMapper.workOrderOutList(pageWrap.getModel()); return PageData.from(new PageInfo<>(result)); } @Override public List workOrderOutListForExcel(QueryWSOutBoundDto queryWSOutBoundDto) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); } //只能查看当前根组织的数据 queryWSOutBoundDto.setRootDepartId(user.getRootDepartment().getId()); queryWSOutBoundDto.setDepartId(user.getCurComDepartment().getId()); List result = wOutboundExtMapper.workOrderOutList(queryWSOutBoundDto); return result; } }