diff --git a/business/pom.xml b/business/pom.xml index caebf4a..263f2ae 100644 --- a/business/pom.xml +++ b/business/pom.xml @@ -97,6 +97,12 @@ + + + org.springframework.boot + spring-boot-starter-websocket + + com.alibaba fastjson diff --git a/business/src/main/java/com/fizz/business/constants/CommonConstants.java b/business/src/main/java/com/fizz/business/constants/CommonConstants.java new file mode 100644 index 0000000..74b2786 --- /dev/null +++ b/business/src/main/java/com/fizz/business/constants/CommonConstants.java @@ -0,0 +1,24 @@ +package com.fizz.business.constants; + +public class CommonConstants { + + public static final double RO = 7.86; //硅钢密度 + + public static class RocketMQ { + public static final String CONSUMER_GROUP_RECEIVE_ALARM_ZR1 = "C-ZG-ZR1-ALARM"; + public static final String CONSUMER_GROUP_RECEIVE_ALARM_ZR2 = "C-ZG-ZR2-ALARM"; + + public static final String TOPIC_RECEIVE_ALARM_FROM_PLAT_ZR1 = "ZG-ZR1-ALARM"; + public static final String TOPIC_RECEIVE_ALARM_FROM_PLAT_ZR2 = "ZG-ZR2-ALARM"; + + public static final String CONSUMER_GROUP_COIL_POINT_DATA_ZR1 = "C-ZG-ZR1-COIL-POINT-DATA"; + public static final String CONSUMER_GROUP_COIL_POINT_DATA_ZR2 = "C-ZG-ZR2-COIL-POINT-DATA"; + + public static final String TOPIC_RECEIVE_COIL_POINT_DATA_ZR1 = "ZG-ZR1-COIL-POINT-DATA"; + public static final String TOPIC_RECEIVE_COIL_POINT_DATA_ZR2 = "ZG-ZR2-COIL-POINT-DATA"; + + public static final String TOPIC_COIL_OUTPUT = "JH_PRODUCTION_PLAN_OUT"; + + public static final String TOPIC_COIL_DEFECT = "ZG-COIL-DEFECT"; + } +} diff --git a/business/src/main/java/com/fizz/business/constants/enums/WebMatOperateEnum.java b/business/src/main/java/com/fizz/business/constants/enums/WebMatOperateEnum.java new file mode 100644 index 0000000..211d84e --- /dev/null +++ b/business/src/main/java/com/fizz/business/constants/enums/WebMatOperateEnum.java @@ -0,0 +1,90 @@ +package com.fizz.business.constants.enums; + +import com.baomidou.mybatisplus.annotation.IEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import com.fizz.business.form.ChangePlanStatusForm; +import com.fizz.business.form.WebOperateMatForm; +import com.fizz.business.service.client.PdiPlanClient; +import com.fizz.business.service.impl.BeanFactory; +import com.fizz.business.utils.WebSocketUtil; +import com.fizz.business.vo.CrmPdiPlanVO; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.Map; + + +@Getter +@Slf4j +@AllArgsConstructor +public enum WebMatOperateEnum implements IEnum { + ONLINE("上线") { + @Override + public void operate(WebOperateMatForm form) { + + CrmPdiPlanVO crmPdiPlanVO = ONLINE.syncPlanStatus(form.getId()); + WebSocketUtil.sendMatmapMsg(crmPdiPlanVO); + } + }, + READY("回退") { + @Override + public void operate(WebOperateMatForm form) { + + } + }, + + PRODUCT("卸卷并封闭") { + @Override + public void operate(WebOperateMatForm form) { + super.operate(form); + } + }, + ; + + private final String desc; + + private static final Map MAP = new HashMap<>(16); + + static { + for (WebMatOperateEnum e : WebMatOperateEnum.values()) { + MAP.put(e.getValue(), e); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static WebMatOperateEnum getByValue(String value) { + return MAP.get(value); + } + + @JsonValue + @Override + public String getValue() { + return this.name(); + } + + public void operate(WebOperateMatForm form) { + PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class); + planClient.changeStatus(ChangePlanStatusForm.builder() + .operation(this.name()) + .id(form.getId()) + .build()); + } + + /** + * 同步计划状态 + * + * @param planId 计划id + */ + private CrmPdiPlanVO syncPlanStatus(Long planId) { + PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class); + + return planClient.changeStatus(ChangePlanStatusForm.builder() + .operation(this.name()) + .id(planId) + .build()); + + } +} diff --git a/business/src/main/java/com/fizz/business/constants/enums/WsTypeEnum.java b/business/src/main/java/com/fizz/business/constants/enums/WsTypeEnum.java new file mode 100644 index 0000000..3a5cacf --- /dev/null +++ b/business/src/main/java/com/fizz/business/constants/enums/WsTypeEnum.java @@ -0,0 +1,39 @@ +package com.fizz.business.constants.enums; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * websocket type + * + * @author chenhao + * @date 2023/04/24 + */ +@Getter +@AllArgsConstructor +public enum WsTypeEnum { + alarm, track_position, track_measure, track_signal, track_matmap; + + private static final Map MAP = new HashMap<>(8); + + static { + for (WsTypeEnum e : WsTypeEnum.values()) { + MAP.put(e.getValue(), e); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static WsTypeEnum getByValue(String value) { + return MAP.get(value); + } + + @JsonValue + public String getValue() { + return this.name(); + } +} diff --git a/business/src/main/java/com/fizz/business/controller/CrmPdiPlanController.java b/business/src/main/java/com/fizz/business/controller/CrmPdiPlanController.java index 37d9133..696fb12 100644 --- a/business/src/main/java/com/fizz/business/controller/CrmPdiPlanController.java +++ b/business/src/main/java/com/fizz/business/controller/CrmPdiPlanController.java @@ -3,7 +3,9 @@ package com.fizz.business.controller; import com.fizz.business.domain.CrmPdiPlan; 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.ruoyi.common.core.domain.R; import io.swagger.annotations.Api; @@ -24,7 +26,7 @@ public class CrmPdiPlanController { private CrmPdiPlanService crmPdiPlanService; @GetMapping("/get/{coilid}") - @ApiOperation("通过钢卷号查询计划") + @ApiOperation("通过钢卷号或者状态查询计划") public R getByCoilId(@PathVariable String coilid) { return R.ok(crmPdiPlanService.getByCoilIdAndOperId(coilid)); } @@ -52,4 +54,5 @@ public class CrmPdiPlanController { public R> list(@RequestBody PlanQueryForm form) { return R.ok(crmPdiPlanService.listAll(form)); } + } diff --git a/business/src/main/java/com/fizz/business/controller/CrmPdoExcoilController.java b/business/src/main/java/com/fizz/business/controller/CrmPdoExcoilController.java index f828646..bba2b5c 100644 --- a/business/src/main/java/com/fizz/business/controller/CrmPdoExcoilController.java +++ b/business/src/main/java/com/fizz/business/controller/CrmPdoExcoilController.java @@ -1,6 +1,7 @@ package com.fizz.business.controller; import com.fizz.business.domain.CrmPdoExcoil; +import com.fizz.business.form.CrmPdoExcoilForm; import com.fizz.business.service.CrmPdoExcoilService; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.core.domain.R; @@ -45,9 +46,9 @@ public class CrmPdoExcoilController { return R.ok(crmPdoExcoilService.deleteCrmPdoExcoil(excoilid, operid)); } - @GetMapping("/list") + @PostMapping("/list") @ApiOperation("查询实绩列表") - public R> list() { - return R.ok(crmPdoExcoilService.listAll()); + public R> list(@RequestBody CrmPdoExcoilForm form) { + return R.ok(crmPdoExcoilService.listAll(form)); } } diff --git a/business/src/main/java/com/fizz/business/controller/ModSetupResultController.java b/business/src/main/java/com/fizz/business/controller/ModSetupResultController.java new file mode 100644 index 0000000..322a326 --- /dev/null +++ b/business/src/main/java/com/fizz/business/controller/ModSetupResultController.java @@ -0,0 +1,37 @@ +package com.fizz.business.controller; + +import com.fizz.business.domain.ModSetupResult; +import com.fizz.business.form.ModSetupResultForm; +import com.fizz.business.service.ModSetupResultService; +import com.fizz.business.vo.ModSetupResultVO; +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +@RequestMapping("/setup") +@Api("南钢设定值接口") +public class ModSetupResultController { + + @Resource + private ModSetupResultService modSetupResultService; + + // 查询所有记录 + @PostMapping("/list") + @ApiOperation("查询设定值列表") + public R> list(@RequestBody ModSetupResultForm form) { + return R.ok(modSetupResultService.list(form)); + } + + + @PostMapping("/calc") + @ApiOperation("计算设定值") + public R calcSetup(@RequestBody ModSetupResultForm form) { + return R.ok(modSetupResultService.calcSetup(form)); + } + +} \ No newline at end of file diff --git a/business/src/main/java/com/fizz/business/controller/TrackController.java b/business/src/main/java/com/fizz/business/controller/TrackController.java new file mode 100644 index 0000000..5f31504 --- /dev/null +++ b/business/src/main/java/com/fizz/business/controller/TrackController.java @@ -0,0 +1,41 @@ +package com.fizz.business.controller; + + +import com.fizz.business.form.WebOperateMatForm; +import com.fizz.business.service.TrackService; +import com.ruoyi.common.core.domain.R; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +/** + * @author baomidou + * @since 2023-05-17 + */ +@RestController +@RequestMapping("/track") +@Api(value = "过程跟踪页面", tags = "过程跟踪") +public class TrackController { + + @Resource + TrackService trackService; + + @PostMapping("/manual/operate/mat") + @ApiOperation(value = "页面手动操作钢卷 上线,回退") + public R manualOperateMat(@RequestBody @Valid WebOperateMatForm form) { + trackService.operateMatWeb(form); + return R.ok(); + } + + @PostMapping("/manual/tr/unload") + @ApiOperation(value = "页面卷取机手动卸卷登记产出") + public R manualtrUnload(@RequestBody @Valid WebOperateMatForm form) { + trackService.trUnload(form); + return R.ok(); + } + +} diff --git a/business/src/main/java/com/fizz/business/domain/CrmPdiPlan.java b/business/src/main/java/com/fizz/business/domain/CrmPdiPlan.java index 91705d6..32bd335 100644 --- a/business/src/main/java/com/fizz/business/domain/CrmPdiPlan.java +++ b/business/src/main/java/com/fizz/business/domain/CrmPdiPlan.java @@ -44,16 +44,16 @@ public class CrmPdiPlan implements Serializable { private Integer annealThick; @ApiModelProperty(value = "入口厚度") - private Float entryThick; + private Double entryThick; @ApiModelProperty(value = "入口宽度") - private Float entryWidth; + private Double entryWidth; @ApiModelProperty(value = "入口重量") - private Float entryWeight; + private Double entryWeight; @ApiModelProperty(value = "入口长度") - private Float entryLength; + private Double entryLength; @ApiModelProperty(value = "入口内径") private Integer entryInnerDiameter; @@ -74,34 +74,34 @@ public class CrmPdiPlan implements Serializable { private Integer cutMode; @ApiModelProperty(value = "出口重量1") - private Float exitValue1; + private Double exitValue1; @ApiModelProperty(value = "出口重量2") - private Float exitValue2; + private Double exitValue2; @ApiModelProperty(value = "出口重量3") - private Float exitValue3; + private Double exitValue3; @ApiModelProperty(value = "出口重量4") - private Float exitValue4; + private Double exitValue4; @ApiModelProperty(value = "出口重量5") - private Float exitValue5; + private Double exitValue5; @ApiModelProperty(value = "出口重量6") - private Float exitValue6; + private Double exitValue6; @ApiModelProperty(value = "出口重量") - private Float exitWeight; + private Double exitWeight; @ApiModelProperty(value = "出口长度") - private Float exitLength; + private Double exitLength; @ApiModelProperty(value = "出口厚度") - private Float exitThick; + private Double exitThick; @ApiModelProperty(value = "出口宽度") - private Float exitWidth; + private Double exitWidth; @ApiModelProperty(value = "钢种") private String grade; @@ -119,16 +119,16 @@ public class CrmPdiPlan implements Serializable { private String planNo; @ApiModelProperty(value = "压下率") - private Float reductionRate; + private Double reductionRate; @ApiModelProperty(value = "热卷温度") - private Float hotCoilTemp; + private Double hotCoilTemp; @ApiModelProperty(value = "厚度正偏差") - private Float entryThickMaxtol; + private Double entryThickMaxtol; @ApiModelProperty(value = "厚度正偏差") - private Float entryThickMintol; + private Double entryThickMintol; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "计划日期") diff --git a/business/src/main/java/com/fizz/business/domain/CrmPdoExcoil.java b/business/src/main/java/com/fizz/business/domain/CrmPdoExcoil.java index 2c99626..cf69457 100644 --- a/business/src/main/java/com/fizz/business/domain/CrmPdoExcoil.java +++ b/business/src/main/java/com/fizz/business/domain/CrmPdoExcoil.java @@ -1,5 +1,6 @@ package com.fizz.business.domain; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -14,9 +15,12 @@ import java.time.LocalDateTime; @TableName("crm_pdo_excoil") public class CrmPdoExcoil implements Serializable { - @TableId + @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "id") + private Long id; + @ApiModelProperty(value = "成品卷ID") - private String excoilid; + private String exitCoilid; @ApiModelProperty(value = "进入卷ID") private String encoilid; @@ -31,10 +35,10 @@ public class CrmPdoExcoil implements Serializable { private Integer subid; @ApiModelProperty(value = "头部位置") - private Float headpos; + private Double headpos; @ApiModelProperty(value = "尾部位置") - private Float tailpos; + private Double tailpos; @ApiModelProperty(value = "班次") private String shift; @@ -43,37 +47,37 @@ public class CrmPdoExcoil implements Serializable { private String crew; @ApiModelProperty(value = "退火厚度") - private Float annealThick; + private Double annealThick; @ApiModelProperty(value = "入口厚度") - private Float entryThick; + private Double entryThick; @ApiModelProperty(value = "入口宽度") - private Float entryWidth; + private Double entryWidth; @ApiModelProperty(value = "入口重量") - private Float entryWeight; + private Double entryWeight; @ApiModelProperty(value = "成品厚度") - private Float exitThick; + private Double exitThick; @ApiModelProperty(value = "成品宽度") - private Float exitWidth; + private Double exitWidth; @ApiModelProperty(value = "成品长度") - private Float exitLength; + private Double exitLength; @ApiModelProperty(value = "成品内径") - private Float exitInnerDiameter; + private Double exitInnerDiameter; @ApiModelProperty(value = "理论出口重量") - private Float calcExitWeight; + private Double calcExitWeight; @ApiModelProperty(value = "实际出口重量") - private Float measExitWeight; + private Double measExitWeight; @ApiModelProperty(value = "外径") - private Float outerDiameter; + private Double outerDiameter; @ApiModelProperty(value = "状态") private String status; @@ -94,7 +98,7 @@ public class CrmPdoExcoil implements Serializable { private LocalDateTime insdate; @ApiModelProperty(value = "质量") - private Float quality; + private Double quality; @ApiModelProperty(value = "热卷ID") private String hotCoilid; diff --git a/business/src/main/java/com/fizz/business/domain/ModSetupResult.java b/business/src/main/java/com/fizz/business/domain/ModSetupResult.java new file mode 100644 index 0000000..30ee617 --- /dev/null +++ b/business/src/main/java/com/fizz/business/domain/ModSetupResult.java @@ -0,0 +1,189 @@ +package com.fizz.business.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +@TableName("mod_setup_result") +@ApiModel(value = "ModSetupResult对象", description = "轧机设置结果实体类") +public class ModSetupResult { + + @ApiModelProperty(value = "自增主键") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "logid") + private Integer logId; + + @ApiModelProperty(value = "钢卷ID") + private String coilId; + + @ApiModelProperty(value = "道次号") + private Integer passId; + + @ApiModelProperty(value = "机架号") + private Integer standId; + + @ApiModelProperty(value = "断面ID") + private Integer fractId; + + @ApiModelProperty(value = "速度限制") + private Integer speedLimit; + + @ApiModelProperty(value = "力限制") + private Integer forceLimit; + + @ApiModelProperty(value = "功率限制") + private Integer powerLimit; + + @ApiModelProperty(value = "入口厚度") + private Float entryThick; + + @ApiModelProperty(value = "出口厚度") + private Float exitThick; + + @ApiModelProperty(value = "最小厚度") + private Float minThick; + + @ApiModelProperty(value = "压下率") + private Float reduction; + + @ApiModelProperty(value = "摩擦系数") + private Float friction; + + @ApiModelProperty(value = "入口凸度") + private Float entryCrown; + + @ApiModelProperty(value = "出口凸度") + private Float exitCrown; + + @ApiModelProperty(value = "入口张力") + private Float entryTension; + + @ApiModelProperty(value = "出口张力") + private Float exitTension; + + @ApiModelProperty(value = "入口应力") + private Float entryTenstress; + + @ApiModelProperty(value = "出口应力") + private Float exitTenstress; + + @ApiModelProperty(value = "速度比") + private Float speedFract; + + @ApiModelProperty(value = "入口速度") + private Float entrySpeed; + + @ApiModelProperty(value = "出口速度") + private Float exitSpeed; + + @ApiModelProperty(value = "轧制速度") + private Float rollSpeed; + + @ApiModelProperty(value = "入口应变") + private Float sigmae; + + @ApiModelProperty(value = "出口应变") + private Float sigmas; + + @ApiModelProperty(value = "平均应变") + private Float sigmaave; + + @ApiModelProperty(value = "轧制力") + private Float rollForce; + + @ApiModelProperty(value = "轧辊间隙") + private Float rollgap; + + @ApiModelProperty(value = "超出间隙") + private Float overgap; + + @ApiModelProperty(value = "轧机刚度") + private Float millModulus; + + @ApiModelProperty(value = "滑移") + private Float slip; + + @ApiModelProperty(value = "变形半径") + private Float rdef; + + @ApiModelProperty(value = "轧制角度") + private Float angle; + + @ApiModelProperty(value = "中心流量") + private Float centerFlow; + + @ApiModelProperty(value = "边缘流量") + private Float edgeFlow; + + @ApiModelProperty(value = "中心压力") + private Float centerPress; + + @ApiModelProperty(value = "边缘压力") + private Float edgePress; + + @ApiModelProperty(value = "入口温度") + private Float entryTemp; + + @ApiModelProperty(value = "出口温度") + private Float exitTemp; + + @ApiModelProperty(value = "工作辊弯曲") + private Float wrbend; + + @ApiModelProperty(value = "支撑辊弯曲") + private Float irbend; + + @ApiModelProperty(value = "支撑辊位移") + private Float irshift; + + @ApiModelProperty(value = "电机电流") + private Float motorCurrent; + + @ApiModelProperty(value = "电机电压") + private Float motorVoltage; + + @ApiModelProperty(value = "轧制扭矩") + private Float rollTorque; + + @ApiModelProperty(value = "总轧制扭矩") + private Float totalRollTorque; + + @ApiModelProperty(value = "电机扭矩") + private Float motorTorque; + + @ApiModelProperty(value = "扭矩比") + private Float torqueRatio; + + @ApiModelProperty(value = "比扭矩") + private Float specTorque; + + @ApiModelProperty(value = "功率") + private Float power; + + @ApiModelProperty(value = "负载比") + private Float loadRatio; + + @ApiModelProperty(value = "计算ID 实际用的这个值") + private String calcId; + + @ApiModelProperty(value = "记录插入时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime insdate; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; +} diff --git a/business/src/main/java/com/fizz/business/dto/10086.txt b/business/src/main/java/com/fizz/business/dto/10086.txt deleted file mode 100644 index 56b6510..0000000 --- a/business/src/main/java/com/fizz/business/dto/10086.txt +++ /dev/null @@ -1 +0,0 @@ -11111 \ No newline at end of file diff --git a/business/src/main/java/com/fizz/business/form/ChangePlanStatusForm.java b/business/src/main/java/com/fizz/business/form/ChangePlanStatusForm.java new file mode 100644 index 0000000..9a6ce83 --- /dev/null +++ b/business/src/main/java/com/fizz/business/form/ChangePlanStatusForm.java @@ -0,0 +1,30 @@ +package com.fizz.business.form; + +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 状态变更form + * + * @author chenhao + * @date 2023/04/27 + */ +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ChangePlanStatusForm implements Serializable { + + @NotNull(message = "状态变更类型不能为空") + @ApiModelProperty("ONLINE-钢卷上线,UNLOAD-手动卸卷,PRODUCT-生产完成") + private String operation; + + @NotNull(message = "计划id不能为空") + @ApiModelProperty("计划id集合") + private Long id; + +} diff --git a/business/src/main/java/com/fizz/business/form/CrmPdoExcoilForm.java b/business/src/main/java/com/fizz/business/form/CrmPdoExcoilForm.java new file mode 100644 index 0000000..242211c --- /dev/null +++ b/business/src/main/java/com/fizz/business/form/CrmPdoExcoilForm.java @@ -0,0 +1,25 @@ +package com.fizz.business.form; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class CrmPdoExcoilForm { + + + @ApiModelProperty(value = "钢卷号") + private String encoilid; + + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "开始日期") + private LocalDateTime startDate; + + @JsonFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "结束日期") + private LocalDateTime endDate; + +} diff --git a/business/src/main/java/com/fizz/business/form/ModSetupResultForm.java b/business/src/main/java/com/fizz/business/form/ModSetupResultForm.java new file mode 100644 index 0000000..b90ade0 --- /dev/null +++ b/business/src/main/java/com/fizz/business/form/ModSetupResultForm.java @@ -0,0 +1,27 @@ +package com.fizz.business.form; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class ModSetupResultForm { + + @ApiModelProperty(value = "钢卷ID") + private String coilId; + + @ApiModelProperty(value = "钢种") + private String grade; + + @ApiModelProperty(value = "道次号") + private Integer passId; + + @ApiModelProperty(value = "退火厚度") + private Integer annealThick; + + @ApiModelProperty(value = "入口厚度") + private Double entryThick; + + @ApiModelProperty(value = "出口厚度") + private Double exitThick; + +} diff --git a/business/src/main/java/com/fizz/business/form/WebOperateMatForm.java b/business/src/main/java/com/fizz/business/form/WebOperateMatForm.java new file mode 100644 index 0000000..d53c56e --- /dev/null +++ b/business/src/main/java/com/fizz/business/form/WebOperateMatForm.java @@ -0,0 +1,39 @@ +package com.fizz.business.form; + +import com.fizz.business.constants.enums.WebMatOperateEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 状态变更form + * + * @author chenhao + * @date 2023/04/27 + */ +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WebOperateMatForm implements Serializable { + + @NotNull(message = "操作不存在") + @ApiModelProperty("ONLINE-钢卷上线,READY-回退,PRODUCT-生成完成") + private WebMatOperateEnum operation; + + @NotNull(message = "计划id不能为空") + @ApiModelProperty("计划id集合") + private Long id; + + @NotBlank(message = "钢卷号不能为空") + @ApiModelProperty(value = "钢卷号") + private String entryMatId; + + @ApiModelProperty(value = "计划号") + private String planNo; + +} diff --git a/business/src/main/java/com/fizz/business/mapper/ModSetupResultMapper.java b/business/src/main/java/com/fizz/business/mapper/ModSetupResultMapper.java new file mode 100644 index 0000000..ebbb428 --- /dev/null +++ b/business/src/main/java/com/fizz/business/mapper/ModSetupResultMapper.java @@ -0,0 +1,10 @@ +package com.fizz.business.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.fizz.business.domain.ModSetupResult; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface ModSetupResultMapper extends BaseMapper { + // 如果需要自定义查询或操作,可在此处添加相应的接口方法 +} diff --git a/business/src/main/java/com/fizz/business/service/CrmPdiPlanService.java b/business/src/main/java/com/fizz/business/service/CrmPdiPlanService.java index 3f50769..3feb5c1 100644 --- a/business/src/main/java/com/fizz/business/service/CrmPdiPlanService.java +++ b/business/src/main/java/com/fizz/business/service/CrmPdiPlanService.java @@ -2,6 +2,7 @@ package com.fizz.business.service; import com.baomidou.mybatisplus.extension.service.IService; import com.fizz.business.domain.CrmPdiPlan; +import com.fizz.business.form.ChangePlanStatusForm; import com.fizz.business.form.PlanQueryForm; import com.fizz.business.vo.CrmPdiPlanVO; @@ -18,4 +19,6 @@ public interface CrmPdiPlanService extends IService { public boolean deleteCrmPdiPlan(List coilid); public List listAll(PlanQueryForm form); + + CrmPdiPlanVO updateCrmPdiPlanById(ChangePlanStatusForm form); } diff --git a/business/src/main/java/com/fizz/business/service/CrmPdoExcoilService.java b/business/src/main/java/com/fizz/business/service/CrmPdoExcoilService.java index 5f56c04..ce6ea74 100644 --- a/business/src/main/java/com/fizz/business/service/CrmPdoExcoilService.java +++ b/business/src/main/java/com/fizz/business/service/CrmPdoExcoilService.java @@ -2,6 +2,7 @@ package com.fizz.business.service; import com.baomidou.mybatisplus.extension.service.IService; import com.fizz.business.domain.CrmPdoExcoil; +import com.fizz.business.form.CrmPdoExcoilForm; import java.util.List; @@ -14,6 +15,6 @@ public interface CrmPdoExcoilService extends IService { boolean deleteCrmPdoExcoil(String excoilid, Integer operid); - List listAll(); + List listAll(CrmPdoExcoilForm form); } diff --git a/business/src/main/java/com/fizz/business/service/ModSetupResultService.java b/business/src/main/java/com/fizz/business/service/ModSetupResultService.java new file mode 100644 index 0000000..13d739b --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/ModSetupResultService.java @@ -0,0 +1,15 @@ +package com.fizz.business.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.fizz.business.domain.ModSetupResult; +import com.fizz.business.form.ModSetupResultForm; +import com.fizz.business.vo.ModSetupResultVO; + +import java.util.List; + +public interface ModSetupResultService extends IService { + List list(ModSetupResultForm form); + + String calcSetup(ModSetupResultForm form); + // 可在此处添加自定义业务方法 +} diff --git a/business/src/main/java/com/fizz/business/service/TrackService.java b/business/src/main/java/com/fizz/business/service/TrackService.java new file mode 100644 index 0000000..e3c560a --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/TrackService.java @@ -0,0 +1,15 @@ +package com.fizz.business.service; + + +import com.fizz.business.form.WebOperateMatForm; + +/** + * @author chenhao + * @date 2023/05/17 + */ +public interface TrackService { + + void operateMatWeb(WebOperateMatForm form); + + void trUnload(WebOperateMatForm form); +} diff --git a/business/src/main/java/com/fizz/business/service/client/PdiPlanClient.java b/business/src/main/java/com/fizz/business/service/client/PdiPlanClient.java new file mode 100644 index 0000000..db4ac87 --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/client/PdiPlanClient.java @@ -0,0 +1,44 @@ +package com.fizz.business.service.client; + +import com.fizz.business.form.ChangePlanStatusForm; +import com.fizz.business.service.CrmPdiPlanService; +import com.fizz.business.vo.CrmPdiPlanVO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 计划执行接口 + * + * @author chenhao + * @date 2023/05/17 + */ +@Slf4j +@Component +public class PdiPlanClient { + + @Resource + CrmPdiPlanService crmPdiPlanService; + + public List queryTrackPlanList() { + return null; + } + + public CrmPdiPlanVO queryTrackPlanFirst() { + return null; + } + + public CrmPdiPlanVO detail(Long planId) { + return null; + } + + public CrmPdiPlanVO changeStatus(ChangePlanStatusForm form) { + + return crmPdiPlanService.updateCrmPdiPlanById(form); + + } + + +} diff --git a/business/src/main/java/com/fizz/business/service/client/TrackWsHandler.java b/business/src/main/java/com/fizz/business/service/client/TrackWsHandler.java new file mode 100644 index 0000000..b067a94 --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/client/TrackWsHandler.java @@ -0,0 +1,102 @@ +package com.fizz.business.service.client; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.CloseStatus; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; +import org.springframework.web.socket.handler.AbstractWebSocketHandler; + +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author chenhao + * @date 2023/05/19 + */ +@Slf4j +@Component +public class TrackWsHandler extends AbstractWebSocketHandler { + + private static final ConcurrentHashMap> clients = new ConcurrentHashMap<>(); + + /** + * socket 建立成功事件 + * + * @param session + */ + @Override + public void afterConnectionEstablished(WebSocketSession session) { + try { + String sid = session.getId(); + String type = (String) session.getAttributes().get("type"); + Map sessionMap = clients.get(type); + if (Objects.isNull(sessionMap)) { + sessionMap = new ConcurrentHashMap<>(); + } + sessionMap.put(sid, session); + // 添加 session + clients.put(type, sessionMap); + log.info("[websocket]建立连接:{}", type + sid); + } catch (Exception e) { + log.error("[websocket]建立连接错误:{}", e.getMessage(), e); + } + } + + /** + * 接收消息事件 + * + * @param session + * @param message + * @throws Exception + */ + @Override + protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { + String payload = message.getPayload(); + log.info("[websocket]收到客户端[{}]的消息:{}", session.getAttributes().get("type") + "-" + session.getId(), payload); + // 心跳 + if (payload.equals("ping")) { + session.sendMessage(new TextMessage("pong")); + } + } + + /** + * socket 断开连接时 + * + * @param session + * @param status + * @throws Exception + */ + @Override + public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { + onClose(session); + } + + @Override + public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { + log.error("[websocket]连接异常:{}", session.getAttributes().get("type") + "-" + session.getId(), exception); + onClose(session); + } + + public ConcurrentHashMap> getClients() { + return clients; + } + + private void onClose(WebSocketSession session) { + try { + String sid = session.getId(); + String type = (String) session.getAttributes().get("type"); + if (clients.containsKey(type) && clients.get(type).containsKey(sid)) { + WebSocketSession webSocketSession = clients.get(type).remove(sid); + if (webSocketSession != null) { + webSocketSession.close(); + } + } + log.info("[websocket]连接关闭:{}", type + "-" + sid); + } catch (Exception e) { + log.error("[websocket]连接关闭错误:{}", e.getMessage(), e); + } + + } +} \ No newline at end of file diff --git a/business/src/main/java/com/fizz/business/service/impl/BeanFactory.java b/business/src/main/java/com/fizz/business/service/impl/BeanFactory.java new file mode 100644 index 0000000..16236af --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/impl/BeanFactory.java @@ -0,0 +1,25 @@ +package com.fizz.business.service.impl; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @author chenhao + * @date 2023/05/18 + */ +@Component +public class BeanFactory implements ApplicationContextAware { + + private static ApplicationContext applicationContext; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + BeanFactory.applicationContext = applicationContext; + } + + public static T getBean(Class var1, Object... var2) { + return applicationContext.getBean(var1, var2); + } +} diff --git a/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java b/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java index 0ee5a03..42f7e8c 100644 --- a/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java +++ b/business/src/main/java/com/fizz/business/service/impl/CrmPdiPlanServiceImpl.java @@ -1,9 +1,11 @@ package com.fizz.business.service.impl; import cn.hutool.core.bean.BeanUtil; +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.mapper.CrmPdiPlanMapper; import com.fizz.business.service.CrmPdiPlanService; @@ -23,7 +25,15 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + if (coilid.equals("online")){ + queryWrapper.eq("STATUS", coilid); + CrmPdiPlan one = this.getOne(queryWrapper); + return BeanUtil.copyProperties(one, CrmPdiPlanVO.class); + + } + queryWrapper.like("coilid", coilid); CrmPdiPlan one = this.getOne(queryWrapper); @@ -70,4 +80,17 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl listAll() { - return this.list(); + public List listAll(CrmPdoExcoilForm form) { + + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (!StringUtils.isEmpty(form.getEncoilid())){ + queryWrapper.eq("exit_coilid", form.getEncoilid()).eq("encoilid", form.getEncoilid()); + } + + queryWrapper.ge("start_date", form.getStartDate() + "00:00:00"); + queryWrapper.le("start_date", form.getStartDate() + "23:59:59"); + + return baseMapper.selectList(queryWrapper); } } diff --git a/business/src/main/java/com/fizz/business/service/impl/ModSetupResultServiceImpl.java b/business/src/main/java/com/fizz/business/service/impl/ModSetupResultServiceImpl.java new file mode 100644 index 0000000..d692615 --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/impl/ModSetupResultServiceImpl.java @@ -0,0 +1,52 @@ +package com.fizz.business.service.impl; + +import cn.hutool.core.bean.BeanUtil; +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.domain.ModSetupResult; +import com.fizz.business.form.ModSetupResultForm; +import com.fizz.business.mapper.ModSetupResultMapper; +import com.fizz.business.service.ModSetupResultService; +import com.fizz.business.vo.ModSetupResultVO; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ModSetupResultServiceImpl extends ServiceImpl implements ModSetupResultService { + + @Override + public List list(ModSetupResultForm form) { + + // 确保各个字段的非空验证 + if (StringUtils.isEmpty(form.getGrade()) || form.getAnnealThick() == null || + form.getEntryThick() == null || form.getExitThick() == null || form.getPassId() == null) { + throw new IllegalArgumentException("必要的字段缺失"); + } + + // 去除Double类型的字段的小数位 + int annealThick = form.getAnnealThick(); + int entryThick = form.getEntryThick().intValue(); // 去除小数位 + int exitThick = form.getExitThick().intValue(); // 去除小数位 + int passId = form.getPassId(); + + // 根据字段构建 calcId + String calcId = form.getGrade() + annealThick + entryThick + exitThick + passId; + + // 实际查询代码(根据 calcId 查询数据) + // 这里假设查询方法为根据 calcId 查找结果 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ModSetupResult::getCalcId,calcId); + + List results = this.baseMapper.selectList(queryWrapper); + + + return BeanUtil.copyToList(results, ModSetupResultVO.class); + } + + @Override + public String calcSetup(ModSetupResultForm form) { + return null; + } +} \ No newline at end of file diff --git a/business/src/main/java/com/fizz/business/service/impl/TrackServiceImpl.java b/business/src/main/java/com/fizz/business/service/impl/TrackServiceImpl.java new file mode 100644 index 0000000..b2e8ecb --- /dev/null +++ b/business/src/main/java/com/fizz/business/service/impl/TrackServiceImpl.java @@ -0,0 +1,68 @@ +package com.fizz.business.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSON; +import com.fizz.business.domain.CrmPdiPlan; +import com.fizz.business.domain.CrmPdoExcoil; +import com.fizz.business.form.WebOperateMatForm; +import com.fizz.business.mapper.CrmPdiPlanMapper; +import com.fizz.business.service.CrmPdoExcoilService; +import com.fizz.business.service.TrackService; +import com.fizz.business.utils.CalcUtil; +import com.fizz.business.vo.Plan2PdoVO; +import com.ruoyi.common.utils.StringUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + + + +/** + * @author chenhao + * @date 2023/05/18 + */ +@Slf4j +@Service +public class TrackServiceImpl implements TrackService { + + @Resource + CrmPdiPlanMapper crmPdiPlanMapper; + + @Resource + CrmPdoExcoilService crmPdoExcoilService; + + @Override + public void operateMatWeb(WebOperateMatForm form) { + + log.info("unitCode:{}, hand operate mat by Web: {}", form.getPlanNo(), JSON.toJSONString(form)); + form.getOperation().operate(form); + + } + + @Override + public void trUnload(WebOperateMatForm form) { + if (StringUtils.compare(form.getOperation().getValue(),"PRODUCT") != 0) { + return; + } + + CrmPdiPlan pdiPlan = crmPdiPlanMapper.selectById(form.getId()); + Plan2PdoVO bean = BeanUtil.toBean(pdiPlan, Plan2PdoVO.class); + + CrmPdoExcoil excoil = BeanUtil.toBean(bean, CrmPdoExcoil.class); + + double calcCoilWeight = CalcUtil.calcCoilWeight(excoil.getExitLength(), excoil.getEntryThick(), excoil.getEntryWidth()); + excoil.setCalcExitWeight(calcCoilWeight); + excoil.setMeasExitWeight(calcCoilWeight); + excoil.setHeadpos(0d); + excoil.setTailpos(excoil.getExitLength()); + excoil.setSubid(1); + excoil.setOuterDiameter(Double.valueOf(bean.getEntryOuterDiameter())); + excoil.setStatus("PRODUCT"); + + crmPdoExcoilService.addCrmPdoExcoil(excoil); + + } + + +} diff --git a/business/src/main/java/com/fizz/business/utils/10086.txt b/business/src/main/java/com/fizz/business/utils/10086.txt deleted file mode 100644 index 56b6510..0000000 --- a/business/src/main/java/com/fizz/business/utils/10086.txt +++ /dev/null @@ -1 +0,0 @@ -11111 \ No newline at end of file diff --git a/business/src/main/java/com/fizz/business/utils/CalcUtil.java b/business/src/main/java/com/fizz/business/utils/CalcUtil.java new file mode 100644 index 0000000..81599c1 --- /dev/null +++ b/business/src/main/java/com/fizz/business/utils/CalcUtil.java @@ -0,0 +1,53 @@ +package com.fizz.business.utils; + + +import cn.hutool.core.util.NumberUtil; +import com.fizz.business.constants.CommonConstants; + +/** + * @author chenhao + * @date 2023/05/15 + */ +public class CalcUtil { + + /** + * 计算带钢长度 + * + * @param weight 重量[T] + * @param thick 厚度[mm] + * @param width 宽度[mm] + * @return 长度[m] + */ + public static double calcCoilLength(double weight, double thick, double width) { + double v = weight / (thick * width * CommonConstants.RO) * 1000 * 1000; + return NumberUtil.round(v, 0).doubleValue(); + } + + /** + * 计算带钢重量 + * + * @param length 长度[m] + * @param thick 厚度[mm] + * @param width 宽度[mm] + * @return 重量[T] + */ + public static double calcCoilWeight(double length, double thick, double width) { + double v = thick * width * length * CommonConstants.RO / (1000 * 1000); + return NumberUtil.round(v, 3).doubleValue(); + } + + /** + * 计算钢卷外径 + * + * @param weight 重量[T] + * @param width 宽度[mm] + * @param innerDiameter 内径[mm] + * @return 外径[mm] + */ + public static double calcOuterDiameter(double weight, double width, double innerDiameter) { + double innerRadius = (innerDiameter / 1000) / 2; + double v = 2 * Math.sqrt(((weight * 1000) / (width * CommonConstants.RO) + Math.PI * Math.pow(innerRadius, 2)) / Math.PI) * 1000; + return NumberUtil.round(v, 0).doubleValue(); + } + +} diff --git a/business/src/main/java/com/fizz/business/utils/WebSocketUtil.java b/business/src/main/java/com/fizz/business/utils/WebSocketUtil.java new file mode 100644 index 0000000..8e043a2 --- /dev/null +++ b/business/src/main/java/com/fizz/business/utils/WebSocketUtil.java @@ -0,0 +1,48 @@ +package com.fizz.business.utils; + +import com.alibaba.druid.support.json.JSONUtils; +import com.fizz.business.constants.enums.WsTypeEnum; +import com.fizz.business.service.client.TrackWsHandler; +import com.fizz.business.vo.CrmPdiPlanVO; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; + +import javax.annotation.Resource; +import java.io.IOException; +import java.util.Map; + + +@Slf4j +@Component +public class WebSocketUtil { + + private static TrackWsHandler trackWsHandler; + + @Autowired + public void setTrackWsHandler(TrackWsHandler trackWsHandler) { + WebSocketUtil.trackWsHandler = trackWsHandler; + } + + public static void sendMessage(WsTypeEnum type, String text) { + Map clients = trackWsHandler.getClients().getOrDefault(type.name(), Maps.newConcurrentMap()); + TextMessage message = new TextMessage(text); + clients.values().forEach(s -> { + try { + s.sendMessage(message); +// log.info("[websocket]向客户端[{}]推送消息:{}", type + "-" + s.getId(), text); + } catch (IOException e) { + log.error("[websocket]向客户端[{}]推送消息异常:{}", type + "-" + s.getId(), text); + } + }); + } + + public static void sendMatmapMsg(CrmPdiPlanVO crmPdiPlanVO) { + + sendMessage(WsTypeEnum.valueOf(WsTypeEnum.track_matmap.getValue()), JSONUtils.toJSONString(crmPdiPlanVO)); + } + +} diff --git a/business/src/main/java/com/fizz/business/vo/CrmPdiPlanVO.java b/business/src/main/java/com/fizz/business/vo/CrmPdiPlanVO.java index 1ec9e59..dc420e5 100644 --- a/business/src/main/java/com/fizz/business/vo/CrmPdiPlanVO.java +++ b/business/src/main/java/com/fizz/business/vo/CrmPdiPlanVO.java @@ -38,16 +38,16 @@ public class CrmPdiPlanVO { private Integer annealThick; @ApiModelProperty(value = "入口厚度") - private Float entryThick; + private Double entryThick; @ApiModelProperty(value = "入口宽度") - private Float entryWidth; + private Double entryWidth; @ApiModelProperty(value = "入口重量") - private Float entryWeight; + private Double entryWeight; @ApiModelProperty(value = "入口长度") - private Float entryLength; + private Double entryLength; @ApiModelProperty(value = "入口内径") private Integer entryInnerDiameter; @@ -68,34 +68,34 @@ public class CrmPdiPlanVO { private Integer cutMode; @ApiModelProperty(value = "出口重量1") - private Float exitValue1; + private Double exitValue1; @ApiModelProperty(value = "出口重量2") - private Float exitValue2; + private Double exitValue2; @ApiModelProperty(value = "出口重量3") - private Float exitValue3; + private Double exitValue3; @ApiModelProperty(value = "出口重量4") - private Float exitValue4; + private Double exitValue4; @ApiModelProperty(value = "出口重量5") - private Float exitValue5; + private Double exitValue5; @ApiModelProperty(value = "出口重量6") - private Float exitValue6; + private Double exitValue6; @ApiModelProperty(value = "出口重量") - private Float exitWeight; + private Double exitWeight; @ApiModelProperty(value = "出口长度") - private Float exitLength; + private Double exitLength; @ApiModelProperty(value = "出口厚度") - private Float exitThick; + private Double exitThick; @ApiModelProperty(value = "出口宽度") - private Float exitWidth; + private Double exitWidth; @ApiModelProperty(value = "钢种") private String grade; @@ -113,16 +113,16 @@ public class CrmPdiPlanVO { private String planNo; @ApiModelProperty(value = "压下率") - private Float reductionRate; + private Double reductionRate; @ApiModelProperty(value = "热卷温度") - private Float hotCoilTemp; + private Double hotCoilTemp; @ApiModelProperty(value = "厚度正偏差") - private Float entryThickMaxtol; + private Double entryThickMaxtol; @ApiModelProperty(value = "厚度正偏差") - private Float entryThickMintol; + private Double entryThickMintol; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "计划日期") diff --git a/business/src/main/java/com/fizz/business/vo/ModSetupResultVO.java b/business/src/main/java/com/fizz/business/vo/ModSetupResultVO.java new file mode 100644 index 0000000..1a97705 --- /dev/null +++ b/business/src/main/java/com/fizz/business/vo/ModSetupResultVO.java @@ -0,0 +1,118 @@ +package com.fizz.business.vo; + + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class ModSetupResultVO { + + @ApiModelProperty(value = "自增主键") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "logid") + private Integer logId; + + @ApiModelProperty(value = "钢卷ID") + private String coilId; + + @ApiModelProperty(value = "道次号") + private Integer passId; + + @ApiModelProperty(value = "入口厚度") + private Float entryThick; + + @ApiModelProperty(value = "出口厚度") + private Float exitThick; + + @ApiModelProperty(value = "压下率") + private Float reduction; + + @ApiModelProperty(value = "入口张力") + private Float entryTension; + + @ApiModelProperty(value = "出口张力") + private Float exitTension; + + @ApiModelProperty(value = "入口应力") + private Float entryTenstress; + + @ApiModelProperty(value = "出口应力") + private Float exitTenstress; + + @ApiModelProperty(value = "速度比") + private Float speedFract; + + @ApiModelProperty(value = "入口速度") + private Float entrySpeed; + + @ApiModelProperty(value = "出口速度") + private Float exitSpeed; + + @ApiModelProperty(value = "轧制速度") + private Float rollSpeed; + + @ApiModelProperty(value = "轧制力") + private Float rollForce; + + @ApiModelProperty(value = "轧辊间隙") + private Float rollgap; + + @ApiModelProperty(value = "超出间隙") + private Float overgap; + + @ApiModelProperty(value = "轧机刚度") + private Float millModulus; + + @ApiModelProperty(value = "前滑") + private Float slip; + + @ApiModelProperty(value = "工作辊弯辊力") + private Float wrbend; + + @ApiModelProperty(value = "支撑辊弯辊力") + private Float irbend; + + @ApiModelProperty(value = "轧制扭矩") + private Float rollTorque; + + @ApiModelProperty(value = "总轧制扭矩") + private Float totalRollTorque; + + @ApiModelProperty(value = "电机扭矩") + private Float motorTorque; + + @ApiModelProperty(value = "扭矩比") + private Float torqueRatio; + + @ApiModelProperty(value = "比扭矩") + private Float specTorque; + + @ApiModelProperty(value = "功率") + private Float power; + + @ApiModelProperty(value = "负载比") + private Float loadRatio; + + @ApiModelProperty(value = "计算ID 实际用的这个值") + private String calcId; + + @ApiModelProperty(value = "记录插入时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime insdate; + + @ApiModelProperty(value = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/business/src/main/java/com/fizz/business/vo/Plan2PdoVO.java b/business/src/main/java/com/fizz/business/vo/Plan2PdoVO.java new file mode 100644 index 0000000..b8dc3c6 --- /dev/null +++ b/business/src/main/java/com/fizz/business/vo/Plan2PdoVO.java @@ -0,0 +1,87 @@ +package com.fizz.business.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + + +@Data +public class Plan2PdoVO { + + + @ApiModelProperty(value = "多火轧制次数") + private Integer operid; + + + @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 = "下工序代码") + private String nextUnit; + + @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 = "状态") + private String status; + + @ApiModelProperty(value = "计划号") + private String planNo; + + @ApiModelProperty(value = "压下率") + private Double reductionRate; + + @ApiModelProperty(value = "热卷温度") + private Double hotCoilTemp; + + +}