feat():下发钢卷设定值请求到模型程序

This commit is contained in:
Allenxy
2025-01-09 21:13:22 +08:00
parent 4ae306f130
commit ff96a7ff2e
9 changed files with 453 additions and 10 deletions

View File

@@ -1,17 +1,15 @@
package com.fizz.business.controller;
import com.fizz.business.domain.CrmPdiPlan;
import com.fizz.business.form.CalcPdiPlanForm;
import com.fizz.business.form.CrmPdiPlanForm;
import com.fizz.business.form.PlanQueryForm;
import com.fizz.business.service.CrmPdiPlanService;
import com.fizz.business.service.ModSetupResultService;
import com.fizz.business.vo.CrmPdiPlanVO;
import com.fizz.business.vo.ModSetupResultVO;
import com.ruoyi.common.annotation.Anonymous;
import com.fizz.business.vo.PdiPlanSetupInfoVO;
import com.ruoyi.common.core.domain.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -31,6 +29,35 @@ public class CrmPdiPlanController {
return R.ok(crmPdiPlanService.getByCoilIdAndOperId(coilid));
}
@GetMapping("/getCoilInfoAndSetupList")
@ApiOperation("通过钢卷号获取钢卷信息和设定值列表")
public R<PdiPlanSetupInfoVO> getCoilInfoAndSetupList(@RequestParam String coilid) {
return R.ok(crmPdiPlanService.getCoilInfoAndSetupList(coilid));
}
@PostMapping("/save/coilInfo")
@ApiOperation("保存钢卷信息")
public R<String> editCoilInfo(@RequestBody CrmPdiPlanForm coilid) {
if (crmPdiPlanService.editCoilInfo(coilid)) {
return R.ok();
} else {
return R.fail("新增或更新失败");
}
}
@PostMapping("/calc")
@ApiOperation("计算设定值")
public R<String> editCoilInfo(@RequestBody CalcPdiPlanForm coilid) {
crmPdiPlanService.calcSetup(coilid);
return R.ok();
}
@PostMapping("/add")
@ApiOperation("新增计划")
public R<Boolean> add(@RequestBody CrmPdiPlan crmPdiPlan) {

View File

@@ -1,6 +1,7 @@
package com.fizz.business.controller;
import com.fizz.business.domain.ModSetupResult;
import com.fizz.business.form.CalcPdiPlanForm;
import com.fizz.business.form.ModSetupResultForm;
import com.fizz.business.service.ModSetupResultService;
import com.fizz.business.vo.ModSetupResultVO;
@@ -30,7 +31,7 @@ public class ModSetupResultController {
@PostMapping("/calc")
@ApiOperation("计算设定值")
public R<String> calcSetup(@RequestBody ModSetupResultForm form) {
public R<String> calcSetup(@RequestBody CalcPdiPlanForm form) {
return R.ok(modSetupResultService.calcSetup(form));
}

View File

@@ -0,0 +1,43 @@
package com.fizz.business.form;
import com.fizz.business.vo.ModSetupResultVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class CalcPdiPlanForm {
@ApiModelProperty(value = "多火轧制次数")
private Integer operid;
@ApiModelProperty(value = "轧制模式 1轧制力 2延伸率")
private Integer operMode;
@ApiModelProperty(value = "钢种")
private String grade;
@ApiModelProperty(value = "卷ID")
private String coilid;
@ApiModelProperty(value = "热轧卷ID")
private String hotCoilid;
@ApiModelProperty(value = "道次数")
private Integer passno;
@ApiModelProperty(value = "退火厚度")
private Integer annealThick;
@ApiModelProperty(value = "入口厚度")
private Double entryThick;
@ApiModelProperty(value = "出口厚度")
private Double exitThick;
@ApiModelProperty(value = "设定值列表")
List<ModSetupResultVO> lists;
}

View File

@@ -0,0 +1,124 @@
package com.fizz.business.form;
import com.fizz.business.vo.ModSetupResultVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class CrmPdiPlanForm {
@ApiModelProperty(value = "序列号")
private Integer seqid;
@ApiModelProperty(value = "多火轧制次数")
private Integer operid;
@ApiModelProperty(value = "轧制模式 1轧制力 2延伸率")
private Integer operMode;
@ApiModelProperty(value = "卷ID")
private String coilid;
@ApiModelProperty(value = "热轧卷ID")
private String hotCoilid;
@ApiModelProperty(value = "道次数")
private Integer passno;
@ApiModelProperty(value = "退火厚度")
private Integer annealThick;
@ApiModelProperty(value = "入口厚度")
private Double entryThick;
@ApiModelProperty(value = "入口宽度")
private Double entryWidth;
@ApiModelProperty(value = "入口重量")
private Double entryWeight;
@ApiModelProperty(value = "入口长度")
private Double entryLength;
@ApiModelProperty(value = "入口内径")
private Integer entryInnerDiameter;
@ApiModelProperty(value = "入口外径")
private Integer entryOuterDiameter;
@ApiModelProperty(value = "出口卷号")
private String exitCoilid;
@ApiModelProperty(value = "下工序代码 1冷硬卷 2退火卷 3其他 ")
private String nextUnit;
@ApiModelProperty(value = "分割数量")
private Integer splitNum;
@ApiModelProperty(value = "切割模式")
private Integer cutMode;
@ApiModelProperty(value = "出口重量1")
private Double exitValue1;
@ApiModelProperty(value = "出口重量2")
private Double exitValue2;
@ApiModelProperty(value = "出口重量3")
private Double exitValue3;
@ApiModelProperty(value = "出口重量4")
private Double exitValue4;
@ApiModelProperty(value = "出口重量5")
private Double exitValue5;
@ApiModelProperty(value = "出口重量6")
private Double exitValue6;
@ApiModelProperty(value = "出口重量")
private Double exitWeight;
@ApiModelProperty(value = "出口长度")
private Double exitLength;
@ApiModelProperty(value = "出口厚度")
private Double exitThick;
@ApiModelProperty(value = "出口宽度")
private Double exitWidth;
@ApiModelProperty(value = "钢种")
private String grade;
@ApiModelProperty(value = "屈服强度")
private Integer yieldStrength;
@ApiModelProperty(value = "抗拉强度")
private Integer tensileStrength;
@ApiModelProperty(value = "状态 NEW READY ONLINE PRODUCING PRODUCT")
private String status;
@ApiModelProperty(value = "计划号")
private String planNo;
@ApiModelProperty(value = "压下率")
private Double reductionRate;
@ApiModelProperty(value = "热卷温度")
private Double hotCoilTemp;
@ApiModelProperty(value = "厚度正偏差")
private Double entryThickMaxtol;
@ApiModelProperty(value = "厚度正偏差")
private Double entryThickMintol;
@ApiModelProperty(value = "设定值列表")
List<ModSetupResultVO> lists;
}

View File

@@ -2,15 +2,19 @@ package com.fizz.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fizz.business.domain.CrmPdiPlan;
import com.fizz.business.form.CalcPdiPlanForm;
import com.fizz.business.form.ChangePlanStatusForm;
import com.fizz.business.form.CrmPdiPlanForm;
import com.fizz.business.form.PlanQueryForm;
import com.fizz.business.vo.CrmPdiPlanVO;
import com.fizz.business.vo.PdiPlanSetupInfoVO;
import java.util.List;
public interface CrmPdiPlanService extends IService<CrmPdiPlan> {
public CrmPdiPlanVO getByCoilIdAndOperId(String coilid);
public PdiPlanSetupInfoVO getCoilInfoAndSetupList(String coilid);
public boolean addCrmPdiPlan(CrmPdiPlan crmPdiPlan);
@@ -21,4 +25,8 @@ public interface CrmPdiPlanService extends IService<CrmPdiPlan> {
public List<CrmPdiPlanVO> listAll(PlanQueryForm form);
void updateCrmPdiPlanById(ChangePlanStatusForm form);
boolean editCoilInfo(CrmPdiPlanForm coilid);
void calcSetup(CalcPdiPlanForm coilid);
}

View File

@@ -2,6 +2,8 @@ package com.fizz.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fizz.business.domain.ModSetupResult;
import com.fizz.business.form.CalcPdiPlanForm;
import com.fizz.business.form.CrmPdiPlanForm;
import com.fizz.business.form.ModSetupResultForm;
import com.fizz.business.vo.ModSetupResultVO;
@@ -10,8 +12,10 @@ import java.util.List;
public interface ModSetupResultService extends IService<ModSetupResult> {
List<ModSetupResultVO> list(ModSetupResultForm form);
String calcSetup(ModSetupResultForm form);
String calcSetup(CalcPdiPlanForm form);
String retrySetup(String coilid);
List<ModSetupResultVO> getSetupByCoilid(String coilid);
// 可在此处添加自定义业务方法
}

View File

@@ -5,12 +5,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fizz.business.domain.CrmPdiPlan;
import com.fizz.business.form.ChangePlanStatusForm;
import com.fizz.business.form.PlanQueryForm;
import com.fizz.business.form.*;
import com.fizz.business.mapper.CrmPdiPlanMapper;
import com.fizz.business.service.CrmPdiPlanService;
import com.fizz.business.service.ModSetupResultService;
import com.fizz.business.vo.CrmPdiPlanVO;
import com.fizz.business.vo.ModSetupResultVO;
import com.fizz.business.vo.PdiPlanSetupInfoVO;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -48,6 +49,18 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl<CrmPdiPlanMapper, CrmPdiP
return BeanUtil.copyProperties(one, CrmPdiPlanVO.class);
}
@Override
public PdiPlanSetupInfoVO getCoilInfoAndSetupList(String coilid) {
CrmPdiPlanVO byCoilIdAndOperId = this.getByCoilIdAndOperId(coilid);
PdiPlanSetupInfoVO setupInfoVO = BeanUtil.copyProperties(byCoilIdAndOperId, PdiPlanSetupInfoVO.class);
List<ModSetupResultVO> setup = modSetupResultService.getSetupByCoilid(coilid);
setupInfoVO.setLists(setup);
return setupInfoVO;
}
/**
* 添加新记录
* @param crmPdiPlan 要添加的CrmPdiPlan对象
@@ -104,4 +117,54 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl<CrmPdiPlanMapper, CrmPdiP
}
@Override
public boolean editCoilInfo(CrmPdiPlanForm coilid) {
LambdaQueryWrapper<CrmPdiPlan> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CrmPdiPlan::getCoilid,coilid);
CrmPdiPlan one = this.getOne(queryWrapper);
boolean flag;
if (one == null){
CrmPdiPlan bean = BeanUtil.toBean(coilid, CrmPdiPlan.class);
bean.setStatus("NEW");
bean.setSeqid(bean.getSeqid()+ 1);
flag = this.save(bean);
}else {
BeanUtil.copyProperties(coilid,one);
one.setStatus("NEW");
flag = this.updateById(one);
}
CalcPdiPlanForm calcPdiPlanForm = new CalcPdiPlanForm();
calcPdiPlanForm.setGrade(coilid.getGrade());
calcPdiPlanForm.setOperid(coilid.getOperid());
calcPdiPlanForm.setAnnealThick(coilid.getAnnealThick());
calcPdiPlanForm.setExitThick(coilid.getExitThick());
calcPdiPlanForm.setPassno(coilid.getPassno());
calcPdiPlanForm.setEntryThick(coilid.getEntryThick());
calcPdiPlanForm.setOperMode(coilid.getOperMode());
calcPdiPlanForm.setLists(coilid.getLists());
modSetupResultService.calcSetup(calcPdiPlanForm);
return flag;
}
@Override
public void calcSetup(CalcPdiPlanForm coilid) {
modSetupResultService.calcSetup(coilid);
}
}

View File

@@ -1,11 +1,13 @@
package com.fizz.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fizz.business.constants.CommonConstants;
import com.fizz.business.domain.ModSetupResult;
import com.fizz.business.form.CalcPdiPlanForm;
import com.fizz.business.form.ModSetupResultForm;
import com.fizz.business.mapper.ModSetupResultMapper;
import com.fizz.business.service.ModSetupResultService;
@@ -62,7 +64,15 @@ public class ModSetupResultServiceImpl extends ServiceImpl<ModSetupResultMapper,
}
@Override
public String calcSetup(ModSetupResultForm form) {
public String calcSetup(CalcPdiPlanForm form) {
//发送MQ
MessageProperties props = MessagePropertiesBuilder.newInstance()
.setContentType(MessageProperties.CONTENT_TYPE_TEXT_PLAIN)
.setMessageId("SETUP_CALL")
.build();
rabbitTemplate.send(CommonConstants.RabbitMQ.SEND_MODEL,new Message(JSONUtil.toJsonStr(form).getBytes(StandardCharsets.UTF_8),props));
return null;
}
@@ -78,4 +88,19 @@ public class ModSetupResultServiceImpl extends ServiceImpl<ModSetupResultMapper,
return null;
}
@Override
public List<ModSetupResultVO> getSetupByCoilid(String coilid) {
LambdaQueryWrapper<ModSetupResult> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ModSetupResult::getCoilId,coilid);
List<ModSetupResult> results = this.baseMapper.selectList(queryWrapper);
return BeanUtil.copyToList(results, ModSetupResultVO.class);
}
}

View File

@@ -0,0 +1,148 @@
package com.fizz.business.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class PdiPlanSetupInfoVO {
@ApiModelProperty(value = "id")
private Long id;
@ApiModelProperty(value = "序列号")
private Integer seqid;
@ApiModelProperty(value = "多火轧制次数")
private Integer operid;
@ApiModelProperty(value = "轧制模式 1轧制力 2延伸率")
private Integer operMode;
@ApiModelProperty(value = "卷ID")
private String coilid;
@ApiModelProperty(value = "热轧卷ID")
private String hotCoilid;
@ApiModelProperty(value = "道次数")
private Integer passno;
@ApiModelProperty(value = "退火厚度")
private Integer annealThick;
@ApiModelProperty(value = "入口厚度")
private Double entryThick;
@ApiModelProperty(value = "入口宽度")
private Double entryWidth;
@ApiModelProperty(value = "入口重量")
private Double entryWeight;
@ApiModelProperty(value = "入口长度")
private Double entryLength;
@ApiModelProperty(value = "入口内径")
private Integer entryInnerDiameter;
@ApiModelProperty(value = "入口外径")
private Integer entryOuterDiameter;
@ApiModelProperty(value = "出口卷号")
private String exitCoilid;
@ApiModelProperty(value = "下工序代码 1冷硬卷 2退火卷 3其他 ")
private String nextUnit;
@ApiModelProperty(value = "分割数量")
private Integer splitNum;
@ApiModelProperty(value = "切割模式")
private Integer cutMode;
@ApiModelProperty(value = "出口重量1")
private Double exitValue1;
@ApiModelProperty(value = "出口重量2")
private Double exitValue2;
@ApiModelProperty(value = "出口重量3")
private Double exitValue3;
@ApiModelProperty(value = "出口重量4")
private Double exitValue4;
@ApiModelProperty(value = "出口重量5")
private Double exitValue5;
@ApiModelProperty(value = "出口重量6")
private Double exitValue6;
@ApiModelProperty(value = "出口重量")
private Double exitWeight;
@ApiModelProperty(value = "出口长度")
private Double exitLength;
@ApiModelProperty(value = "出口厚度")
private Double exitThick;
@ApiModelProperty(value = "出口宽度")
private Double exitWidth;
@ApiModelProperty(value = "钢种")
private String grade;
@ApiModelProperty(value = "屈服强度")
private Integer yieldStrength;
@ApiModelProperty(value = "抗拉强度")
private Integer tensileStrength;
@ApiModelProperty(value = "状态 NEW READY ONLINE PRODUCING PRODUCT")
private String status;
@ApiModelProperty(value = "计划号")
private String planNo;
@ApiModelProperty(value = "压下率")
private Double reductionRate;
@ApiModelProperty(value = "热卷温度")
private Double hotCoilTemp;
@ApiModelProperty(value = "厚度正偏差")
private Double entryThickMaxtol;
@ApiModelProperty(value = "厚度正偏差")
private Double entryThickMintol;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "计划日期")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "记录日期")
private LocalDateTime insdate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "上线时间")
private LocalDateTime onlineTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "开始日期")
private LocalDateTime startDate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "结束日期")
private LocalDateTime endDate;
@ApiModelProperty(value = "设定值列表")
List<ModSetupResultVO> lists;
}