|
@@ -104,20 +104,53 @@ public class BilletBasicInfoServiceImpl extends ServiceImpl<BilletBasicInfoMappe
|
|
|
billetBasicInfo.setBilletWeight(weight);
|
|
|
billetBasicInfo.setWeight(weight);
|
|
|
if (billetBasicInfo.getCcmNo() == 5) { // 5#
|
|
|
- // 循环处理number
|
|
|
- for (int i = 0; i < number; i++) {
|
|
|
- BigDecimal nextBilletNo = new BigDecimal(billetBasicInfo.getBilletNo());
|
|
|
- billetBasicInfo.setBilletNo(String.valueOf(nextBilletNo.add(BigDecimal.ONE)));
|
|
|
- billetBasicInfo.setHeatnoIndex(billetBasicInfo.getHeatnoIndex() + 1);
|
|
|
- // 将对象转换为 Map
|
|
|
- Map<String, Object> map = JSON.parseObject(JSON.toJSONString(billetBasicInfo), Map.class);
|
|
|
- // 创建 MqttClientUtil 实例并调用非静态方法 pushCData
|
|
|
- MqttClientUtil mqttClientUtil = new MqttClientUtil();
|
|
|
- // 钢坯实绩
|
|
|
- mqttClientUtil.pushCData(configMqttMapper, map, "trace/performance/billet/add");
|
|
|
- // #棒一数据处理
|
|
|
- if ("roll_club_one".equals(belongTable) && oConvertUtils.isNotEmpty(btchid)){ // 5号机去棒一
|
|
|
- sendRollClubOne(billetBasicInfo, btchid);
|
|
|
+ if (oConvertUtils.isNotEmpty(belongTable) && oConvertUtils.isNotEmpty(btchid)) {
|
|
|
+ // 循环处理number
|
|
|
+ for (int i = 0; i < number; i++) {
|
|
|
+ BigDecimal nextBilletNo = new BigDecimal(billetBasicInfo.getBilletNo());
|
|
|
+ billetBasicInfo.setBilletNo(String.valueOf(nextBilletNo.add(BigDecimal.ONE)));
|
|
|
+ billetBasicInfo.setHeatnoIndex(billetBasicInfo.getHeatnoIndex() + 1);
|
|
|
+ // 将对象转换为 Map
|
|
|
+ Map<String, Object> map = JSON.parseObject(JSON.toJSONString(billetBasicInfo), Map.class);
|
|
|
+ // 创建 MqttClientUtil 实例并调用非静态方法 pushCData
|
|
|
+ MqttClientUtil mqttClientUtil = new MqttClientUtil();
|
|
|
+ // 钢坯实绩
|
|
|
+ mqttClientUtil.pushCData(configMqttMapper, map, "trace/performance/billet/add");
|
|
|
+ // #棒一数据处理
|
|
|
+ if ("roll_club_one".equals(belongTable) && oConvertUtils.isNotEmpty(btchid)) { // 5号机去棒一
|
|
|
+ sendRollClubOne(billetBasicInfo, btchid);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ // 情况 2:belongTable 或 btchid 任一为空,4支一组组坯处理
|
|
|
+ Integer heatnoIndex = billetBasicInfo.getHeatnoIndex();
|
|
|
+ List<Map<String, Object>> pushedDataList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (int i = 0; i < number; i += 4) {
|
|
|
+ String billetsNos = "";
|
|
|
+ String assemblyNumber = generateUniqueAssemblyNumber(billetBasicInfo.getCcmNo(), billetBasicInfo.getHeatNo());
|
|
|
+ double weightAll = 0.0;
|
|
|
+
|
|
|
+ for (int j = 0; j < 4 && i + j < number; j++) {
|
|
|
+ BigDecimal nextBilletNo = new BigDecimal(billetBasicInfo.getBilletNo());
|
|
|
+ billetBasicInfo.setBilletNo(String.valueOf(nextBilletNo.add(BigDecimal.ONE)));
|
|
|
+ billetBasicInfo.setHeatnoIndex(++heatnoIndex);
|
|
|
+ billetBasicInfo.setAssemblyNumber(assemblyNumber);
|
|
|
+
|
|
|
+ Map<String, Object> map = JSON.parseObject(JSON.toJSONString(billetBasicInfo), Map.class);
|
|
|
+ pushedDataList.add(map);
|
|
|
+
|
|
|
+ MqttClientUtil mqttClientUtil = new MqttClientUtil();
|
|
|
+ mqttClientUtil.pushCData(configMqttMapper, map, "trace/performance/billet/add");
|
|
|
+
|
|
|
+ billetsNos += billetBasicInfo.getBilletNo() + ",";
|
|
|
+ weightAll += billetBasicInfo.getBilletWeight();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 去除末尾 ,
|
|
|
+ billetsNos = billetsNos.substring(0, billetsNos.length() - 1);
|
|
|
+ // 先处理组坯
|
|
|
+ sendAssemblyNumber(billetBasicInfo, billetsNos, assemblyNumber, weightAll);
|
|
|
}
|
|
|
}
|
|
|
} else if (billetBasicInfo.getCcmNo() == 6) {
|
|
@@ -263,7 +296,7 @@ public class BilletBasicInfoServiceImpl extends ServiceImpl<BilletBasicInfoMappe
|
|
|
private String generateUniqueBilletNo(Integer ccmNo, String heatNo) {
|
|
|
String billetNo;
|
|
|
do {
|
|
|
- billetNo = heatNo + (int)(Math.random() * 10000);
|
|
|
+ billetNo = heatNo + String.format("%04d", (int)(Math.random() * 10000));
|
|
|
} while (billetBasicInfoMapper.exists(new QueryWrapper<BilletBasicInfo>().eq("billet_no", billetNo). eq("ccm_no", ccmNo)));
|
|
|
return billetNo;
|
|
|
}
|
|
@@ -276,11 +309,16 @@ public class BilletBasicInfoServiceImpl extends ServiceImpl<BilletBasicInfoMappe
|
|
|
private String generateUniqueAssemblyNumber(Integer ccmNo, String heatNo) {
|
|
|
String assembly_number;
|
|
|
do {
|
|
|
- assembly_number = heatNo + (int)(Math.random() * 1000000);
|
|
|
- } while (billetAssemblyNumberMapper.exists(new QueryWrapper<BilletAssemblyNumber>().eq("assembly_number", assembly_number). eq("ccm_no", ccmNo)));
|
|
|
+ assembly_number = heatNo + String.format("%07d", (int)(Math.random() * 10000000));
|
|
|
+ } while (billetAssemblyNumberMapper.exists(
|
|
|
+ new QueryWrapper<BilletAssemblyNumber>()
|
|
|
+ .eq("assembly_number", assembly_number)
|
|
|
+ .eq("ccm_no", ccmNo))
|
|
|
+ );
|
|
|
return assembly_number;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public void addC(BilletBasicInfo billetBasicInfo) {
|
|
|
LambdaQueryWrapper<BilletBasicInfo> queryWrapper = new LambdaQueryWrapper<BilletBasicInfo>().eq(BilletBasicInfo::getBilletNo, billetBasicInfo.getBilletNo());
|