| package doumeemes.service.business.impl; | 
|   | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | 
| import com.baomidou.mybatisplus.core.metadata.IPage; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| 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.DateUtil; | 
| import doumeemes.core.utils.Utils; | 
| import doumeemes.dao.business.WorkorderCheckMapper; | 
| import doumeemes.dao.business.model.Appliances; | 
| import doumeemes.dao.business.model.Workorder; | 
| import doumeemes.dao.business.model.WorkorderCheck; | 
| import doumeemes.dao.business.model.WorkorderHistory; | 
| import doumeemes.dao.ext.WorkorderCheckExtMapper; | 
| import doumeemes.dao.ext.WorkorderExtMapper; | 
| import doumeemes.dao.ext.WorkorderHistoryExtMapper; | 
| import doumeemes.dao.ext.dto.QueryWorkorderCheckExtDTO; | 
| import doumeemes.dao.ext.vo.WorkorderCheckExtListVO; | 
| import doumeemes.dao.system.model.SystemDictData; | 
| import doumeemes.service.business.WorkorderCheckService; | 
| import doumeemes.service.ext.WorkorderCheckExtService; | 
| import doumeemes.service.ext.impl.WorkorderExtServiceImpl; | 
| import doumeemes.service.system.impl.SystemDictDataServiceImpl; | 
| 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.util.CollectionUtils; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| /** | 
|  * 工单类-检验信息表Service实现 | 
|  * @author 江蹄蹄 | 
|  * @date 2022/04/20 09:37 | 
|  */ | 
| @Service | 
| public class WorkorderCheckServiceImpl implements WorkorderCheckService { | 
|   | 
|     @Autowired | 
|     private WorkorderExtMapper workorderExtMapper; | 
|     @Autowired | 
|     private WorkorderHistoryExtMapper workorderHistoryExtMapper; | 
|     @Autowired | 
|     private WorkorderCheckMapper workorderCheckMapper; | 
|     @Autowired | 
|     private WorkorderCheckExtService workorderCheckExtService; | 
|     @Autowired | 
|     private AppliancesServiceImpl appliancesServiceImpl; | 
|   | 
|     @Autowired | 
|     private SystemDictDataServiceImpl systemDictDataServiceimpl; | 
|   | 
|     @Autowired | 
|     private WorkorderCheckExtMapper workorderCheckExtMapper; | 
|   | 
|     @Override | 
|     public Integer create(WorkorderCheck workorderCheck) { | 
|         workorderCheckMapper.insert(workorderCheck); | 
|         return workorderCheck.getId(); | 
|     } | 
|   | 
|     @Override | 
|     public ApiResponse deleteById(Integer id) { | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|         QueryWorkorderCheckExtDTO qwc=new QueryWorkorderCheckExtDTO(); | 
|         qwc.setId(id); | 
|         qwc.setCreateUser(user.getId()); | 
|         List<WorkorderCheckExtListVO> result = workorderCheckExtMapper.selectListNew(qwc); | 
|         if(result!=null&&result.size()>0){ | 
|             WorkorderCheckExtListVO wca=result.get(0); | 
|   | 
|             if(wca!=null&&(Constants.equalsInteger(Constants.WORKORDER_STATUS.done,wca.getWorkorderstatus())||Constants.equalsInteger(Constants.WORKORDER_STATUS.baogong,wca.getWorkorderstatus()))){ | 
|                 return ApiResponse.failed("工单已完工/已报工状态下不允许删除!"); | 
|             }else{ | 
|                 WorkorderCheck find=workorderCheckMapper.selectById(wca.getId()); | 
|                 find.setDeleted(Constants.ONE); | 
|                 workorderCheckMapper.updateById(find); | 
|                return  ApiResponse.success(null); | 
|             } | 
|   | 
|         }else{ | 
|            return ApiResponse.failed("只能删除自己创建的检验记录!"); | 
|         } | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public void delete(WorkorderCheck workorderCheck) { | 
|         UpdateWrapper<WorkorderCheck> deleteWrapper = new UpdateWrapper<>(workorderCheck); | 
|         workorderCheckMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<Integer> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         workorderCheckMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(WorkorderCheck workorderCheck) { | 
|         workorderCheckMapper.updateById(workorderCheck); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<WorkorderCheck> workorderChecks) { | 
|         if (CollectionUtils.isEmpty(workorderChecks)) { | 
|             return; | 
|         } | 
|         for (WorkorderCheck workorderCheck: workorderChecks) { | 
|             this.updateById(workorderCheck); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public WorkorderCheck findById(Integer id) { | 
|         return workorderCheckMapper.selectById(id); | 
|     } | 
|   | 
|     @Override | 
|     public WorkorderCheck findOne(WorkorderCheck workorderCheck) { | 
|         QueryWrapper<WorkorderCheck> wrapper = new QueryWrapper<>(workorderCheck); | 
|         return workorderCheckMapper.selectOne(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public List<WorkorderCheck> findList(WorkorderCheck workorderCheck) { | 
|         QueryWrapper<WorkorderCheck> wrapper = new QueryWrapper<>(workorderCheck); | 
|         return workorderCheckMapper.selectList(wrapper); | 
|     } | 
|    | 
|     @Override | 
|     public PageData<WorkorderCheck> findPage(PageWrap<WorkorderCheck> pageWrap) { | 
|         IPage<WorkorderCheck> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|         QueryWrapper<WorkorderCheck> queryWrapper = new QueryWrapper<>(); | 
|         Utils.MP.blankToNull(pageWrap.getModel()); | 
|         if (pageWrap.getModel().getId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getId, pageWrap.getModel().getId()); | 
|         } | 
|         if (pageWrap.getModel().getDeleted() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getDeleted, pageWrap.getModel().getDeleted()); | 
|         } | 
|         if (pageWrap.getModel().getCreateUser() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getCreateUser, pageWrap.getModel().getCreateUser()); | 
|         } | 
|         if (pageWrap.getModel().getCreateTime() != null) { | 
|             queryWrapper.lambda().ge(WorkorderCheck::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); | 
|             queryWrapper.lambda().le(WorkorderCheck::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); | 
|         } | 
|         if (pageWrap.getModel().getUpdateUser() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getUpdateUser, pageWrap.getModel().getUpdateUser()); | 
|         } | 
|         if (pageWrap.getModel().getUpdateTime() != null) { | 
|             queryWrapper.lambda().ge(WorkorderCheck::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); | 
|             queryWrapper.lambda().le(WorkorderCheck::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); | 
|         } | 
|         if (pageWrap.getModel().getRemark() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getRemark, pageWrap.getModel().getRemark()); | 
|         } | 
|         if (pageWrap.getModel().getRootDepartId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getRootDepartId, pageWrap.getModel().getRootDepartId()); | 
|         } | 
|         if (pageWrap.getModel().getDepartId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getDepartId, pageWrap.getModel().getDepartId()); | 
|         } | 
|         if (pageWrap.getModel().getPlanId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getPlanId, pageWrap.getModel().getPlanId()); | 
|         } | 
|         if (pageWrap.getModel().getWorkorderId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getWorkorderId, pageWrap.getModel().getWorkorderId()); | 
|         } | 
|         if (pageWrap.getModel().getBatch() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getBatch, pageWrap.getModel().getBatch()); | 
|         } | 
|         if (pageWrap.getModel().getFactoryId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getFactoryId, pageWrap.getModel().getFactoryId()); | 
|         } | 
|         if (pageWrap.getModel().getProcedureId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getProcedureId, pageWrap.getModel().getProcedureId()); | 
|         } | 
|         if (pageWrap.getModel().getProDeviceId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getProDeviceId, pageWrap.getModel().getProDeviceId()); | 
|         } | 
|         if (pageWrap.getModel().getAppliancesId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getAppliancesId, pageWrap.getModel().getAppliancesId()); | 
|         } | 
|         if (pageWrap.getModel().getProDate() != null) { | 
|             queryWrapper.lambda().ge(WorkorderCheck::getProDate, Utils.Date.getStart(pageWrap.getModel().getProDate())); | 
|             queryWrapper.lambda().le(WorkorderCheck::getProDate, Utils.Date.getEnd(pageWrap.getModel().getProDate())); | 
|         } | 
|         if (pageWrap.getModel().getType() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getType, pageWrap.getModel().getType()); | 
|         } | 
|         if (pageWrap.getModel().getNum() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getNum, pageWrap.getModel().getNum()); | 
|         } | 
|         if (pageWrap.getModel().getDoneType() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getDoneType, pageWrap.getModel().getDoneType()); | 
|         } | 
|         if (pageWrap.getModel().getMaterialId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getMaterialId, pageWrap.getModel().getMaterialId()); | 
|         } | 
|         if (pageWrap.getModel().getUnitId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getUnitId, pageWrap.getModel().getUnitId()); | 
|         } | 
|         if (pageWrap.getModel().getMaterialBatch() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getMaterialBatch, pageWrap.getModel().getMaterialBatch()); | 
|         } | 
|         if (pageWrap.getModel().getCheckWay() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getCheckWay, pageWrap.getModel().getCheckWay()); | 
|         } | 
|         if (pageWrap.getModel().getCheckUserId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getCheckUserId, pageWrap.getModel().getCheckUserId()); | 
|         } | 
|         if (pageWrap.getModel().getQualifiedNum() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getQualifiedNum, pageWrap.getModel().getQualifiedNum()); | 
|         } | 
|         if (pageWrap.getModel().getUnqualifiedNum() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getUnqualifiedNum, pageWrap.getModel().getUnqualifiedNum()); | 
|         } | 
|         if (pageWrap.getModel().getCheckScope() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getCheckScope, pageWrap.getModel().getCheckScope()); | 
|         } | 
|         if (pageWrap.getModel().getCheckDate() != null) { | 
|             queryWrapper.lambda().ge(WorkorderCheck::getCheckDate, Utils.Date.getStart(pageWrap.getModel().getCheckDate())); | 
|             queryWrapper.lambda().le(WorkorderCheck::getCheckDate, Utils.Date.getEnd(pageWrap.getModel().getCheckDate())); | 
|         } | 
|         if (pageWrap.getModel().getCheckInfo() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getCheckInfo, pageWrap.getModel().getCheckInfo()); | 
|         } | 
|         if (pageWrap.getModel().getQualifiedApplianceId() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getQualifiedApplianceId, pageWrap.getModel().getQualifiedApplianceId()); | 
|         } | 
|         if (pageWrap.getModel().getProUserids() != null) { | 
|             queryWrapper.lambda().eq(WorkorderCheck::getProUserids, pageWrap.getModel().getProUserids()); | 
|         } | 
|         for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|                 queryWrapper.orderByDesc(sortData.getProperty()); | 
|             } else { | 
|                 queryWrapper.orderByAsc(sortData.getProperty()); | 
|             } | 
|         } | 
|         return PageData.from(workorderCheckMapper.selectPage(page, queryWrapper)); | 
|     } | 
|   | 
|     @Override | 
|     public long count(WorkorderCheck workorderCheck) { | 
|         QueryWrapper<WorkorderCheck> wrapper = new QueryWrapper<>(workorderCheck); | 
|         return workorderCheckMapper.selectCount(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     @Transactional | 
|     public ApiResponse insertData(WorkorderCheck wc) { | 
|         if(wc.getWorkorderId()==null){ | 
|             return ApiResponse.failed("工单id不能为空"); | 
|         } | 
|         if(wc.getAppliancesId()==null){ | 
|             return ApiResponse.failed("工装id不能为空"); | 
|         } | 
|         if(wc.getCheckType()==null){ | 
|             return ApiResponse.failed("检验类型不能为空!"); | 
|         } | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|   | 
|         //工单对象 | 
|         Workorder workorder=workorderExtMapper.selectById(wc.getWorkorderId()); | 
|         if(workorder==null | 
|                 || workorder.getStatus()==Constants.WORKORDER_STATUS.done | 
|                 ||workorder.getStatus()==Constants.WORKORDER_STATUS.baogong | 
|                 ||workorder.getStatus()==Constants.WORKORDER_STATUS.instock | 
|                 ||workorder.getStatus()==Constants.WORKORDER_STATUS.cancel){ | 
|             return ApiResponse.failed("工单不允许检验"); | 
|         } | 
|         if(workorder.getPlanNum()!=null){ | 
|             Integer unqualifiedNum=wc.getUnqualifiedNum()!=null?wc.getUnqualifiedNum():0; | 
|             Integer qualifiedNum=wc.getQualifiedNum()!=null?wc.getQualifiedNum():0; | 
|             Integer num=unqualifiedNum+qualifiedNum; | 
|             if(num>workorder.getPlanNum()){ | 
|                 return ApiResponse.failed("合格数量加不良数量不能大于计划数量"); | 
|             } | 
|   | 
|         }else{ | 
|             return ApiResponse.failed("计划数量无数据"); | 
|         } | 
|      /*   Appliances checkappliance= appliancesServiceImpl.findById(Integer.valueOf(wc.getAppliancesId()));// | 
|         if(checkappliance!=null&&checkappliance.getNum()!=null){ | 
|             Integer unqualifiedNum1=wc.getUnqualifiedNum(); | 
|             Integer qualifiedNum1=wc.getQualifiedNum(); | 
|             Integer num=unqualifiedNum1+qualifiedNum1; | 
|             if(num>checkappliance.getNum().intValue()){ | 
|                 return ApiResponse.failed("合格数量加不良数量不能大于篮筐中物料的数量"); | 
|             } | 
|         }else{ | 
|             return ApiResponse.failed("工装不存在"); | 
|         }*/ | 
|   | 
|         if (Constants.equalsInteger(wc.getCheckType() ,Constants.WORKORDER_CHECKTYPE.done)){ | 
|           //完工检验时先判断 是否存在巡线或者巡检记录不存在不允许完工检验 | 
|             WorkorderCheck cd=new WorkorderCheck(); | 
|             cd.setDeleted(Constants.ZERO); | 
|             cd.setWorkorderId(wc.getWorkorderId()); | 
|             cd.setRootDepartId(workorder.getRootDepartId()); | 
|             cd.setDepartId(workorder.getDepartId()); | 
|             List<WorkorderCheck> listcd=this.findList(cd); | 
|             if(listcd==null || listcd.size() ==0){ | 
|                 return ApiResponse.failed("巡线或者巡检检验记录不存在,不允许完工检验"); | 
|             } | 
|         } | 
|         wc.setMaterialBatch(workorder.getBatch()); | 
|         wc.setMaterialId(workorder.getMaterialId()); | 
|         wc.setDeleted(Constants.ZERO); | 
|         wc.setCreateTime(new Date()); | 
|         wc.setCreateUser(user.getId()); | 
|         wc.setRootDepartId(workorder.getRootDepartId()); | 
|         wc.setDepartId(workorder.getDepartId()); | 
|         wc.setPlanId(workorder.getPlanId()); | 
|        // wc.setWorkorderId(); | 
|         wc.setBatch(workorder.getBatch()); | 
|         wc.setFactoryId(workorder.getFactoryId()); | 
|         wc.setProcedureId(workorder.getProcedureId()); | 
|         wc.setProDeviceId(workorder.getProGroupId()); | 
|         //wc.setAppliancesId(null); | 
|         wc.setProDate(workorder.getPlanDate()); | 
|   | 
|         // wc.setType(); | 
|         wc.setNum(workorder.getPlanNum()); | 
|         //工装对象 | 
|         if(wc.getQualifiedApplianceId()!=null){ | 
|             Appliances appliances= appliancesServiceImpl.findById(Integer.valueOf(wc.getQualifiedApplianceId()));// | 
|             wc.setDoneType(appliances.getType()); | 
|             if(wc.getUnqualifiedNum()>0&&workorder.getType()==1||workorder.getType()==2){ | 
|                 SystemDictData systemDictData=systemDictDataServiceimpl.findById(appliances.getType()); | 
|                 if(!StringUtils.equals(Constants.APPLIANCES_TYPE_LABLE.scrap,systemDictData.getLabel()) ){ | 
|                     return ApiResponse.failed("当前工单为返工返修--只能选择报废工装"); | 
|                 } | 
|             } | 
|         } | 
|   | 
|       //  wc.setMaterialId(workorder.getMaterialId()); | 
|         wc.setUnitId(workorder.getUnitId()); | 
|         wc.setCheckWay(1); | 
|         wc.setCheckScope(1); | 
|         wc.setCheckDate(new Date()); | 
|         wc.setCheckUserId(user.getId()); | 
|         if(workorder.getProUserId()!=null){ | 
|             wc.setProUserids("["+workorder.getProUserId()+"]"); | 
|         } | 
|         workorder.setUpdateTime(new Date()); | 
|         //插入编码 | 
|         wc.setCode(workorderCheckExtService.getNextCode(user.getCompany().getId())); | 
|         workorderCheckMapper.insert(wc); | 
|         List<WorkorderHistory> whList = new ArrayList<>(); | 
|         Workorder order = new Workorder(); | 
|         order.setUpdateTime(DateUtil.getCurrentDate()); | 
|         order.setUpdateUser(user.getId()); | 
|         order.setId(workorder.getId()); | 
|         order.setRootDepartId(workorder.getRootDepartId()); | 
|         order.setDepartId(workorder.getDepartId()); | 
|         if(Constants.equalsInteger(wc.getCheckType() ,Constants.WORKORDER_CHECKTYPE.done)){ | 
|             //已完工 | 
|             order.setStatus(Constants.WORKORDER_STATUS.done); | 
|             //工单历史数据 | 
|             whList.add(WorkorderExtServiceImpl.initHistoryByModel(order,user.getId(),Constants.WORKORDER_HISTORY_STATUS.done)); | 
|         }else  if(Constants.equalsInteger(wc.getCheckType() ,Constants.WORKORDER_CHECKTYPE.check)){ | 
|             //已检验 | 
|             order.setStatus(Constants.WORKORDER_STATUS.check); | 
|             whList.add(WorkorderExtServiceImpl.initHistoryByModel(order,user.getId(),Constants.WORKORDER_HISTORY_STATUS.check)); | 
|         } | 
|         workorderExtMapper.updateById(order); | 
|         if(whList.size()>0){ | 
|             workorderHistoryExtMapper.insertBatch(whList); | 
|         } | 
|         return ApiResponse.success(wc.getId()); | 
|     } | 
|   | 
|   | 
|   | 
|   | 
|     @Override | 
|     @Transactional | 
|     public ApiResponse insertDataStandard(WorkorderCheck wc) { | 
|         if(wc.getWorkorderId()==null){ | 
|             return ApiResponse.failed("工单id不能为空"); | 
|         } | 
|         if(wc.getCheckType()==null){ | 
|             return ApiResponse.failed("检验类型不能为空!"); | 
|         } | 
|         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|   | 
|         //工单对象 | 
|         Workorder workorder=workorderExtMapper.selectById(wc.getWorkorderId()); | 
|         if(workorder==null || workorder.getStatus()==Constants.WORKORDER_STATUS.done || workorder.getStatus()==Constants.WORKORDER_STATUS.done||workorder.getStatus()==Constants.WORKORDER_STATUS.baogong | 
|                 ||workorder.getStatus()==Constants.WORKORDER_STATUS.instock ||workorder.getStatus()==Constants.WORKORDER_STATUS.cancel){ | 
|             return ApiResponse.failed("工单不允许检验"); | 
|         } | 
|         if(workorder.getPlanNum()!=null){ | 
|             Integer unqualifiedNum=wc.getUnqualifiedNum()!=null?wc.getUnqualifiedNum():0; | 
|             Integer qualifiedNum=wc.getQualifiedNum()!=null?wc.getQualifiedNum():0; | 
|             Integer num=unqualifiedNum+qualifiedNum; | 
|             if(num>workorder.getPlanNum()){ | 
|                 return ApiResponse.failed("合格数量加不良数量不能大于计划数量"); | 
|             } | 
|   | 
|         }else{ | 
|             return ApiResponse.failed("计划数量无数据"); | 
|         } | 
|      /*   Appliances checkappliance= appliancesServiceImpl.findById(Integer.valueOf(wc.getAppliancesId()));// | 
|         if(checkappliance!=null&&checkappliance.getNum()!=null){ | 
|             Integer unqualifiedNum1=wc.getUnqualifiedNum(); | 
|             Integer qualifiedNum1=wc.getQualifiedNum(); | 
|             Integer num=unqualifiedNum1+qualifiedNum1; | 
|             if(num>checkappliance.getNum().intValue()){ | 
|                 return ApiResponse.failed("合格数量加不良数量不能大于篮筐中物料的数量"); | 
|             } | 
|         }else{ | 
|             return ApiResponse.failed("工装不存在"); | 
|         }*/ | 
|   | 
|         if (Constants.equalsInteger(wc.getCheckType() ,Constants.WORKORDER_CHECKTYPE.done)){ | 
|             //完工检验时先判断 是否存在巡线或者巡检记录不存在不允许完工检验 | 
|             WorkorderCheck cd=new WorkorderCheck(); | 
|             cd.setDeleted(Constants.ZERO); | 
|             cd.setWorkorderId(wc.getWorkorderId()); | 
|             cd.setRootDepartId(workorder.getRootDepartId()); | 
|             cd.setDepartId(workorder.getDepartId()); | 
|             List<WorkorderCheck> listcd=this.findList(cd); | 
|             if(listcd==null || listcd.size() ==0){ | 
|                 return ApiResponse.failed("巡线或者巡检检验记录不存在,不允许完工检验"); | 
|             } | 
|         } | 
|         wc.setMaterialBatch(workorder.getBatch()); | 
|         wc.setMaterialId(workorder.getMaterialId()); | 
|         wc.setDeleted(Constants.ZERO); | 
|         wc.setCreateTime(new Date()); | 
|         wc.setCreateUser(user.getId()); | 
|         wc.setRootDepartId(workorder.getRootDepartId()); | 
|         wc.setDepartId(workorder.getDepartId()); | 
|         wc.setPlanId(workorder.getPlanId()); | 
|         // wc.setWorkorderId(); | 
|         wc.setBatch(workorder.getBatch()); | 
|         wc.setFactoryId(workorder.getFactoryId()); | 
|         wc.setProcedureId(workorder.getProcedureId()); | 
|         wc.setProDeviceId(workorder.getProGroupId()); | 
|         //wc.setAppliancesId(null); | 
|         wc.setProDate(workorder.getPlanDate()); | 
|   | 
|         // wc.setType(); | 
|         wc.setNum(workorder.getPlanNum()); | 
|         //工装对象 | 
|         if(wc.getQualifiedApplianceId()!=null){ | 
|             Appliances appliances= appliancesServiceImpl.findById(Integer.valueOf(wc.getQualifiedApplianceId()));// | 
|             wc.setDoneType(appliances.getType()); | 
|             if(wc.getUnqualifiedNum()>0&&workorder.getType()==1||workorder.getType()==2){ | 
|                 SystemDictData systemDictData=systemDictDataServiceimpl.findById(appliances.getType()); | 
|                 if(!StringUtils.equals(Constants.APPLIANCES_TYPE_LABLE.scrap,systemDictData.getLabel()) ){ | 
|                     return ApiResponse.failed("当前工单为返工返修--只能选择报废工装"); | 
|                 } | 
|             } | 
|         } | 
|   | 
|         //  wc.setMaterialId(workorder.getMaterialId()); | 
|         wc.setUnitId(workorder.getUnitId()); | 
|         wc.setCheckWay(1); | 
|         wc.setCheckScope(1); | 
|         wc.setCheckDate(new Date()); | 
|         wc.setCheckUserId(user.getId()); | 
|         if(workorder.getProUserId()!=null){ | 
|             wc.setProUserids("["+workorder.getProUserId()+"]"); | 
|         } | 
|         workorder.setUpdateTime(new Date()); | 
|         //插入编码 | 
|         wc.setCode(workorderCheckExtService.getNextCode(user.getCompany().getId())); | 
|         workorderCheckMapper.insert(wc); | 
|         List<WorkorderHistory> whList = new ArrayList<>(); | 
|         Workorder order = new Workorder(); | 
|         order.setUpdateTime(DateUtil.getCurrentDate()); | 
|         order.setUpdateUser(user.getId()); | 
|         order.setId(workorder.getId()); | 
|         order.setRootDepartId(workorder.getRootDepartId()); | 
|         order.setDepartId(workorder.getDepartId()); | 
|         if(Constants.equalsInteger(wc.getCheckType() ,Constants.WORKORDER_CHECKTYPE.done)){ | 
|             //已完工 | 
|             order.setStatus(Constants.WORKORDER_STATUS.done); | 
|             //工单历史数据 | 
|             whList.add(WorkorderExtServiceImpl.initHistoryByModel(order,user.getId(),Constants.WORKORDER_HISTORY_STATUS.done)); | 
|         }else  if(Constants.equalsInteger(wc.getCheckType() ,Constants.WORKORDER_CHECKTYPE.check)){ | 
|             //已检验 | 
|             order.setStatus(Constants.WORKORDER_STATUS.check); | 
|             whList.add(WorkorderExtServiceImpl.initHistoryByModel(order,user.getId(),Constants.WORKORDER_HISTORY_STATUS.check)); | 
|         } | 
|         workorderExtMapper.updateById(order); | 
|         if(whList.size()>0){ | 
|             workorderHistoryExtMapper.insertBatch(whList); | 
|         } | 
|         return ApiResponse.success(wc.getId()); | 
|     } | 
| } |