package org.springblade.mdm.program.service; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BizServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.oss.OssTemplate; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; import org.springblade.mdm.flow.service.CureFlowService; import org.springblade.mdm.program.entity.DncBackFile; import org.springblade.mdm.program.entity.NcProgram; import org.springblade.mdm.program.mapper.DncBackFileMapper; import org.springblade.mdm.program.vo.DncBackFileQueryVO; import org.springblade.mdm.program.vo.DncBackFileVO; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; @AllArgsConstructor @Service public class DncBackFileService extends BizServiceImpl { private final NcProgramService progService; private final OssTemplate ossTemplate; private final CureFlowService cureFlowService; /** * 接受 * @param ids */ public void accept(String ids) { List idList = Func.toLongList(ids); for(Long id : idList){ DncBackFile backFile = this.getById(id); backFile.setStatus(DncBackFile.STATUS_ACCEPTED); backFile.setConfirmTime(DateUtil.now()); this.updateById(backFile); //新建一个程序,将老的程序isLastEditon设置未0,然后启动流程 this.upgradeProgramAndStartCure(backFile.getNcProgramId(),backFile); } } void upgradeProgramAndStartCure(long ncProgramId,DncBackFile backFile) { NcProgram oldProgram = this.progService.getById(ncProgramId); //更新文件信息 oldProgram.setOssName(backFile.getOssName()); oldProgram.setUrl(backFile.getUrl()); //TODO,是否删除原来的文件? progService.updateById(oldProgram); /* NcProgram newProgram = new NcProgram(); BeanUtils.copyProperties(oldProgram,newProgram); oldProgram.setIsLastEdition(0); progService.updateById(oldProgram); newProgram.setId(null); newProgram.setIsLastEdition(1); progService.updateById(newProgram); */ cureFlowService.startOne(oldProgram);//启动一个程序的固化流程 } /** * 拒绝 * @param ids */ public void reject(String ids) { List idList = Func.toLongList(ids); for(Long id : idList){ DncBackFile backFile = this.getById(id); backFile.setStatus(DncBackFile.STATUS_REJECTED); backFile.setConfirmTime(DateUtil.now()); this.ossTemplate.removeFile(backFile.getOssName()); this.updateById(backFile); } } /** * DNC回传程序处理分页查询 * @param query 查询参数 * @return 分页数据 */ public IPage pageQuery(DncBackFileQueryVO query) { /* IPage page = this.getBaseMapper().pageQuery(Condition.getPage(query),query); */ return this.getBaseMapper().pageQuery(Condition.getPage(query),query); } }