package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.whyc.dto.Response; import com.whyc.mapper.*; import com.whyc.pojo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service public class WindingExperimentService { @Autowired DataSourceTransactionManager dataSourceTransactionManager; @Autowired TransactionDefinition transactionDefinition; @Resource private ExperimentMapper mapper; @Resource private ExperimentWindingStep1Mapper mapper1; @Resource private ExperimentWindingStep2Mapper mapper2; @Resource private ProjectMapper projectMapper; @Resource private UserMapper userMapper; /** * 绕组实验 开始实验 * @param experiment * @return */ public Response addWindingExperiment(Experiment experiment) { experiment.setCreateTime(new Date()); experiment.setStatus(1); try { if (mapper.insert(experiment) > 0) { return new Response().setMsg(1, "添加成功"); } else { return new Response().setMsg(0, "添加失败"); } } catch (Exception e) { e.printStackTrace(); return new Response().setMsg(0, "添加失败"); } } /** * 绕组实验步骤 step参数 1 2 对应实验步骤1、2 * @param list * @return */ public Response addExperimentWindingStep1(List list) { Boolean flag = true; if (list != null) { for (int i = 0; i < list.size(); i++) { ExperimentWindingStep1 experimentWindingStep1 = list.get(i); experimentWindingStep1.setSaveTime(new Date()); list.set(i, experimentWindingStep1); } } TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); try { for (int i = 0; i < list.size(); i++) { ExperimentWindingStep1 windingStep1 = list.get(i); if (mapper1.insert(windingStep1) > 0) { flag = true; } else { flag = false; } } } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "添加失败"); } if (flag) { dataSourceTransactionManager.commit(transactionStatus); return new Response().setMsg(1, "添加成功"); } else { dataSourceTransactionManager.rollback(transactionStatus); return new Response().setMsg(0, "添加失败"); } } /** * 绕组实验步骤2 * @param list * @return */ public Response addExperimentWindingStep2(List list) { Boolean flag = true; if (list != null) { for (int i = 0; i < list.size(); i++) { ExperimentWindingStep2 experimentWindingStep2 = list.get(i); experimentWindingStep2.setSaveTime(new Date()); list.set(i, experimentWindingStep2); } } TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); try { for (int i = 0; i < list.size(); i++) { ExperimentWindingStep2 windingStep2 = list.get(i); if (mapper2.insert(windingStep2) > 0) { flag = true; } else { flag = false; } } } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "添加失败"); } if (flag) { dataSourceTransactionManager.commit(transactionStatus); return new Response().setMsg(1, "添加成功"); } else { dataSourceTransactionManager.rollback(transactionStatus); return new Response().setMsg(0, "添加失败"); } } public Response> getProjectName() { QueryWrapper wrapper = new QueryWrapper<>(); ArrayList arr = new ArrayList<>(); arr.add(1); //项目状态:0-已取消,1-进行中,2-完成,3-延期 arr.add(3); wrapper.in("status", arr); List list = projectMapper.selectList(wrapper); Response> response = new Response<>(); response.set(1, list); return response; } public Response delExperimentWindingbyId(String experimentId) { try { mapper1.delExperimentWindingbyId(experimentId); mapper2.delExperimentWindingbyId(experimentId); } catch (Exception e) { e.printStackTrace(); return new Response().setMsg(0, "删除失败"); } return new Response().setMsg(1, "删除成功"); } /** * 根据 experimentId 编辑参数 * step参数 1 2 对应实验步骤1、2 * @param windingStep1s * @return */ public Response updateExperimentWindingStep1(List windingStep1s) { boolean bl = true; TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); if (windingStep1s != null && windingStep1s.size() > 0) { for (int i = 0; i < windingStep1s.size(); i++) { try { ExperimentWindingStep1 windingStep1 = windingStep1s.get(i); if (mapper1.updateById(windingStep1) > 0) { bl = true; } else { bl = false; } } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } } if (bl) { dataSourceTransactionManager.commit(transactionStatus); return new Response().setMsg(1, "修改成功"); } else { dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } /** * 根据 experiment_id 编辑试验数据 * @param windingStep2s * @return */ public Response updateExperimentWindingStep2(List windingStep2s) { boolean bl = true; TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); if (windingStep2s != null && windingStep2s.size() > 0) { for (int i = 0; i < windingStep2s.size(); i++) { try { ExperimentWindingStep2 windingStep2 = windingStep2s.get(i); if (mapper2.updateById(windingStep2) > 0) { bl = true; } else { bl = false; } } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } } if (bl) { dataSourceTransactionManager.commit(transactionStatus); return new Response().setMsg(1, "修改成功"); } else { dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } /** * 根据唯一ID编辑实验数据1 * @param windingStep1s * @return */ public Response updateExperimentWindingStep1ById(List windingStep1s) { boolean bl = true; TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); if (windingStep1s != null && windingStep1s.size() > 0) { for (int i = 0; i < windingStep1s.size(); i++) { try { ExperimentWindingStep1 windingStep1 = windingStep1s.get(i); if (mapper1.updateByPrimaryKey(windingStep1) > 0) { bl = true; } else { bl = false; } } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } } if (bl) { dataSourceTransactionManager.commit(transactionStatus); return new Response().setMsg(1, "修改成功"); } else { dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } public Response updateExperimentWindingStep2ById(List windingStep2s) { boolean bl = true; TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition); if (windingStep2s != null && windingStep2s.size() > 0) { for (int i = 0; i < windingStep2s.size(); i++) { try { ExperimentWindingStep2 windingStep2 = windingStep2s.get(i); if (mapper2.updateByPrimaryKey(windingStep2) > 0) { bl = true; } else { bl = false; } } catch (Exception e) { e.printStackTrace(); dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } } if (bl) { dataSourceTransactionManager.commit(transactionStatus); return new Response().setMsg(1, "修改成功"); } else { dataSourceTransactionManager.rollback(transactionStatus); //事务回滚 return new Response().setMsg(0, "修改失败"); } } /** * 实验数据 step参数 1 2 对应实验步骤1、2 * * @param step * @param pageNum * @param pageSize * @return */ public Response getExperimentWindingStep1(int step, int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("step",step); List list = mapper1.selectList(wrapper); PageInfo pageInfo = new PageInfo<>(list); return new Response>().set(1, pageInfo); } /** * 实验数据2 * @param pageNum * @param pageSize * @return */ public Response getExperimentWindingStep2(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List list = mapper2.selectList(null); PageInfo pageInfo = new PageInfo<>(list); return new Response>().set(1, pageInfo); } /** * 获取测试名 * @param name * @return */ public Response getRealName(String name) { Response response = new Response<>(); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("name", name); User user = userMapper.selectOne(wrapper); if (null != user) { response.set(1, user.getRealName()); }else{ response.setMsg(0,"查询失败"); } return response; } /** * 状态:-1-取消,0-未开始,1-进行中,2-完成 * * 不对controller接口提供取消功能 * @param id * @return */ public Response updateFlag(String id) { Response response = new Response<>(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("id",id); Experiment experiment1 = mapper.selectOne(queryWrapper); if (experiment1 ==null){ response.setMsg(0,"试验编号有误"); } try { Experiment experiment = new Experiment<>(); experiment.setId(id); experiment.setEndTime(new Date()); mapper.updateFlag(experiment); } catch (Exception e) { e.printStackTrace(); response.setMsg(0,"更新失败"); } return response.setMsg(1,"更新成功"); } }