Ver código fonte

fix:优化对刀参数,以及自动零件生成

wang.sq@aliyun.com 2 meses atrás
pai
commit
1531fde96e
12 arquivos alterados com 263 adições e 19 exclusões
  1. 2 0
      imcs-admin-boot/imcs-authority-server/src/main/resources/bootstrap.yml
  2. 1 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/cutterdata/service/CutterTestDataService.java
  3. 47 15
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/cutterdata/service/impl/CutterTestDataServiceImpl.java
  4. 1 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java
  5. 19 0
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/CuttingToolConfigMapper.java
  6. 23 0
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/CuttingToolConfigService.java
  7. 61 0
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/CuttingToolConfigServiceImpl.java
  8. 0 1
      imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/CuttingToolServiceImpl.java
  9. 31 0
      imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/CuttingToolConfigMapper.xml
  10. 54 0
      imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/CuttingToolConfigController.java
  11. 23 0
      imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/CuttingTool.java
  12. 1 1
      imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/constant/BizConstant.java

+ 2 - 0
imcs-admin-boot/imcs-authority-server/src/main/resources/bootstrap.yml

@@ -6,6 +6,8 @@ spring:
   profiles:
     active: test
 logging:
+  level:
+    com.github.zuihou: INFO
   file:
     path: /data/projects/logs
     name: ${logging.file.path}/${spring.application.name}/root.log

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/cutterdata/service/CutterTestDataService.java

