zhangherong
2025-06-25 2fb6c67b2c0c72195eef6fe5f7904d739b46e2c0
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/GuideCardBatchServiceImpl.java
@@ -5,12 +5,14 @@
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.dnc.entity.GuideCardBatch;
import org.jeecg.modules.dnc.constant.DocAttributionTypeEnum;
import org.jeecg.modules.dnc.entity.*;
import org.jeecg.modules.dnc.mapper.GuideCardBatchMapper;
import org.jeecg.modules.dnc.service.IGuideCardBatchService;
import org.jeecg.modules.dnc.service.*;
import org.jeecg.modules.system.service.ISysDictService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
@@ -27,6 +29,21 @@
    @Autowired
    private ISysDictService sysDictService;
    @Autowired
    private IDocInfoService docInfoService;
    @Autowired
    private IPartsInfoService partsInfoService;
    @Autowired
    private IProcessStreamService processStreamService;
    @Autowired
    private IWorkStepService workStepService;
    @Autowired
    private IDeviceTypeService deviceTypeService;
    /**
     * 生成流水号
     * @param code
@@ -42,9 +59,9 @@
        // 查询当年所有记录
        QueryWrapper<GuideCardBatch> wrapper = new QueryWrapper<>();
        wrapper.likeRight("create_time", DateUtils.formatDate(new Date(), "yyyy"));
        wrapper.apply("YEAR(create_time) = YEAR(GETDATE())");
        wrapper.isNotNull("serial_number");
        wrapper.orderByDesc("SUBSTR(serial_number, -4)");
        wrapper.orderByDesc("SUBSTRING(serial_number, LEN(serial_number)-3, 4)");
        List<GuideCardBatch> list = this.list(wrapper);
@@ -62,10 +79,65 @@
            serialSuffix = "0001"; // 当年无记录则初始化
        }
        // 获取单位编码
        String unitCode = sysDictService.queryDictTextByKey("unit_code", code);
        // 拼接完整编号
        return yearSuffix + unitCode + user.getUsername() + serialSuffix;
        return yearSuffix+"-"+ code+"-"+ user.getUsername()+"-"+ serialSuffix;
    }
    /**
     * 导入NC文件默认产生nc文件对应数控程序加工确认表
     * @param docId
     * @return
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean importGuideCardBatch(String docId,String attributionId,Integer attributionType){
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        DocInfo docInfo=docInfoService.getById(docId);
        if (docInfo==null){
            return false;
        }
        PartsInfo partsInfo=new PartsInfo();
        ProcessStream processStream;
        WorkStep workStep;
        DeviceType deviceType;
        GuideCardBatch guideCardBatch=new GuideCardBatch();
        if (DocAttributionTypeEnum.PROCESS.getCode().equals(attributionType)){
            //工序设备类
            deviceType=deviceTypeService.getById(attributionId);
            if (deviceType==null){
                return false;
            }
            processStream=processStreamService.getById(deviceType.getAttributionId());
            if (processStream==null){
                return false;
            }
            guideCardBatch.setProcessWorkCode(processStream.getProcessCode());
            partsInfo=partsInfoService.getById(processStream.getPartsId());
        }else if (DocAttributionTypeEnum.WORKSITE.getCode().equals(attributionType)){
            //工步设备类
            deviceType=deviceTypeService.getById(attributionId);
            if (deviceType==null){
                return false;
            }
            workStep=workStepService.getById(deviceType.getAttributionId());
            if (workStep==null){
                return false;
            }
            guideCardBatch.setProcessWorkCode(workStep.getStepCode());
            partsInfo=partsInfoService.getById(workStep.getPartsId());
        }
        guideCardBatch.setDocId(docId);
        guideCardBatch.setSerialNumber(getSerialNumber("C140"));
        guideCardBatch.setUnit(sysDictService.queryDictTextByKey("unit_code", "C140"));
        guideCardBatch.setDocName(docInfo.getDocName());
        if (partsInfo!=null){
            guideCardBatch.setPartsCode(partsInfo.getPartsCode());
            guideCardBatch.setPartsName(partsInfo.getPartsName());
            guideCardBatch.setMaterielDesp(partsInfo.getStructureType());
        }
        guideCardBatch.setFlowStatus("0");
        guideCardBatch.setCompiler(user.getUsername());
        guideCardBatch.setCreateTime(new Date());
        return this.save(guideCardBatch);
    }
}