From 67ef0ac2989f6c9b86689f400ff94ab8bab21f42 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 9 Aug 2023 10:04:54 +0800 Subject: [PATCH] =?UTF-8?q?wcs=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E8=BD=AC=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api}/domain/dto/BaseBomComponentDTO.java | 56 ++++- .../op/system/api}/domain/dto/BaseBomDTO.java | 13 +- .../com/op/system/api/domain/dto/WCSDTO.java | 37 +++ .../api/domain/mes/MesStationArriveDTO.java | 211 +++++++++++++++++ op-common/op-common-log/op-common-log.iml | 3 +- .../MesStationArriveController.java | 97 ++++++++ .../controller/WCSInterfaceController.java | 52 ++++- .../com/op/mes/domain/MesStationArrive.java | 221 ++++++++++++++++++ .../java/com/op/mes/mapper/MesMapper.java | 2 + .../op/mes/mapper/MesStationArriveMapper.java | 63 +++++ .../mes/service/IMesStationArriveService.java | 60 +++++ .../op/mes/service/IWCSInterfaceService.java | 4 + .../service/impl/IWCInterfaceServiceImpl.java | 204 ++++++++++++---- .../impl/MesStationArriveServiceImpl.java | 89 +++++++ .../mapper/MesPrepareDetailMapper.xml | 17 +- .../main/resources/mapper/mes/MesMapper.xml | 3 + .../mapper/mes/MesStationArriveMapper.xml | 145 ++++++++++++ .../java/com/op/plan/domain/ProOrder.java | 10 + .../com/op/plan/domain/ProOrderWorkorder.java | 10 + .../plan/mapper/ProOrderWorkorderMapper.java | 8 + .../impl/ProOrderWorkorderServiceImpl.java | 96 ++++++-- .../mapper/plan/ProOrderWorkorderMapper.xml | 52 +++++ 22 files changed, 1372 insertions(+), 81 deletions(-) rename {op-modules/op-plan/src/main/java/com/op/plan => op-api/op-api-system/src/main/java/com/op/system/api}/domain/dto/BaseBomComponentDTO.java (83%) rename {op-modules/op-plan/src/main/java/com/op/plan => op-api/op-api-system/src/main/java/com/op/system/api}/domain/dto/BaseBomDTO.java (95%) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesStationArriveDTO.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/controller/MesStationArriveController.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/MesStationArrive.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/mapper/MesStationArriveMapper.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/IMesStationArriveService.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesStationArriveServiceImpl.java create mode 100644 op-modules/op-mes/src/main/resources/mapper/mes/MesStationArriveMapper.xml diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/dto/BaseBomComponentDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomComponentDTO.java similarity index 83% rename from op-modules/op-plan/src/main/java/com/op/plan/domain/dto/BaseBomComponentDTO.java rename to op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomComponentDTO.java index 33bc0da36..f358ce451 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/dto/BaseBomComponentDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomComponentDTO.java @@ -1,4 +1,4 @@ -package com.op.plan.domain.dto; +package com.op.system.api.domain.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.op.common.core.annotation.Excel; @@ -18,7 +18,7 @@ public class BaseBomComponentDTO extends BaseEntity { private static final long serialVersionUID = 1L; /** 主键 */ - private Long id; + private String id; /** BOM单号 */ @Excel(name = "BOM单号") @@ -31,7 +31,11 @@ public class BaseBomComponentDTO extends BaseEntity { /** 物料编码 */ @Excel(name = "物料编码") private String productCode; - + private String productDesc; + private String productModel; + private Integer bomCalculateNumber; + private Integer bomBaseNumber; + private String prepareId; /** 组件上层物料编码 */ @Excel(name = "组件上层物料编码") private String cumc; @@ -93,11 +97,53 @@ public class BaseBomComponentDTO extends BaseEntity { @Excel(name = "预留字段3") private String attr3; - public void setId(Long id) { + private String bomBo; + + public Integer getBomBaseNumber() { + return bomBaseNumber; + } + + public void setBomBaseNumber(Integer bomBaseNumber) { + this.bomBaseNumber = bomBaseNumber; + } + + public Integer getBomCalculateNumber() { + return bomCalculateNumber; + } + + public void setBomCalculateNumber(Integer bomCalculateNumber) { + this.bomCalculateNumber = bomCalculateNumber; + } + + public String getProductDesc() { + return productDesc; + } + + public void setProductDesc(String productDesc) { + this.productDesc = productDesc; + } + + public String getProductModel() { + return productModel; + } + + public void setProductModel(String productModel) { + this.productModel = productModel; + } + + public String getBomBo() { + return bomBo; + } + + public void setBomBo(String bomBo) { + this.bomBo = bomBo; + } + + public void setId(String id) { this.id = id; } - public Long getId() { + public String getId() { return id; } public void setBomCode(String bomCode) { diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/dto/BaseBomDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java similarity index 95% rename from op-modules/op-plan/src/main/java/com/op/plan/domain/dto/BaseBomDTO.java rename to op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java index 8671f7cb3..ee99bd0de 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/dto/BaseBomDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/BaseBomDTO.java @@ -1,4 +1,4 @@ -package com.op.plan.domain.dto; +package com.op.system.api.domain.dto; import com.fasterxml.jackson.annotation.JsonFormat; import com.op.common.core.annotation.Excel; @@ -7,6 +7,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import java.util.Date; +import java.util.List; /** * BOM物料管理对象 base_bom @@ -95,6 +96,16 @@ public class BaseBomDTO extends BaseEntity { @Excel(name = "是否在用") private String currentVersion; + private List children; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + public void setFactoryCode(String factoryCode) { this.factoryCode = factoryCode; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/WCSDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/WCSDTO.java index 940b3fbe0..5460fc0ad 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/WCSDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/WCSDTO.java @@ -21,6 +21,43 @@ public class WCSDTO { private String loadNo; + private String stationType; + private String stationNo; + private String rfidNo; + private String spec; + + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getStationType() { + return stationType; + } + + public void setStationType(String stationType) { + this.stationType = stationType; + } + + public String getStationNo() { + return stationNo; + } + + public void setStationNo(String stationNo) { + this.stationNo = stationNo; + } + + public String getRfidNo() { + return rfidNo; + } + + public void setRfidNo(String rfidNo) { + this.rfidNo = rfidNo; + } + private List data; private List loadItems; diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesStationArriveDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesStationArriveDTO.java new file mode 100644 index 000000000..c6696a8fa --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/MesStationArriveDTO.java @@ -0,0 +1,211 @@ +package com.op.system.api.domain.mes; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + +/** + * 晒盘车到位记录对象 mes_station_arrive + * + * @author Open Platform + * @date 2023-08-08 + */ +public class MesStationArriveDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 记录id */ + private String recordId; + + /** 请求id */ + @Excel(name = "请求id") + private String reqCode; + + /** 请求时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "请求时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reqTime; + + /** 机台类型: */ + @Excel(name = "机台类型:") + private String stationType; + + /** 机台编号 */ + @Excel(name = "机台编号") + private String stationNo; + + /** rfid编号,条码能够区分是白坯料框还是筛盘车 */ + @Excel(name = "rfid编号,条码能够区分是白坯料框还是筛盘车") + private String rfidNo; + + /** 工单编码 */ + @Excel(name = "工单编码") + private String workorderCode; + + /** 批次编码 */ + @Excel(name = "批次编码") + private String batchCode; + + /** 物料编码 */ + @Excel(name = "物料编码") + private String cku; + + /** 规格 */ + @Excel(name = "规格") + private String spec; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private String attr4; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getRecordId() { + return recordId; + } + public void setReqCode(String reqCode) { + this.reqCode = reqCode; + } + + public String getReqCode() { + return reqCode; + } + public void setReqTime(Date reqTime) { + this.reqTime = reqTime; + } + + public Date getReqTime() { + return reqTime; + } + public void setStationType(String stationType) { + this.stationType = stationType; + } + + public String getStationType() { + return stationType; + } + public void setStationNo(String stationNo) { + this.stationNo = stationNo; + } + + public String getStationNo() { + return stationNo; + } + public void setRfidNo(String rfidNo) { + this.rfidNo = rfidNo; + } + + public String getRfidNo() { + return rfidNo; + } + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() { + return workorderCode; + } + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public String getBatchCode() { + return batchCode; + } + public void setCku(String cku) { + this.cku = cku; + } + + public String getCku() { + return cku; + } + public void setSpec(String spec) { + this.spec = spec; + } + + public String getSpec() { + return spec; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("reqCode", getReqCode()) + .append("reqTime", getReqTime()) + .append("stationType", getStationType()) + .append("stationNo", getStationNo()) + .append("rfidNo", getRfidNo()) + .append("workorderCode", getWorkorderCode()) + .append("batchCode", getBatchCode()) + .append("cku", getCku()) + .append("spec", getSpec()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} diff --git a/op-common/op-common-log/op-common-log.iml b/op-common/op-common-log/op-common-log.iml index edd2ebab4..152684b94 100644 --- a/op-common/op-common-log/op-common-log.iml +++ b/op-common/op-common-log/op-common-log.iml @@ -7,6 +7,7 @@ + @@ -124,4 +125,4 @@ - \ No newline at end of file + diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesStationArriveController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesStationArriveController.java new file mode 100644 index 000000000..91bdcef75 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesStationArriveController.java @@ -0,0 +1,97 @@ +package com.op.mes.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.mes.domain.MesStationArrive; +import com.op.mes.service.IMesStationArriveService; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.page.TableDataInfo; + +/** + * 晒盘车到位记录Controller + * + * @author Open Platform + * @date 2023-08-08 + */ +@RestController +@RequestMapping("/arrive") +public class MesStationArriveController extends BaseController { + @Autowired + private IMesStationArriveService mesStationArriveService; + + /** + * 查询晒盘车到位记录列表 + */ + @RequiresPermissions("system:arrive:list") + @GetMapping("/list") + public TableDataInfo list(MesStationArrive mesStationArrive) { + startPage(); + List list = mesStationArriveService.selectMesStationArriveList(mesStationArrive); + return getDataTable(list); + } + + /** + * 导出晒盘车到位记录列表 + */ + @RequiresPermissions("system:arrive:export") + @Log(title = "晒盘车到位记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, MesStationArrive mesStationArrive) { + List list = mesStationArriveService.selectMesStationArriveList(mesStationArrive); + ExcelUtil util = new ExcelUtil(MesStationArrive.class); + util.exportExcel(response, list, "晒盘车到位记录数据"); + } + + /** + * 获取晒盘车到位记录详细信息 + */ + @RequiresPermissions("system:arrive:query") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") String recordId) { + return success(mesStationArriveService.selectMesStationArriveByRecordId(recordId)); + } + + /** + * 新增晒盘车到位记录 + */ + @RequiresPermissions("system:arrive:add") + @Log(title = "晒盘车到位记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody MesStationArrive mesStationArrive) { + return toAjax(mesStationArriveService.insertMesStationArrive(mesStationArrive)); + } + + /** + * 修改晒盘车到位记录 + */ + @RequiresPermissions("system:arrive:edit") + @Log(title = "晒盘车到位记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody MesStationArrive mesStationArrive) { + return toAjax(mesStationArriveService.updateMesStationArrive(mesStationArrive)); + } + + /** + * 删除晒盘车到位记录 + */ + @RequiresPermissions("system:arrive:remove") + @Log(title = "晒盘车到位记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable String[] recordIds) { + return toAjax(mesStationArriveService.deleteMesStationArriveByRecordIds(recordIds)); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java index d9628cd11..da12ace2e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/WCSInterfaceController.java @@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*; * @date 2023-05-18 */ @RestController -@RequestMapping +@RequestMapping("/wcsInterface") public class WCSInterfaceController extends BaseController { @Autowired @@ -60,6 +60,7 @@ public class WCSInterfaceController extends BaseController { * @param * @return */ + //TODO; @Log(title = "请求送料", businessType = BusinessType.WCS) @PostMapping("/requestMaterialUnLoadNo") public WCSDTO requestMaterialUnLoadNo(@RequestBody WCSDTO wcsdto) { @@ -70,4 +71,53 @@ public class WCSInterfaceController extends BaseController { } return WCInterfaceService.requestMaterialUnLoadNo(wcsdto); } + /** + * RGV 送料完成 + * @param + * @return + */ + //TODO; + @Log(title = "送料完成", businessType = BusinessType.WCS) + @PostMapping("/unLoadMaterialCompleted") + public WCSDTO unLoadMaterialCompleted(@RequestBody WCSDTO wcsdto) { + if(StringUtils.isBlank(wcsdto.getFactory())){ + wcsdto.setCode("1"); + wcsdto.setMessage("factory is not null"); + return wcsdto; + } + return WCInterfaceService.requestMaterialUnLoadNo(wcsdto); + } + /** + * 生产机台到位信号 + * •空筛盘车到达成型机吊筛处,筛盘车到达烘房、筛盘车到达收坯吊筛处 + * @param + * @return + */ + @Log(title = "生产机台到位信号", businessType = BusinessType.WCS) + @PostMapping("/stationArrive") + public WCSDTO stationArrive(@RequestBody WCSDTO wcsdto) { + if(StringUtils.isBlank(wcsdto.getFactory())){ + wcsdto.setCode("1"); + wcsdto.setMessage("factory is not null"); + return wcsdto; + } + return WCInterfaceService.stationArrive(wcsdto); + } + /** + * 下一工序机台集合获取 + * •接口描述:成型机码垛完、暂存区、WCS 请求 MES 获取目的地集合 + * •触发时机:托盘到达 AGV 接驳口 + * @param + * @return + */ + @Log(title = "下一工序机台集合获取", businessType = BusinessType.WCS) + @PostMapping("/requestDestinationStations") + public WCSDTO requestDestinationStations(@RequestBody WCSDTO wcsdto) { + if(StringUtils.isBlank(wcsdto.getFactory())){ + wcsdto.setCode("1"); + wcsdto.setMessage("factory is not null"); + return wcsdto; + } + return WCInterfaceService.requestDestinationStations(wcsdto); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesStationArrive.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesStationArrive.java new file mode 100644 index 000000000..316608856 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesStationArrive.java @@ -0,0 +1,221 @@ +package com.op.mes.domain; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 晒盘车到位记录对象 mes_station_arrive + * + * @author Open Platform + * @date 2023-08-08 + */ +public class MesStationArrive extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 记录id */ + private String recordId; + + /** 请求id */ + @Excel(name = "请求id") + private String reqCode; + + /** 请求时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "请求时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reqTime; + + /** 机台类型: */ + @Excel(name = "机台类型:") + private String stationType; + + /** 机台编号 */ + @Excel(name = "机台编号") + private String stationNo; + + /** rfid编号,条码能够区分是白坯料框还是筛盘车 */ + @Excel(name = "rfid编号,条码能够区分是白坯料框还是筛盘车") + private String rfidNo; + + /** 工单编码 */ + @Excel(name = "工单编码") + private String workorderCode; + + /** 批次编码 */ + @Excel(name = "批次编码") + private String batchCode; + + /** 物料编码 */ + @Excel(name = "物料编码") + private String cku; + + /** 规格 */ + @Excel(name = "规格") + private String spec; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private String attr4; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + @Excel(name = "状态") + private String status; + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getRecordId() { + return recordId; + } + public void setReqCode(String reqCode) { + this.reqCode = reqCode; + } + + public String getReqCode() { + return reqCode; + } + public void setReqTime(Date reqTime) { + this.reqTime = reqTime; + } + + public Date getReqTime() { + return reqTime; + } + public void setStationType(String stationType) { + this.stationType = stationType; + } + + public String getStationType() { + return stationType; + } + public void setStationNo(String stationNo) { + this.stationNo = stationNo; + } + + public String getStationNo() { + return stationNo; + } + public void setRfidNo(String rfidNo) { + this.rfidNo = rfidNo; + } + + public String getRfidNo() { + return rfidNo; + } + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() { + return workorderCode; + } + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public String getBatchCode() { + return batchCode; + } + public void setCku(String cku) { + this.cku = cku; + } + + public String getCku() { + return cku; + } + public void setSpec(String spec) { + this.spec = spec; + } + + public String getSpec() { + return spec; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("reqCode", getReqCode()) + .append("reqTime", getReqTime()) + .append("stationType", getStationType()) + .append("stationNo", getStationNo()) + .append("rfidNo", getRfidNo()) + .append("workorderCode", getWorkorderCode()) + .append("batchCode", getBatchCode()) + .append("cku", getCku()) + .append("spec", getSpec()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java index ff03ef135..7258badb5 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java @@ -17,4 +17,6 @@ public interface MesMapper { List getWetPlanDetail(WCSDTO wcsdto); + + void getSaveStationArrive(WCSDTO wcsdto); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesStationArriveMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesStationArriveMapper.java new file mode 100644 index 000000000..52998f03d --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesStationArriveMapper.java @@ -0,0 +1,63 @@ +package com.op.mes.mapper; + +import java.util.List; + +import com.op.mes.domain.MesStationArrive; +import org.apache.ibatis.annotations.Mapper; + +/** + * 晒盘车到位记录Mapper接口 + * + * @author Open Platform + * @date 2023-08-08 + */ +@Mapper +public interface MesStationArriveMapper { + /** + * 查询晒盘车到位记录 + * + * @param recordId 晒盘车到位记录主键 + * @return 晒盘车到位记录 + */ + public MesStationArrive selectMesStationArriveByRecordId(String recordId); + + /** + * 查询晒盘车到位记录列表 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 晒盘车到位记录集合 + */ + public List selectMesStationArriveList(MesStationArrive mesStationArrive); + + /** + * 新增晒盘车到位记录 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 结果 + */ + public int insertMesStationArrive(MesStationArrive mesStationArrive); + + /** + * 修改晒盘车到位记录 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 结果 + */ + public int updateMesStationArrive(MesStationArrive mesStationArrive); + + /** + * 删除晒盘车到位记录 + * + * @param recordId 晒盘车到位记录主键 + * @return 结果 + */ + public int deleteMesStationArriveByRecordId(String recordId); + + /** + * 批量删除晒盘车到位记录 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesStationArriveByRecordIds(String[] recordIds); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesStationArriveService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesStationArriveService.java new file mode 100644 index 000000000..a5cfcd747 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesStationArriveService.java @@ -0,0 +1,60 @@ +package com.op.mes.service; + +import java.util.List; +import com.op.mes.domain.MesStationArrive; + +/** + * 晒盘车到位记录Service接口 + * + * @author Open Platform + * @date 2023-08-08 + */ +public interface IMesStationArriveService { + /** + * 查询晒盘车到位记录 + * + * @param recordId 晒盘车到位记录主键 + * @return 晒盘车到位记录 + */ + public MesStationArrive selectMesStationArriveByRecordId(String recordId); + + /** + * 查询晒盘车到位记录列表 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 晒盘车到位记录集合 + */ + public List selectMesStationArriveList(MesStationArrive mesStationArrive); + + /** + * 新增晒盘车到位记录 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 结果 + */ + public int insertMesStationArrive(MesStationArrive mesStationArrive); + + /** + * 修改晒盘车到位记录 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 结果 + */ + public int updateMesStationArrive(MesStationArrive mesStationArrive); + + /** + * 批量删除晒盘车到位记录 + * + * @param recordIds 需要删除的晒盘车到位记录主键集合 + * @return 结果 + */ + public int deleteMesStationArriveByRecordIds(String[] recordIds); + + /** + * 删除晒盘车到位记录信息 + * + * @param recordId 晒盘车到位记录主键 + * @return 结果 + */ + public int deleteMesStationArriveByRecordId(String recordId); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java index 113b30a98..2a762d33a 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IWCSInterfaceService.java @@ -18,4 +18,8 @@ public interface IWCSInterfaceService { WCSDTO loadMaterialCompleted(WCSDTO wcsdto); WCSDTO requestMaterialUnLoadNo(WCSDTO wcsdto); + + WCSDTO stationArrive(WCSDTO wcsdto); + + WCSDTO requestDestinationStations(WCSDTO wcsdto); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index cf95e7432..74e9eb42a 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -1,7 +1,13 @@ package com.op.mes.service.impl; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.bean.BeanUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.mes.domain.MesStationArrive; import com.op.mes.mapper.MesMapper; +import com.op.mes.mapper.MesStationArriveMapper; import com.op.mes.service.IWCSInterfaceService; import com.op.system.api.domain.dto.WCSDTO; import com.op.system.api.domain.dto.WCSDataItemsDTO; @@ -12,7 +18,7 @@ import org.springframework.stereotype.Service; import java.util.List; /** - * 订单Service业务层处理 + * wcs接口业务层处理 * * @author Open Platform * @date 2023-07-13 @@ -22,28 +28,32 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { @Autowired private MesMapper mesMapper; + @Autowired + private MesStationArriveMapper mesStationArriveMapper; + /** * RGV请求接料 * { - * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID - * "reqTime": "2023-06-30 21:24:04", //请求时间 - * "sku": "sku01" //物料编码 - * “factory”:"工厂编码" + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID + * "reqTime": "2023-06-30 21:24:04", //请求时间 + * "sku": "sku01" //物料编码 + * “factory”:"工厂编码" * } * 返回 * { - * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求编号 - * "code": 0, //返回代码 - * "message": "OK", //返回信息 - * "loadItems": [ - * { - * "loadNo": "A1" //上料机台,上料罐 - * }, - * { - * "loadNo": "A2" //上料机台,上料罐 - * } - * ] + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求编号 + * "code": 0, //返回代码 + * "message": "OK", //返回信息 + * "loadItems": [ + * { + * "loadNo": "A1" //上料机台,上料罐 + * }, + * { + * "loadNo": "A2" //上料机台,上料罐 * } + * ] + * } + * * @param wcsdto * @return */ @@ -59,48 +69,142 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { dto.setMessage("OK"); return dto; } - /** RGV 接料完成(我不要) - * { - * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0",//请求ID - * "reqTime": "2023-06-30 21:24:04",//请求时间 - * "loadNo": "A1"//接料 - * "factory":工厂编码 - * } - * 返回 - * { - * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0",//请求ID - * "code": 0,//返回代码 - * "message": "OK"//返回信息 - * } + + /** + * RGV 接料完成(我不要) + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0",//请求ID + * "reqTime": "2023-06-30 21:24:04",//请求时间 + * "loadNo": "A1"//接料 + * "factory":工厂编码 + * } + * 返回 + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0",//请求ID + * "code": 0,//返回代码 + * "message": "OK"//返回信息 + * } */ @Override public WCSDTO loadMaterialCompleted(WCSDTO wcsdto) { return null; } - /**RGV 请求送料 - { - "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID - "reqTime": "2023-06-30 21:24:04", //请求时间 - "sku": "sku01" //对应的湿料的物料编码 - } - JSON - { - "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0",//请求ID - "code": 0,//返回代码 - "message": "OK",//返回信息 - "unLoadItems": [ - { - "unloadNo": "B1"//送料机台,成型机 - }, - { - "unloadNo": "B2"//送料机台,成型机 - } - ] - } - **/ + /** + * RGV 请求送料 + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID + * "reqTime": "2023-06-30 21:24:04", //请求时间 + * "sku": "sku01" //对应的湿料的物料编码 + * } + *

+ * JSON + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0",//请求ID + * "code": 0,//返回代码 + * "message": "OK",//返回信息 + * "unLoadItems": [ + * { + * "unloadNo": "B1"//送料机台,成型机 + * }, + * { + * "unloadNo": "B2"//送料机台,成型机 + * } + * ] + * } + **/ @Override public WCSDTO requestMaterialUnLoadNo(WCSDTO wcsdto) { + //TODO; + return null; + } + + /** + * 生产机台到位信号 + * JSON + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID + * "reqTime": "2023-06-30 21:24:04", //请求时间 + * "stationType": "1", //机台类型: 1.成型机、2.烘房、3收坯机、4.收坯码垛 + * "stationNo": "S1", //机台编号 + * "rfidNo": "r12345" //rfid编号,条码能够区分是白坯料框还是筛盘车 + * } + *

+ * JSON + * { + *

+ * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID + * "code": 0, //返回代码 + * "message": "OK", //返回信息 + * "sku": "sku01", //托盘到位信号 + * "spec": "150", //规格 + * } + * + * @param wcsdto + * @return + */ + @Override + public WCSDTO stationArrive(WCSDTO wcsdto) { + DynamicDataSourceContextHolder.push(wcsdto.getFactory()); + + MesStationArrive sa = new MesStationArrive(); + BeanUtils.copyBeanProp(sa, wcsdto); + sa.setRecordId(IdUtils.fastSimpleUUID()); + sa.setCreateTime(DateUtils.getNowDate()); + sa.setCreateBy(SecurityUtils.getUsername()); + sa.setStatus("0");//初始到达 + //保存筛盘车到达记录//mes_station_arrive(设备跟机台绑定) + mesStationArriveMapper.insertMesStationArrive(sa); + + WCSDTO dto = new WCSDTO(); + BeanUtils.copyBeanProp(dto, wcsdto); + dto.setSku("");//TODO; + dto.setSpec("");//TODO; + dto.setCode("0"); + dto.setMessage("OK"); + return dto; + } + + /**下一工序机台集合获取 + * JSON + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID + * "reqTime": "2023-06-30 21:24:04", //请求时间, + * "rfidNo": "r12345" //rfid编号 + * } + * + * JSON + * { + * "reqCode": "eb7f8e9f-d1e8-499e-9bcb-e72d3ac195b0", //请求ID + * "code": 0, //返回代码 + * "message": "OK", //返回信息 + * "stationType": "2", //目的机台类型 2烘房 3收坯机 + * "sku": "sku01", //物料编码 + * "spec": "150", //规格 + * "productionState": "K01", //当前工艺状态 + * "stationNos": [ + * { + * "stationNo": "F1", //目的站台编号 + * "qty": 2 //针对于烘房前面的当前筛盘车的数量,如果数量大于2就不会往改烘房分配 + * }, + * { + * "stationNo": "F3", //目的站台编号 + * "qty": 2 //针对于烘房前面的当前筛盘车的数量,如果数量大于2就不会往改烘房分配 + * }, + * { + * "stationNo": "F3", //目的站台编号 + * "qty": 2 //针对于烘房前面的当前筛盘车的数量,如果数量大于2就不会往改烘房分配 + * } + * ], + * } + * @param wcsdto + * @return + */ + @Override + public WCSDTO requestDestinationStations(WCSDTO wcsdto) { + DynamicDataSourceContextHolder.push(wcsdto.getFactory()); + //mes_station_arrive(设备跟机台绑定) + //MesStationArrive msa = mesStationArriveMapper.getInfoByRecordId(wcsdto.getRfidNo()); return null; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesStationArriveServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesStationArriveServiceImpl.java new file mode 100644 index 000000000..3cf8d49e7 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesStationArriveServiceImpl.java @@ -0,0 +1,89 @@ +package com.op.mes.service.impl; + +import java.util.List; +import com.op.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.mes.mapper.MesStationArriveMapper; +import com.op.mes.domain.MesStationArrive; +import com.op.mes.service.IMesStationArriveService; + +/** + * 晒盘车到位记录Service业务层处理 + * + * @author Open Platform + * @date 2023-08-08 + */ +@Service +public class MesStationArriveServiceImpl implements IMesStationArriveService { + @Autowired + private MesStationArriveMapper mesStationArriveMapper; + + /** + * 查询晒盘车到位记录 + * + * @param recordId 晒盘车到位记录主键 + * @return 晒盘车到位记录 + */ + @Override + public MesStationArrive selectMesStationArriveByRecordId(String recordId) { + return mesStationArriveMapper.selectMesStationArriveByRecordId(recordId); + } + + /** + * 查询晒盘车到位记录列表 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 晒盘车到位记录 + */ + @Override + public List selectMesStationArriveList(MesStationArrive mesStationArrive) { + return mesStationArriveMapper.selectMesStationArriveList(mesStationArrive); + } + + /** + * 新增晒盘车到位记录 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 结果 + */ + @Override + public int insertMesStationArrive(MesStationArrive mesStationArrive) { + mesStationArrive.setCreateTime(DateUtils.getNowDate()); + return mesStationArriveMapper.insertMesStationArrive(mesStationArrive); + } + + /** + * 修改晒盘车到位记录 + * + * @param mesStationArrive 晒盘车到位记录 + * @return 结果 + */ + @Override + public int updateMesStationArrive(MesStationArrive mesStationArrive) { + mesStationArrive.setUpdateTime(DateUtils.getNowDate()); + return mesStationArriveMapper.updateMesStationArrive(mesStationArrive); + } + + /** + * 批量删除晒盘车到位记录 + * + * @param recordIds 需要删除的晒盘车到位记录主键 + * @return 结果 + */ + @Override + public int deleteMesStationArriveByRecordIds(String[] recordIds) { + return mesStationArriveMapper.deleteMesStationArriveByRecordIds(recordIds); + } + + /** + * 删除晒盘车到位记录信息 + * + * @param recordId 晒盘车到位记录主键 + * @return 结果 + */ + @Override + public int deleteMesStationArriveByRecordId(String recordId) { + return mesStationArriveMapper.deleteMesStationArriveByRecordId(recordId); + } +} diff --git a/op-modules/op-mes/src/main/resources/mapper/MesPrepareDetailMapper.xml b/op-modules/op-mes/src/main/resources/mapper/MesPrepareDetailMapper.xml index b9934f244..8c63ac040 100644 --- a/op-modules/op-mes/src/main/resources/mapper/MesPrepareDetailMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/MesPrepareDetailMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -29,12 +29,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select record_id, prepare_id, material_code, materail_name, materail_spc, unit, quantity, product_date, shift_id, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, prod_type, factory_code from mes_prepare_detail + select record_id, prepare_id, material_code, materail_name, materail_spc, unit, + quantity, product_date, shift_id, status, remark, attr1, attr2, attr3, attr4, + create_by, create_time, update_by, update_time, prod_type, factory_code + from mes_prepare_detail - + - + insert into mes_prepare_detail @@ -140,9 +143,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from mes_prepare_detail where record_id in + delete from mes_prepare_detail where record_id in #{recordId} - \ No newline at end of file + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index a221fd077..197c1c0ed 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -10,4 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from pro_wet_material_plan_detail where material_code = #{sku} and CONVERT(varchar(10),plan_time, 120) = CONVERT(varchar(10),#{reqTime}, 120) + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesStationArriveMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesStationArriveMapper.xml new file mode 100644 index 000000000..e3d6d5736 --- /dev/null +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesStationArriveMapper.xml @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_id, reqCode, reqTime, stationType, stationNo, rfidNo, workorder_code, batch_code, cku, spec, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code from mes_station_arrive + + + + + + + + insert into mes_station_arrive + + record_id, + reqCode, + reqTime, + stationType, + stationNo, + rfidNo, + workorder_code, + batch_code, + cku, + spec, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + status, + + + #{recordId}, + #{reqCode}, + #{reqTime}, + #{stationType}, + #{stationNo}, + #{rfidNo}, + #{workorderCode}, + #{batchCode}, + #{cku}, + #{spec}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{status}, + + + + + update mes_station_arrive + + reqCode = #{reqCode}, + reqTime = #{reqTime}, + stationType = #{stationType}, + stationNo = #{stationNo}, + rfidNo = #{rfidNo}, + workorder_code = #{workorderCode}, + batch_code = #{batchCode}, + cku = #{cku}, + spec = #{spec}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + + where record_id = #{recordId} + + + + delete from mes_station_arrive where record_id = #{recordId} + + + + delete from mes_station_arrive where record_id in + + #{recordId} + + + diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java index 22457a174..145b8157d 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrder.java @@ -57,6 +57,16 @@ public class ProOrder extends TreeEntity { /** 任务清单 */ private String workerOrder; + private String bomBo; + + public String getBomBo() { + return bomBo; + } + + public void setBomBo(String bomBo) { + this.bomBo = bomBo; + } + public Long getQuantitySplit() { return quantitySplit; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java index e926a6c18..8b6c57b86 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java @@ -138,6 +138,16 @@ public class ProOrderWorkorder extends TreeEntity { // 料罐名称(湿料计划模块使用) private String bucketName; + private String prepareId; + + public String getPrepareId() { + return prepareId; + } + + public void setPrepareId(String prepareId) { + this.prepareId = prepareId; + } + public String getBucketName() { return bucketName; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index 3f5801ad6..11b537568 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -122,6 +122,14 @@ public interface ProOrderWorkorderMapper { void createPrepare(MesPrepare mesPrepare); + ProOrder getOrderCodeById(String workorderId); + + ProOrder getOrderCodeBySonCode(String parentOrder); + + List getBomComponents(@Param("order") ProOrder order,@Param("list") List cumsDtos); + + void createPrepareDetails(@Param("list") List allChildren,@Param("wo") ProOrderWorkorder wo); + List selectProOrderWorkerderByWorkerIds(String[] ids); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index 857d0c5a2..88a044348 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -8,11 +8,12 @@ import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; import com.op.plan.domain.*; -import com.op.plan.domain.dto.BaseBomDTO; import com.op.plan.domain.dto.ProOrderDTO; import com.op.plan.domain.dto.SplitOrderDTO; import com.op.plan.mapper.*; import com.op.plan.service.IProOrderWorkorderService; +import com.op.system.api.domain.dto.BaseBomComponentDTO; +import com.op.system.api.domain.dto.BaseBomDTO; import com.op.system.api.domain.dto.MesPrepare; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.*; +import java.util.stream.Collectors; import static com.op.common.core.web.domain.AjaxResult.error; import static com.op.common.core.web.domain.AjaxResult.success; @@ -167,6 +169,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { /** * 下发生产工单信息 + * (附:回传sap工单,获取工单对应的领料单) * @param workorderIds 生产工单主键 * @return 结果 */ @@ -193,24 +196,85 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } } } - //生成备料单 - for(String workorderId:workorderIds){ - ProOrderWorkorder orderWorkorder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(workorderId); - //备(领)料主单 - MesPrepare mesPrepare = new MesPrepare(); - BeanUtils.copyBeanProp(mesPrepare,orderWorkorder); - mesPrepare.setPrepareId(orderWorkorder.getWorkorderCode()+"L");//领料单号 - mesPrepare.setWorkorderCode(orderWorkorder.getWorkorderCode()); - mesPrepare.setCreateBy(SecurityUtils.getUsername()); - mesPrepare.setCreateTime(DateUtils.getNowDate()); - mesPrepare.setStatus("L0");//待确认 - proOrderWorkorderMapper.createPrepare(mesPrepare); - //备(领)料明细-获取bom - - } +// //生成备料单 +// for(String workorderId:workorderIds){ +// ProOrderWorkorder orderWorkorder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(workorderId); +// //备(领)料主单 +// MesPrepare mesPrepare = new MesPrepare(); +// BeanUtils.copyBeanProp(mesPrepare,orderWorkorder); +// mesPrepare.setPrepareId(orderWorkorder.getWorkorderCode()+"L");//领料单号 +// mesPrepare.setWorkorderCode(orderWorkorder.getWorkorderCode()); +// mesPrepare.setCreateBy(SecurityUtils.getUsername()); +// mesPrepare.setCreateTime(DateUtils.getNowDate()); +// mesPrepare.setStatus("L0");//待确认 +// proOrderWorkorderMapper.createPrepare(mesPrepare); +// //备(领)料明细 +// orderWorkorder.setPrepareId(mesPrepare.getPrepareId()); +// List boms = this.getBomDtos(workorderId); +// List allChildren = new ArrayList<>(); +// BaseBomComponentDTO bc = new BaseBomComponentDTO(); +// bc.setComponent(orderWorkorder.getProductCode()); +// getLastChildren(boms, allChildren, bc); +// allChildren.forEach((entity) ->{ +// entity.setCreateTime(DateUtils.getNowDate()); +// entity.setCreateBy(SecurityUtils.getUsername()); +// entity.setId(IdUtils.fastSimpleUUID()); +// +// }); +// proOrderWorkorderMapper.createPrepareDetails(allChildren,orderWorkorder); +// +// } //下达工单 return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(workorderIds); } +// //获取最低级材料 +// private void getLastChildren(List all, List allChildren , BaseBomComponentDTO bc) { +// List cList = all.stream().filter(item -> item.getCumc().equals(bc.getComponent())) +// .collect(Collectors.toList()); +// if(CollectionUtils.isEmpty(cList)){ +// allChildren.add(bc); +// }else{ +// for(BaseBomComponentDTO bcc : cList){ +// getLastChildren(all, allChildren ,bcc); +// } +// } +// } +// //获取顶级定单的bom组成 +// private List getBomDtos(String workorderId){ +// List bomdtoAdds = new ArrayList<>();//所有数据 +// +// List cumsDtos = new ArrayList<>(); +// BaseBomComponentDTO cumsDto = new BaseBomComponentDTO(); +// ProOrder order = this.getTopOrder(workorderId); +// cumsDto.setCumc(order.getProdCode()); +// cumsDtos.add(cumsDto); +// List bomdtos = proOrderWorkorderMapper.getBomComponents(order,cumsDtos);//最新版本的第一层子 +// bomdtoAdds.addAll(bomdtos); +// Boolean isTrue = true; +// while(isTrue){ +// List bomdtoTop = new ArrayList<>(); +// bomdtos.forEach(e->e.setCumc(e.getComponent())); +// bomdtoTop.addAll(bomdtos); +// List bomdtoSon = proOrderWorkorderMapper.getBomComponents(order,bomdtoTop); +// if(CollectionUtils.isEmpty(bomdtoSon)){ +// isTrue = false; +// }else{ +// bomdtos = bomdtoSon; +// bomdtoAdds.addAll(bomdtoSon); +// } +// } +// +// return bomdtos; +// } +// //根据工单子单获取最顶级订单的母单 +// private ProOrder getTopOrder(String workorderId){ +// ProOrder topOrder = proOrderWorkorderMapper.getOrderCodeById(workorderId); +// while(!"0".equals(topOrder.getParentOrder())&& com.op.common.core.utils.StringUtils.isNotEmpty(topOrder.getParentOrder())){ +// topOrder = proOrderWorkorderMapper.getOrderCodeBySonCode(topOrder.getParentOrder()); +// } +// return topOrder; +// } + /** * 通过工单信息查询订单信息和工单信息 diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 1c7c163dd..1127b13dc 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -139,6 +139,17 @@ #{ids} + + insert into pro_order_workorder @@ -278,6 +289,47 @@ #{quantity}, + + + insert into mes_prepare_detail + ( + record_id, prepare_id, material_code, materail_name, materail_spc, unit, + quantity, product_date, shift_id, + create_by,create_time, prod_type, factory_code + )values + + ( + #{item.id},#{wo.prepareId},#{wo.productCode},#{wo.productDesc},#{wo.productModel},#{item.componentUnit}, + #{item.quantity},#{wo.productDate},#{wo.shiftId}, + #{item.createBy},#{item.createTime},#{wo.prodType},#{wo.factoryCode} + ) + + update pro_order_workorder