|  |  | 
 |  |  | import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper; | 
 |  |  | import com.dy.pmsGlobal.daoPr.PrBatchNumberMapper; | 
 |  |  | import com.dy.pmsGlobal.daoPr.PrEquipMapper; | 
 |  |  | import com.dy.pmsGlobal.daoPr.PrProductionProcessMapper; | 
 |  |  | import com.dy.pmsGlobal.pojoBa.BaUser; | 
 |  |  | import com.dy.pmsGlobal.pojoPlt.PltProduct; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrBatchNumber; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrEquip; | 
 |  |  | import com.dy.pmsGlobal.pojoPr.PrProductionProcess; | 
 |  |  | import com.dy.pmsGlobal.util.QrCodeUtil; | 
 |  |  | import com.dy.pmsGlobal.util.UserUtil; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | 
 |  |  |     private PrBatchNumberMapper batchDao; | 
 |  |  |     private PrEquipMapper equipDao; | 
 |  |  |     private PltProductMapper productDao; | 
 |  |  |     private SqlSessionFactory sqlSessionFactory; | 
 |  |  |     private PrProductionProcessMapper processDao; | 
 |  |  |     @Autowired | 
 |  |  |     public void setAssemblyDao(PrAssemblyPlanMapper assemblyDao) { | 
 |  |  |         this.assemblyDao = assemblyDao; | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) { | 
 |  |  |         this.sqlSessionFactory = sqlSessionFactory; | 
 |  |  |     public void setProcessDao(PrProductionProcessMapper processDao) { | 
 |  |  |         this.processDao = processDao; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public int save(PrAssemblyPlan plan){ | 
 |  |  |         //计划名称不能重复 | 
 |  |  |         if(assemblyDao.exists(plan.name,plan.id)){ | 
 |  |  |             throw new RuntimeException("计划名称不能重复"); | 
 |  |  |         } | 
 |  |  |         PrProductionProcess process = processDao.selectByPrimaryKey(plan.processId); | 
 |  |  |         if(process == null || !process.proId.equals(plan.proId)){ | 
 |  |  |             throw new RuntimeException("产品与生产流程不匹配"); | 
 |  |  |         } | 
 |  |  |         PrBatchNumber batch = new PrBatchNumber(); | 
 |  |  |         batch.batchNumber = getNextCode(); | 
 |  |  |         batch.proId = plan.proId; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public int update(PrAssemblyPlan plan){ | 
 |  |  |         //计划名称不能重复 | 
 |  |  |         if(assemblyDao.exists(plan.name,plan.id)){ | 
 |  |  |             throw new RuntimeException("计划名称不能重复"); | 
 |  |  |         } | 
 |  |  |         PrProductionProcess process = processDao.selectByPrimaryKey(plan.processId); | 
 |  |  |         if(process == null || !process.proId.equals(plan.proId)){ | 
 |  |  |             throw new RuntimeException("产品与生产流程不匹配"); | 
 |  |  |         } | 
 |  |  |         PrAssemblyPlan origPlan = assemblyDao.selectByPrimaryKey(plan.id); | 
 |  |  |         PrBatchNumber batch = batchDao.selectByPrimaryKey(origPlan.batchId); | 
 |  |  |         //产品改变则更新全部已生成设备号 | 
 |  |  |         if(origPlan.proId != plan.proId){ | 
 |  |  |             batch.proId = plan.proId; | 
 |  |  |             batchDao.updateByPrimaryKeySelective(batch); | 
 |  |  |  | 
 |  |  |             equipDao.deleteByBatchId(origPlan.batchId); | 
 |  |  |             insertEquip(plan.proId,origPlan.batchId,batch.batchNumber,plan.number,1); | 
 |  |  |         }else if(origPlan.number < plan.number){ | 
 |  |  | 
 |  |  |         PrBatchNumber batch = batchDao.selectByPrimaryKey(plan.batchId); | 
 |  |  |         int count =insertEquip(plan.proId,plan.batchId,batch.batchNumber,num + plan.number,plan.number+1); | 
 |  |  |         plan.number = plan.number + num; | 
 |  |  |         assemblyDao.updateByPrimaryKeySelective(plan); | 
 |  |  |         assemblyDao.updateByPrimaryKeySelective (plan); | 
 |  |  |         return count; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |     public QueryResultVo<List<PrEquip>> selectSomeEquip(QueryVo queryVo) { | 
 |  |  |         Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); | 
 |  |  |         //查询符合条件的记录总数 | 
 |  |  |         Long itemTotal = assemblyDao.selectSomeCount(params); | 
 |  |  |         Long itemTotal = equipDao.selectSomeCount(params); | 
 |  |  |         QueryResultVo<List<PrEquip>> rsVo = new QueryResultVo<>(queryVo.pageSize, queryVo.pageCurr) ; | 
 |  |  |         //计算分页等信息 | 
 |  |  |         rsVo.calculateAndSet(itemTotal, params); | 
 |  |  | 
 |  |  |         PrAssemblyPlan param = new PrAssemblyPlan(); | 
 |  |  |         param.id =plan.id; | 
 |  |  |         param.status = plan.status; | 
 |  |  |         return assemblyDao.updateByPrimaryKeySelective(plan); | 
 |  |  |         return assemblyDao.updateByPrimaryKeySelective(param); | 
 |  |  |     } | 
 |  |  | } |