package doumeemes.service.ext.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import doumeemes.biz.system.SystemDictDataBiz; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.ApiResponse; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.excel.EasyExcelUtil; import doumeemes.dao.business.RouteCardMapper; import doumeemes.dao.business.model.Bom; import doumeemes.dao.business.model.RouteCard; import doumeemes.dao.business.model.RouteProcedure; import doumeemes.dao.business.model.Workorder; import doumeemes.dao.ext.BomExtMapper; import doumeemes.dao.ext.BomVersionExtMapper; import doumeemes.dao.ext.RouteCardExtMapper; import doumeemes.dao.ext.beanDto.QueryBomDTO; import doumeemes.dao.ext.dto.QueryBomVersionExtDTO; import doumeemes.dao.ext.dto.QueryDepartmentExtDTO; import doumeemes.dao.ext.dto.QueryRouteCardExtDTO; import doumeemes.dao.ext.vo.*; import doumeemes.service.business.impl.*; import doumeemes.service.ext.RouteCardExtService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * 工艺卡管理Service实现 * @author 江蹄蹄 * @date 2022/06/27 13:58 */ @Service public class RouteCardExtServiceImpl implements RouteCardExtService { @Autowired private RouteCardExtMapper routeCardExtMapper; @Autowired private RouteCardMapper routeCardMapper; @Autowired private DepartmentExtServiceImpl departmentExtServiceimpl; @Autowired private BomExtMapper bomExtMapper; @Autowired private RouteServiceImpl routeServiceimpl; @Autowired private ProceduresExtServiceImpl proceduresExtService; @Autowired private BomVersionExtMapper bomVersionExtMapper; @Autowired private RouteCardServiceImpl routeCardServiceimpl; @Autowired public SystemDictDataBiz systemDictDataBiz; @Autowired private WorkorderServiceImpl workorderServiceimpl; @Autowired private BomServiceImpl bomServiceimpl; @Autowired private RouteProcedureServiceImpl routeProcedureServiceimpl; @Override public PageData findPage(PageWrap pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); pageWrap.getModel().setDeleted(Constants.ZERO); pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); pageWrap.getModel().setDepartId(user.getCurComDepartment().getId()); //当前登录用户所在所有工厂型组织 QueryDepartmentExtDTO querydepart=new QueryDepartmentExtDTO(); querydepart.setType(Constants.ONE); List departList= departmentExtServiceimpl.getDepartmentListByConditon(querydepart); if(departList.size()>0){ List departIds =departList.stream().map(DepartmentExtListVO::getId).collect(Collectors.toList()); pageWrap.getModel().setDepartIds(departIds); } PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); String resourcePath= systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); List result = routeCardExtMapper.selectList(pageWrap.getModel()); for(int i=0;i(result)); } @Transactional(rollbackFor = {BusinessException.class,Exception.class}) @Override public void importExcel(MultipartFile file) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); } //解析excel List list = EasyExcelUtil.importExcel(file, 1, 1, RouteCardExtListVO.class); if(list == null || list.size()==0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容有误!"); } for(int i=0;i departList= departmentExtServiceimpl.getDepartmentListByConditon(queryDepartmentExtDTOpagewrap); if(departList==null||departList.size()<=0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"“"+routeCardExtListVO.getDepartName()+"“工厂不存在!"); }else{ routeCardExtListVO.setDepartId(departList.get(0).getId()); }*/ /** * bom产品 */ if(StringUtils.isEmpty(routeCardExtListVO.getMarterialName())){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"产品名称不能为空"); } QueryBomDTO queryboxextpageWrap=new QueryBomDTO(); queryboxextpageWrap.setDeleted(Constants.ZERO); queryboxextpageWrap.setDepartId(user.getCurComDepartment().getId()); queryboxextpageWrap.setRootDepartId(user.getRootDepartment().getId()); queryboxextpageWrap.setAbsolutionMaterialName(routeCardExtListVO.getMarterialName()); List bomlist = bomExtMapper.selectAdminList(queryboxextpageWrap); if(bomlist==null&&bomlist.size()<=0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"“"+routeCardExtListVO.getMarterialName()+"“产品名称不存在!"); }else{ routeCardExtListVO.setBomId(bomlist.get(0).getId()); } QueryBomVersionExtDTO bb=new QueryBomVersionExtDTO(); bb.setBomId(bomlist.get(0).getId()); BomVersionExtListVO bve= bomVersionExtMapper.selectListByOne(bb); if(bve==null){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"“"+routeCardExtListVO.getMarterialName()+"bom历史信息不存在"); } /** * 工序 */ if(StringUtils.isEmpty(routeCardExtListVO.getProductName())){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"工序不能为空!"); } List producelist= proceduresExtService.getGYListByCondition(bomlist.get(0).getRouteId()); if(producelist.size()>0){ Boolean procutemark=true; for(int p=0;p200){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"工艺卡事项最多输入200字"); } RouteCard find=new RouteCard(); find.setDeleted(Constants.ZERO); find.setRootDepartId(user.getRootDepartment().getId()); find.setDepartId(user.getCurComDepartment().getId()); find.setBomId(bve.getId()); find.setRouteProcedureId(routeCardExtListVO.getRouteProcedureId()); RouteCard finddata= routeCardServiceimpl.findOne(find); if(finddata!=null){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"工序已存在,不允许添加"); } RouteCard routeCard=new RouteCard(); routeCard.setDeleted(Constants.ZERO); routeCard.setRootDepartId(user.getRootDepartment().getId()); routeCard.setDepartId(user.getCurComDepartment().getId()); routeCard.setCreateTime(new Date()); routeCard.setCreateUser(user.getId()); routeCard.setRouteProcedureId(routeCardExtListVO.getRouteProcedureId()); routeCard.setBomId(bve.getId()); routeCard.setTips(routeCardExtListVO.getTips()); routeCardMapper.insert(routeCard); } } @Override public List findlistBycondition(PageWrap pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); pageWrap.getModel().setDeleted(Constants.ZERO); pageWrap.getModel().setRootDepartId(user.getRootDepartment().getId()); PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity()); String resourcePath= systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); List result = routeCardExtMapper.selectList(pageWrap.getModel()); for(int i=0;i getListByWorkOrderId(QueryRouteCardExtDTO pageWrap) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Workorder workorder= workorderServiceimpl.findById(Integer.valueOf(pageWrap.getWorkOrderId())); Bom bom=new Bom(); bom.setRootDepartId(workorder.getRootDepartId()); bom.setDepartId(workorder.getDepartId()); bom.setMaterialId(workorder.getMaterialId()); bom.setDeleted(Constants.ZERO); bom.setProcedureId(workorder.getProcedureId()); Bom bd=bomServiceimpl.findOne(bom); Boolean cardMark=false; if(bd!=null){ //查询工艺关联工序的id RouteProcedure routeProcedure=new RouteProcedure(); // routeProcedure.setDepartId(workorder.getDepartId()); routeProcedure.setRouteId(bd.getRouteId()); routeProcedure.setProcedureId(bd.getProcedureId()); routeProcedure.setDeleted(Constants.ZERO); RouteProcedure findroute= routeProcedureServiceimpl.findOne(routeProcedure); if(findroute==null){ return ApiResponse.failed("工艺卡关联的工序不存在!"); } String resourcePath= systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(); //查询BOM version的id QueryBomVersionExtDTO bb=new QueryBomVersionExtDTO(); bb.setBomId(bd.getId()); bb.setRootDepartId(workorder.getRootDepartId()); bb.setDepartId(workorder.getDepartId()); bb.setMaterialId(workorder.getMaterialId()); bb.setProcedureId(workorder.getProcedureId()); List bomversionlist= bomVersionExtMapper.selectList(bb); if(bomversionlist.size()>0){ for(int i=0;i result = routeCardExtMapper.selectList(pageWrap); if(result.size()>0){ cardMark=true; result.get(0).setResourcePath(resourcePath); return ApiResponse.success(result.get(0)); } } if(!cardMark){ return ApiResponse.failed("工艺卡信息为空!"); } }else{ return ApiResponse.failed("BOM历史信息不存在!"); } }else{ return ApiResponse.failed("BOM不存在!"); } return ApiResponse.success(null); } }