package com.jcdm.main.da.passingStationCollection.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jcdm.common.utils.DateUtils; //import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; //import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; //import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord; import com.jcdm.main.rm.repairRecord.mapper.RmRepairRecordMapper; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; /** * 产品过站采集Service业务层处理 * * @author yyt * @date 2023-12-12 */ @Service public class DaPassingStationCollectionServiceImpl extends ServiceImpl implements IDaPassingStationCollectionService { @Autowired private DaPassingStationCollectionMapper daPassingStationCollectionMapper; @Autowired private IDaPassingStationCollectionService daPassingStationCollectionService; @Autowired private RmRepairRecordMapper rmRepairRecordMapper; @Resource private SqlSessionFactory sqlSessionFactory; // @Autowired // private BsOrderSchedulingMapper bsOrderSchedulingMapper; // // @Autowired // private IBsOrderSchedulingService bsOrderSchedulingService; /** * 查询产品过站采集 * * @param id 产品过站采集主键 * @return 产品过站采集 */ @Override public DaPassingStationCollection selectDaPassingStationCollectionById(Long id) { return daPassingStationCollectionMapper.selectDaPassingStationCollectionById(id); } /** * 查询产品过站采集列表 * * @param daPassingStationCollection 产品过站采集 * @return 产品过站采集 */ @Override public List selectDaPassingStationCollectionList(DaPassingStationCollection daPassingStationCollection) { return daPassingStationCollectionMapper.selectDaPassingStationCollectionList(daPassingStationCollection); } // /** // * 获取首页单日累计量产数据 // * @param fieldName bs // * @return list // */ // @Override // public Integer getProduceNumToday(String fieldName) { // // BsOrderScheduling bsOrderScheduling = new BsOrderScheduling(); // bsOrderScheduling.setQueryField(fieldName); // DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // LocalDateTime startTime = LocalDate.now().atStartOfDay(); // LocalDateTime endTime = LocalDate.now().plusDays(1).atStartOfDay(); // String s1 = startTime.format(formatter); // String s2 = endTime.format(formatter); // bsOrderScheduling.setStartTime(s1); // bsOrderScheduling.setEndTime(s2); // return bsOrderSchedulingMapper.getProduceNumToday(bsOrderScheduling); // } /** * 新增产品过站采集 * * @param daPassingStationCollection 产品过站采集 * @return 结果 */ @Override public int insertDaPassingStationCollection(DaPassingStationCollection daPassingStationCollection) { daPassingStationCollection.setCreateTime(DateUtils.getNowDate()); return daPassingStationCollectionMapper.insertDaPassingStationCollection(daPassingStationCollection); } /** * 修改产品过站采集 * * @param daPassingStationCollection 产品过站采集 * @return 结果 */ @Override public int updateDaPassingStationCollection(DaPassingStationCollection daPassingStationCollection) { daPassingStationCollection.setUpdateTime(DateUtils.getNowDate()); return daPassingStationCollectionMapper.updateDaPassingStationCollection(daPassingStationCollection); } @Override public int updateDaPassingStationCollectionBySfcCodeAndLocationCode(DaPassingStationCollection daPassingStationCollection) { return daPassingStationCollectionMapper.updateDaPassingStationCollectionBySfcCodeAndLocationCode(daPassingStationCollection); } /** * 批量删除产品过站采集 * * @param ids 需要删除的产品过站采集主键 * @return 结果 */ @Override public int deleteDaPassingStationCollectionByIds(Long[] ids) { return daPassingStationCollectionMapper.deleteDaPassingStationCollectionByIds(ids); } /** * 删除产品过站采集信息 * * @param id 产品过站采集主键 * @return 结果 */ @Override public int deleteDaPassingStationCollectionById(Long id) { return daPassingStationCollectionMapper.deleteDaPassingStationCollectionById(id); } @Override public void insertRepairRecordByIds(DaPassingStationCollection daPassingStationCollection) { Long[] conditions = daPassingStationCollection.getIds(); for (int i = 0; i < conditions.length; i++) { DaPassingStationCollection result = daPassingStationCollectionMapper.selectDaPassingStationCollectionById(conditions[i]); RmRepairRecord rmRepairRecord = new RmRepairRecord(); rmRepairRecord.setBoxCode(result.getSfcCode()); rmRepairRecord.setProcessesCode(result.getLocationCode()); rmRepairRecord.setOriginalResult(result.getOutRsSign()); rmRepairRecordMapper.insertRmRepairRecord(rmRepairRecord); } } @Override public int jrmAddPassingStationCollection(DaPassingStationCollection daPassingStationCollection) { for (String model : daPassingStationCollection.getSfcCode().split(",")) { daPassingStationCollection.setSfcCode(model); daPassingStationCollectionService.save(daPassingStationCollection); } return 1; } @Override public void saveBeachDaPassingStationCollection(List list) { // ExecutorType.SIMPLE: 这个执行器类型不做特殊的事情。它为每个语句的执行创建一个新的预处理语句。 // ExecutorType.REUSE: 这个执行器类型会复用预处理语句。 // ExecutorType.BATCH: 这个执行器会批量执行所有更新语句,如果 SELECT 在它们中间执行还会标定它们是 必须的,来保证一个简单并易于理解的行为。 // 关闭session的自动提交 SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); try { DaPassingStationCollectionMapper userMapper = sqlSession.getMapper(DaPassingStationCollectionMapper.class); list.stream().forEach(item -> userMapper.insertDaPassingStationCollection(item)); // 提交数据 sqlSession.commit(); sqlSession.rollback(); } catch (Exception e) { sqlSession.rollback(); } finally { sqlSession.close(); } } }