1
0
qiangxuan 1 сар өмнө
parent
commit
b7254e3ecc

+ 94 - 86
zgzt-sys-java/jeecg-module-conn/src/main/java/org/jeecg/modules/billetActual/service/impl/BilletBasicInfoServiceImpl.java

@@ -19,6 +19,8 @@ import org.jeecg.modules.heatsActuals.mapper.HeatsActualsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
@@ -48,98 +50,104 @@ public class BilletBasicInfoServiceImpl extends ServiceImpl<BilletBasicInfoMappe
     BilletHotsendChangeShiftMapper billetHotsendChangeShiftMapper;
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void addC(BilletBasicInfo billetBasicInfo) {
-        log.info("{}{}", "start钢坯基础信息接收到mqtt消息,开始处理逻辑:", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
-        String classShiftGroup = String.format("class:shift:group:%s", billetBasicInfo.getCcmNo()); // 班组
-        String classShift = String.format("class:shift:%s", billetBasicInfo.getCcmNo()); // 班别
-        String classShiftStr = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)) : "";
-        String classShiftGroupStr = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)) : "";
-        log.info("{}{}", "钢坯实绩接收时缓存中的班组班别:", classShiftGroupStr+ " " + classShiftStr);
-        // 查询钢坯基础是否存在
-        LambdaQueryWrapper<BilletBasicInfo> queryWrapper = new LambdaQueryWrapper<BilletBasicInfo>().eq(BilletBasicInfo::getBilletNo, billetBasicInfo.getBilletNo()).eq(BilletBasicInfo::getCcmNo, billetBasicInfo.getCcmNo()).eq(BilletBasicInfo::getHeatNo, billetBasicInfo.getHeatNo()).orderByDesc(BilletBasicInfo::getCreateTime).last("limit 1");
-        BilletBasicInfo basicInfo = baseMapper.selectOne(queryWrapper);
-        if(oConvertUtils.isNotEmpty(basicInfo) && oConvertUtils.isNotEmpty(basicInfo.getId())){ // 编辑
-            log.info("{}{}", "更新钢坯实绩最新一条中的班组班别:", basicInfo.getShiftGroup()+ " " + basicInfo.getShift());
-            // 编辑钢坯基础信息
-            billetBasicInfo.setId(basicInfo.getId());
-            billetBasicInfo.setBilletWeight(basicInfo.getBilletWeight());
-            billetBasicInfo.setWeight(basicInfo.getWeight());
-            billetBasicInfo.setShift(basicInfo.getShift());
-            billetBasicInfo.setActualLength(basicInfo.getActualLength());
-            billetBasicInfo.setThickness(basicInfo.getThickness());
-            billetBasicInfo.setSpec(basicInfo.getSpec());
-            billetBasicInfo.setGrade(basicInfo.getGrade());
-            billetBasicInfo.setShiftGroup(basicInfo.getShiftGroup());
-            baseMapper.updateById(billetBasicInfo);
-        } else {
-            // 查询定尺规则
-            LambdaQueryWrapper<BilletRulerConfig> queryWrapperbilletRulerConfig = new LambdaQueryWrapper<BilletRulerConfig>().eq(BilletRulerConfig::getLength, billetBasicInfo.getLength());
-            BilletRulerConfig billetRulerConfig = billetRulerConfigMapper.selectOne(queryWrapperbilletRulerConfig);
-            Double weight = 0.0;
-            if(oConvertUtils.isEmpty(billetRulerConfig)){
-                weight = billetBasicInfo.getWeight();
-            } else{
-                weight = billetRulerConfig.getWeight();
-            }
-            // 新增数据
-            billetBasicInfo.setBilletWeight(weight);
-            billetBasicInfo.setShift(classShiftStr);
-            billetBasicInfo.setShiftGroup(classShiftGroupStr);
+        try {
+            log.info("{}{}", "start钢坯基础信息接收到mqtt消息,开始处理逻辑:", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
+            String classShiftGroup = String.format("class:shift:group:%s", billetBasicInfo.getCcmNo()); // 班组
+            String classShift = String.format("class:shift:%s", billetBasicInfo.getCcmNo()); // 班别
+            String classShiftStr = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShift)) : "";
+            String classShiftGroupStr = !oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)).isEmpty() ? oConvertUtils.getString(redisTemplate.opsForValue().get(classShiftGroup)) : "";
+            log.info("{}{}", "钢坯实绩接收时缓存中的班组班别:", classShiftGroupStr + " " + classShiftStr);
+            // 查询钢坯基础是否存在
+            LambdaQueryWrapper<BilletBasicInfo> queryWrapper = new LambdaQueryWrapper<BilletBasicInfo>().eq(BilletBasicInfo::getBilletNo, billetBasicInfo.getBilletNo()).eq(BilletBasicInfo::getCcmNo, billetBasicInfo.getCcmNo()).eq(BilletBasicInfo::getHeatNo, billetBasicInfo.getHeatNo()).orderByDesc(BilletBasicInfo::getCreateTime).last("limit 1");
+            BilletBasicInfo basicInfo = baseMapper.selectOne(queryWrapper);
+            if (oConvertUtils.isNotEmpty(basicInfo) && oConvertUtils.isNotEmpty(basicInfo.getId())) { // 编辑
+                log.info("{}{}", "更新钢坯实绩最新一条中的班组班别:", basicInfo.getShiftGroup() + " " + basicInfo.getShift());
+                // 编辑钢坯基础信息
+                billetBasicInfo.setId(basicInfo.getId());
+                billetBasicInfo.setBilletWeight(basicInfo.getBilletWeight());
+                billetBasicInfo.setWeight(basicInfo.getWeight());
+                billetBasicInfo.setShift(basicInfo.getShift());
+                billetBasicInfo.setActualLength(basicInfo.getActualLength());
+                billetBasicInfo.setThickness(basicInfo.getThickness());
+                billetBasicInfo.setSpec(basicInfo.getSpec());
+                billetBasicInfo.setGrade(basicInfo.getGrade());
+                billetBasicInfo.setShiftGroup(basicInfo.getShiftGroup());
+                baseMapper.updateById(billetBasicInfo);
+            } else {
+                // 查询定尺规则
+                LambdaQueryWrapper<BilletRulerConfig> queryWrapperbilletRulerConfig = new LambdaQueryWrapper<BilletRulerConfig>().eq(BilletRulerConfig::getLength, billetBasicInfo.getLength());
+                BilletRulerConfig billetRulerConfig = billetRulerConfigMapper.selectOne(queryWrapperbilletRulerConfig);
+                Double weight = 0.0;
+                if (oConvertUtils.isEmpty(billetRulerConfig)) {
+                    weight = billetBasicInfo.getWeight();
+                } else {
+                    weight = billetRulerConfig.getWeight();
+                }
+                // 新增数据
+                billetBasicInfo.setBilletWeight(weight);
+                billetBasicInfo.setShift(classShiftStr);
+                billetBasicInfo.setShiftGroup(classShiftGroupStr);
 
-            log.info("{}{}", "新增钢坯实绩时班组班别:", billetBasicInfo.getShiftGroup()+ " " + billetBasicInfo.getShift());
-            baseMapper.insert(billetBasicInfo);
+                log.info("{}{}", "新增钢坯实绩时班组班别:", billetBasicInfo.getShiftGroup() + " " + billetBasicInfo.getShift());
+                baseMapper.insert(billetBasicInfo);
 
-            // 炉次实绩出坯量维护
-            LambdaQueryWrapper<HeatsActuals> queryWrapperHeatsActuals = new LambdaQueryWrapper<HeatsActuals>().eq(HeatsActuals::getHeatsCode, billetBasicInfo.getHeatNo()).eq(HeatsActuals::getCasterCode, billetBasicInfo.getCcmNo()).orderByDesc(HeatsActuals::getCreateTime).last("limit 1");
-            HeatsActuals heatsActuals = heatsActualsMapper.selectOne(queryWrapperHeatsActuals);
-            if(oConvertUtils.isNotEmpty(heatsActuals)) {
-                heatsActuals.setId(heatsActuals.getId());
-                heatsActuals.setBlankOutput(heatsActuals.getBlankOutput() + weight);
-                heatsActualsMapper.updateById(heatsActuals);
-            }
+                // 炉次实绩出坯量维护
+                LambdaQueryWrapper<HeatsActuals> queryWrapperHeatsActuals = new LambdaQueryWrapper<HeatsActuals>().eq(HeatsActuals::getHeatsCode, billetBasicInfo.getHeatNo()).eq(HeatsActuals::getCasterCode, billetBasicInfo.getCcmNo()).orderByDesc(HeatsActuals::getCreateTime).last("limit 1");
+                HeatsActuals heatsActuals = heatsActualsMapper.selectOne(queryWrapperHeatsActuals);
+                if (oConvertUtils.isNotEmpty(heatsActuals)) {
+                    heatsActuals.setId(heatsActuals.getId());
+                    heatsActuals.setBlankOutput(heatsActuals.getBlankOutput() + weight);
+                    heatsActualsMapper.updateById(heatsActuals);
+                }
 
-            // 当班总数 + 当班总重 信息维护
-            LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapperBilletHotsendChangeShift = new LambdaQueryWrapper<BilletHotsendChangeShift>()
-                    .eq(BilletHotsendChangeShift::getCcmNo, billetBasicInfo.getCcmNo())
-                    .eq(BilletHotsendChangeShift::getShift, classShiftStr)
-                    .eq(BilletHotsendChangeShift::getShiftGroup, classShiftGroupStr)
-                    .orderByDesc(BilletHotsendChangeShift::getCreateTime).last("limit 1");
-            BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftMapper.selectOne(queryWrapperBilletHotsendChangeShift);
-            if(oConvertUtils.isNotEmpty(billetHotsendChangeShift)){
-                billetHotsendChangeShift.setId(billetHotsendChangeShift.getId());
-                billetHotsendChangeShift.setShiftProduct(billetHotsendChangeShift.getShiftProduct() + weight);
-                billetHotsendChangeShift.setHeatNo(billetBasicInfo.getHeatNo());
-                billetHotsendChangeShift.setShiftSum(billetHotsendChangeShift.getShiftSum() + 1);
-                billetHotsendChangeShiftMapper.updateById(billetHotsendChangeShift);
-            }
+                // 当班总数 + 当班总重 信息维护
+                LambdaQueryWrapper<BilletHotsendChangeShift> queryWrapperBilletHotsendChangeShift = new LambdaQueryWrapper<BilletHotsendChangeShift>()
+                        .eq(BilletHotsendChangeShift::getCcmNo, billetBasicInfo.getCcmNo())
+                        .eq(BilletHotsendChangeShift::getShift, classShiftStr)
+                        .eq(BilletHotsendChangeShift::getShiftGroup, classShiftGroupStr)
+                        .orderByDesc(BilletHotsendChangeShift::getCreateTime).last("limit 1");
+                BilletHotsendChangeShift billetHotsendChangeShift = billetHotsendChangeShiftMapper.selectOne(queryWrapperBilletHotsendChangeShift);
+                if (oConvertUtils.isNotEmpty(billetHotsendChangeShift)) {
+                    billetHotsendChangeShift.setId(billetHotsendChangeShift.getId());
+                    billetHotsendChangeShift.setShiftProduct(billetHotsendChangeShift.getShiftProduct() + weight);
+                    billetHotsendChangeShift.setHeatNo(billetBasicInfo.getHeatNo());
+                    billetHotsendChangeShift.setShiftSum(billetHotsendChangeShift.getShiftSum() + 1);
+                    billetHotsendChangeShiftMapper.updateById(billetHotsendChangeShift);
+                }
 
-            // 钢坯热送单炉支数传递单信息维护
-            LambdaQueryWrapper<BilletHotsend> queryBilletWrapper = new LambdaQueryWrapper<BilletHotsend>().eq(BilletHotsend::getHeatNo, billetBasicInfo.getHeatNo())
-                    .eq(BilletHotsend::getShift, classShiftStr)
-                    .eq(BilletHotsend::getCcmNo,  billetBasicInfo.getCcmNo())
-                    .eq(BilletHotsend::getShiftGroup, classShiftGroupStr).orderByDesc(BilletHotsend::getCreateTime).last("limit 1");
-            BilletHotsend billetHotsendInfo = billetHotsendMapper.selectOne(queryBilletWrapper);
-            if(oConvertUtils.isNotEmpty(billetHotsendInfo) && oConvertUtils.isNotEmpty(billetHotsendInfo.getId())){ // 编辑钢坯热送单炉支数传递单
-                billetHotsendInfo.setId(billetHotsendInfo.getId());
-                billetHotsendInfo.setAmountTotal(billetHotsendInfo.getAmountTotal() + 1);
-                billetHotsendInfo.setBlankOutput(billetHotsendInfo.getBlankOutput() + weight); // 出坯量
-                billetHotsendInfo.setDecideWeight(billetHotsendInfo.getDecideWeight() + billetBasicInfo.getWeight()); // 定重
-                billetHotsendMapper.updateById(billetHotsendInfo);
-            } else {
-                BilletHotsend billetHotsend = new BilletHotsend();
-                billetHotsend.setCcmNo(String.valueOf(billetBasicInfo.getCcmNo())); // 铸机号
-                billetHotsend.setHeatNo(billetBasicInfo.getHeatNo()); // 炉号
-                billetHotsend.setShiftGroup(classShiftGroupStr); // 班组
-                billetHotsend.setShift(classShiftStr); // 班别
-                billetHotsend.setSteel(billetBasicInfo.getGrade()); // 钢种
-                billetHotsend.setSpec(billetBasicInfo.getSpec()); // 规格
-                billetHotsend.setAmountTotal(1); // 支数
-                billetHotsend.setBlankOutput(weight); // 出批量
-                billetHotsend.setDecideWeight(billetBasicInfo.getWeight()); // 定重
-                billetHotsend.setWasteBlankOutput(0.0);
-                billetHotsendMapper.insert(billetHotsend);
+                // 钢坯热送单炉支数传递单信息维护
+                LambdaQueryWrapper<BilletHotsend> queryBilletWrapper = new LambdaQueryWrapper<BilletHotsend>().eq(BilletHotsend::getHeatNo, billetBasicInfo.getHeatNo())
+                        .eq(BilletHotsend::getShift, classShiftStr)
+                        .eq(BilletHotsend::getCcmNo, billetBasicInfo.getCcmNo())
+                        .eq(BilletHotsend::getShiftGroup, classShiftGroupStr).orderByDesc(BilletHotsend::getCreateTime).last("limit 1");
+                BilletHotsend billetHotsendInfo = billetHotsendMapper.selectOne(queryBilletWrapper);
+                if (oConvertUtils.isNotEmpty(billetHotsendInfo) && oConvertUtils.isNotEmpty(billetHotsendInfo.getId())) { // 编辑钢坯热送单炉支数传递单
+                    billetHotsendInfo.setId(billetHotsendInfo.getId());
+                    billetHotsendInfo.setAmountTotal(billetHotsendInfo.getAmountTotal() + 1);
+                    billetHotsendInfo.setBlankOutput(billetHotsendInfo.getBlankOutput() + weight); // 出坯量
+                    billetHotsendInfo.setDecideWeight(billetHotsendInfo.getDecideWeight() + billetBasicInfo.getWeight()); // 定重
+                    billetHotsendMapper.updateById(billetHotsendInfo);
+                } else {
+                    BilletHotsend billetHotsend = new BilletHotsend();
+                    billetHotsend.setCcmNo(String.valueOf(billetBasicInfo.getCcmNo())); // 铸机号
+                    billetHotsend.setHeatNo(billetBasicInfo.getHeatNo()); // 炉号
+                    billetHotsend.setShiftGroup(classShiftGroupStr); // 班组
+                    billetHotsend.setShift(classShiftStr); // 班别
+                    billetHotsend.setSteel(billetBasicInfo.getGrade()); // 钢种
+                    billetHotsend.setSpec(billetBasicInfo.getSpec()); // 规格
+                    billetHotsend.setAmountTotal(1); // 支数
+                    billetHotsend.setBlankOutput(weight); // 出批量
+                    billetHotsend.setDecideWeight(billetBasicInfo.getWeight()); // 定重
+                    billetHotsend.setWasteBlankOutput(0.0);
+                    billetHotsendMapper.insert(billetHotsend);
+                }
             }
+            log.info("{}{}", "end钢坯基础信息逻辑处理结束:", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
+        } catch (Exception e) {
+            log.error("自动化处理钢坯基础信息时发生异常", e);
+            throw e;
         }
-        log.info("{}{}", "end钢坯基础信息逻辑处理结束:", DateUtils.date2Str(new Date(), DateUtils.datetimeFormat.get()));
     }
 }