@@ -27,7 +27,7 @@ import java.util.List;
 
 public interface CutterTestDataService extends SuperService<CutterTestDataEntity> {
 
-    String findCutterTestData() throws Exception;
+    String findCutterTestData(CuttingTool cuttingTool);
 
     /**
      *

+ 47 - 15
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/cutterdata/service/impl/CutterTestDataServiceImpl.java

@@ -16,6 +16,7 @@ import com.github.zuihou.business.cutterdata.utils.CutterFile;
 import com.github.zuihou.business.operationManagementCenter.entity.TTask;
 import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
 import com.github.zuihou.business.productionReadyCenter.entity.CuttingTool;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingToolConfig;
 import com.github.zuihou.business.productionReadyCenter.service.CuttingToolService;
 import com.github.zuihou.business.productionResourceCenter.dao.ProductionresourceBizMapper;
 import com.github.zuihou.business.productionResourceCenter.dao.ZZoneProductionresourceMapper;
@@ -48,6 +49,7 @@ import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * @Project: imcs-admin-boot
@@ -88,8 +90,10 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
     @Autowired
     private ProductionresourceBizMapper productionresourceBizMapper;
 
+    private String CheckCUtter="MES_CUTTER:CHECK_CUTTER_HAVE_READ";
+
     @Override
-    public String findCutterTestData() throws Exception {
+    public String findCutterTestData(CuttingTool cuttingTool){
         log.info("===================定时获取机外对刀仪数据start===================");
 
         List<File> needFile = new ArrayList<>();
@@ -103,13 +107,21 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
         CutterFile.findFileS(needFile, new ArrayList<>(), new ArrayList<>(), CutterSharedPath, "test.xml");
 
         if (needFile.isEmpty()) {
-            return "需要解析的文件为空";
+            throw new RuntimeException("需要解析的文件为空");
         }
 
         List<CutterTestDataEntity> cutterTestDataEntities = new ArrayList<>();
         List<String> cutterTs = new ArrayList<>();
 
+
         for (File file : needFile) {
+            // 比对此文件是不是已经读取过
+            long lastModifiedTime = file.lastModified();
+            Object o = msgUtil.redis_get(CheckCUtter);
+            if(Objects.nonNull(o) && lastModifiedTime==Long.parseLong(o.toString())){
+                throw new RuntimeException("此刀具已经采集入库");
+            }
+
             CutterTestDataEntity build = CutterTestDataEntity.builder().filePath(file.getPath()).build();
             try {
                 SAXReader saxReader = new SAXReader();
@@ -117,6 +129,10 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
                 org.dom4j.Element root = document.getRootElement();
                 JSONObject json = CutterFile.findXmlData(root);
 
+                if(!cuttingTool.getCuttingToolNo().toString().equals(json.getJSONObject("ToolList").getJSONObject("Tools").getString("PTN"))){
+                    throw new RuntimeException("刀柄号数据不一致");
+                }
+
                 try {
                     build.setStatus(2);
                     build.setFilePath(file.getPath());
@@ -127,7 +143,7 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
                     build.setCutterTyp(json.getJSONObject("ToolList").getJSONObject("Tools").getString("ToolType"));
 
                     String substring = json.getJSONObject("ToolList").getJSONObject("Tools").getString("ToolType");
-                    if (CutterTypeContrastEnum.getDncType(substring.substring(0, 1)) == null) { //说明此类型就是主类不是子类
+                    if (Objects.isNull(substring) || CutterTypeContrastEnum.getDncType(substring.substring(0, 1)) == null) { //说明此类型就是主类不是子类
                         build.setCutterTypDnc(CutterTypeContrastEnum.getDncType(substring) == null ? "99" : CutterTypeContrastEnum.getDncType(substring));
                         build.setCutterTypSubDnc("99");
                     } else {
@@ -172,24 +188,27 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
                     }
 
                 } catch (Exception e) {
-                    log.info("机外对刀仪字段解析失败");
-                    build.setStatus(0);
+                    e.printStackTrace();
+                    throw new RuntimeException("机外对刀仪字段解析失败");
                 }
 
                 cutterTs.add(build.getCutterT());
                 cutterTestDataEntities.add(build);
             } catch (DocumentException e) {
-                log.info("机外对刀仪获取数据失败");
                 e.printStackTrace();
+                throw new RuntimeException("机外对刀仪获取数据失败");
             }
+
+            BeanUtils.copyProperties(cutterTestDataEntities.get(0),cuttingTool);
+
+            //此文件写入到redis中,确认已经读取过此文件的数据,不需要重复读取
+            msgUtil.redis_set(CheckCUtter, lastModifiedTime);
         }
 
         for (CutterTestDataEntity cutterTestDataEntity : cutterTestDataEntities) {
-            QueryWrapper queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("cutter_name", cutterTestDataEntity.getCutterName());
-            queryWrapper.eq("cutter_t", cutterTestDataEntity.getCutterT());
             //新增或修改刀具数据
-            this.saveOrUpdate(cutterTestDataEntity, queryWrapper);
+            this.remove(Wraps.<CutterTestDataEntity>lbQ().eq(CutterTestDataEntity::getCutterT, cutterTestDataEntity.getCutterT()));
+            this.save(cutterTestDataEntity);
         }
 
         log.info("===================定时获取机外对刀仪数据end===================");
@@ -311,6 +330,8 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
         }
 
         File file = needFile.get(0);
+        CuttingTool one = new CuttingTool();
+        Integer decimal = null;
         try {
             SAXReader saxReader = new SAXReader();
             org.dom4j.Document document = saxReader.read(file);
@@ -321,11 +342,9 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
                     JSONObject jsonObject = JSONObject.parseObject(xmlArrayDatum.toString());
                     if("刀具号".equals(jsonObject.getString("name"))){
                         String segment = jsonObject.getString("Segment").replace(" ","");
-                        int decimal = Integer.parseInt(segment, 16);
-
-                        CuttingTool one = cuttingToolService.getOne(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getCuttingToolNo, decimal));
+                        decimal = Integer.parseInt(segment, 10);
 
-                        return one;
+                        one = cuttingToolService.getOne(Wraps.<CuttingTool>lbQ().eq(CuttingTool::getCuttingToolNo, decimal));
                     }
                 }
             } catch (Exception e) {
@@ -337,7 +356,20 @@ public class CutterTestDataServiceImpl extends SuperServiceImpl<CutterTestDataMa
             e.printStackTrace();
             throw new BizException("机外对刀仪rfid对象文件获取失败");
         }
-        return null;
+
+        if(one ==null){
+            throw new BizException("基础数据无此刀具号:"+ decimal);
+        }
+
+        //对刀数据读取
+        try {
+            this.findCutterTestData(one);
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new BizException(e.getMessage());
+        }
+
+        return one;
     }
 
 

+ 1 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -1500,7 +1500,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
         }else if("capsule".equals(zZone.getNo())){
             productType = "C";
         }
-        String uniqueCode = productType + BizConstant.MARK_SEPARATOR + order.getOrderNo() + BizConstant.MARK_SEPARATOR + task.getTaskNo() + BizConstant.MARK_SEPARATOR + bom.getBomAlias() + BizConstant.MARK_SEPARATOR + orderMeterialInfo.get("bomBatchNo") + BizConstant.MARK_SEPARATOR + String.format("%06d", tWorkpiece.getSerialNo());
+        String uniqueCode = order.getOrderNo() + BizConstant.MARK_SEPARATOR + String.format("%04d", tWorkpiece.getSerialNo());
         data.put("uniqueCode",uniqueCode);
         return R.success(data);
     }

+ 19 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/dao/CuttingToolConfigMapper.java

@@ -0,0 +1,19 @@
+package com.github.zuihou.business.productionReadyCenter.dao;
+
+import com.github.zuihou.base.mapper.SuperMapper;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingToolConfig;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @Project: imcs-admin-boot
+ * @Package: com.github.zuihou.business.productionReadyCenter.dao
+ * @Author: Lenovo
+ * @Time: 2025 - 04 - 01 14 : 56
+ * @Description:
+ */
+
+@Repository
+public interface CuttingToolConfigMapper  extends SuperMapper<CuttingToolConfig> {
+
+
+}

+ 23 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/CuttingToolConfigService.java

@@ -0,0 +1,23 @@
+package com.github.zuihou.business.productionReadyCenter.service;
+
+import com.github.zuihou.base.R;
+import com.github.zuihou.base.service.SuperCacheService;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingTool;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingToolConfig;
+
+import java.util.List;
+
+/**
+ * @Project: imcs-admin-boot
+ * @Package: com.github.zuihou.business.productionReadyCenter.service
+ * @Author: Lenovo
+ * @Time: 2025 - 04 - 01 15 : 08
+ * @Description:
+ */
+public interface CuttingToolConfigService  extends SuperCacheService<CuttingToolConfig> {
+
+    List<CuttingToolConfig> findCuttingToolConfigByConditions(Long cuttingToolNo);
+
+    R saveOne(CuttingToolConfig cuttingToolConfig);
+
+}

+ 61 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/CuttingToolConfigServiceImpl.java

@@ -0,0 +1,61 @@
+package com.github.zuihou.business.productionReadyCenter.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.zuihou.base.R;
+import com.github.zuihou.base.service.SuperCacheServiceImpl;
+import com.github.zuihou.business.productionReadyCenter.dao.CuttingToolConfigMapper;
+import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureTray;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingToolConfig;
+import com.github.zuihou.business.productionReadyCenter.service.CuttingToolConfigService;
+import com.github.zuihou.common.constant.CacheKey;
+import com.github.zuihou.context.BaseContextHandler;
+import com.github.zuihou.database.mybatis.conditions.Wraps;
+import com.github.zuihou.exception.BizException;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @Project: imcs-admin-boot
+ * @Package: com.github.zuihou.business.productionReadyCenter.service.impl
+ * @Author: Lenovo
+ * @Time: 2025 - 04 - 01 15 : 09
+ * @Description:
+ */
+
+@Slf4j
+@Service
+public class CuttingToolConfigServiceImpl extends SuperCacheServiceImpl<CuttingToolConfigMapper, CuttingToolConfig> implements CuttingToolConfigService {
+
+
+    @Override
+    protected String getRegion() {
+        return CacheKey.USER;
+    }
+
+    @Override
+    public List<CuttingToolConfig> findCuttingToolConfigByConditions(Long cuttingToolNo) {
+        BaseContextHandler.setTenant("0000");
+
+        List<CuttingToolConfig> cuttingToolConfigs = baseMapper.selectList(Wraps.<CuttingToolConfig>lbQ().eq(CuttingToolConfig::getCuttingToolNo, cuttingToolNo));
+
+        return cuttingToolConfigs;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveOne(CuttingToolConfig cuttingToolConfig) {
+        try {
+            BaseContextHandler.setTenant("0000");
+            baseMapper.delete(Wraps.<CuttingToolConfig>lbQ().eq(CuttingToolConfig::getCuttingToolNo, cuttingToolConfig.getCuttingToolNo()));
+            baseMapper.insert(cuttingToolConfig);
+        }catch (Exception e){
+            e.printStackTrace();
+            throw new BizException("新增失败");
+        }
+
+        return R.success("成功");
+    }
+}

+ 0 - 1
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/CuttingToolServiceImpl.java

@@ -53,7 +53,6 @@ import static com.github.zuihou.utils.BizAssert.isFalse;
  */
 @Slf4j
 @Service
-
 public class CuttingToolServiceImpl extends SuperCacheServiceImpl<CuttingToolMapper, CuttingTool> implements CuttingToolService {
 
     @Autowired

+ 31 - 0
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/productionReadyCenter/CuttingToolConfigMapper.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.github.zuihou.business.productionReadyCenter.dao.CuttingToolConfigMapper">
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.github.zuihou.business.productionReadyCenter.entity.CuttingToolConfig">
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="create_user" jdbcType="BIGINT" property="createUser"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_user" jdbcType="BIGINT" property="updateUser"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="cutting_tool_no" jdbcType="BIGINT" property="cuttingToolNo"/>
+        <result column="cutter_zl_min" jdbcType="DOUBLE" property="cutterZlMin"/>
+        <result column="cutter_zl_max" jdbcType="DOUBLE" property="cutterZlMax"/>
+        <result column="cutter_xl_min" jdbcType="DOUBLE" property="cutterXlMin"/>
+        <result column="cutter_xl_max" jdbcType="DOUBLE" property="cutterXlMax"/>
+        <result column="cutter_ori_min" jdbcType="DOUBLE" property="cutterOriMin"/>
+        <result column="cutter_ori_max" jdbcType="DOUBLE" property="cutterOriMax"/>
+        <result column="cutter_typ_sub_dnc" jdbcType="VARCHAR" property="cutterTypSubDnc"/>
+        <result column="cutter_rs_min" jdbcType="DOUBLE" property="cutterRsMin"/>
+        <result column="cutter_rs_max" jdbcType="DOUBLE" property="cutterRsMax"/>
+        <result column="cutter_time2" jdbcType="DOUBLE" property="cutterTime2"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,create_user,create_time,update_user,update_time,cutting_tool_no,cutter_zl_min,cutter_zl_max,cutter_xl_min,
+        cutter_xl_max,cutter_ori_min,cutter_ori_max,cutter_typ_sub_dnc,cutter_rs_min,cutter_rs_max,cutter_time2,remark
+    </sql>
+
+</mapper>

+ 54 - 0
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionReadyCenter/CuttingToolConfigController.java

@@ -0,0 +1,54 @@
+package com.github.zuihou.business.controller.productionReadyCenter;
+
+import com.github.zuihou.base.R;
+import com.github.zuihou.base.controller.SuperCacheController;
+import com.github.zuihou.business.productionReadyCenter.dto.CuttingToolUpdateDTO;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingTool;
+import com.github.zuihou.business.productionReadyCenter.entity.CuttingToolConfig;
+import com.github.zuihou.business.productionReadyCenter.service.CuttingToolConfigService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @Project: imcs-admin-boot
+ * @Package: com.github.zuihou.business.controller.productionReadyCenter
+ * @Author: Lenovo
+ * @Time: 2025 - 04 - 01 15 : 17
+ * @Description:
+ */
+
+@Slf4j
+@Validated
+@RestController
+@RequestMapping("/cuttingToolConfig")
+@Api(value = "cuttingToolConfig", tags = "")
+public class CuttingToolConfigController extends SuperCacheController<CuttingToolConfigService, Long, CuttingToolConfig, CuttingToolConfig, CuttingToolConfig, CuttingToolConfig> {
+
+    @ApiOperation(value = "查询对刀仪参数数据", notes = "查询对刀仪参数数据")
+    @PostMapping("/findCuttingTool")
+    public List<CuttingToolConfig> findCuttingToolConfig(@RequestBody CuttingToolConfig model) {
+
+        List<CuttingToolConfig> cuttingToolConfigByConditions = baseService.findCuttingToolConfigByConditions(model.getCuttingToolNo());
+
+        return cuttingToolConfigByConditions;
+    }
+
+    @ApiOperation(value = "查询对刀仪参数数据", notes = "查询对刀仪参数数据")
+    @PostMapping("/saveOne")
+    public R saveOne(@RequestBody CuttingToolConfig model) {
+
+        R r = baseService.saveOne(model);
+
+        return r;
+    }
+
+
+}

+ 23 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/productionReadyCenter/entity/CuttingTool.java

@@ -134,6 +134,29 @@ public class CuttingTool extends Entity<Long> {
     @TableField(exist = false)
     private String storgeName;
 
+    @TableField(exist = false)
+    private String cutterZl;
+
+    @TableField(exist = false)
+    private String cutterXl;
+
+    @TableField(exist = false)
+    private String cutterRs;
+
+    @TableField(exist = false)
+    private String pangle;
+
+    @TableField(exist = false)
+    private String cutterOri;
+
+    @TableField(exist = false)
+    private String cutterTime1;
+
+    @TableField(exist = false)
+    private String cutterPlcBit;
+
+
+
 
     @Builder
     public CuttingTool(Long id, LocalDateTime createTime, Long createUser, LocalDateTime updateTime, Long updateUser, Long id1, Long cuttingToolNo, String cuttingToolName, String specifications, RemoteData<String, String> cuttingToolType, String cuttingSetToolPicture, String cuttingToolPicture, String cuttingToolInstallPicture, String toolSetToCheckParameter, String status, Long cutterNo, String remark) {

+ 1 - 1
imcs-admin-boot/imcs-common/src/main/java/com/github/zuihou/common/constant/BizConstant.java

@@ -216,6 +216,6 @@ public interface BizConstant {
 
     String MQ_EQUIPMENT_STATUS = "EquipmentStatus";
 
-    String MARK_SEPARATOR = "&";
+    String MARK_SEPARATOR = "_";
 
 }