yangys
2025-08-22 9810791a41d381a10451f3e9770cfcfedf98e886
blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/DncBackFileService.java
@@ -1,99 +1,34 @@
package org.springblade.mdm.program.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
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
/**
 * DNC回传文件处理服务
 *
 * @author yangys
 */
@Slf4j
@Service
@AllArgsConstructor
public class DncBackFileService extends BizServiceImpl<DncBackFileMapper, DncBackFile> {
   private final NcProgramService progService;
   private final NcNodeService ncNodeService;
   private final OssTemplate ossTemplate;
   private final CureFlowService cureFlowService;
   /**
    * 接受
    * @param ids
    */
   public void accept(String ids) {
      List<Long> 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<Long> 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<DncBackFileVO> pageQuery(DncBackFileQueryVO query) {
      /*
      IPage<DncBackFileVO> page = this.getBaseMapper().pageQuery(Condition.getPage(query),query);
      */
      return this.getBaseMapper().pageQuery(Condition.getPage(query),query);
      return this.baseMapper.pageQuery(Condition.getPage(query),query);
   }
}