init(): 计划和产出代码上传
This commit is contained in:
@@ -6,11 +6,12 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import com.fizz.business.form.ChangePlanStatusForm;
|
||||
import com.fizz.business.form.L1OperateMatForm;
|
||||
import com.fizz.business.service.client.PdiPlanClient;
|
||||
import com.fizz.business.service.CrmPdiPlanService;
|
||||
import com.fizz.business.service.client.RedisCacheManager;
|
||||
import com.fizz.business.service.impl.BeanFactory;
|
||||
import com.fizz.business.utils.MatmapUtil;
|
||||
import com.fizz.business.utils.WebSocketUtil;
|
||||
import com.fizz.business.vo.CrmPdiPlanVO;
|
||||
import com.fizz.business.vo.PdiPlanVO;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -74,12 +75,10 @@ public enum L1OperateMatEnum implements IEnum<String>, IOperateMat<L1OperateMatF
|
||||
@Override
|
||||
public void operate(L1OperateMatForm form) {
|
||||
ArrayList<String> status = Lists.newArrayList(PlanStatusEnum.PRODUCING.name(), PlanStatusEnum.PRODUCT.name());
|
||||
PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class);
|
||||
PdiPlanVO plan = planClient.detail(form.getPlanId());
|
||||
CrmPdiPlanService planClient = BeanFactory.getBean(CrmPdiPlanService.class);
|
||||
CrmPdiPlanVO plan = planClient.getByCoilIdAndOperId(form.getEntryMatId());
|
||||
Assert.notNull(plan, "计划[{}]不存在", plan.getId());
|
||||
if (!planClient.isVirtualPlan(plan.getId())) {
|
||||
Assert.isTrue(status.contains(plan.getStatus()), "当前状态[{}]不支持甩尾", plan.getStatus());
|
||||
}
|
||||
|
||||
MatmapUtil.clearMatmap(form.getPorIdx());
|
||||
WebSocketUtil.sendSignalMsg(form);
|
||||
WebSocketUtil.sendMatmapMsg();
|
||||
@@ -114,15 +113,9 @@ public enum L1OperateMatEnum implements IEnum<String>, IOperateMat<L1OperateMatF
|
||||
*
|
||||
* @param planId 计划id
|
||||
*/
|
||||
private void syncPlanStatus(Long planId) {
|
||||
PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class);
|
||||
if (planClient.isVirtualPlan(planId)) {
|
||||
RedisCacheManager redisCacheManager = BeanFactory.getBean(RedisCacheManager.class);
|
||||
PdiPlanVO virtualPlan = redisCacheManager.getVirtualPlan(planId);
|
||||
virtualPlan.setStatus(this.name());
|
||||
redisCacheManager.putVirtualPlan(virtualPlan);
|
||||
return;
|
||||
}
|
||||
private void syncPlanStatus(String planId) {
|
||||
CrmPdiPlanService planClient = BeanFactory.getBean(CrmPdiPlanService.class);
|
||||
|
||||
planClient.changeStatus(ChangePlanStatusForm.builder()
|
||||
.operation(this.name())
|
||||
.id(planId)
|
||||
|
||||
@@ -15,14 +15,15 @@ import com.fizz.business.form.ChangePlanStatusForm;
|
||||
import com.fizz.business.form.WebOperateMatForm;
|
||||
import com.fizz.business.mapper.HalfReturnMapper;
|
||||
import com.fizz.business.mapper.SegmentMapper;
|
||||
import com.fizz.business.service.CrmPdiPlanService;
|
||||
import com.fizz.business.service.PdoExCoilService;
|
||||
import com.fizz.business.service.TrackService;
|
||||
import com.fizz.business.service.client.PdiPlanClient;
|
||||
import com.fizz.business.service.client.RedisCacheManager;
|
||||
import com.fizz.business.service.impl.BeanFactory;
|
||||
import com.fizz.business.utils.ErrorDataException;
|
||||
import com.fizz.business.utils.MatmapUtil;
|
||||
import com.fizz.business.utils.WebSocketUtil;
|
||||
import com.fizz.business.vo.CrmPdiPlanVO;
|
||||
import com.fizz.business.vo.PdiPlanVO;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -48,13 +49,9 @@ public enum WebOperateMatEnum implements IEnum<String>, IOperateMat<WebOperateMa
|
||||
Assert.notNull(form.getPorIdx(), "开卷机编号不能为空");
|
||||
// 页面手动上卷时,如果开卷机有卷
|
||||
// 需要判断:正常卷不允许上卷;虚拟卷则需要手动更新matmap,segment
|
||||
PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class);
|
||||
MatmapDTO porCoil = MatmapUtil.getMatmap(form.getPorIdx());
|
||||
if (MatmapUtil.already(porCoil)) {
|
||||
boolean virtualPlan = planClient.isVirtualPlan(porCoil.getPlanId());
|
||||
if (!virtualPlan) {
|
||||
throw new ErrorDataException(ExceptionCodeEnum.ERROR, "当前开卷机已有正在运行的钢卷,不支持上卷");
|
||||
}
|
||||
|
||||
ONLINE.syncPlanStatus(form.getPlanId());
|
||||
ONLINE.replaceVirtualPlan(form, porCoil);
|
||||
WebSocketUtil.sendSignalMsg(form, true);
|
||||
@@ -154,9 +151,9 @@ public enum WebOperateMatEnum implements IEnum<String>, IOperateMat<WebOperateMa
|
||||
@Override
|
||||
public void operate(WebOperateMatForm form) {
|
||||
ArrayList<String> status = Lists.newArrayList(PlanStatusEnum.ONLINE.name());
|
||||
PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class);
|
||||
PdiPlanVO plan = planClient.detail(form.getPlanId());
|
||||
if (Objects.nonNull(plan) && !planClient.isVirtualPlan(plan.getId())) {
|
||||
CrmPdiPlanService planClient = BeanFactory.getBean(CrmPdiPlanService.class);
|
||||
CrmPdiPlanVO plan = planClient.getByCoilIdAndOperId(form.getEntryMatId());
|
||||
if (Objects.nonNull(plan) ) {
|
||||
Assert.isTrue(!status.contains(plan.getStatus()), "当前状态[{}]不支持甩尾", plan.getStatus());
|
||||
}
|
||||
MatmapUtil.clearMatmap(form.getPorIdx());
|
||||
@@ -192,15 +189,9 @@ public enum WebOperateMatEnum implements IEnum<String>, IOperateMat<WebOperateMa
|
||||
*
|
||||
* @param planId 计划id
|
||||
*/
|
||||
private void syncPlanStatus(Long planId) {
|
||||
PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class);
|
||||
if (planClient.isVirtualPlan(planId)) {
|
||||
RedisCacheManager redisCacheManager = BeanFactory.getBean(RedisCacheManager.class);
|
||||
PdiPlanVO virtualPlan = redisCacheManager.getVirtualPlan(planId);
|
||||
virtualPlan.setStatus(this.name());
|
||||
redisCacheManager.putVirtualPlan(virtualPlan);
|
||||
return;
|
||||
}
|
||||
private void syncPlanStatus(String planId) {
|
||||
CrmPdiPlanService planClient = BeanFactory.getBean(CrmPdiPlanService.class);
|
||||
|
||||
planClient.changeStatus(ChangePlanStatusForm.builder()
|
||||
.operation(this.name())
|
||||
.id(planId)
|
||||
@@ -221,46 +212,20 @@ public enum WebOperateMatEnum implements IEnum<String>, IOperateMat<WebOperateMa
|
||||
if (!Lists.newArrayList(HALF_RETURN, ALL_RETURN).contains(form.getOperation()))
|
||||
return;
|
||||
|
||||
PdiPlanClient planClient = BeanFactory.getBean(PdiPlanClient.class);
|
||||
PdiPlanVO plan = planClient.detail(form.getPlanId());
|
||||
CrmPdiPlanService planClient = BeanFactory.getBean(CrmPdiPlanService.class);
|
||||
CrmPdiPlanVO plan = planClient.getByCoilIdAndOperId(form.getEntryMatId());
|
||||
|
||||
String entryMatId = form.getEntryMatId();
|
||||
String returnMatId = form.getReturnMatId();
|
||||
if (StrUtil.isBlank(returnMatId)) {
|
||||
returnMatId = BeanFactory.getBean(TrackService.class).getHalfReturnMatId(form.getPlanId(), entryMatId).getReturnMatId();
|
||||
}
|
||||
|
||||
if (Objects.equals(form.getOperation(), HALF_RETURN)) {
|
||||
HalfReturnMapper returnMapper = BeanFactory.getBean(HalfReturnMapper.class);
|
||||
// 第一次回退,需要将头部卷与尾部卷都记录到回退表中
|
||||
if (!Objects.equals(plan.getReturnType(), HALF_RETURN.name())) {
|
||||
String headCoilId = form.getEntryMatId() + "-1";
|
||||
int lastIndex = returnMatId.lastIndexOf("-");
|
||||
if (lastIndex != -1 && lastIndex < returnMatId.length() - 1) {
|
||||
String numberStr = returnMatId.substring(lastIndex + 1);
|
||||
int number = Integer.parseInt(numberStr) - 1;
|
||||
headCoilId = returnMatId.substring(0, lastIndex + 1) + number;
|
||||
}
|
||||
// 记录回退头部卷信息
|
||||
HalfReturn headCoil = new HalfReturn();
|
||||
headCoil.setEntryMatId(entryMatId);
|
||||
headCoil.setExitMatId(headCoilId);
|
||||
headCoil.setPlanNo(plan.getPlanNo());
|
||||
headCoil.setExitMatWeight(plan.getEntryWeight() - form.getReturnWeight());
|
||||
headCoil.setReturnMatWeight(0d);
|
||||
headCoil.setReturnType(HALF_RETURN.name());
|
||||
headCoil.setReturnRemark(form.getReturnRemark());
|
||||
headCoil.setReturnMatTime(LocalDateTime.now());
|
||||
|
||||
returnMapper.insert(headCoil);
|
||||
} else {
|
||||
entryMatId = plan.getReturnMatId();
|
||||
}
|
||||
|
||||
// 记录回退尾卷信息
|
||||
HalfReturn tailCoil = new HalfReturn();
|
||||
tailCoil.setEntryMatId(entryMatId);
|
||||
tailCoil.setExitMatId(returnMatId);
|
||||
tailCoil.setPlanNo(plan.getPlanNo());
|
||||
tailCoil.setPlanNo(plan.getPlanid());
|
||||
tailCoil.setExitMatWeight(0d);
|
||||
tailCoil.setReturnMatWeight(form.getReturnWeight());
|
||||
tailCoil.setReturnType(HALF_RETURN.name());
|
||||
@@ -270,7 +235,7 @@ public enum WebOperateMatEnum implements IEnum<String>, IOperateMat<WebOperateMa
|
||||
returnMapper.insert(tailCoil);
|
||||
} else {
|
||||
// 整卷回退删除已有产出
|
||||
BeanFactory.getBean(PdoExCoilService.class).deleteExistPdo(form.getPlanId());
|
||||
BeanFactory.getBean(PdoExCoilService.class).deleteExistPdo(form.getEntryMatId(),form.getPlanId());
|
||||
}
|
||||
|
||||
planClient.changeStatus(ChangePlanStatusForm.builder()
|
||||
|
||||
@@ -29,6 +29,12 @@ public class CrmPdiPlanController {
|
||||
return R.ok(crmPdiPlanService.addCrmPdiPlan(crmPdiPlan));
|
||||
}
|
||||
|
||||
@GetMapping("/getByCoilId")
|
||||
@Operation(summary ="新增计划")
|
||||
public R<CrmPdiPlanVO> add(@RequestParam String coilId) {
|
||||
return R.ok(crmPdiPlanService.getByCoilIdAndOperId(coilId));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary ="修改计划")
|
||||
public R<Boolean> update(@RequestBody CrmPdiPlan crmPdiPlan) {
|
||||
|
||||
@@ -37,11 +37,11 @@ public class CrmPdoExcoilController {
|
||||
return R.ok(crmPdoExcoilService.updateCrmPdoExcoil(crmPdoExcoil));
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete/{excoilid}/{operid}")
|
||||
@DeleteMapping("/delete/{excoilid}/{planId}")
|
||||
@Operation(summary ="删除实绩")
|
||||
|
||||
public R<Boolean> delete(@PathVariable String excoilid, @PathVariable Integer operid) {
|
||||
return R.ok(crmPdoExcoilService.deleteCrmPdoExcoil(excoilid, operid));
|
||||
public R<Boolean> delete(@PathVariable String excoilid, @PathVariable String planId) {
|
||||
return R.ok(crmPdoExcoilService.deleteCrmPdoExcoil(excoilid, planId));
|
||||
}
|
||||
|
||||
@PostMapping("/list")
|
||||
|
||||
@@ -50,14 +50,6 @@ public class TrackController {
|
||||
return R.ok(trackService.getReturnInfo(posIdx));
|
||||
}
|
||||
|
||||
@GetMapping("/half/return/mat/id")
|
||||
@Operation(description = "获取半卷回退卷号")
|
||||
public R<HalfReturnInfoVO> getHalfReturnMatId(@RequestParam("planId") Long planId,
|
||||
@RequestParam("entryMatId") String entryMatId) {
|
||||
|
||||
return R.ok(trackService.getHalfReturnMatId(planId, entryMatId));
|
||||
}
|
||||
|
||||
@GetMapping("/coil/position")
|
||||
@Operation(description = "获取跟踪带钢位置")
|
||||
public R<CoilPositionDTO> getCoilPosition() {
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.fizz.business.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
@@ -10,111 +11,306 @@ import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@TableName("crm_pdi_plan")
|
||||
@Schema(description = "钢卷计划信息表")
|
||||
public class CrmPdiPlan implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId
|
||||
private Long id; // 主键ID
|
||||
@Schema(description = "主键ID")
|
||||
private Long id;
|
||||
|
||||
private Integer seqid; // 主键ID
|
||||
private String coilid; // 钢卷号
|
||||
private Integer picklingCount; // 酸洗次数
|
||||
private Integer dummyCoilFlag; // 虚卷标识
|
||||
private Integer seqno; // 顺序号
|
||||
private Integer status; // 状态
|
||||
private String planid; // 计划ID
|
||||
private String planType; // 计划类型
|
||||
private BigDecimal yieldPoint; // 屈服点
|
||||
private BigDecimal entryWeight; // 入口重量(t)
|
||||
private BigDecimal entryThick; // 入口厚度(mm)
|
||||
private BigDecimal entryWidth; // 入口宽度(mm)
|
||||
private BigDecimal entryLength; // 入口长度(mm)
|
||||
private BigDecimal entryOuterDiameter; // 入口外径(mm)
|
||||
private BigDecimal entryInnerDiameter; // 入口内径(mm)
|
||||
private BigDecimal exitInnerDiameter; // 出口内径(mm)
|
||||
private String steelGrade; // 钢种
|
||||
private String exitCoilid; // 出口卷号
|
||||
private Integer tlvFlag; // 张力平整标识
|
||||
private String orderNo; // 订单号
|
||||
private String custommerCode; // 客户代码
|
||||
private BigDecimal orderThick; // 订单厚度(mm)
|
||||
private BigDecimal orderWidth; // 订单宽度(mm)
|
||||
private BigDecimal orderLenLow; // 订单长度下限(mm)
|
||||
private BigDecimal orderLenUp; // 订单长度上限(mm)
|
||||
private BigDecimal orderWt; // 订单重量(t)
|
||||
private BigDecimal orderWtLow; // 订单重量下限(t)
|
||||
private BigDecimal orderWtUp; // 订单重量上限(t)
|
||||
private BigDecimal orderMetCoatTop; // 订单镀层上
|
||||
private BigDecimal orderMetCoatBot; // 订单镀层下
|
||||
private String finalUse; // 最终用途
|
||||
private String hotCoilCode; // 热卷代码
|
||||
private BigDecimal exitLengthTar; // 出口目标长度(mm)
|
||||
private BigDecimal exitLengthTolMax; // 出口长度公差最大值(mm)
|
||||
private BigDecimal exitLengthTolMin; // 出口长度公差最小值(mm)
|
||||
private BigDecimal exitThickTar; // 出口目标厚度(mm)
|
||||
private BigDecimal exitThickTolMax; // 出口厚度公差最大值(mm)
|
||||
private BigDecimal exitThickTolMin; // 出口厚度公差最小值(mm)
|
||||
private BigDecimal exitWidthTar; // 出口目标宽度(mm)
|
||||
private BigDecimal exitWidthTolMax; // 出口宽度公差最大值(mm)
|
||||
private BigDecimal exitWidthTolMin; // 出口宽度公差最小值(mm)
|
||||
private String nextWholeBacklogCode; // 下道全流程积压代码
|
||||
private String prevWholeBacklogCode; // 上道全流程积压代码
|
||||
private String exitWtMode; // 出口重量模式
|
||||
private Integer splitNum; // 分卷数量
|
||||
private BigDecimal exitWeight1; // 出口重量1
|
||||
private BigDecimal exitWeight2; // 出口重量2
|
||||
private BigDecimal exitWeight3; // 出口重量3
|
||||
private BigDecimal exitWeight4; // 出口重量4
|
||||
private BigDecimal exitWeight5; // 出口重量5
|
||||
private BigDecimal exitWeight6; // 出口重量6
|
||||
private String headSampleMode; // 头部取样模式
|
||||
private String headSamplePosition; // 头部取样位置
|
||||
private BigDecimal headSampleLength; // 头部取样长度(mm)
|
||||
private String headSamplePlace; // 头部取样地点
|
||||
private Integer headSampleNum; // 头部取样数量
|
||||
private String tailSampleMode; // 尾部取样模式
|
||||
private String tailSamplePosition; // 尾部取样位置
|
||||
private BigDecimal tailSampleLength; // 尾部取样长度(mm)
|
||||
private String tailSamplePlace; // 尾部取样地点
|
||||
private Integer tailSampleNum; // 尾部取样数量
|
||||
private LocalDateTime timestamp; // 时间戳
|
||||
private LocalDateTime onlineDate; // 上线时间
|
||||
private LocalDateTime startDate; // 开始时间
|
||||
private LocalDateTime endDate; // 结束时间
|
||||
private LocalDateTime furInDate; // 进炉时间
|
||||
private LocalDateTime furOutDate; // 出炉时间
|
||||
private LocalDateTime createTime; // 创建时间
|
||||
private LocalDateTime updateTime; // 更新时间
|
||||
private String surfaceVice; // 副面
|
||||
private String weldCode; // 焊缝代码
|
||||
private Integer spmFlag; // SPM标识
|
||||
private BigDecimal spmElongation; // SPM延伸率(%)
|
||||
private BigDecimal spmRollforce; // SPM轧制力
|
||||
private String spmProcessType; // SPM工艺类型
|
||||
private String spmControlMode; // SPM控制模式
|
||||
private BigDecimal spmBendingForce; // SPM弯曲力
|
||||
private BigDecimal spmCrimpingRollMesh; // SPM咬入辊目
|
||||
private BigDecimal spmBillyRollMesh; // SPM精轧辊目
|
||||
private Integer trimFlag; // 切边标识
|
||||
private String tlvMode; // 张力平整模式
|
||||
private BigDecimal tlvElongation; // 张力平整延伸率(%)
|
||||
private Integer chromating; // 钝化标识
|
||||
private String coatingCode; // 镀层代码
|
||||
private Integer oilingFlag; // 涂油标识
|
||||
private String oilingType; // 涂油类型
|
||||
private BigDecimal oilingTop; // 涂油上
|
||||
private BigDecimal oilingBottom; // 涂油下
|
||||
private String heatCycle; // 热循环
|
||||
private String coatingSelection; // 镀层选择
|
||||
private String coatingType; // 镀层类型
|
||||
private String chemTreatMode; // 化学处理模式
|
||||
private BigDecimal aimWeightTop; // 目标重量上
|
||||
private BigDecimal aimWeightBottom; // 目标重量下
|
||||
private BigDecimal maxTolWeightTop; // 最大公差重量上
|
||||
private BigDecimal maxTolWeightBottom; // 最大公差重量下
|
||||
private BigDecimal headendGaugeLength; // 头端测厚长度(mm)
|
||||
private BigDecimal tailendGaugeLength; // 尾端测厚长度(mm)
|
||||
private String origin; // 产地
|
||||
private String originCoilid; // 原卷号
|
||||
}
|
||||
@Schema(description = "顺序号")
|
||||
private Integer seqid;
|
||||
|
||||
@Schema(description = "钢卷号")
|
||||
private String coilid;
|
||||
|
||||
@Schema(description = "机组号")
|
||||
private String unitCode;
|
||||
|
||||
@Schema(description = "虚卷标识")
|
||||
private Integer dummyCoilFlag;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "计划ID")
|
||||
private String planid;
|
||||
|
||||
@Schema(description = "计划类型")
|
||||
private String planType;
|
||||
|
||||
@Schema(description = "屈服点")
|
||||
private BigDecimal yieldPoint;
|
||||
|
||||
@Schema(description = "入口重量(t)")
|
||||
private BigDecimal entryWeight;
|
||||
|
||||
@Schema(description = "入口厚度(mm)")
|
||||
private BigDecimal entryThick;
|
||||
|
||||
@Schema(description = "入口宽度(mm)")
|
||||
private BigDecimal entryWidth;
|
||||
|
||||
@Schema(description = "入口长度(mm)")
|
||||
private BigDecimal entryLength;
|
||||
|
||||
@Schema(description = "入口外径(mm)")
|
||||
private BigDecimal entryOuterDiameter;
|
||||
|
||||
@Schema(description = "入口内径(mm)")
|
||||
private BigDecimal entryInnerDiameter;
|
||||
|
||||
@Schema(description = "出口内径(mm)")
|
||||
private BigDecimal exitInnerDiameter;
|
||||
|
||||
@Schema(description = "钢种")
|
||||
private String steelGrade;
|
||||
|
||||
@Schema(description = "出口卷号")
|
||||
private String exitCoilid;
|
||||
|
||||
@Schema(description = "张力平整标识")
|
||||
private Integer tlvFlag;
|
||||
|
||||
@Schema(description = "订单号")
|
||||
private String orderNo;
|
||||
|
||||
@Schema(description = "客户代码")
|
||||
private String custommerCode;
|
||||
|
||||
@Schema(description = "订单厚度(mm)")
|
||||
private BigDecimal orderThick;
|
||||
|
||||
@Schema(description = "订单宽度(mm)")
|
||||
private BigDecimal orderWidth;
|
||||
|
||||
@Schema(description = "订单长度下限(mm)")
|
||||
private BigDecimal orderLenLow;
|
||||
|
||||
@Schema(description = "订单长度上限(mm)")
|
||||
private BigDecimal orderLenUp;
|
||||
|
||||
@Schema(description = "订单重量(t)")
|
||||
private BigDecimal orderWt;
|
||||
|
||||
@Schema(description = "订单重量下限(t)")
|
||||
private BigDecimal orderWtLow;
|
||||
|
||||
@Schema(description = "订单重量上限(t)")
|
||||
private BigDecimal orderWtUp;
|
||||
|
||||
@Schema(description = "订单镀层上")
|
||||
private BigDecimal orderMetCoatTop;
|
||||
|
||||
@Schema(description = "订单镀层下")
|
||||
private BigDecimal orderMetCoatBot;
|
||||
|
||||
@Schema(description = "最终用途")
|
||||
private String finalUse;
|
||||
|
||||
@Schema(description = "热卷代码")
|
||||
private String hotCoilCode;
|
||||
|
||||
@Schema(description = "出口目标长度(mm)")
|
||||
private BigDecimal exitLengthTar;
|
||||
|
||||
@Schema(description = "出口长度公差最大值(mm)")
|
||||
private BigDecimal exitLengthTolMax;
|
||||
|
||||
@Schema(description = "出口长度公差最小值(mm)")
|
||||
private BigDecimal exitLengthTolMin;
|
||||
|
||||
@Schema(description = "出口目标厚度(mm)")
|
||||
private BigDecimal exitThickTar;
|
||||
|
||||
@Schema(description = "出口厚度公差最大值(mm)")
|
||||
private BigDecimal exitThickTolMax;
|
||||
|
||||
@Schema(description = "出口厚度公差最小值(mm)")
|
||||
private BigDecimal exitThickTolMin;
|
||||
|
||||
@Schema(description = "出口目标宽度(mm)")
|
||||
private BigDecimal exitWidthTar;
|
||||
|
||||
@Schema(description = "出口宽度公差最大值(mm)")
|
||||
private BigDecimal exitWidthTolMax;
|
||||
|
||||
@Schema(description = "出口宽度公差最小值(mm)")
|
||||
private BigDecimal exitWidthTolMin;
|
||||
|
||||
@Schema(description = "下道全流程积压代码")
|
||||
private String nextWholeBacklogCode;
|
||||
|
||||
@Schema(description = "上道全流程积压代码")
|
||||
private String prevWholeBacklogCode;
|
||||
|
||||
@Schema(description = "出口重量模式")
|
||||
private String exitWtMode;
|
||||
|
||||
@Schema(description = "分卷数量")
|
||||
private Integer splitNum;
|
||||
|
||||
@Schema(description = "出口重量1")
|
||||
private BigDecimal exitWeight1;
|
||||
|
||||
@Schema(description = "出口重量2")
|
||||
private BigDecimal exitWeight2;
|
||||
|
||||
@Schema(description = "出口重量3")
|
||||
private BigDecimal exitWeight3;
|
||||
|
||||
@Schema(description = "出口重量4")
|
||||
private BigDecimal exitWeight4;
|
||||
|
||||
@Schema(description = "出口重量5")
|
||||
private BigDecimal exitWeight5;
|
||||
|
||||
@Schema(description = "出口重量6")
|
||||
private BigDecimal exitWeight6;
|
||||
|
||||
@Schema(description = "头部取样模式")
|
||||
private String headSampleMode;
|
||||
|
||||
@Schema(description = "头部取样位置")
|
||||
private String headSamplePosition;
|
||||
|
||||
@Schema(description = "头部取样长度(mm)")
|
||||
private BigDecimal headSampleLength;
|
||||
|
||||
@Schema(description = "头部取样地点")
|
||||
private String headSamplePlace;
|
||||
|
||||
@Schema(description = "头部取样数量")
|
||||
private Integer headSampleNum;
|
||||
|
||||
@Schema(description = "尾部取样模式")
|
||||
private String tailSampleMode;
|
||||
|
||||
@Schema(description = "尾部取样位置")
|
||||
private String tailSamplePosition;
|
||||
|
||||
@Schema(description = "尾部取样长度(mm)")
|
||||
private BigDecimal tailSampleLength;
|
||||
|
||||
@Schema(description = "尾部取样地点")
|
||||
private String tailSamplePlace;
|
||||
|
||||
@Schema(description = "尾部取样数量")
|
||||
private Integer tailSampleNum;
|
||||
|
||||
@Schema(description = "时间戳")
|
||||
private LocalDateTime timestamp;
|
||||
|
||||
@Schema(description = "上线时间")
|
||||
private LocalDateTime onlineDate;
|
||||
|
||||
@Schema(description = "开始时间")
|
||||
private LocalDateTime startDate;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
private LocalDateTime endDate;
|
||||
|
||||
@Schema(description = "进炉时间")
|
||||
private LocalDateTime furInDate;
|
||||
|
||||
@Schema(description = "出炉时间")
|
||||
private LocalDateTime furOutDate;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description = "副面")
|
||||
private String surfaceVice;
|
||||
|
||||
@Schema(description = "焊缝代码")
|
||||
private String weldCode;
|
||||
|
||||
@Schema(description = "SPM标识")
|
||||
private Integer spmFlag;
|
||||
|
||||
@Schema(description = "SPM延伸率(%)")
|
||||
private BigDecimal spmElongation;
|
||||
|
||||
@Schema(description = "SPM轧制力")
|
||||
private BigDecimal spmRollforce;
|
||||
|
||||
@Schema(description = "SPM工艺类型")
|
||||
private String spmProcessType;
|
||||
|
||||
@Schema(description = "SPM控制模式")
|
||||
private String spmControlMode;
|
||||
|
||||
@Schema(description = "SPM弯曲力")
|
||||
private BigDecimal spmBendingForce;
|
||||
|
||||
@Schema(description = "SPM咬入辊目")
|
||||
private BigDecimal spmCrimpingRollMesh;
|
||||
|
||||
@Schema(description = "SPM精轧辊目")
|
||||
private BigDecimal spmBillyRollMesh;
|
||||
|
||||
@Schema(description = "切边标识")
|
||||
private Integer trimFlag;
|
||||
|
||||
@Schema(description = "张力平整模式")
|
||||
private String tlvMode;
|
||||
|
||||
@Schema(description = "张力平整延伸率(%)")
|
||||
private BigDecimal tlvElongation;
|
||||
|
||||
@Schema(description = "钝化标识")
|
||||
private Integer chromating;
|
||||
|
||||
@Schema(description = "镀层代码")
|
||||
private String coatingCode;
|
||||
|
||||
@Schema(description = "涂油标识")
|
||||
private Integer oilingFlag;
|
||||
|
||||
@Schema(description = "涂油类型")
|
||||
private String oilingType;
|
||||
|
||||
@Schema(description = "涂油上")
|
||||
private BigDecimal oilingTop;
|
||||
|
||||
@Schema(description = "涂油下")
|
||||
private BigDecimal oilingBottom;
|
||||
|
||||
@Schema(description = "热循环")
|
||||
private String heatCycle;
|
||||
|
||||
@Schema(description = "镀层选择")
|
||||
private String coatingSelection;
|
||||
|
||||
@Schema(description = "镀层类型")
|
||||
private String coatingType;
|
||||
|
||||
@Schema(description = "化学处理模式")
|
||||
private String chemTreatMode;
|
||||
|
||||
@Schema(description = "目标重量上")
|
||||
private BigDecimal aimWeightTop;
|
||||
|
||||
@Schema(description = "目标重量下")
|
||||
private BigDecimal aimWeightBottom;
|
||||
|
||||
@Schema(description = "最大公差重量上")
|
||||
private BigDecimal maxTolWeightTop;
|
||||
|
||||
@Schema(description = "最大公差重量下")
|
||||
private BigDecimal maxTolWeightBottom;
|
||||
|
||||
@Schema(description = "头端测厚长度(mm)")
|
||||
private BigDecimal headendGaugeLength;
|
||||
|
||||
@Schema(description = "尾端测厚长度(mm)")
|
||||
private BigDecimal tailendGaugeLength;
|
||||
|
||||
@Schema(description = "原卷号")
|
||||
private String originCoilid;
|
||||
}
|
||||
|
||||
@@ -12,103 +12,122 @@ import java.sql.Timestamp;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@TableName("crm_pdo_excoil")
|
||||
@Schema(description = "钢卷生产数据表")
|
||||
public class CrmPdoExcoil implements Serializable {
|
||||
|
||||
@TableId(type = IdType.AUTO)
|
||||
@Schema(description = "id")
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "主键id")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "成品卷ID")
|
||||
private String exitCoilid;
|
||||
@Schema(description = "成品卷")
|
||||
private String exitMatId;
|
||||
|
||||
@Schema(description = "进入卷ID")
|
||||
private String encoilid;
|
||||
@Schema(description = "来料卷")
|
||||
private String entryMatId;
|
||||
|
||||
@Schema(description = "钢种")
|
||||
private String grade;
|
||||
@Schema(description = "分切数")
|
||||
private Integer subId;
|
||||
|
||||
@Schema(description = "多火轧制次数")
|
||||
private Integer operid;
|
||||
@Schema(description = "开始位置")
|
||||
private Double startPosition;
|
||||
|
||||
@Schema(description = "分卷id")
|
||||
private Integer subid;
|
||||
@Schema(description = "结束位置")
|
||||
private Double endPosition;
|
||||
|
||||
@Schema(description = "头部位置")
|
||||
private Double headpos;
|
||||
@Schema(description = "计划id")
|
||||
private Long planId;
|
||||
|
||||
@Schema(description = "尾部位置")
|
||||
private Double tailpos;
|
||||
@Schema(description = "计划号")
|
||||
private String planNo;
|
||||
|
||||
@Schema(description = "班次")
|
||||
private String shift;
|
||||
@Schema(description = "产品类型")
|
||||
private String prodCode;
|
||||
|
||||
@Schema(description = "班组")
|
||||
private String crew;
|
||||
@Schema(description = "班号")
|
||||
private String groupNo;
|
||||
|
||||
@Schema(description = "退火厚度")
|
||||
private Double annealThick;
|
||||
|
||||
@Schema(description = "入口厚度")
|
||||
private Double entryThick;
|
||||
|
||||
@Schema(description = "入口宽度")
|
||||
private Double entryWidth;
|
||||
|
||||
@Schema(description = "入口重量")
|
||||
private Double entryWeight;
|
||||
|
||||
@Schema(description = "成品厚度")
|
||||
private Double exitThick;
|
||||
|
||||
@Schema(description = "成品宽度")
|
||||
private Double exitWidth;
|
||||
|
||||
@Schema(description = "成品长度")
|
||||
private Double exitLength;
|
||||
|
||||
@Schema(description = "成品内径")
|
||||
private Double exitInnerDiameter;
|
||||
|
||||
@Schema(description = "理论出口重量")
|
||||
private Double calcExitWeight;
|
||||
|
||||
@Schema(description = "实际出口重量")
|
||||
private Double measExitWeight;
|
||||
|
||||
@Schema(description = "外径")
|
||||
private Double outerDiameter;
|
||||
@Schema(description = "组号")
|
||||
private String shiftNo;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private String status;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Schema(description = "钢种")
|
||||
private String steelGrade;
|
||||
|
||||
@Schema(description = "来料厚度")
|
||||
private Double entryThick;
|
||||
|
||||
@Schema(description = "来料宽带")
|
||||
private Double entryWidth;
|
||||
|
||||
@Schema(description = "来料长度")
|
||||
private Double entryLength;
|
||||
|
||||
@Schema(description = "来料重量")
|
||||
private Double entryWeight;
|
||||
|
||||
@Schema(description = "上表面镀锌")
|
||||
private Double weightTop;
|
||||
|
||||
@Schema(description = "下表面镀锌")
|
||||
private Double weightBottom;
|
||||
|
||||
@Schema(description = "成品长度")
|
||||
private Double exitLength;
|
||||
|
||||
@Schema(description = "成品带涂料重量")
|
||||
private Double exitNetWeight;
|
||||
|
||||
@Schema(description = "理论重量")
|
||||
private Double theoryWeight;
|
||||
|
||||
@Schema(description = "实际重量")
|
||||
private Double actualWeight;
|
||||
|
||||
@Schema(description = "成品外径")
|
||||
private Double exitOuterDiameter;
|
||||
|
||||
@Schema(description = "成品厚度")
|
||||
private Double exitThickness;
|
||||
|
||||
@Schema(description = "成品宽度")
|
||||
private Double exitWidth;
|
||||
|
||||
@Schema(description = "客户")
|
||||
private String customer;
|
||||
|
||||
@Schema(description = "上线时间")
|
||||
private LocalDateTime onlineDate;
|
||||
private LocalDateTime onlineTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Schema(description = "开始时间")
|
||||
private LocalDateTime startDate;
|
||||
private LocalDateTime startTime;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Schema(description = "结束时间")
|
||||
private LocalDateTime endDate;
|
||||
private LocalDateTime endTime;
|
||||
|
||||
@Schema(description = "插入日期")
|
||||
private LocalDateTime insdate;
|
||||
@Schema(description = "0-未删除 时间戳:已删除")
|
||||
private Long delFlag;
|
||||
|
||||
@Schema(description = "质量")
|
||||
private Double quality;
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "热卷ID")
|
||||
private String hotCoilid;
|
||||
@Schema(description = "修改时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description = "下机组代码")
|
||||
private String nextUnit;
|
||||
@Schema(description = "机组号")
|
||||
private String unitCode;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String comments;
|
||||
@Schema(description = "工序号")
|
||||
private String processCode;
|
||||
|
||||
@Schema(description = "目的地")
|
||||
private String destination;
|
||||
}
|
||||
@Schema(description = "是否尾卷")
|
||||
private Boolean lastFlag;
|
||||
|
||||
@Schema(description = "是否分卷")
|
||||
private Boolean separateFlag;
|
||||
|
||||
@Schema(description = "计划来源:L3-L3计划,MANUAL-人工")
|
||||
private String planOrigin;
|
||||
}
|
||||
@@ -20,8 +20,8 @@ import java.time.LocalDateTime;
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("track_ca1_half_return")
|
||||
@Schema(title = "TrackCa1HalfReturn对象", description = "半卷整卷回退表")
|
||||
@TableName("cpg_half_return")
|
||||
@Schema(title = "CpgHalfReturn对象", description = "半卷整卷回退表")
|
||||
public class HalfReturn implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -78,9 +78,6 @@ public class PdoExcoil implements Serializable {
|
||||
@Schema(description = "来料重量")
|
||||
private Double entryWeight;
|
||||
|
||||
@Schema(description = "实际来料重量,CP/ZR/CA需要修改")
|
||||
private Double actualEntryWeight;
|
||||
|
||||
@Schema(description = "上表面镀锌")
|
||||
private Double weightTop;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ public class CoilHeadDTO implements Serializable {
|
||||
private boolean first;
|
||||
private String matId;
|
||||
private String planNo;
|
||||
private Long planId;
|
||||
private String planId;
|
||||
private double pos;
|
||||
private int posIdx;
|
||||
private int porIdx;
|
||||
|
||||
@@ -32,7 +32,7 @@ public class CoilPositionDTO implements Serializable {
|
||||
public static class CoilStripLocation {
|
||||
private String matId;
|
||||
private String planNo;
|
||||
private Long planId;
|
||||
private String planId;
|
||||
private double stripLocation;
|
||||
private Integer porId;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import java.io.Serializable;
|
||||
public class MatmapDTO implements Serializable {
|
||||
private String matId;
|
||||
private String planNo;
|
||||
private Long planId;
|
||||
private String planId;
|
||||
private String positionNameCn;
|
||||
private String positionNameEn;
|
||||
private int posIdx;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.fizz.business.dto;
|
||||
|
||||
import com.fizz.business.domain.CrmPdoExcoil;
|
||||
import com.fizz.business.domain.PdoExcoil;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
@@ -16,36 +17,8 @@ import java.util.List;
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
public class PdoExCoilDTO extends PdoExcoil implements Serializable {
|
||||
public class PdoExCoilDTO extends CrmPdoExcoil implements Serializable {
|
||||
|
||||
@Schema(description = "机组号")
|
||||
private String unitCode;
|
||||
@Schema(description = "工序号")
|
||||
private String processCode;
|
||||
@Schema(description = "是否尾卷")
|
||||
private boolean lastFlag;
|
||||
@Schema(description = "是否分卷")
|
||||
private boolean separateFlag;
|
||||
@Schema(description = "是否并卷")
|
||||
private boolean mergeFlag;
|
||||
@Schema(description = "并卷数")
|
||||
private int mergeNum;
|
||||
@Schema(description = "计划来源:L3-L3计划,MANUAL-人工")
|
||||
private String planOrigin;
|
||||
@Schema(description = "并卷数据")
|
||||
private List<PdoExCoilSubDTO> subCoilList;
|
||||
@Schema(description = "子计划数据")
|
||||
private List<PdiPlanSubDTO> subPlanList;
|
||||
|
||||
@Schema(description = "是否实验卷")
|
||||
private String isExperiment;
|
||||
|
||||
@Schema(description = "实验种类")
|
||||
private String experimentType;
|
||||
|
||||
@Schema(description = "工艺规程id")
|
||||
private Long setupId;
|
||||
|
||||
@Schema(description = "工艺规程名称")
|
||||
private String setupName;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ public class ChangePlanStatusForm implements Serializable {
|
||||
private String operation;
|
||||
@NotNull(message = "计划id不能为空")
|
||||
@Schema(description = "计划id集合")
|
||||
private Long id;
|
||||
private String id;
|
||||
@Schema(description = "半卷回退新卷号")
|
||||
private String returnMatId;
|
||||
@Schema(description = "回退重量")
|
||||
|
||||
@@ -16,6 +16,7 @@ public class CrmPdiPlanForm {
|
||||
|
||||
private Integer seqid; // 主键ID
|
||||
private String coilid; // 钢卷号
|
||||
private String unitCode; // 钢卷号
|
||||
private Integer picklingCount; // 酸洗次数
|
||||
private Integer dummyCoilFlag; // 虚卷标识
|
||||
private Integer seqno; // 顺序号
|
||||
|
||||
@@ -10,7 +10,7 @@ public class CrmPdoExcoilForm {
|
||||
|
||||
|
||||
@Schema(description = "钢卷号")
|
||||
private String encoilid;
|
||||
private String coilid;
|
||||
|
||||
@Schema(description = "开始日期")
|
||||
private String startDate;
|
||||
|
||||
@@ -25,7 +25,7 @@ public class L1OperateMatForm extends OperateMatForm implements Serializable {
|
||||
private L1OperateMatEnum operation;
|
||||
|
||||
@Builder
|
||||
public L1OperateMatForm(Integer porIdx, Integer trIdx, Long planId, String entryMatId, String planNo, L1OperateMatEnum operation) {
|
||||
public L1OperateMatForm(Integer porIdx, Integer trIdx, String planId, String entryMatId, String planNo, L1OperateMatEnum operation) {
|
||||
super(porIdx, trIdx, planId, entryMatId, planNo);
|
||||
this.operation = operation;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ public class OperateMatForm implements Serializable {
|
||||
|
||||
@NotNull(message = "计划id不能为空")
|
||||
@Schema(description = "计划id")
|
||||
private Long planId;
|
||||
private String planId;
|
||||
|
||||
@NotBlank(message = "钢卷号不能为空")
|
||||
@Schema(description = "钢卷号")
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.fizz.business.form;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -12,33 +13,15 @@ public class PlanQueryForm {
|
||||
@Schema(description = "卷ID")
|
||||
private String coilid;
|
||||
|
||||
@Schema(description = "热轧卷ID")
|
||||
private String hotCoilid;
|
||||
|
||||
@Schema(description = "道次数")
|
||||
private Integer passno;
|
||||
|
||||
@Schema(description = "入口厚度")
|
||||
private Float entryThick;
|
||||
private BigDecimal entryThick;
|
||||
|
||||
@Schema(description = "入口宽度")
|
||||
private Float entryWidth;
|
||||
|
||||
@Schema(description = "入口内径")
|
||||
private Integer entryInnerDiameter;
|
||||
|
||||
@Schema(description = "入口外径")
|
||||
private Integer entryOuterDiameter;
|
||||
private BigDecimal entryWidth;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "记录日期")
|
||||
private LocalDateTime insdate;
|
||||
|
||||
@Schema(description = "上线时间")
|
||||
private LocalDateTime onlineTime;
|
||||
|
||||
@Schema(description = "开始日期")
|
||||
private LocalDateTime startDate;
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ public class WebOperateMatForm extends OperateMatForm implements Serializable {
|
||||
private Double coilLength;
|
||||
|
||||
@Builder
|
||||
public WebOperateMatForm(Integer porIdx, Integer trIdx, Long planId, String entryMatId, String planNo, WebOperateMatEnum operation, Double returnWeight, String returnRemark) {
|
||||
public WebOperateMatForm(Integer porIdx, Integer trIdx, String planId, String entryMatId, String planNo, WebOperateMatEnum operation, Double returnWeight, String returnRemark) {
|
||||
super(porIdx, trIdx, planId, entryMatId, planNo);
|
||||
this.operation = operation;
|
||||
this.returnWeight = returnWeight;
|
||||
|
||||
@@ -13,15 +13,20 @@ import java.util.List;
|
||||
|
||||
public interface CrmPdiPlanService extends IService<CrmPdiPlan> {
|
||||
|
||||
public CrmPdiPlanVO getByCoilIdAndOperId(String coilid);
|
||||
CrmPdiPlanVO getByCoilIdAndOperId(String coilid);
|
||||
|
||||
public boolean addCrmPdiPlan(CrmPdiPlan crmPdiPlan);
|
||||
boolean addCrmPdiPlan(CrmPdiPlan crmPdiPlan);
|
||||
|
||||
public boolean updateCrmPdiPlan(CrmPdiPlan crmPdiPlan);
|
||||
boolean updateCrmPdiPlan(CrmPdiPlan crmPdiPlan);
|
||||
|
||||
public boolean deleteCrmPdiPlan(List<Long> coilid);
|
||||
boolean deleteCrmPdiPlan(List<Long> coilid);
|
||||
|
||||
public List<CrmPdiPlanVO> listAll(PlanQueryForm form);
|
||||
List<CrmPdiPlanVO> listAll(PlanQueryForm form);
|
||||
|
||||
/**
|
||||
* 获取未生产的第一个钢卷(按顺序号或创建时间最早)
|
||||
*/
|
||||
CrmPdiPlan getFirstUnProducedCoil();
|
||||
|
||||
void changeStatus(ChangePlanStatusForm build);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.fizz.business.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.fizz.business.domain.CrmPdoExcoil;
|
||||
import com.fizz.business.domain.PdoExcoil;
|
||||
import com.fizz.business.form.CrmPdoExcoilForm;
|
||||
|
||||
import java.util.List;
|
||||
@@ -13,8 +15,10 @@ public interface CrmPdoExcoilService extends IService<CrmPdoExcoil> {
|
||||
|
||||
boolean updateCrmPdoExcoil(CrmPdoExcoil crmPdoExcoil);
|
||||
|
||||
boolean deleteCrmPdoExcoil(String excoilid, Integer operid);
|
||||
boolean deleteCrmPdoExcoil(String excoilid, String planId);
|
||||
|
||||
List<CrmPdoExcoil> listAll(CrmPdoExcoilForm form);
|
||||
|
||||
Long getNumber(String matId,String planId,Integer subNumber);
|
||||
}
|
||||
|
||||
|
||||
@@ -16,5 +16,5 @@ public interface PdoExCoilService {
|
||||
|
||||
ExitCoilInfoDTO genExitCoilInfo(MatmapDTO trMatmap, ExitCutTypeEnum cutType);
|
||||
|
||||
void deleteExistPdo(Long planId);
|
||||
void deleteExistPdo(String coilId, String planId);
|
||||
}
|
||||
|
||||
@@ -23,9 +23,6 @@ public interface TrackService {
|
||||
|
||||
ReturnInfoVO getReturnInfo(int posIdx);
|
||||
|
||||
HalfReturnInfoVO getHalfReturnMatId(Long planId, String entryMatId);
|
||||
|
||||
|
||||
CoilPositionDTO getCoilPosition();
|
||||
|
||||
void adjustPosition(AdjustPosForm form);
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
package com.fizz.business.service.client;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.databind.JavaType;
|
||||
import com.fizz.business.constants.enums.PlanStatusEnum;
|
||||
import com.fizz.business.constants.enums.PlanTypeEnum;
|
||||
import com.fizz.business.form.ChangePlanStatusForm;
|
||||
import com.fizz.business.service.CrmPdiPlanService;
|
||||
import com.fizz.business.vo.CrmPdiPlanVO;
|
||||
import com.fizz.business.vo.PdiPlanVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.data.redis.cache.RedisCacheManager;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* 计划执行接口
|
||||
*
|
||||
* @author chenhao
|
||||
* @date 2023/05/17
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class PdiPlanClient {
|
||||
|
||||
@Autowired
|
||||
RedisCacheManager redisCacheManager;
|
||||
|
||||
@Value("${plan-execute.url:}")
|
||||
private String url;
|
||||
@Value("${plan-execute.timeout:30000}")
|
||||
private int timeout;
|
||||
private final String queryTrackPlanList = "/plan/track/plan-mat/list";
|
||||
private final String queryTrackPlanFirst = "/plan/track/plan-mat/first";
|
||||
private final String queryList = "/plan/list";
|
||||
private final String changeStatus = "/plan/track/status/change";
|
||||
|
||||
public List<PdiPlanVO> queryList(PlanTypeEnum type, PlanStatusEnum status) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<PdiPlanVO> queryTrackPlanList() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PdiPlanVO queryTrackPlanFirst() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public PdiPlanVO detail(Long planId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void changeStatus(ChangePlanStatusForm form) {
|
||||
if (isVirtualPlan(form.getId())) {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isVirtualPlan(long planId) {
|
||||
// 2020-01-01 00:00:00-->1577808000000
|
||||
return planId > 1577808000000L;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,17 +1,77 @@
|
||||
package com.fizz.business.service.hanle;
|
||||
|
||||
import com.fizz.business.anno.OpcMessageHandlerType;
|
||||
import com.fizz.business.constants.enums.L1OperateMatEnum;
|
||||
import com.fizz.business.constants.enums.OpcMessageType;
|
||||
import com.fizz.business.domain.CrmPdiPlan;
|
||||
import com.fizz.business.domain.msg.EntryMovementMessage;
|
||||
import com.fizz.business.form.L1OperateMatForm;
|
||||
import com.fizz.business.service.CrmPdiPlanService;
|
||||
import com.fizz.business.service.OpcMessageHandler;
|
||||
import com.fizz.business.service.TrackService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
@OpcMessageHandlerType(OpcMessageType.ENTRY_MOVEMENT)
|
||||
public class EntryMovementHandler implements OpcMessageHandler<EntryMovementMessage> {
|
||||
|
||||
|
||||
@Autowired
|
||||
private CrmPdiPlanService crmPdiPlanService;
|
||||
|
||||
@Autowired
|
||||
private TrackService trackService;
|
||||
|
||||
@Override
|
||||
public void handle(EntryMovementMessage message) {
|
||||
System.out.println("处理入口移动消息: " + message);
|
||||
Integer src = message.getMaterialPlaceSource();
|
||||
Integer des = message.getMaterialPlaceDestination();
|
||||
|
||||
String action = resolveAction(src, des);
|
||||
|
||||
log.info("处理入口移动消息: " + message);
|
||||
if (action != null) {
|
||||
log.info("识别到动作: " + action);
|
||||
|
||||
// 如果是上卷动作
|
||||
if (action.contains("上卷")) {
|
||||
CrmPdiPlan coilPlan = crmPdiPlanService.getFirstUnProducedCoil();
|
||||
if (coilPlan != null) {
|
||||
log.info("获取到未生产的钢卷: " + coilPlan.getCoilid());
|
||||
trackService.l1OperateMat(L1OperateMatForm.builder()
|
||||
.entryMatId(coilPlan.getCoilid())
|
||||
.operation(L1OperateMatEnum.ONLINE)
|
||||
.planId(coilPlan.getPlanid())
|
||||
.porIdx(des)
|
||||
.build());
|
||||
} else {
|
||||
log.error("未找到可上卷的钢卷计划!");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.error("未识别的组合: SRC=" + src + ", DES=" + des);
|
||||
}
|
||||
}
|
||||
|
||||
private String resolveAction(Integer src, Integer des) {
|
||||
if (src == null || des == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (src == 100 && des == 0) {
|
||||
return "1#开卷机上卷";
|
||||
} else if (src == 100 && des == 1) {
|
||||
return "2#开卷机上卷";
|
||||
} else if (src == 0 && des == 200) {
|
||||
return "1#开卷机甩尾";
|
||||
} else if (src == 1 && des == 200) {
|
||||
return "2#开卷机甩尾";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.fizz.business.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -30,15 +31,6 @@ import java.util.List;
|
||||
public class CrmPdiPlanServiceImpl extends ServiceImpl<CrmPdiPlanMapper, CrmPdiPlan> implements CrmPdiPlanService {
|
||||
|
||||
|
||||
@Resource
|
||||
ModSetupResultService modSetupResultService;
|
||||
|
||||
@Resource
|
||||
ProMatmapService proMatmapService;
|
||||
|
||||
@Resource
|
||||
ModCoilMapService modCoilMapService;
|
||||
|
||||
/**
|
||||
* 根据卷ID和操作员ID查询单个记录
|
||||
*
|
||||
@@ -105,14 +97,66 @@ public class CrmPdiPlanServiceImpl extends ServiceImpl<CrmPdiPlanMapper, CrmPdiP
|
||||
/**
|
||||
* 查询所有记录
|
||||
*
|
||||
* @param form 查询条件
|
||||
* @return CrmPdiPlan对象的列表
|
||||
*/
|
||||
public List<CrmPdiPlanVO> listAll(PlanQueryForm form) {
|
||||
QueryWrapper<CrmPdiPlan> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("STATUS", "NEW", "READY");
|
||||
|
||||
// 卷ID
|
||||
if (StrUtil.isNotBlank(form.getCoilid())) {
|
||||
queryWrapper.eq("coilid", form.getCoilid());
|
||||
}
|
||||
|
||||
// 入口厚度
|
||||
if (form.getEntryThick() != null) {
|
||||
queryWrapper.eq("entry_thick", form.getEntryThick());
|
||||
}
|
||||
|
||||
// 入口宽度
|
||||
if (form.getEntryWidth() != null) {
|
||||
queryWrapper.eq("entry_width", form.getEntryWidth());
|
||||
}
|
||||
|
||||
// 状态
|
||||
if (StrUtil.isNotBlank(form.getStatus())) {
|
||||
queryWrapper.eq("status", form.getStatus());
|
||||
} else {
|
||||
// 如果没传状态,默认查 NEW 和 READY
|
||||
queryWrapper.in("status", "新计划", "准备好");
|
||||
}
|
||||
|
||||
// 开始日期
|
||||
if (form.getStartDate() != null) {
|
||||
queryWrapper.ge("start_date", form.getStartDate());
|
||||
}
|
||||
|
||||
// 结束日期
|
||||
if (form.getEndDate() != null) {
|
||||
queryWrapper.le("end_date", form.getEndDate());
|
||||
}
|
||||
|
||||
// 查询并转成 VO
|
||||
return BeanUtil.copyToList(this.list(queryWrapper), CrmPdiPlanVO.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CrmPdiPlan getFirstUnProducedCoil() {
|
||||
return this.lambdaQuery()
|
||||
.eq(CrmPdiPlan::getStatus, 0) // 0 表示未生产
|
||||
.orderByAsc(CrmPdiPlan::getSeqid) // 按顺序号排序,取第一个
|
||||
.last("limit 1")
|
||||
.one();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void changeStatus(ChangePlanStatusForm build) {
|
||||
|
||||
CrmPdiPlan pdiPlan = baseMapper.selectById(build.getId());
|
||||
|
||||
pdiPlan.setStatus(build.getOperation());
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.fizz.business.service.impl;
|
||||
|
||||
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.CrmPdoExcoil;
|
||||
import com.fizz.business.domain.PdoExcoil;
|
||||
import com.fizz.business.form.CrmPdoExcoilForm;
|
||||
import com.fizz.business.mapper.CrmPdoExcoilMapper;
|
||||
import com.fizz.business.service.CrmPdoExcoilService;
|
||||
@@ -51,12 +53,12 @@ public class CrmPdoExcoilServiceImpl extends ServiceImpl<CrmPdoExcoilMapper, Crm
|
||||
* 根据退出卷ID和操作员ID删除记录
|
||||
*
|
||||
* @param excoilid 退出卷ID
|
||||
* @param operid 操作员ID
|
||||
* @param planId 操作员ID
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
public boolean deleteCrmPdoExcoil(String excoilid, Integer operid) {
|
||||
public boolean deleteCrmPdoExcoil(String excoilid, String planId) {
|
||||
QueryWrapper<CrmPdoExcoil> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("exit_coilid", excoilid).eq("operid", operid);
|
||||
queryWrapper.eq("exit_mat_id", excoilid).eq("plan_id", planId);
|
||||
return this.remove(queryWrapper);
|
||||
}
|
||||
|
||||
@@ -70,15 +72,31 @@ public class CrmPdoExcoilServiceImpl extends ServiceImpl<CrmPdoExcoilMapper, Crm
|
||||
QueryWrapper<CrmPdoExcoil> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
// 根据 exit_coilid 和 encoilid 进行查询
|
||||
if (!StringUtils.isEmpty(form.getEncoilid())) {
|
||||
queryWrapper.like("exit_coilid", form.getEncoilid()).like("encoilid", form.getEncoilid());
|
||||
if (!StringUtils.isEmpty(form.getCoilid())) {
|
||||
queryWrapper.like("exit_mat_id", form.getCoilid());
|
||||
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
queryWrapper.ge("start_date", form.getStartDate() + " 00:00:00");
|
||||
queryWrapper.le("start_date", form.getEndDate() + " 23:59:59");
|
||||
queryWrapper.orderByDesc("end_date");
|
||||
if (!StringUtils.isEmpty(form.getStartDate())&& !StringUtils.isEmpty(form.getEndDate())){
|
||||
queryWrapper.ge("start_time", form.getStartDate() + " 00:00:00");
|
||||
queryWrapper.le("end_time", form.getEndDate() + " 23:59:59");
|
||||
}
|
||||
|
||||
queryWrapper.orderByDesc("end_time");
|
||||
return baseMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getNumber(String matId, String planId, Integer subNumber) {
|
||||
|
||||
LambdaQueryWrapper<CrmPdoExcoil> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(CrmPdoExcoil::getEntryMatId,matId);
|
||||
queryWrapper.eq(CrmPdoExcoil::getPlanId,planId);
|
||||
queryWrapper.eq(CrmPdoExcoil::getSubId,subNumber);
|
||||
|
||||
return baseMapper.selectCount(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.fizz.business.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -9,12 +8,12 @@ import com.fizz.business.domain.PdoExcoil;
|
||||
import com.fizz.business.dto.ExitCoilInfoDTO;
|
||||
import com.fizz.business.dto.MatmapDTO;
|
||||
import com.fizz.business.dto.PdoExCoilDTO;
|
||||
import com.fizz.business.mapper.PdoExcoilMapper;
|
||||
import com.fizz.business.service.CrmPdiPlanService;
|
||||
import com.fizz.business.service.CrmPdoExcoilService;
|
||||
import com.fizz.business.service.PdoExCoilService;
|
||||
import com.fizz.business.service.PdoStripValueService;
|
||||
import com.fizz.business.service.client.PdiPlanClient;
|
||||
import com.fizz.business.utils.CalcUtil;
|
||||
import com.fizz.business.vo.PdiPlanVO;
|
||||
import com.fizz.business.vo.CrmPdiPlanVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -23,10 +22,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
import static com.fizz.business.constants.CommonConstants.SYSTEM_MODULE;
|
||||
import static com.fizz.business.constants.enums.ExitCutTypeEnum.SPLIT_CUT;
|
||||
import static com.fizz.business.constants.enums.ExitCutTypeEnum.WELDER_CUT;
|
||||
import static com.fizz.business.constants.enums.HalfReturnTypeEnum.HEAD_COIL;
|
||||
import static com.fizz.business.constants.enums.HalfReturnTypeEnum.TAIL_COIL;
|
||||
|
||||
|
||||
/**
|
||||
@@ -38,9 +36,9 @@ import static com.fizz.business.constants.enums.HalfReturnTypeEnum.TAIL_COIL;
|
||||
public class PdoExCoilServiceImpl implements PdoExCoilService {
|
||||
|
||||
@Autowired
|
||||
private PdoExcoilMapper pdoExcoilMapper;
|
||||
private CrmPdoExcoilService crmPdoExcoilService;
|
||||
@Autowired
|
||||
private PdiPlanClient pdiPlanClient;
|
||||
private CrmPdiPlanService crmPdiPlanService;
|
||||
@Autowired
|
||||
private PdoStripValueService pdoStripValueService;
|
||||
|
||||
@@ -50,48 +48,43 @@ public class PdoExCoilServiceImpl implements PdoExCoilService {
|
||||
public PdoExCoilDTO saveExCoil(ExitCoilInfoDTO exitCoil) {
|
||||
|
||||
PdoExCoilDTO pdoExCoilDTO = new PdoExCoilDTO();
|
||||
PdiPlanVO plan = pdiPlanClient.detail(exitCoil.getPlanId());
|
||||
CrmPdiPlanVO plan = crmPdiPlanService.getByCoilIdAndOperId(exitCoil.getEntryMatId());
|
||||
|
||||
double aimWeightTop = 1;
|
||||
double aimWeightBottom = 1;
|
||||
|
||||
pdoExCoilDTO.setPlanOrigin(plan.getOrigin());
|
||||
pdoExCoilDTO.setUnitCode(plan.getL3UnitCode());
|
||||
pdoExCoilDTO.setProcessCode(plan.getProcessCode());
|
||||
pdoExCoilDTO.setPlanOrigin(plan.getUnitCode());
|
||||
pdoExCoilDTO.setUnitCode(plan.getUnitCode());
|
||||
pdoExCoilDTO.setProcessCode(SYSTEM_MODULE);
|
||||
pdoExCoilDTO.setExitMatId(exitCoil.getExitMatId());
|
||||
pdoExCoilDTO.setEntryMatId(exitCoil.getEntryMatId());
|
||||
pdoExCoilDTO.setSubId(exitCoil.getSubNum());
|
||||
pdoExCoilDTO.setStartPosition(exitCoil.getStartPos());
|
||||
pdoExCoilDTO.setEndPosition(exitCoil.getEndPos());
|
||||
pdoExCoilDTO.setPlanId(plan.getId());
|
||||
pdoExCoilDTO.setPlanNo(plan.getPlanNo());
|
||||
pdoExCoilDTO.setProdCode(plan.getProdCode());
|
||||
pdoExCoilDTO.setSteelGrade(plan.getSteelGrade());
|
||||
|
||||
pdoExCoilDTO.setEntryThick(plan.getEntryThickness());
|
||||
pdoExCoilDTO.setEntryWidth(plan.getEntryWidth());
|
||||
pdoExCoilDTO.setEntryLength(plan.getEntryLength());
|
||||
pdoExCoilDTO.setEntryWeight(plan.getEntryWeight());
|
||||
pdoExCoilDTO.setActualEntryWeight(plan.getActualEntryWeight());
|
||||
pdoExCoilDTO.setEntryThick(plan.getEntryThick().doubleValue());
|
||||
pdoExCoilDTO.setEntryWidth(plan.getEntryWidth().doubleValue());
|
||||
pdoExCoilDTO.setEntryLength(plan.getEntryLength().doubleValue());
|
||||
pdoExCoilDTO.setEntryWeight(plan.getEntryWeight().doubleValue());
|
||||
pdoExCoilDTO.setWeightTop(aimWeightTop);
|
||||
pdoExCoilDTO.setWeightBottom(aimWeightBottom);
|
||||
pdoExCoilDTO.setExitLength(exitCoil.getExitCutLength());
|
||||
double exitWeight = CalcUtil.calcCoilWeight(exitCoil.getExitCutLength(), plan.getTargetThickness(), plan.getTargetWidth());
|
||||
double exitWeight = CalcUtil.calcCoilWeight(exitCoil.getExitCutLength(), plan.getExitThickTar(), plan.getExitWidthTar());
|
||||
pdoExCoilDTO.setExitNetWeight(exitWeight);
|
||||
pdoExCoilDTO.setActualWeight(exitWeight);
|
||||
pdoExCoilDTO.setTheoryWeight(exitWeight);
|
||||
double exitOuterDiameter = CalcUtil.calcOuterDiameter(exitWeight, plan.getTargetWidth(), plan.getEntryInnerDiameter());
|
||||
double exitOuterDiameter = CalcUtil.calcOuterDiameter(exitWeight, exitWeight, plan.getEntryInnerDiameter().doubleValue());
|
||||
pdoExCoilDTO.setExitOuterDiameter(exitOuterDiameter);
|
||||
pdoExCoilDTO.setExitThickness(plan.getTargetThickness());
|
||||
pdoExCoilDTO.setExitWidth(plan.getTargetWidth());
|
||||
pdoExCoilDTO.setExitThickness(plan.getExitThickTar().doubleValue());
|
||||
pdoExCoilDTO.setExitWidth(plan.getExitWidthTar().doubleValue());
|
||||
pdoExCoilDTO.setLastFlag(exitCoil.isLastFlag());
|
||||
pdoExCoilDTO.setSeparateFlag(exitCoil.isSeparateFlag());
|
||||
// 计划有子卷需要记录,通知L3
|
||||
if (CollUtil.isNotEmpty(plan.getSubPlanList())) {
|
||||
pdoExCoilDTO.setSubPlanList(plan.getSubPlanList());
|
||||
}
|
||||
pdoExCoilDTO.setOnlineTime(plan.getOnlineTime());
|
||||
pdoExCoilDTO.setStartTime(plan.getProducingTime());
|
||||
|
||||
pdoExCoilDTO.setOnlineTime(plan.getOnlineDate());
|
||||
pdoExCoilDTO.setStartTime(plan.getStartDate());
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
pdoExCoilDTO.setEndTime(now);
|
||||
|
||||
@@ -101,12 +94,9 @@ public class PdoExCoilServiceImpl implements PdoExCoilService {
|
||||
pdoExCoilDTO.setStatus("UNWEIGHT");
|
||||
|
||||
log.info("save pdo exit coil:{}", JSONUtil.toJsonStr(pdoExCoilDTO));
|
||||
// 虚拟卷不记录产出
|
||||
if (pdiPlanClient.isVirtualPlan(exitCoil.getPlanId())) {
|
||||
return pdoExCoilDTO;
|
||||
}
|
||||
|
||||
// 产出实际入库
|
||||
pdoExcoilMapper.insert(pdoExCoilDTO);
|
||||
crmPdoExcoilService.addCrmPdoExcoil(pdoExCoilDTO);
|
||||
// 打包segment
|
||||
pdoStripValueService.treatStripValues(exitCoil);
|
||||
return pdoExCoilDTO;
|
||||
@@ -128,39 +118,17 @@ public class PdoExCoilServiceImpl implements PdoExCoilService {
|
||||
String trCoilId = trMatmap.getMatId();
|
||||
//准备的成品子卷号
|
||||
//考虑依据数据库记录分卷,避免因为平台重启导致分卷丢失或错误
|
||||
Long subNum = pdoExcoilMapper.selectCount(new LambdaQueryWrapper<PdoExcoil>()
|
||||
.eq(PdoExcoil::getEntryMatId, trCoilId)
|
||||
.eq(PdoExcoil::getPlanNo, trMatmap.getPlanNo())
|
||||
.ne(PdoExcoil::getSubId, 0));
|
||||
Long subNum = crmPdoExcoilService.getNumber(trCoilId
|
||||
, trMatmap.getPlanNo(),
|
||||
0);
|
||||
|
||||
PdiPlanVO plan = pdiPlanClient.detail(trMatmap.getPlanId());
|
||||
boolean halfReturnHeadCoil = Objects.equals(plan.getHalfReturnType(), HEAD_COIL.name());
|
||||
boolean halfReturnTailCoil = Objects.equals(plan.getHalfReturnType(), TAIL_COIL.name());
|
||||
CrmPdiPlanVO plan = crmPdiPlanService.getByCoilIdAndOperId(trMatmap.getMatId());
|
||||
|
||||
String entryMatId = trCoilId;
|
||||
String exitMatId = entryMatId;
|
||||
boolean separateFlag = false;
|
||||
boolean lastFlag = Objects.equals(cutType, WELDER_CUT);
|
||||
|
||||
// 头部卷产出时,原料卷号:A01, 产出卷号: A01-1, 分卷标识: true, 尾卷标识: false
|
||||
if (halfReturnHeadCoil) {
|
||||
entryMatId = plan.getReturnMatId();
|
||||
// 如果是第一次回退,头部卷产出卷号需要手动拼接“-1”
|
||||
// 多次回退时,头部卷产出卷号和入口卷号一致
|
||||
if (Objects.equals(plan.getEntryMatId(), plan.getReturnMatId())) {
|
||||
exitMatId = entryMatId + "-1";
|
||||
}
|
||||
separateFlag = true;
|
||||
lastFlag = false;
|
||||
}
|
||||
// 尾部卷产出时:原料卷号:A01(保存在计划的returnMatId),产出卷号: A01-2
|
||||
if (halfReturnTailCoil) {
|
||||
entryMatId = plan.getReturnMatId();
|
||||
exitMatId = plan.getEntryMatId();
|
||||
separateFlag = true;
|
||||
}
|
||||
|
||||
// 分卷处理
|
||||
if (subNum != 0 || Objects.equals(cutType, SPLIT_CUT)) {
|
||||
subNum = subNum + 1;
|
||||
separateFlag = true;
|
||||
@@ -180,7 +148,7 @@ public class PdoExCoilServiceImpl implements PdoExCoilService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteExistPdo(Long planId) {
|
||||
pdoExcoilMapper.delete(new LambdaQueryWrapper<PdoExcoil>().eq(PdoExcoil::getPlanId, planId));
|
||||
public void deleteExistPdo(String coilId, String planId) {
|
||||
crmPdoExcoilService.deleteCrmPdoExcoil(coilId,planId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,21 +17,23 @@ import com.fizz.business.form.L1OperateMatForm;
|
||||
import com.fizz.business.form.WebOperateMatForm;
|
||||
import com.fizz.business.mapper.HalfReturnMapper;
|
||||
import com.fizz.business.mapper.SegmentMapper;
|
||||
import com.fizz.business.service.CrmPdiPlanService;
|
||||
import com.fizz.business.service.TrackService;
|
||||
import com.fizz.business.service.client.LocalCacheManager;
|
||||
import com.fizz.business.service.client.PdiPlanClient;
|
||||
import com.fizz.business.service.client.RedisCacheManager;
|
||||
import com.fizz.business.utils.CalcUtil;
|
||||
import com.fizz.business.utils.CoilMeasUtil;
|
||||
import com.fizz.business.utils.MatmapUtil;
|
||||
import com.fizz.business.utils.WebSocketUtil;
|
||||
import com.fizz.business.vo.CrmPdiPlanVO;
|
||||
import com.fizz.business.vo.HalfReturnInfoVO;
|
||||
import com.fizz.business.vo.PdiPlanVO;
|
||||
import com.fizz.business.vo.ReturnInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -51,7 +53,7 @@ public class TrackServiceImpl implements TrackService {
|
||||
@Autowired
|
||||
SegmentMapper segmentMapper;
|
||||
@Autowired
|
||||
PdiPlanClient pdiPlanClient;
|
||||
CrmPdiPlanService crmPdiPlanService;
|
||||
|
||||
@Override
|
||||
public void webOperateMat(WebOperateMatForm form) {
|
||||
@@ -73,16 +75,16 @@ public class TrackServiceImpl implements TrackService {
|
||||
if (MatmapUtil.notReady(matmap)) {
|
||||
}
|
||||
|
||||
PdiPlanVO planVO = pdiPlanClient.detail(matmap.getPlanId());
|
||||
CrmPdiPlanVO planVO = crmPdiPlanService.getByCoilIdAndOperId(matmap.getPlanId());
|
||||
String returnType = null;
|
||||
double returnWt = 0;
|
||||
if (Objects.equals(planVO.getStatus(), PlanStatusEnum.PRODUCING.name())) {
|
||||
double coiledLength = redisCacheManager.getStripLocation();
|
||||
double calcCoilWeight = CalcUtil.calcCoilWeight(coiledLength, planVO.getEntryThickness(), planVO.getEntryWidth());
|
||||
returnWt = planVO.getEntryWeight() - calcCoilWeight;
|
||||
double calcCoilWeight = CalcUtil.calcCoilWeight(coiledLength, planVO.getEntryThick(), planVO.getEntryWidth());
|
||||
returnWt = planVO.getEntryWeight().divide(BigDecimal.valueOf(calcCoilWeight)).setScale(2, RoundingMode.HALF_UP).doubleValue();
|
||||
returnType = HALF_RETURN.name();
|
||||
} else if (Objects.equals(planVO.getStatus(), PlanStatusEnum.ONLINE.name())) {
|
||||
returnWt = planVO.getEntryWeight();
|
||||
returnWt = planVO.getEntryWeight().doubleValue();
|
||||
returnType = ALL_RETURN.name();
|
||||
} else {
|
||||
log.error("invalid plan status[{}], planId={}", planVO.getStatus(), planVO.getId());
|
||||
@@ -91,54 +93,11 @@ public class TrackServiceImpl implements TrackService {
|
||||
return ReturnInfoVO.builder()
|
||||
.returnWeight(NumberUtil.round(returnWt, 3).doubleValue())
|
||||
.returnType(returnType)
|
||||
.entryMatId(planVO.getEntryMatId())
|
||||
.entryMatId(planVO.getCoilid())
|
||||
.planId(planVO.getId())
|
||||
.planNo(planVO.getPlanNo())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取半卷回退的钢卷号
|
||||
*
|
||||
* @param entryMatId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public HalfReturnInfoVO getHalfReturnMatId(Long planId, String entryMatId) {
|
||||
PdiPlanVO plan = pdiPlanClient.detail(planId);
|
||||
|
||||
String returnMatId = entryMatId;
|
||||
HalfReturnMapper returnMapper = BeanFactory.getBean(HalfReturnMapper.class);
|
||||
// 多次回退
|
||||
if (Objects.equals(plan.getReturnType(), HALF_RETURN.name())) {
|
||||
entryMatId = plan.getReturnMatId();
|
||||
|
||||
LambdaQueryWrapper<HalfReturn> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(HalfReturn::getEntryMatId, entryMatId);
|
||||
queryWrapper.eq(HalfReturn::getPlanNo, plan.getPlanNo());
|
||||
queryWrapper.eq(HalfReturn::getReturnType, HALF_RETURN.name());
|
||||
queryWrapper.orderByDesc(HalfReturn::getId);
|
||||
queryWrapper.last("limit 1");
|
||||
HalfReturn halfReturn = returnMapper.selectOne(queryWrapper);
|
||||
|
||||
if (Objects.nonNull(halfReturn)) {
|
||||
String exitMatId = halfReturn.getExitMatId();
|
||||
int lastIndex = exitMatId.lastIndexOf("-");
|
||||
if (lastIndex != -1 && lastIndex < exitMatId.length() - 1) {
|
||||
String numberStr = exitMatId.substring(lastIndex + 1);
|
||||
int number = Integer.parseInt(numberStr) + 1;
|
||||
returnMatId = exitMatId.substring(0, lastIndex + 1) + number;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 第一次回退,需要将头部卷与尾部卷都记录到回退表中
|
||||
else {
|
||||
returnMatId = entryMatId + "-2";
|
||||
}
|
||||
|
||||
return HalfReturnInfoVO.builder().returnMatId(returnMatId).build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 调整钢卷位置
|
||||
* 更新matmap
|
||||
@@ -240,7 +199,7 @@ public class TrackServiceImpl implements TrackService {
|
||||
}
|
||||
|
||||
// 判断当前计划状态,如果是ONLINE,需要变更为PRODUCING
|
||||
PdiPlanVO plan = pdiPlanClient.detail(curr.getPlanId());
|
||||
CrmPdiPlanVO plan = crmPdiPlanService.getByCoilIdAndOperId(curr.getMatId());
|
||||
if (Objects.equals(plan.getStatus(), ONLINE.name())) {
|
||||
webOperateMat(WebOperateMatForm.builder()
|
||||
.operation(WebOperateMatEnum.PRODUCING)
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.fizz.business.utils;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import static com.fizz.business.constants.CommonConstants.RO;
|
||||
|
||||
|
||||
@@ -32,8 +34,8 @@ public class CalcUtil {
|
||||
* @param width 宽度[mm]
|
||||
* @return 重量[T]
|
||||
*/
|
||||
public static double calcCoilWeight(double length, double thick, double width) {
|
||||
double v = thick * width * length * RO / (1000 * 1000);
|
||||
public static double calcCoilWeight(double length, BigDecimal thick, BigDecimal width) {
|
||||
double v = thick.doubleValue() * width.doubleValue() * length * RO / (1000 * 1000);
|
||||
return NumberUtil.round(v, 3).doubleValue();
|
||||
}
|
||||
|
||||
@@ -50,18 +52,4 @@ public class CalcUtil {
|
||||
double v = 2 * Math.sqrt(((weight * 1000) / (width * RO) + Math.PI * Math.pow(innerRadius, 2)) / Math.PI) * 1000;
|
||||
return NumberUtil.round(v, 0).doubleValue();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 6882.0m
|
||||
double length = CalcUtil.calcCoilLength(15, 0.27, 1027);
|
||||
System.out.println(length);
|
||||
|
||||
// 15.0T
|
||||
double weight = CalcUtil.calcCoilWeight(6882, 0.27, 1027);
|
||||
System.out.println(weight);
|
||||
|
||||
// 1620.0mm
|
||||
double diameter1 = CalcUtil.calcOuterDiameter(15, 1027, 508);
|
||||
System.out.println(diameter1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -89,7 +89,7 @@ public class MatmapUtil {
|
||||
redisCacheManager.setMatmap(index, matmap);
|
||||
}
|
||||
|
||||
public static void setMatmap(int index, String matId, Long planId, String planNo) {
|
||||
public static void setMatmap(int index, String matId, String planId, String planNo) {
|
||||
MatmapDTO matmap = getMatmap(index);
|
||||
if (ObjectUtil.isNull(matmap)) {
|
||||
return;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.fizz.business.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -11,106 +12,303 @@ import java.time.LocalDateTime;
|
||||
@Data
|
||||
public class CrmPdiPlanVO {
|
||||
|
||||
private Long id; // 主键ID
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Integer seqid; // 主键ID
|
||||
private String coilid; // 钢卷号
|
||||
private Integer picklingCount; // 酸洗次数
|
||||
private Integer dummyCoilFlag; // 虚卷标识
|
||||
private Integer seqno; // 顺序号
|
||||
private Integer status; // 状态
|
||||
private String planid; // 计划ID
|
||||
private String planType; // 计划类型
|
||||
private BigDecimal yieldPoint; // 屈服点
|
||||
private BigDecimal entryWeight; // 入口重量(t)
|
||||
private BigDecimal entryThick; // 入口厚度(mm)
|
||||
private BigDecimal entryWidth; // 入口宽度(mm)
|
||||
private BigDecimal entryLength; // 入口长度(mm)
|
||||
private BigDecimal entryOuterDiameter; // 入口外径(mm)
|
||||
private BigDecimal entryInnerDiameter; // 入口内径(mm)
|
||||
private BigDecimal exitInnerDiameter; // 出口内径(mm)
|
||||
private String steelGrade; // 钢种
|
||||
private String exitCoilid; // 出口卷号
|
||||
private Integer tlvFlag; // 张力平整标识
|
||||
private String orderNo; // 订单号
|
||||
private String custommerCode; // 客户代码
|
||||
private BigDecimal orderThick; // 订单厚度(mm)
|
||||
private BigDecimal orderWidth; // 订单宽度(mm)
|
||||
private BigDecimal orderLenLow; // 订单长度下限(mm)
|
||||
private BigDecimal orderLenUp; // 订单长度上限(mm)
|
||||
private BigDecimal orderWt; // 订单重量(t)
|
||||
private BigDecimal orderWtLow; // 订单重量下限(t)
|
||||
private BigDecimal orderWtUp; // 订单重量上限(t)
|
||||
private BigDecimal orderMetCoatTop; // 订单镀层上
|
||||
private BigDecimal orderMetCoatBot; // 订单镀层下
|
||||
private String finalUse; // 最终用途
|
||||
private String hotCoilCode; // 热卷代码
|
||||
private BigDecimal exitLengthTar; // 出口目标长度(mm)
|
||||
private BigDecimal exitLengthTolMax; // 出口长度公差最大值(mm)
|
||||
private BigDecimal exitLengthTolMin; // 出口长度公差最小值(mm)
|
||||
private BigDecimal exitThickTar; // 出口目标厚度(mm)
|
||||
private BigDecimal exitThickTolMax; // 出口厚度公差最大值(mm)
|
||||
private BigDecimal exitThickTolMin; // 出口厚度公差最小值(mm)
|
||||
private BigDecimal exitWidthTar; // 出口目标宽度(mm)
|
||||
private BigDecimal exitWidthTolMax; // 出口宽度公差最大值(mm)
|
||||
private BigDecimal exitWidthTolMin; // 出口宽度公差最小值(mm)
|
||||
private String nextWholeBacklogCode; // 下道全流程积压代码
|
||||
private String prevWholeBacklogCode; // 上道全流程积压代码
|
||||
private String exitWtMode; // 出口重量模式
|
||||
private Integer splitNum; // 分卷数量
|
||||
private BigDecimal exitWeight1; // 出口重量1
|
||||
private BigDecimal exitWeight2; // 出口重量2
|
||||
private BigDecimal exitWeight3; // 出口重量3
|
||||
private BigDecimal exitWeight4; // 出口重量4
|
||||
private BigDecimal exitWeight5; // 出口重量5
|
||||
private BigDecimal exitWeight6; // 出口重量6
|
||||
private String headSampleMode; // 头部取样模式
|
||||
private String headSamplePosition; // 头部取样位置
|
||||
private BigDecimal headSampleLength; // 头部取样长度(mm)
|
||||
private String headSamplePlace; // 头部取样地点
|
||||
private Integer headSampleNum; // 头部取样数量
|
||||
private String tailSampleMode; // 尾部取样模式
|
||||
private String tailSamplePosition; // 尾部取样位置
|
||||
private BigDecimal tailSampleLength; // 尾部取样长度(mm)
|
||||
private String tailSamplePlace; // 尾部取样地点
|
||||
private Integer tailSampleNum; // 尾部取样数量
|
||||
private LocalDateTime timestamp; // 时间戳
|
||||
private LocalDateTime onlineDate; // 上线时间
|
||||
private LocalDateTime startDate; // 开始时间
|
||||
private LocalDateTime endDate; // 结束时间
|
||||
private LocalDateTime furInDate; // 进炉时间
|
||||
private LocalDateTime furOutDate; // 出炉时间
|
||||
private LocalDateTime createTime; // 创建时间
|
||||
private LocalDateTime updateTime; // 更新时间
|
||||
private String surfaceVice; // 副面
|
||||
private String weldCode; // 焊缝代码
|
||||
private Integer spmFlag; // SPM标识
|
||||
private BigDecimal spmElongation; // SPM延伸率(%)
|
||||
private BigDecimal spmRollforce; // SPM轧制力
|
||||
private String spmProcessType; // SPM工艺类型
|
||||
private String spmControlMode; // SPM控制模式
|
||||
private BigDecimal spmBendingForce; // SPM弯曲力
|
||||
private BigDecimal spmCrimpingRollMesh; // SPM咬入辊目
|
||||
private BigDecimal spmBillyRollMesh; // SPM精轧辊目
|
||||
private Integer trimFlag; // 切边标识
|
||||
private String tlvMode; // 张力平整模式
|
||||
private BigDecimal tlvElongation; // 张力平整延伸率(%)
|
||||
private Integer chromating; // 钝化标识
|
||||
private String coatingCode; // 镀层代码
|
||||
private Integer oilingFlag; // 涂油标识
|
||||
private String oilingType; // 涂油类型
|
||||
private BigDecimal oilingTop; // 涂油上
|
||||
private BigDecimal oilingBottom; // 涂油下
|
||||
private String heatCycle; // 热循环
|
||||
private String coatingSelection; // 镀层选择
|
||||
private String coatingType; // 镀层类型
|
||||
private String chemTreatMode; // 化学处理模式
|
||||
private BigDecimal aimWeightTop; // 目标重量上
|
||||
private BigDecimal aimWeightBottom; // 目标重量下
|
||||
private BigDecimal maxTolWeightTop; // 最大公差重量上
|
||||
private BigDecimal maxTolWeightBottom; // 最大公差重量下
|
||||
private BigDecimal headendGaugeLength; // 头端测厚长度(mm)
|
||||
private BigDecimal tailendGaugeLength; // 尾端测厚长度(mm)
|
||||
private String origin; // 产地
|
||||
private String originCoilid; // 原卷号
|
||||
@TableId
|
||||
@Schema(description = "主键ID")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "顺序号")
|
||||
private Integer seqid;
|
||||
|
||||
@Schema(description = "钢卷号")
|
||||
private String coilid;
|
||||
|
||||
@Schema(description = "机组号")
|
||||
private String unitCode;
|
||||
|
||||
@Schema(description = "虚卷标识")
|
||||
private Integer dummyCoilFlag;
|
||||
|
||||
@Schema(description = "状态")
|
||||
private String status;
|
||||
|
||||
@Schema(description = "计划ID")
|
||||
private String planid;
|
||||
|
||||
@Schema(description = "计划类型")
|
||||
private String planType;
|
||||
|
||||
@Schema(description = "屈服点")
|
||||
private BigDecimal yieldPoint;
|
||||
|
||||
@Schema(description = "入口重量(t)")
|
||||
private BigDecimal entryWeight;
|
||||
|
||||
@Schema(description = "入口厚度(mm)")
|
||||
private BigDecimal entryThick;
|
||||
|
||||
@Schema(description = "入口宽度(mm)")
|
||||
private BigDecimal entryWidth;
|
||||
|
||||
@Schema(description = "入口长度(mm)")
|
||||
private BigDecimal entryLength;
|
||||
|
||||
@Schema(description = "入口外径(mm)")
|
||||
private BigDecimal entryOuterDiameter;
|
||||
|
||||
@Schema(description = "入口内径(mm)")
|
||||
private BigDecimal entryInnerDiameter;
|
||||
|
||||
@Schema(description = "出口内径(mm)")
|
||||
private BigDecimal exitInnerDiameter;
|
||||
|
||||
@Schema(description = "钢种")
|
||||
private String steelGrade;
|
||||
|
||||
@Schema(description = "出口卷号")
|
||||
private String exitCoilid;
|
||||
|
||||
@Schema(description = "张力平整标识")
|
||||
private Integer tlvFlag;
|
||||
|
||||
@Schema(description = "订单号")
|
||||
private String orderNo;
|
||||
|
||||
@Schema(description = "客户代码")
|
||||
private String custommerCode;
|
||||
|
||||
@Schema(description = "订单厚度(mm)")
|
||||
private BigDecimal orderThick;
|
||||
|
||||
@Schema(description = "订单宽度(mm)")
|
||||
private BigDecimal orderWidth;
|
||||
|
||||
@Schema(description = "订单长度下限(mm)")
|
||||
private BigDecimal orderLenLow;
|
||||
|
||||
@Schema(description = "订单长度上限(mm)")
|
||||
private BigDecimal orderLenUp;
|
||||
|
||||
@Schema(description = "订单重量(t)")
|
||||
private BigDecimal orderWt;
|
||||
|
||||
@Schema(description = "订单重量下限(t)")
|
||||
private BigDecimal orderWtLow;
|
||||
|
||||
@Schema(description = "订单重量上限(t)")
|
||||
private BigDecimal orderWtUp;
|
||||
|
||||
@Schema(description = "订单镀层上")
|
||||
private BigDecimal orderMetCoatTop;
|
||||
|
||||
@Schema(description = "订单镀层下")
|
||||
private BigDecimal orderMetCoatBot;
|
||||
|
||||
@Schema(description = "最终用途")
|
||||
private String finalUse;
|
||||
|
||||
@Schema(description = "热卷代码")
|
||||
private String hotCoilCode;
|
||||
|
||||
@Schema(description = "出口目标长度(mm)")
|
||||
private BigDecimal exitLengthTar;
|
||||
|
||||
@Schema(description = "出口长度公差最大值(mm)")
|
||||
private BigDecimal exitLengthTolMax;
|
||||
|
||||
@Schema(description = "出口长度公差最小值(mm)")
|
||||
private BigDecimal exitLengthTolMin;
|
||||
|
||||
@Schema(description = "出口目标厚度(mm)")
|
||||
private BigDecimal exitThickTar;
|
||||
|
||||
@Schema(description = "出口厚度公差最大值(mm)")
|
||||
private BigDecimal exitThickTolMax;
|
||||
|
||||
@Schema(description = "出口厚度公差最小值(mm)")
|
||||
private BigDecimal exitThickTolMin;
|
||||
|
||||
@Schema(description = "出口目标宽度(mm)")
|
||||
private BigDecimal exitWidthTar;
|
||||
|
||||
@Schema(description = "出口宽度公差最大值(mm)")
|
||||
private BigDecimal exitWidthTolMax;
|
||||
|
||||
@Schema(description = "出口宽度公差最小值(mm)")
|
||||
private BigDecimal exitWidthTolMin;
|
||||
|
||||
@Schema(description = "下道全流程积压代码")
|
||||
private String nextWholeBacklogCode;
|
||||
|
||||
@Schema(description = "上道全流程积压代码")
|
||||
private String prevWholeBacklogCode;
|
||||
|
||||
@Schema(description = "出口重量模式")
|
||||
private String exitWtMode;
|
||||
|
||||
@Schema(description = "分卷数量")
|
||||
private Integer splitNum;
|
||||
|
||||
@Schema(description = "出口重量1")
|
||||
private BigDecimal exitWeight1;
|
||||
|
||||
@Schema(description = "出口重量2")
|
||||
private BigDecimal exitWeight2;
|
||||
|
||||
@Schema(description = "出口重量3")
|
||||
private BigDecimal exitWeight3;
|
||||
|
||||
@Schema(description = "出口重量4")
|
||||
private BigDecimal exitWeight4;
|
||||
|
||||
@Schema(description = "出口重量5")
|
||||
private BigDecimal exitWeight5;
|
||||
|
||||
@Schema(description = "出口重量6")
|
||||
private BigDecimal exitWeight6;
|
||||
|
||||
@Schema(description = "头部取样模式")
|
||||
private String headSampleMode;
|
||||
|
||||
@Schema(description = "头部取样位置")
|
||||
private String headSamplePosition;
|
||||
|
||||
@Schema(description = "头部取样长度(mm)")
|
||||
private BigDecimal headSampleLength;
|
||||
|
||||
@Schema(description = "头部取样地点")
|
||||
private String headSamplePlace;
|
||||
|
||||
@Schema(description = "头部取样数量")
|
||||
private Integer headSampleNum;
|
||||
|
||||
@Schema(description = "尾部取样模式")
|
||||
private String tailSampleMode;
|
||||
|
||||
@Schema(description = "尾部取样位置")
|
||||
private String tailSamplePosition;
|
||||
|
||||
@Schema(description = "尾部取样长度(mm)")
|
||||
private BigDecimal tailSampleLength;
|
||||
|
||||
@Schema(description = "尾部取样地点")
|
||||
private String tailSamplePlace;
|
||||
|
||||
@Schema(description = "尾部取样数量")
|
||||
private Integer tailSampleNum;
|
||||
|
||||
@Schema(description = "时间戳")
|
||||
private LocalDateTime timestamp;
|
||||
|
||||
@Schema(description = "上线时间")
|
||||
private LocalDateTime onlineDate;
|
||||
|
||||
@Schema(description = "开始时间")
|
||||
private LocalDateTime startDate;
|
||||
|
||||
@Schema(description = "结束时间")
|
||||
private LocalDateTime endDate;
|
||||
|
||||
@Schema(description = "进炉时间")
|
||||
private LocalDateTime furInDate;
|
||||
|
||||
@Schema(description = "出炉时间")
|
||||
private LocalDateTime furOutDate;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@Schema(description = "副面")
|
||||
private String surfaceVice;
|
||||
|
||||
@Schema(description = "焊缝代码")
|
||||
private String weldCode;
|
||||
|
||||
@Schema(description = "SPM标识")
|
||||
private Integer spmFlag;
|
||||
|
||||
@Schema(description = "SPM延伸率(%)")
|
||||
private BigDecimal spmElongation;
|
||||
|
||||
@Schema(description = "SPM轧制力")
|
||||
private BigDecimal spmRollforce;
|
||||
|
||||
@Schema(description = "SPM工艺类型")
|
||||
private String spmProcessType;
|
||||
|
||||
@Schema(description = "SPM控制模式")
|
||||
private String spmControlMode;
|
||||
|
||||
@Schema(description = "SPM弯曲力")
|
||||
private BigDecimal spmBendingForce;
|
||||
|
||||
@Schema(description = "SPM咬入辊目")
|
||||
private BigDecimal spmCrimpingRollMesh;
|
||||
|
||||
@Schema(description = "SPM精轧辊目")
|
||||
private BigDecimal spmBillyRollMesh;
|
||||
|
||||
@Schema(description = "切边标识")
|
||||
private Integer trimFlag;
|
||||
|
||||
@Schema(description = "张力平整模式")
|
||||
private String tlvMode;
|
||||
|
||||
@Schema(description = "张力平整延伸率(%)")
|
||||
private BigDecimal tlvElongation;
|
||||
|
||||
@Schema(description = "钝化标识")
|
||||
private Integer chromating;
|
||||
|
||||
@Schema(description = "镀层代码")
|
||||
private String coatingCode;
|
||||
|
||||
@Schema(description = "涂油标识")
|
||||
private Integer oilingFlag;
|
||||
|
||||
@Schema(description = "涂油类型")
|
||||
private String oilingType;
|
||||
|
||||
@Schema(description = "涂油上")
|
||||
private BigDecimal oilingTop;
|
||||
|
||||
@Schema(description = "涂油下")
|
||||
private BigDecimal oilingBottom;
|
||||
|
||||
@Schema(description = "热循环")
|
||||
private String heatCycle;
|
||||
|
||||
@Schema(description = "镀层选择")
|
||||
private String coatingSelection;
|
||||
|
||||
@Schema(description = "镀层类型")
|
||||
private String coatingType;
|
||||
|
||||
@Schema(description = "化学处理模式")
|
||||
private String chemTreatMode;
|
||||
|
||||
@Schema(description = "目标重量上")
|
||||
private BigDecimal aimWeightTop;
|
||||
|
||||
@Schema(description = "目标重量下")
|
||||
private BigDecimal aimWeightBottom;
|
||||
|
||||
@Schema(description = "最大公差重量上")
|
||||
private BigDecimal maxTolWeightTop;
|
||||
|
||||
@Schema(description = "最大公差重量下")
|
||||
private BigDecimal maxTolWeightBottom;
|
||||
|
||||
@Schema(description = "头端测厚长度(mm)")
|
||||
private BigDecimal headendGaugeLength;
|
||||
|
||||
@Schema(description = "尾端测厚长度(mm)")
|
||||
private BigDecimal tailendGaugeLength;
|
||||
|
||||
@Schema(description = "原卷号")
|
||||
private String originCoilid;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user