lyh
2025-06-14 680b4178ff298795abfda5146b5bbf3431f24ca3
DNC对接刀具系统
已修改5个文件
82 ■■■■■ 文件已修改
lxzn-module-dnc/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/ICutterService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-dnc/pom.xml
@@ -58,6 +58,12 @@
            <artifactId>fastutil</artifactId>
            <version>8.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.jeecgframework.boot</groupId>
            <artifactId>lxzn-module-tms</artifactId>
            <version>3.4.3</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/controller/CutterController.java
@@ -110,4 +110,17 @@
        return service.extractAndSaveFromContent(docId,attributionId,attributionType);
    }
    /**
     * 发送刀具系统
     * @param docId 文档Id
     * @return
     */
    @AutoLog(value = "刀具信息-发送刀具系统")
    @ApiOperation(value = "刀具信息-发送刀具系统", notes = "刀具信息-发送刀具系统")
    @GetMapping("/sendCutterInfo/{docId}/{attributionType}/{attributionId}")
    public Result<?> sendCutterInfo(@PathVariable("docId") String docId
            ,@PathVariable("attributionType") Integer attributionType
            ,@PathVariable("attributionId") String attributionId) {
        return service.sendToCutterSystem(docId,attributionId,attributionType);
    }
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/ICutterService.java
@@ -40,5 +40,9 @@
     */
    Result<?> extractAndSaveFromContent(String docId,String attributionId,Integer attributionType);
    /**
     * 发送刀具列表到刀具系统
     * @param docId
     */
    Result<?> sendToCutterSystem(String docId,String attributionId,Integer attributionType);
}
lxzn-module-dnc/src/main/java/org/jeecg/modules/dnc/service/impl/CutterServiceImpl.java
@@ -10,15 +10,19 @@
import org.jeecg.modules.dnc.entity.Cutter;
import org.jeecg.modules.dnc.entity.DocFile;
import org.jeecg.modules.dnc.entity.DocInfo;
import org.jeecg.modules.dnc.entity.GuideCardBatch;
import org.jeecg.modules.dnc.exception.ExceptionCast;
import org.jeecg.modules.dnc.mapper.CutterMapper;
import org.jeecg.modules.dnc.response.CommonCode;
import org.jeecg.modules.dnc.service.ICutterService;
import org.jeecg.modules.dnc.service.IDocFileService;
import org.jeecg.modules.dnc.service.IDocInfoService;
import org.jeecg.modules.dnc.service.IGuideCardBatchService;
import org.jeecg.modules.dnc.utils.ValidateUtil;
import org.jeecg.modules.dnc.utils.file.FileUtilS;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecg.modules.tms.entity.PreparationOrderDetail;
import org.jeecg.modules.tms.entity.dto.PreparationOrderAndDetailDto;
import org.jeecg.modules.tms.service.IPreparationOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -40,8 +44,10 @@
    private IDocFileService docFileService;
    @Autowired
    private ISysDictService sysDictService;
    private IGuideCardBatchService guideCardBatchService;
    @Autowired
    private IPreparationOrderService preparationOrderService;
    /**
     * 新增刀具信息
     * @param cutter
@@ -194,13 +200,54 @@
                return Result.error("未发现刀具的参数信息注释,无法提取刀具信息");
            }
            this.saveBatch(newCutterList);
            //TODO发送刀具管理数据
            return Result.OK("提取刀具信息成功");
        }else {
            return Result.error("未发现刀具的参数信息注释,无法提取刀具信息");
        }
    }
    @Override
    public Result<?> sendToCutterSystem(String docId,String attributionId,Integer attributionType){
        List<Cutter> cutterList = this.list(new QueryWrapper<Cutter>()
                .eq("doc_id", docId)
                .eq(StrUtil.isNotEmpty(attributionId),"attribution_id",attributionId)
                .eq("attribution_type",attributionType));
        if (cutterList == null || cutterList.isEmpty()) {
            return Result.error("未发现刀具信息,无法发送到刀具系统");
        }
        if (cutterList.stream().anyMatch(item -> item.getCutterCode() == null)) {
            return Result.error("未发现刀具编号信息,无法发送到刀具系统");
        }
        //获取最新数控程序加工确认表
        List<GuideCardBatch> guideCardBatchList = guideCardBatchService.list(new QueryWrapper<GuideCardBatch>()
                .eq("doc_id", docId)
                .isNotNull("serial_number")
                .orderByDesc("SUBSTRING(serial_number, LEN(serial_number)-3, 4)"));
        if (guideCardBatchList == null || guideCardBatchList.isEmpty()) {
            return Result.error("未发现程序加工确认表信息,无法发送到刀具系统");
        }
        GuideCardBatch guideCardBatch = guideCardBatchList.get(0);
        PreparationOrderAndDetailDto dto = new PreparationOrderAndDetailDto();
        dto.setPartDrawingNo(guideCardBatch.getPartsCode());
        dto.setPartName(guideCardBatch.getPartsName());
        dto.setPartMaterial(guideCardBatch.getMaterielDesp());
        dto.setProductionProcessesNo(guideCardBatch.getProcessWorkCode());
        dto.setBatchCode(guideCardBatch.getProcessingBatch());
        dto.setMachiningCount(guideCardBatch.getProcessingQuantity());
        dto.setEquipmentCode(guideCardBatch.getProcessingEquipment());
        dto.setNcName(guideCardBatch.getDocName());
        List<PreparationOrderDetail> detailList = new ArrayList<>();
        cutterList.forEach(item -> {
            PreparationOrderDetail detail = new PreparationOrderDetail();
            detail.setToolCode(item.getCutterCode());
            detail.setToolId(item.getToolsId());
            detailList.add(detail);
        });
        dto.setPreparationOrderDetailList(detailList);
        preparationOrderService.addPreparationOrderFromDnc(dto);
        return Result.OK("发送到刀具系统成功");
    }
    public List<Cutter> extractToolAfterM6(DocInfo docInfo, List<String> ncLines) {
        List<Cutter> cutterList = new ArrayList<>();
        String currentToolCode = null; // 用于追踪当前换刀指令的刀具号
lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -128,7 +128,7 @@
        master:
          url: jdbc:sqlserver://192.168.1.118:1433;databasename=LXZN_TEST_HANGYU;nullCatalogMeansCurrent=true
          username: sa
          password: 123
          password:
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
  #redis 配置
  redis:
@@ -321,3 +321,5 @@
      - D:\\hy_test\\b
      - D:\\hy_test\\c
    interval: 10000  # 监控间隔(ms)
security:
  encryption-key: 1234567890abcdef # 加解密秘钥