From 585b4e5692a2337c671fefdab9ebd17544a1d766 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Thu, 20 Jul 2023 18:07:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/context/SecurityContextHolder.java | 1 - .../com/op/common/core/utils/DateUtils.java | 1 + .../op/mes/controller/ProOrderController.java | 171 ++++--- .../main/java/com/op/mes/domain/Batch.java | 38 ++ .../main/java/com/op/mes/domain/Convert.java | 61 +++ .../main/java/com/op/mes/domain/ProLine.java | 39 ++ .../main/java/com/op/mes/domain/ProOrder.java | 14 + .../com/op/mes/domain/ProOrderWorkorder.java | 345 ++++++++++++++ .../op/mes/domain/ProOrderWorkorderBatch.java | 159 ++++++ .../main/java/com/op/mes/domain/ProShift.java | 39 ++ .../com/op/mes/domain/dto/ProOrderDTO.java | 254 ++++++++++ .../com/op/mes/domain/dto/SplitOrderDTO.java | 86 ++++ .../com/op/mes/domain/vo/LineAndShiftVo.java | 45 ++ .../com/op/mes/mapper/ProOrderMapper.java | 173 +++++-- .../mapper/ProOrderWorkorderBatchMapper.java | 64 +++ .../mes/mapper/ProOrderWorkorderMapper.java | 77 +++ .../com/op/mes/service/IProOrderService.java | 140 ++++-- .../IProOrderWorkorderBatchService.java | 61 +++ .../service/IProOrderWorkorderService.java | 62 +++ .../mes/service/impl/ProOrderServiceImpl.java | 451 ++++++++++++++---- .../ProOrderWorkorderBatchServiceImpl.java | 90 ++++ .../impl/ProOrderWorkorderServiceImpl.java | 91 ++++ .../resources/mapper/mes/ProOrderMapper.xml | 28 +- .../mes/ProOrderWorkorderBatchMapper.xml | 123 +++++ .../mapper/mes/ProOrderWorkorderMapper.xml | 203 ++++++++ 25 files changed, 2580 insertions(+), 236 deletions(-) create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/Batch.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/Convert.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorderBatch.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/ProShift.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/dto/ProOrderDTO.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/dto/SplitOrderDTO.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/vo/LineAndShiftVo.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderBatchMapper.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderBatchService.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderService.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderBatchServiceImpl.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderServiceImpl.java create mode 100644 op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderBatchMapper.xml create mode 100644 op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/context/SecurityContextHolder.java b/op-common/op-common-core/src/main/java/com/op/common/core/context/SecurityContextHolder.java index c4b848af..5bce0422 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/context/SecurityContextHolder.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/context/SecurityContextHolder.java @@ -6,7 +6,6 @@ import com.alibaba.ttl.TransmittableThreadLocal; import com.op.common.core.constant.SecurityConstants; import com.op.common.core.text.Convert; import com.op.common.core.utils.StringUtils; -import sun.plugin2.main.server.Plugin; /** * 获取当前线程变量中的 用户id、用户名称、Token等信息 注意: 必须在网关通过请求头的方法传入,同时在HeaderInterceptor拦截器设置值。 diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java b/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java index 45a83a26..719c6df1 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/utils/DateUtils.java @@ -24,6 +24,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { public static String YYYY_MM_DD = "yyyy-MM-dd"; public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + public static String YYYYMMDDHHMMSSsss = "yyyyMMddHHmmssSSS"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java index 3be4af9b..6977db43 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java @@ -2,6 +2,8 @@ package com.op.mes.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.op.mes.domain.dto.SplitOrderDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -29,67 +31,122 @@ import com.op.common.core.utils.poi.ExcelUtil; @RestController @RequestMapping("/order") public class ProOrderController extends BaseController { - @Autowired - private IProOrderService proOrderService; + @Autowired + private IProOrderService proOrderService; + + /** + * 获取工单信息列表 + * + * @param id + * @return + */ + @GetMapping(value = "/getWorkOrderList/{id}") + public AjaxResult getWorkOrderList(@PathVariable("id") String id) { + return proOrderService.getWorkOrderList(id); + } + + ; + + /** + * 获取当前订单信息列表 + * + * @param id + * @return + */ + @GetMapping(value = "/getOrderList/{id}") + public AjaxResult getOrderList(@PathVariable("id") String id) { + return proOrderService.getOrderList(id); + } + + /** + * 提交拆分订单接口 + * + * @param splitOrderDTO + * @return + */ + @PostMapping("/subSplitOrder") + public AjaxResult subSplitOrder(@RequestBody SplitOrderDTO splitOrderDTO) { + return proOrderService.subSplitOrder(splitOrderDTO); + } + + /** + * 获取换算值 + * + * @return + */ + @GetMapping("/getConvert") + public AjaxResult getConvert() { + return success(proOrderService.getConvert()); + } + + /** + * 获取线体 + * + * @return + */ + @GetMapping("/getProdLineShift") + public AjaxResult getProdLineShift() { + return success(proOrderService.getProdLineShift()); + } - /** - * 查询订单列表 - */ - @RequiresPermissions("mes:pro:order:list") - @GetMapping("/list") - public AjaxResult list(ProOrder proOrder) { - List list = proOrderService.selectProOrderList(proOrder); - return success(list); - } + /** + * 查询订单列表 + */ + @RequiresPermissions("mes:pro:order:list") + @GetMapping("/list") + public AjaxResult list(ProOrder proOrder) { + List list = proOrderService.selectProOrderList(proOrder); + return success(list); + } - /** - * 导出订单列表 - */ - @RequiresPermissions("mes:pro:order:export") - @Log(title = "订单", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, ProOrder proOrder) { - List list = proOrderService.selectProOrderList(proOrder); - ExcelUtil util = new ExcelUtil(ProOrder.class); - util.exportExcel(response, list, "订单数据"); - } + /** + * 导出订单列表 + */ + @RequiresPermissions("mes:pro:order:export") + @Log(title = "订单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProOrder proOrder) { + List list = proOrderService.selectProOrderList(proOrder); + ExcelUtil util = new ExcelUtil(ProOrder.class); + util.exportExcel(response, list, "订单数据"); + } - /** - * 获取订单详细信息 - */ - @RequiresPermissions("mes:pro:order:query") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") String id) { - return success(proOrderService.selectProOrderById(id)); - } + /** + * 获取订单详细信息 + */ + @RequiresPermissions("mes:pro:order:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return success(proOrderService.selectProOrderById(id)); + } - /** - * 新增订单 - */ - @RequiresPermissions("mes:pro:order:add") - @Log(title = "订单", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody ProOrder proOrder) { - return toAjax(proOrderService.insertProOrder(proOrder)); - } + /** + * 新增订单 + */ + @RequiresPermissions("mes:pro:order:add") + @Log(title = "订单", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProOrder proOrder) { + return toAjax(proOrderService.insertProOrder(proOrder)); + } - /** - * 修改订单 - */ - @RequiresPermissions("mes:pro:order:edit") - @Log(title = "订单", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody ProOrder proOrder) { - return toAjax(proOrderService.updateProOrder(proOrder)); - } + /** + * 修改订单 + */ + @RequiresPermissions("mes:pro:order:edit") + @Log(title = "订单", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProOrder proOrder) { + return toAjax(proOrderService.updateProOrder(proOrder)); + } - /** - * 删除订单 - */ - @RequiresPermissions("mes:pro:order:remove") - @Log(title = "订单", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable String[] ids) { - return toAjax(proOrderService.deleteProOrderByIds(ids)); - } + /** + * 删除订单 + */ + @RequiresPermissions("mes:pro:order:remove") + @Log(title = "订单", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(proOrderService.deleteProOrderByIds(ids)); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/Batch.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/Batch.java new file mode 100644 index 00000000..dcff2e6b --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/Batch.java @@ -0,0 +1,38 @@ +package com.op.mes.domain; + +/** + * 拆分批次实体类 + */ +public class Batch { + // 批次号 + private String batchCode; + // 批次数量 + private Long batchQuantity; + + @Override + public String toString() { + return "Batch{" + + "batchCode='" + batchCode + '\'' + + ", batchQuantity=" + batchQuantity + + '}'; + } + + public String getBatchCode() { + return batchCode; + } + + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public Long getBatchQuantity() { + return batchQuantity; + } + + public void setBatchQuantity(Long batchQuantity) { + this.batchQuantity = batchQuantity; + } + + public Batch() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/Convert.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/Convert.java new file mode 100644 index 00000000..cf0ccc16 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/Convert.java @@ -0,0 +1,61 @@ +package com.op.mes.domain; + +//换算值实体类 +public class Convert { + private Integer dictCode; + private String dictLabel; + private String dictValue; + private String dictSort; + + @Override + public String toString() { + return "Convert{" + + "dictCode=" + dictCode + + ", dictLabel='" + dictLabel + '\'' + + ", dictValue='" + dictValue + '\'' + + ", dictSort='" + dictSort + '\'' + + '}'; + } + + public Integer getDictCode() { + return dictCode; + } + + public void setDictCode(Integer dictCode) { + this.dictCode = dictCode; + } + + public String getDictLabel() { + return dictLabel; + } + + public void setDictLabel(String dictLabel) { + this.dictLabel = dictLabel; + } + + public String getDictValue() { + return dictValue; + } + + public void setDictValue(String dictValue) { + this.dictValue = dictValue; + } + + public String getDictSort() { + return dictSort; + } + + public void setDictSort(String dictSort) { + this.dictSort = dictSort; + } + + public Convert(Integer dictCode, String dictLabel, String dictValue, String dictSort) { + this.dictCode = dictCode; + this.dictLabel = dictLabel; + this.dictValue = dictValue; + this.dictSort = dictSort; + } + + public Convert() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java new file mode 100644 index 00000000..7b7dbe63 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java @@ -0,0 +1,39 @@ +package com.op.mes.domain; + +//线体实体类 +public class ProLine { + private String key; + private String label; + + @Override + public String toString() { + return "ProLine{" + + "key='" + key + '\'' + + ", label='" + label + '\'' + + '}'; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public ProLine(String key, String label) { + this.key = key; + this.label = label; + } + + public ProLine() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrder.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrder.java index 2c6740a3..ac8fd4c9 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrder.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrder.java @@ -1,6 +1,7 @@ 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; @@ -108,6 +109,18 @@ public class ProOrder extends TreeEntity { /** 产品类型 */ @Excel(name = "产品类型") private String prodType; + /** 物料型号 */ + @Excel(name = "物料名称") + private String prodSpc; + + public String getProdSpc() { + return prodSpc; + } + + public void setProdSpc(String prodSpc) { + this.prodSpc = prodSpc; + } + public void setId(String id) { this.id = id; @@ -253,6 +266,7 @@ public class ProOrder extends TreeEntity { .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("prodType", getProdType()) + .append("prodSpc", getProdSpc()) .toString(); } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java new file mode 100644 index 00000000..6ee767bd --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java @@ -0,0 +1,345 @@ +package com.op.mes.domain; + +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.web.domain.TreeEntity; +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; + +/** + * 生产工单对象 pro_order_workorder + * + * @author Open Platform + * @date 2023-07-18 + */ +public class ProOrderWorkorder extends TreeEntity { + private static final long serialVersionUID = 1L; + + /** 工单ID */ + private String workorderId; + + /** 工单编码 */ + @Excel(name = "工单编码") + private String workorderCode; + + /** 工单名称 */ + @Excel(name = "工单名称") + private String workorderName; + + /** 订单id */ + @Excel(name = "订单id") + private String orderId; + + /** 订单编码 */ + @Excel(name = "订单编码") + private String orderCode; + + /** 产品ID */ + @Excel(name = "产品ID") + private String productId; + + /** 产品编号 */ + @Excel(name = "产品编号") + private String productCode; + + /** 产品名称 */ + @Excel(name = "产品名称") + private String productName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String productSpc; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 已生产数量 */ + @Excel(name = "已生产数量") + private Long quantityProduced; + + /** 已拆分数量 */ + @Excel(name = "已拆分数量") + private Long quantitySplit; + + /** 工艺编码 */ + @Excel(name = "工艺编码") + private String routeCode; + + /** 产线编码 */ + @Excel(name = "产线编码") + private String prodLineCode; + + /** 工单生产日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "工单生产日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date productDate; + + /** 班次 */ + @Excel(name = "班次") + private String shiftId; + + /** 父工单 */ + @Excel(name = "父工单") + private String parentOrder; + + /** 所有父节点ID */ + @Excel(name = "所有父节点ID") + private String ancestors; + + /** 单据状态 */ + @Excel(name = "单据状态") + private String status; + + /** 预留字段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 prodType; + + /** 批次号 */ + private StringBuilder batchCodeList; + + public StringBuilder getBatchCodeList() { + return batchCodeList; + } + + public void setBatchCodeList(StringBuilder batchCodeList) { + this.batchCodeList = batchCodeList; + } + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String factoryCode; + + public void setWorkorderId(String workorderId) { + this.workorderId = workorderId; + } + + public String getWorkorderId() { + return workorderId; + } + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() { + return workorderCode; + } + public void setWorkorderName(String workorderName) { + this.workorderName = workorderName; + } + + public String getWorkorderName() { + return workorderName; + } + public void setOrderId(String orderId) { + this.orderId = orderId; + } + + public String getOrderId() { + return orderId; + } + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getOrderCode() { + return orderCode; + } + public void setProductId(String productId) { + this.productId = productId; + } + + public String getProductId() { + return productId; + } + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductCode() { + return productCode; + } + public void setProductName(String productName) { + this.productName = productName; + } + + public String getProductName() { + return productName; + } + public void setProductSpc(String productSpc) { + this.productSpc = productSpc; + } + + public String getProductSpc() { + return productSpc; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setQuantityProduced(Long quantityProduced) { + this.quantityProduced = quantityProduced; + } + + public Long getQuantityProduced() { + return quantityProduced; + } + public void setQuantitySplit(Long quantitySplit) { + this.quantitySplit = quantitySplit; + } + + public Long getQuantitySplit() { + return quantitySplit; + } + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + + public String getRouteCode() { + return routeCode; + } + public void setProdLineCode(String prodLineCode) { + this.prodLineCode = prodLineCode; + } + + public String getProdLineCode() { + return prodLineCode; + } + public void setProductDate(Date productDate) { + this.productDate = productDate; + } + + public Date getProductDate() { + return productDate; + } + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } + + public String getShiftId() { + return shiftId; + } + public void setParentOrder(String parentOrder) { + this.parentOrder = parentOrder; + } + + public String getParentOrder() { + return parentOrder; + } + public void setAncestors(String ancestors) { + this.ancestors = ancestors; + } + + public String getAncestors() { + return ancestors; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + 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 setProdType(String prodType) { + this.prodType = prodType; + } + + public String getProdType() { + return prodType; + } + 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("workorderId", getWorkorderId()) + .append("workorderCode", getWorkorderCode()) + .append("workorderName", getWorkorderName()) + .append("orderId", getOrderId()) + .append("orderCode", getOrderCode()) + .append("productId", getProductId()) + .append("productCode", getProductCode()) + .append("productName", getProductName()) + .append("productSpc", getProductSpc()) + .append("unit", getUnit()) + .append("quantityProduced", getQuantityProduced()) + .append("quantitySplit", getQuantitySplit()) + .append("routeCode", getRouteCode()) + .append("prodLineCode", getProdLineCode()) + .append("productDate", getProductDate()) + .append("shiftId", getShiftId()) + .append("parentOrder", getParentOrder()) + .append("ancestors", getAncestors()) + .append("status", getStatus()) + .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("prodType", getProdType()) + .append("factoryCode", getFactoryCode()) + .append("batchCodeList",getBatchCodeList()) + .toString(); + } +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorderBatch.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorderBatch.java new file mode 100644 index 00000000..affd2908 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorderBatch.java @@ -0,0 +1,159 @@ +package com.op.mes.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang.builder.ToStringStyle; + +/** + * 生产工单批次对象 pro_order_workorder_batch + * + * @author Open Platform + * @date 2023-07-18 + */ +public class ProOrderWorkorderBatch extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 批次ID */ + @Excel(name = "批次ID") + private String batchId; + + /** 工单ID */ + private String workorderId; + + /** 批次号 */ + @Excel(name = "批次号") + private String batchCode; + + /** 批次数量 */ + @Excel(name = "批次数量") + private Long batchQuantity; + + /** 单据状态 */ + @Excel(name = "单据状态") + private String status; + + /** 预留字段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 prodType; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private String factoryCode; + + public void setBatchId(String batchId) { + this.batchId = batchId; + } + + public String getBatchId() { + return batchId; + } + public void setWorkorderId(String workorderId) { + this.workorderId = workorderId; + } + + public String getWorkorderId() { + return workorderId; + } + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public String getBatchCode() { + return batchCode; + } + public void setBatchQuantity(Long batchQuantity) { + this.batchQuantity = batchQuantity; + } + + public Long getBatchQuantity() { + return batchQuantity; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + 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 setProdType(String prodType) { + this.prodType = prodType; + } + + public String getProdType() { + return prodType; + } + 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("batchId", getBatchId()) + .append("workorderId", getWorkorderId()) + .append("batchCode", getBatchCode()) + .append("batchQuantity", getBatchQuantity()) + .append("status", getStatus()) + .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("prodType", getProdType()) + .append("factoryCode", getFactoryCode()) + .toString(); + } +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProShift.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProShift.java new file mode 100644 index 00000000..92dd4fbc --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProShift.java @@ -0,0 +1,39 @@ +package com.op.mes.domain; + +//班次实体类 +public class ProShift { + private Integer shiftId; + private String shiftDesc; + + @Override + public String toString() { + return "ProShift{" + + "shiftId=" + shiftId + + ", shiftDesc='" + shiftDesc + '\'' + + '}'; + } + + public Integer getShiftId() { + return shiftId; + } + + public void setShiftId(Integer shiftId) { + this.shiftId = shiftId; + } + + public String getShiftDesc() { + return shiftDesc; + } + + public void setShiftDesc(String shiftDesc) { + this.shiftDesc = shiftDesc; + } + + public ProShift(Integer shiftId, String shiftDesc) { + this.shiftId = shiftId; + this.shiftDesc = shiftDesc; + } + + public ProShift() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/ProOrderDTO.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/ProOrderDTO.java new file mode 100644 index 00000000..cb68ffb4 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/ProOrderDTO.java @@ -0,0 +1,254 @@ +package com.op.mes.domain.dto; + +import java.util.Date; +import java.util.List; + +public class ProOrderDTO { + /** ID */ + private String id; + + /** 计划工厂编码 */ + private String factoryCode; + + /** 订单类型 */ + private String orderType; + + /** 订单号 */ + private String orderCode; + + /** 物料号 */ + private String prodCode; + + /** 物料名称 */ + private String prodDesc; + + /** 订单数量 */ + private Long quantity; + + /** 已拆分数量 */ + private Long quantitySplit; + + /** 单位 */ + private String unit; + + /** 任务清单 */ + private String workerOrder; + + /** 计划生产日期 */ + private Date planProDate; + + /** 计划完成日期 */ + private Date planComplete; + + /** */ + private String atrr1; + + /** */ + private String atrr2; + + /** */ + private String atrr3; + + /** 0未拆分 */ + private String status; + + /** 上级工单 */ + private String parentOrder; + + /** 产品类型 */ + private String prodType; + + /** 物料型号 */ + private String ProdSpc; + + private List children; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public String getOrderCode() { + return orderCode; + } + + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getProdCode() { + return prodCode; + } + + public void setProdCode(String prodCode) { + this.prodCode = prodCode; + } + + public String getProdDesc() { + return prodDesc; + } + + public void setProdDesc(String prodDesc) { + this.prodDesc = prodDesc; + } + + public Long getQuantity() { + return quantity; + } + + public void setQuantity(Long quantity) { + this.quantity = quantity; + } + + public Long getQuantitySplit() { + return quantitySplit; + } + + public void setQuantitySplit(Long quantitySplit) { + this.quantitySplit = quantitySplit; + } + + public String getUnit() { + return unit; + } + + public void setUnit(String unit) { + this.unit = unit; + } + + public String getWorkerOrder() { + return workerOrder; + } + + public void setWorkerOrder(String workerOrder) { + this.workerOrder = workerOrder; + } + + public Date getPlanProDate() { + return planProDate; + } + + public void setPlanProDate(Date planProDate) { + this.planProDate = planProDate; + } + + public Date getPlanComplete() { + return planComplete; + } + + public void setPlanComplete(Date planComplete) { + this.planComplete = planComplete; + } + + public String getAtrr1() { + return atrr1; + } + + public void setAtrr1(String atrr1) { + this.atrr1 = atrr1; + } + + public String getAtrr2() { + return atrr2; + } + + public void setAtrr2(String atrr2) { + this.atrr2 = atrr2; + } + + public String getAtrr3() { + return atrr3; + } + + public void setAtrr3(String atrr3) { + this.atrr3 = atrr3; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getParentOrder() { + return parentOrder; + } + + public void setParentOrder(String parentOrder) { + this.parentOrder = parentOrder; + } + + public String getProdType() { + return prodType; + } + + public void setProdType(String prodType) { + this.prodType = prodType; + } + + public String getProdSpc() { + return ProdSpc; + } + + public void setProdSpc(String prodSpc) { + ProdSpc = prodSpc; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + @Override + public String toString() { + return "ProOrderDTO{" + + "id='" + id + '\'' + + ", factoryCode='" + factoryCode + '\'' + + ", orderType='" + orderType + '\'' + + ", orderCode='" + orderCode + '\'' + + ", prodCode='" + prodCode + '\'' + + ", prodDesc='" + prodDesc + '\'' + + ", quantity=" + quantity + + ", quantitySplit=" + quantitySplit + + ", unit='" + unit + '\'' + + ", workerOrder='" + workerOrder + '\'' + + ", planProDate=" + planProDate + + ", planComplete=" + planComplete + + ", atrr1='" + atrr1 + '\'' + + ", atrr2='" + atrr2 + '\'' + + ", atrr3='" + atrr3 + '\'' + + ", status='" + status + '\'' + + ", parentOrder='" + parentOrder + '\'' + + ", prodType='" + prodType + '\'' + + ", ProdSpc='" + ProdSpc + '\'' + + ", children=" + children + + '}'; + } + + public ProOrderDTO() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/SplitOrderDTO.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/SplitOrderDTO.java new file mode 100644 index 00000000..aee3464e --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/dto/SplitOrderDTO.java @@ -0,0 +1,86 @@ +package com.op.mes.domain.dto; + +import com.op.mes.domain.Batch; +import com.op.mes.domain.ProOrder; + +import java.util.Date; +import java.util.List; + +//接受前端拆分模型 +public class SplitOrderDTO { + //批次号与批次数量 + private List formFields; + //产线 + private String prodLineCode; + //日期 + private Date productDate; + //班次 + private String shiftId; + //拆分数量 + private Long splitNum; + //所有改变的订单列表 + private ProOrderDTO product; + + public List getFormFields() { + return formFields; + } + + public void setFormFields(List formFields) { + this.formFields = formFields; + } + + public String getProdLineCode() { + return prodLineCode; + } + + public void setProdLineCode(String prodLineCode) { + this.prodLineCode = prodLineCode; + } + + public Date getProductDate() { + return productDate; + } + + public void setProductDate(Date productDate) { + this.productDate = productDate; + } + + public String getShiftId() { + return shiftId; + } + + public void setShiftId(String shiftId) { + this.shiftId = shiftId; + } + + public Long getSplitNum() { + return splitNum; + } + + public void setSplitNum(Long splitNum) { + this.splitNum = splitNum; + } + + public ProOrderDTO getProduct() { + return product; + } + + public void setProduct(ProOrderDTO product) { + this.product = product; + } + + @Override + public String toString() { + return "SplitOrderDTO{" + + "formFields=" + formFields + + ", prodLineCode='" + prodLineCode + '\'' + + ", productDate=" + productDate + + ", shiftId='" + shiftId + '\'' + + ", splitNum=" + splitNum + + ", product=" + product + + '}'; + } + + public SplitOrderDTO() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/vo/LineAndShiftVo.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/vo/LineAndShiftVo.java new file mode 100644 index 00000000..e6363b92 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/vo/LineAndShiftVo.java @@ -0,0 +1,45 @@ +package com.op.mes.domain.vo; + +import com.op.mes.domain.ProLine; +import com.op.mes.domain.ProShift; + +import java.util.List; + +public class LineAndShiftVo { + //线体 + private List lines; + //班次 + private List shifts; + + @Override + public String toString() { + return "LineAndShiftVo{" + + "lines=" + lines + + ", shifts=" + shifts + + '}'; + } + + public List getLines() { + return lines; + } + + public void setLines(List lines) { + this.lines = lines; + } + + public List getShifts() { + return shifts; + } + + public void setShifts(List shifts) { + this.shifts = shifts; + } + + public LineAndShiftVo(List lines, List shifts) { + this.lines = lines; + this.shifts = shifts; + } + + public LineAndShiftVo() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java index 814275d7..debb1074 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java @@ -2,60 +2,137 @@ package com.op.mes.mapper; import java.util.List; +import com.op.mes.domain.Convert; +import com.op.mes.domain.ProLine; import com.op.mes.domain.ProOrder; +import com.op.mes.domain.ProShift; +import org.apache.ibatis.annotations.Select; /** * 订单Mapper接口 - * + * * @author Open Platform * @date 2023-07-13 */ public interface ProOrderMapper { - /** - * 查询订单 - * - * @param id 订单主键 - * @return 订单 - */ - public ProOrder selectProOrderById(String id); - - /** - * 查询订单列表 - * - * @param proOrder 订单 - * @return 订单集合 - */ - public List selectProOrderList(ProOrder proOrder); - - /** - * 新增订单 - * - * @param proOrder 订单 - * @return 结果 - */ - public int insertProOrder(ProOrder proOrder); - - /** - * 修改订单 - * - * @param proOrder 订单 - * @return 结果 - */ - public int updateProOrder(ProOrder proOrder); - - /** - * 删除订单 - * - * @param id 订单主键 - * @return 结果 - */ - public int deleteProOrderById(String id); - - /** - * 批量删除订单 - * - * @param ids 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteProOrderByIds(String[] ids); + + /** + * 更新订单表(拆分模块) + * + * @param proOrder + * @return + */ + public int updateOrder(ProOrder proOrder); + + /** + * 查询订单 + * + * @param id 订单主键 + * @return 订单 + */ + public ProOrder selectProOrderById(String id); + + /** + * 查询订单列表 + * + * @param proOrder 订单 + * @return 订单集合 + */ + public List selectProOrderList(ProOrder proOrder); + + /** + * 新增订单 + * + * @param proOrder 订单 + * @return 结果 + */ + public int insertProOrder(ProOrder proOrder); + + /** + * 修改订单 + * + * @param proOrder 订单 + * @return 结果 + */ + public int updateProOrder(ProOrder proOrder); + + /** + * 删除订单 + * + * @param id 订单主键 + * @return 结果 + */ + public int deleteProOrderById(String id); + + /** + * 批量删除订单 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProOrderByIds(String[] ids); + + /** + * 获取线体 + * + * @return + */ + @Select(" SELECT sf.f_code [key],sf.factory_name label FROM sys_factory sf WHERE sf.f_type='l' AND sf.status = '1' AND sf.del_flag = '0' ") + public List selectProdLine(); + + /** + * 获取班次 + * + * @return + */ + @Select("SELECT bst.Shift_Id shiftId,bst.Shift_Desc_Global shiftDesc FROM base_shifts_t bst") + public List selectProShift(); + + /** + * 获取换算值 + * + * @return + */ + public List selectConvert(); + + /** + * 根据code查询产线名称 + * + * @return + */ + @Select("SELECT sf.factory_name name FROM sys_factory sf WHERE sf.f_type='l' AND sf.status = '1' AND sf.del_flag = '0' AND sf.f_code = #{prodLineCode}") + String selectProdLineName(String prodLineCode); + + /** + * 查询所有batchCode + * + * @return + */ + @Select("SELECT batch_code FROM pro_order_workorder_batch WHERE status = '1' GROUP BY batch_code") + List selectBatchCodes(); + + + /** + * 通过parent_order查询订单信息 + * + * @param orderCode + * @return + */ + List selectChildProOrderByCode(String orderCode); + + /** + * 通过code获取产线名称 + * @param prodLineCode + * @return + */ + @Select("SELECT sf.factory_name FROM sys_factory sf WHERE sf.f_code = #{prodLineCode}") + String selectBatchNameByCode(String prodLineCode); + + /** + * 通过工单id查询批次号list + * @param workorderId + * @return + */ + @Select("SELECT powb.batch_code FROM pro_order_workorder_batch powb LEFT JOIN pro_order_workorder pow ON powb.workorder_id = pow.workorder_id WHERE pow.workorder_id = #{workorderId}") + List selectBatchCodesById(String workorderId); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderBatchMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderBatchMapper.java new file mode 100644 index 00000000..dd225b61 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderBatchMapper.java @@ -0,0 +1,64 @@ +package com.op.mes.mapper; + +import com.op.mes.domain.Batch; +import com.op.mes.domain.ProOrderWorkorderBatch; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 生产工单批次Mapper接口 + * + * @author Open Platform + * @date 2023-07-18 + */ +public interface ProOrderWorkorderBatchMapper { + /** + * 查询生产工单批次 + * + * @param workorderId 生产工单批次主键 + * @return 生产工单批次 + */ + public ProOrderWorkorderBatch selectProOrderWorkorderBatchByWorkorderId(String workorderId); + + /** + * 查询生产工单批次列表 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 生产工单批次集合 + */ + public List selectProOrderWorkorderBatchList(ProOrderWorkorderBatch proOrderWorkorderBatch); + + /** + * 新增生产工单批次 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 结果 + */ + public int insertProOrderWorkorderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch); + + /** + * 修改生产工单批次 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 结果 + */ + public int updateProOrderWorkorderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch); + + /** + * 删除生产工单批次 + * + * @param workorderId 生产工单批次主键 + * @return 结果 + */ + public int deleteProOrderWorkorderBatchByWorkorderId(String workorderId); + + /** + * 批量删除生产工单批次 + * + * @param workorderIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProOrderWorkorderBatchByWorkorderIds(String[] workorderIds); + +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java new file mode 100644 index 00000000..ee90eedd --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java @@ -0,0 +1,77 @@ +package com.op.mes.mapper; + +import com.op.mes.domain.ProOrderWorkorder; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * 生产工单Mapper接口 + * + * @author Open Platform + * @date 2023-07-18 + */ +public interface ProOrderWorkorderMapper { + /** + * 查询生产工单 + * + * @param workorderId 生产工单主键 + * @return 生产工单 + */ + public ProOrderWorkorder selectProOrderWorkorderByWorkorderId(String workorderId); + + /** + * 查询生产工单列表 + * + * @param proOrderWorkorder 生产工单 + * @return 生产工单集合 + */ + public List selectProOrderWorkorderList(ProOrderWorkorder proOrderWorkorder); + + /** + * 新增生产工单 + * + * @param proOrderWorkorder 生产工单 + * @return 结果 + */ + public int insertProOrderWorkorder(ProOrderWorkorder proOrderWorkorder); + + /** + * 修改生产工单 + * + * @param proOrderWorkorder 生产工单 + * @return 结果 + */ + public int updateProOrderWorkorder(ProOrderWorkorder proOrderWorkorder); + + /** + * 删除生产工单 + * + * @param workorderId 生产工单主键 + * @return 结果 + */ + public int deleteProOrderWorkorderByWorkorderId(String workorderId); + + /** + * 批量删除生产工单 + * + * @param workorderIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProOrderWorkorderByWorkorderIds(String[] workorderIds); + + /** + * 通过订单id查询工单信息 + * + * @param id + * @return + */ + List selectFirWorkOrder(String id); + + /** + * 通过code查询子工单 + * @param workorderCode + * @return + */ + List selectChildWorkOrder(String workorderCode); +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java index f766c184..43ccc371 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java @@ -1,60 +1,104 @@ package com.op.mes.service; import java.util.List; + +import com.op.common.core.web.domain.AjaxResult; +import com.op.mes.domain.Convert; import com.op.mes.domain.ProOrder; +import com.op.mes.domain.dto.SplitOrderDTO; +import com.op.mes.domain.vo.LineAndShiftVo; /** * 订单Service接口 - * + * * @author Open Platform * @date 2023-07-13 */ public interface IProOrderService { - /** - * 查询订单 - * - * @param id 订单主键 - * @return 订单 - */ - public ProOrder selectProOrderById(String id); - - /** - * 查询订单列表 - * - * @param proOrder 订单 - * @return 订单集合 - */ - public List selectProOrderList(ProOrder proOrder); - - /** - * 新增订单 - * - * @param proOrder 订单 - * @return 结果 - */ - public int insertProOrder(ProOrder proOrder); - - /** - * 修改订单 - * - * @param proOrder 订单 - * @return 结果 - */ - public int updateProOrder(ProOrder proOrder); - - /** - * 批量删除订单 - * - * @param ids 需要删除的订单主键集合 - * @return 结果 - */ - public int deleteProOrderByIds(String[] ids); - - /** - * 删除订单信息 - * - * @param id 订单主键 - * @return 结果 - */ - public int deleteProOrderById(String id); + + /** + * 获取线体 + * + * @return + */ + public LineAndShiftVo getProdLineShift(); + + /** + * 查询订单 + * + * @param id 订单主键 + * @return 订单 + */ + public ProOrder selectProOrderById(String id); + + /** + * 查询订单列表 + * + * @param proOrder 订单 + * @return 订单集合 + */ + public List selectProOrderList(ProOrder proOrder); + + /** + * 新增订单 + * + * @param proOrder 订单 + * @return 结果 + */ + public int insertProOrder(ProOrder proOrder); + + /** + * 修改订单 + * + * @param proOrder 订单 + * @return 结果 + */ + public int updateProOrder(ProOrder proOrder); + + /** + * 批量删除订单 + * + * @param ids 需要删除的订单主键集合 + * @return 结果 + */ + public int deleteProOrderByIds(String[] ids); + + /** + * 删除订单信息 + * + * @param id 订单主键 + * @return 结果 + */ + public int deleteProOrderById(String id); + + /** + * 获取换算值 + * + * @return + */ + public List getConvert(); + + /** + * 提交拆分订单接口 + * + * @param splitOrderDTO + * @return + */ + public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO); + + /** + * 获取工单信息列表 + * + * @param id + * @return + */ + public AjaxResult getWorkOrderList(String id); + + /** + * 获取当前订单信息列表 + * + * @param id + * @return + */ + public AjaxResult getOrderList(String id); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderBatchService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderBatchService.java new file mode 100644 index 00000000..1061900f --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderBatchService.java @@ -0,0 +1,61 @@ +package com.op.mes.service; + +import com.op.mes.domain.ProOrderWorkorderBatch; + +import java.util.List; + +/** + * 生产工单批次Service接口 + * + * @author Open Platform + * @date 2023-07-18 + */ +public interface IProOrderWorkorderBatchService { + /** + * 查询生产工单批次 + * + * @param workorderId 生产工单批次主键 + * @return 生产工单批次 + */ + public ProOrderWorkorderBatch selectProOrderWorkorderBatchByWorkorderId(String workorderId); + + /** + * 查询生产工单批次列表 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 生产工单批次集合 + */ + public List selectProOrderWorkorderBatchList(ProOrderWorkorderBatch proOrderWorkorderBatch); + + /** + * 新增生产工单批次 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 结果 + */ + public int insertProOrderWorkorderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch); + + /** + * 修改生产工单批次 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 结果 + */ + public int updateProOrderWorkorderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch); + + /** + * 批量删除生产工单批次 + * + * @param workorderIds 需要删除的生产工单批次主键集合 + * @return 结果 + */ + public int deleteProOrderWorkorderBatchByWorkorderIds(String[] workorderIds); + + /** + * 删除生产工单批次信息 + * + * @param workorderId 生产工单批次主键 + * @return 结果 + */ + public int deleteProOrderWorkorderBatchByWorkorderId(String workorderId); +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderService.java new file mode 100644 index 00000000..be181667 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderWorkorderService.java @@ -0,0 +1,62 @@ +package com.op.mes.service; + + +import com.op.mes.domain.ProOrderWorkorder; + +import java.util.List; + +/** + * 生产工单Service接口 + * + * @author Open Platform + * @date 2023-07-18 + */ +public interface IProOrderWorkorderService { + /** + * 查询生产工单 + * + * @param workorderId 生产工单主键 + * @return 生产工单 + */ + public ProOrderWorkorder selectProOrderWorkorderByWorkorderId(String workorderId); + + /** + * 查询生产工单列表 + * + * @param proOrderWorkorder 生产工单 + * @return 生产工单集合 + */ + public List selectProOrderWorkorderList(ProOrderWorkorder proOrderWorkorder); + + /** + * 新增生产工单 + * + * @param proOrderWorkorder 生产工单 + * @return 结果 + */ + public int insertProOrderWorkorder(ProOrderWorkorder proOrderWorkorder); + + /** + * 修改生产工单 + * + * @param proOrderWorkorder 生产工单 + * @return 结果 + */ + public int updateProOrderWorkorder(ProOrderWorkorder proOrderWorkorder); + + /** + * 批量删除生产工单 + * + * @param workorderIds 需要删除的生产工单主键集合 + * @return 结果 + */ + public int deleteProOrderWorkorderByWorkorderIds(String[] workorderIds); + + /** + * 删除生产工单信息 + * + * @param workorderId 生产工单主键 + * @return 结果 + */ + public int deleteProOrderWorkorderByWorkorderId(String workorderId); +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java index 9b0109ad..9b3746c3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java @@ -1,15 +1,27 @@ package com.op.mes.service.impl; -import java.util.List; +import java.util.*; import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.context.SecurityContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.core.web.domain.AjaxResult; +import com.op.mes.domain.*; +import com.op.mes.domain.dto.ProOrderDTO; +import com.op.mes.domain.dto.SplitOrderDTO; +import com.op.mes.domain.vo.LineAndShiftVo; +import com.op.mes.mapper.ProOrderWorkorderBatchMapper; +import com.op.mes.mapper.ProOrderWorkorderMapper; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.mes.mapper.ProOrderMapper; -import com.op.mes.domain.ProOrder; import com.op.mes.service.IProOrderService; +import org.springframework.transaction.annotation.Transactional; + +import static com.op.common.core.web.domain.AjaxResult.error; +import static com.op.common.core.web.domain.AjaxResult.success; /** * 订单Service业务层处理 @@ -19,81 +31,360 @@ import com.op.mes.service.IProOrderService; */ @Service public class ProOrderServiceImpl implements IProOrderService { - @Autowired - private ProOrderMapper proOrderMapper; - - /** - * 查询订单 - * - * @param id 订单主键 - * @return 订单 - */ - @Override - @DS("#header.poolName") - public ProOrder selectProOrderById(String id) { - return proOrderMapper.selectProOrderById(id); - } - - /** - * 查询订单列表 - * - * @param proOrder 订单 - * @return 订单 - */ - @Override - @DS("#header.poolName") - public List selectProOrderList(ProOrder proOrder) { - return proOrderMapper.selectProOrderList(proOrder); - } - - /** - * 新增订单 - * - * @param proOrder 订单 - * @return 结果 - */ - @Override - @DS("#header.poolName") - public int insertProOrder(ProOrder proOrder) { - proOrder.setId(IdUtils.fastSimpleUUID()); - proOrder.setCreateTime(DateUtils.getNowDate()); - return proOrderMapper.insertProOrder(proOrder); - } - - /** - * 修改订单 - * - * @param proOrder 订单 - * @return 结果 - */ - @Override - @DS("#header.poolName") - public int updateProOrder(ProOrder proOrder) { - proOrder.setUpdateTime(DateUtils.getNowDate()); - return proOrderMapper.updateProOrder(proOrder); - } - - /** - * 批量删除订单 - * - * @param ids 需要删除的订单主键 - * @return 结果 - */ - @Override - @DS("#header.poolName") - public int deleteProOrderByIds(String[] ids) { - return proOrderMapper.deleteProOrderByIds(ids); - } - - /** - * 删除订单信息 - * - * @param id 订单主键 - * @return 结果 - */ - @Override - @DS("#header.poolName") - public int deleteProOrderById(String id) { - return proOrderMapper.deleteProOrderById(id); - } -} + @Autowired + private ProOrderMapper proOrderMapper; + @Autowired + private ProOrderWorkorderMapper proOrderWorkorderMapper; + @Autowired + private ProOrderWorkorderBatchMapper proOrderWorkorderBatchMapper; + + /** + * 获取换算值 + * + * @return + */ + @Override + @DS("master") + public List getConvert() { + return proOrderMapper.selectConvert(); + } + + /** + * 提交拆分订单接口 + * + * @param splitOrderDTO + * @return + */ + @Override + @Transactional + @DS("#header.poolName") + public AjaxResult subSplitOrder(SplitOrderDTO splitOrderDTO) { + boolean checkout = true; + // 校验批次编号是否存在(重复问题) + List batchCodes = proOrderMapper.selectBatchCodes(); + for (int i = 0; i < batchCodes.size(); i++) { + for (int j = 0; j < splitOrderDTO.getFormFields().size(); j++) { + if (batchCodes.get(i).equals(splitOrderDTO.getFormFields().get(j).getBatchCode())) { + checkout = false; + } + } + } + + // 如果不重复 + if (checkout) { + ProOrder product = new ProOrder(); + BeanUtils.copyProperties(splitOrderDTO.getProduct(), product); + // 设置通用属性 + ProOrderWorkorder proOrderWorkorder = setCommonWorkAttribute(product, splitOrderDTO.getProductDate(), splitOrderDTO.getProdLineCode(), splitOrderDTO.getShiftId()); + // 生成对应工单表 + // 一级 + ProOrderWorkorder firWorkOrder = setWorkOrder(proOrderWorkorder, product); + // 更新到数据库 + proOrderWorkorderMapper.insertProOrderWorkorder(firWorkOrder); + // 创建通用批次表对象 + ProOrderWorkorderBatch workBatch = setCommonBatchAttribute(); + // 生成批次表并更新到数据库 + setBatch(workBatch, splitOrderDTO.getFormFields(), firWorkOrder.getWorkorderId()); + + // 二级 + if (splitOrderDTO.getProduct().getChildren() != null) { + List secProOrderList = splitOrderDTO.getProduct().getChildren(); + BeanUtils.copyProperties(secProOrderList.get(0), product); + // 设置父工单 + proOrderWorkorder.setParentOrder(firWorkOrder.getWorkorderCode()); + ProOrderWorkorder secWorkOrder = setWorkOrder(proOrderWorkorder, product); + // 更新到数据库 + proOrderWorkorderMapper.insertProOrderWorkorder(secWorkOrder); + // 生成批次表并更新到数据库 + setBatch(workBatch, splitOrderDTO.getFormFields(), secWorkOrder.getWorkorderId()); + + // 三级 + if (secProOrderList.get(0).getChildren() != null) { + List thiProOrderList = secProOrderList.get(0).getChildren(); + BeanUtils.copyProperties(thiProOrderList.get(0), product); + // 设置父工单 + proOrderWorkorder.setParentOrder(secWorkOrder.getWorkorderCode()); + ProOrderWorkorder thiWorkOrder = setWorkOrder(proOrderWorkorder, product); + // 更新到数据库 + proOrderWorkorderMapper.insertProOrderWorkorder(thiWorkOrder); + // 生成批次表并更新到数据库 + setBatch(workBatch, splitOrderDTO.getFormFields(), thiWorkOrder.getWorkorderId()); + } + } + + return success(); + + } + + return error(500, "批次号不能重复"); + } + + /** + * 获取工单信息列表 + * + * @param id + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getWorkOrderList(String id) { + // 通过订单id查询所有工单信息list + List proOrderWorkorderList = proOrderWorkorderMapper.selectFirWorkOrder(id); + // 母工单循环遍历 + for (int i = 0;i < proOrderWorkorderList.size();i++){ + // 通过设备code查询出设备名称 + String prodLineName = proOrderMapper.selectProdLineName(proOrderWorkorderList.get(i).getProdLineCode()); + // 这里因为没有相对应字段所以用atrr1来表示批次号list + // 通过工单id查询批次号 + List batchCodeList = proOrderMapper.selectBatchCodesById(proOrderWorkorderList.get(i).getWorkorderId()); + // 格式化数据 + StringBuilder batchCodes = new StringBuilder(); + for (int j = 0;j < batchCodeList.size();j++){ + batchCodes.append(batchCodeList.get(j)); + batchCodes.append(";"); + } + // 通过母工单workorder_id查询子工单 + // 二级 + List secProOrderWorkorder = proOrderWorkorderMapper.selectChildWorkOrder(proOrderWorkorderList.get(i).getWorkorderCode()); + if (secProOrderWorkorder.size() > 0 && secProOrderWorkorder != null){ + // 三级 + List thiProOrderWorkorders = proOrderWorkorderMapper.selectChildWorkOrder(secProOrderWorkorder.get(0).getWorkorderCode()); + if (thiProOrderWorkorders.size() > 0 && thiProOrderWorkorders != null){ + // 将三级放入二级child + thiProOrderWorkorders.get(0).setProdLineCode(prodLineName); + thiProOrderWorkorders.get(0).setBatchCodeList(batchCodes); + secProOrderWorkorder.get(0).setChildren(thiProOrderWorkorders); + } + // 将二级放入到母工单child + secProOrderWorkorder.get(0).setProdLineCode(prodLineName); + secProOrderWorkorder.get(0).setBatchCodeList(batchCodes); + proOrderWorkorderList.get(i).setChildren(secProOrderWorkorder); + } + proOrderWorkorderList.get(i).setProdLineCode(prodLineName); + proOrderWorkorderList.get(i).setBatchCodeList(batchCodes); + } + return success(proOrderWorkorderList); + } + + /** + * 获取当前订单信息列表 + * + * @param id + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getOrderList(String id) { + // 注意判空不为空则放入 (避免空指针) + // 通过母工单id查询母订单详情 + ProOrder proOrder = proOrderMapper.selectProOrderById(id); + // 查询二级 + List secProOrderList = proOrderMapper.selectChildProOrderByCode(proOrder.getOrderCode()); + if (secProOrderList != null || secProOrderList.size() > 0) { + // 查询三级 + List thiProOrderList = proOrderMapper.selectChildProOrderByCode(secProOrderList.get(0).getOrderCode()); + if (thiProOrderList != null || thiProOrderList.size() > 0) { + // 将三级Order放入二级 + secProOrderList.get(0).setChildren(thiProOrderList); + } + } + // 将二级Order放入母订单 + proOrder.setChildren(secProOrderList); + + return success(proOrder); + } + + /** + * 获取线体 + * + * @return + */ + @Override + @DS("#header.poolName") + public LineAndShiftVo getProdLineShift() { + LineAndShiftVo lineAndShiftVo = new LineAndShiftVo(proOrderMapper.selectProdLine(), proOrderMapper.selectProShift()); + return lineAndShiftVo; + } + + /** + * 查询订单 + * + * @param id 订单主键 + * @return 订单 + */ + @Override + @DS("#header.poolName") + public ProOrder selectProOrderById(String id) { + return proOrderMapper.selectProOrderById(id); + } + + /** + * 查询订单列表 + * + * @param proOrder 订单 + * @return 订单 + */ + @Override + @DS("#header.poolName") + public List selectProOrderList(ProOrder proOrder) { + return proOrderMapper.selectProOrderList(proOrder); + } + + /** + * 新增订单 + * + * @param proOrder 订单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertProOrder(ProOrder proOrder) { + proOrder.setId(IdUtils.fastSimpleUUID()); + proOrder.setCreateTime(DateUtils.getNowDate()); + return proOrderMapper.insertProOrder(proOrder); + } + + /** + * 修改订单 + * + * @param proOrder 订单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateProOrder(ProOrder proOrder) { + proOrder.setUpdateTime(DateUtils.getNowDate()); + return proOrderMapper.updateProOrder(proOrder); + } + + /** + * 批量删除订单 + * + * @param ids 需要删除的订单主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteProOrderByIds(String[] ids) { + return proOrderMapper.deleteProOrderByIds(ids); + } + + /** + * 删除订单信息 + * + * @param id 订单主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteProOrderById(String id) { + return proOrderMapper.deleteProOrderById(id); + } + + /** + * 设置工单通用属性 + * + * @param proOrder + * @return + */ + private ProOrderWorkorder setCommonWorkAttribute(ProOrder proOrder, Date date, String proLineCode, String shiftId) { + ProOrderWorkorder proOrderWorkorder = new ProOrderWorkorder(); + // 更新者 + proOrderWorkorder.setUpdateBy(SecurityContextHolder.getUserName()); + // 创建者 + proOrderWorkorder.setCreateBy(SecurityContextHolder.getUserName()); + // 工单生产日期 + proOrderWorkorder.setProductDate(date); + // 产品(物料)编码 + proOrderWorkorder.setProductCode(proOrder.getProdCode()); + // TODO 产品(物料)名称 + proOrderWorkorder.setProductName("测试ing"); + // 产品(物料)规格型号 + proOrderWorkorder.setProductSpc(proOrder.getProdSpc()); + // 产线 + proOrderWorkorder.setProdLineCode(proLineCode); + // 班次 + proOrderWorkorder.setShiftId(shiftId); + // TODO 产品类型(pro_type) + // 单据状态(1为正常) + proOrderWorkorder.setStatus("1"); + return proOrderWorkorder; + } + + /** + * 设置工单属性 + * + * @param proOrderWorkorder + * @param proOrder + * @return + */ + private ProOrderWorkorder setWorkOrder(ProOrderWorkorder proOrderWorkorder, ProOrder proOrder) { + // 获取当前时间 + Date date = new Date(); + // 订单表更新时间/更新者 + proOrder.setUpdateBy(SecurityContextHolder.getUserName()); + proOrder.setUpdateTime(date); + // 更新订单表 + proOrderMapper.updateOrder(proOrder); + // 生成对应的工单表 + // 生成id + proOrderWorkorder.setWorkorderId(IdUtils.fastSimpleUUID()); + // 生成工单号 + proOrderWorkorder.setWorkorderCode("GD" + DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSSsss, date)); + // TODO 工单名称 + proOrderWorkorder.setWorkorderName("测试ing"); + // 订单id + proOrderWorkorder.setOrderId(proOrder.getId()); + // 订单编码 + proOrderWorkorder.setOrderCode(proOrder.getOrderCode()); + // 单位 + proOrderWorkorder.setUnit(proOrder.getUnit()); + // 已拆分数量 + proOrderWorkorder.setQuantitySplit(Long.valueOf(proOrder.getAtrr1())); + // TODO 工艺编码 + // TODO 所有父节点 + return proOrderWorkorder; + } + + /** + * 设置批次表通用 + * + * @return + */ + private ProOrderWorkorderBatch setCommonBatchAttribute() { + ProOrderWorkorderBatch workBatch = new ProOrderWorkorderBatch(); + Date date = new Date(); + // 更新者 + workBatch.setUpdateBy(SecurityContextHolder.getUserName()); + // 创建者 + workBatch.setCreateBy(SecurityContextHolder.getUserName()); + // 设置单据状态(1正常) + workBatch.setStatus("1"); + return workBatch; + } + + /** + * 生成批次表并更新至数据库 + * + * @param workBatch + * @param batchList + * @param workOrderId + */ + private void setBatch(ProOrderWorkorderBatch workBatch, List batchList, String workOrderId) { + // 工单id + workBatch.setWorkorderId(workOrderId); + // TODO 产品类型 + for (int i = 0; i < batchList.size(); i++) { + // 生成批次id + workBatch.setBatchId(IdUtils.fastSimpleUUID()); + Batch batch = batchList.get(i); + // 获取批次号 + workBatch.setBatchCode(batch.getBatchCode()); + // 获取批次数量 + workBatch.setBatchQuantity(batch.getBatchQuantity()); + // 更新至数据库 + proOrderWorkorderBatchMapper.insertProOrderWorkorderBatch(workBatch); + } + } + +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderBatchServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderBatchServiceImpl.java new file mode 100644 index 00000000..b4807d24 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderBatchServiceImpl.java @@ -0,0 +1,90 @@ +package com.op.mes.service.impl; + +import com.op.common.core.utils.DateUtils; +import com.op.mes.domain.ProOrderWorkorderBatch; +import com.op.mes.mapper.ProOrderWorkorderBatchMapper; +import com.op.mes.service.IProOrderWorkorderBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 生产工单批次Service业务层处理 + * + * @author Open Platform + * @date 2023-07-18 + */ +@Service +public class ProOrderWorkorderBatchServiceImpl implements IProOrderWorkorderBatchService { + @Autowired + private ProOrderWorkorderBatchMapper proOrderWorkorderBatchMapper; + + /** + * 查询生产工单批次 + * + * @param workorderId 生产工单批次主键 + * @return 生产工单批次 + */ + @Override + public ProOrderWorkorderBatch selectProOrderWorkorderBatchByWorkorderId(String workorderId) { + return proOrderWorkorderBatchMapper.selectProOrderWorkorderBatchByWorkorderId(workorderId); + } + + /** + * 查询生产工单批次列表 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 生产工单批次 + */ + @Override + public List selectProOrderWorkorderBatchList(ProOrderWorkorderBatch proOrderWorkorderBatch) { + return proOrderWorkorderBatchMapper.selectProOrderWorkorderBatchList(proOrderWorkorderBatch); + } + + /** + * 新增生产工单批次 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 结果 + */ + @Override + public int insertProOrderWorkorderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch) { + proOrderWorkorderBatch.setCreateTime(DateUtils.getNowDate()); + return proOrderWorkorderBatchMapper.insertProOrderWorkorderBatch(proOrderWorkorderBatch); + } + + /** + * 修改生产工单批次 + * + * @param proOrderWorkorderBatch 生产工单批次 + * @return 结果 + */ + @Override + public int updateProOrderWorkorderBatch(ProOrderWorkorderBatch proOrderWorkorderBatch) { + proOrderWorkorderBatch.setUpdateTime(DateUtils.getNowDate()); + return proOrderWorkorderBatchMapper.updateProOrderWorkorderBatch(proOrderWorkorderBatch); + } + + /** + * 批量删除生产工单批次 + * + * @param workorderIds 需要删除的生产工单批次主键 + * @return 结果 + */ + @Override + public int deleteProOrderWorkorderBatchByWorkorderIds(String[] workorderIds) { + return proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderIds(workorderIds); + } + + /** + * 删除生产工单批次信息 + * + * @param workorderId 生产工单批次主键 + * @return 结果 + */ + @Override + public int deleteProOrderWorkorderBatchByWorkorderId(String workorderId) { + return proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderId(workorderId); + } +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderServiceImpl.java new file mode 100644 index 00000000..362c81d1 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderWorkorderServiceImpl.java @@ -0,0 +1,91 @@ +package com.op.mes.service.impl; + +import com.op.common.core.utils.DateUtils; +import com.op.mes.domain.ProOrderWorkorder; +import com.op.mes.mapper.ProOrderWorkorderMapper; +import com.op.mes.service.IProOrderWorkorderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + + +/** + * 生产工单Service业务层处理 + * + * @author Open Platform + * @date 2023-07-18 + */ +@Service +public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { + @Autowired + private ProOrderWorkorderMapper proOrderWorkorderMapper; + + /** + * 查询生产工单 + * + * @param workorderId 生产工单主键 + * @return 生产工单 + */ + @Override + public ProOrderWorkorder selectProOrderWorkorderByWorkorderId(String workorderId) { + return proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(workorderId); + } + + /** + * 查询生产工单列表 + * + * @param proOrderWorkorder 生产工单 + * @return 生产工单 + */ + @Override + public List selectProOrderWorkorderList(ProOrderWorkorder proOrderWorkorder) { + return proOrderWorkorderMapper.selectProOrderWorkorderList(proOrderWorkorder); + } + + /** + * 新增生产工单 + * + * @param proOrderWorkorder 生产工单 + * @return 结果 + */ + @Override + public int insertProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) { + proOrderWorkorder.setCreateTime(DateUtils.getNowDate()); + return proOrderWorkorderMapper.insertProOrderWorkorder(proOrderWorkorder); + } + + /** + * 修改生产工单 + * + * @param proOrderWorkorder 生产工单 + * @return 结果 + */ + @Override + public int updateProOrderWorkorder(ProOrderWorkorder proOrderWorkorder) { + proOrderWorkorder.setUpdateTime(DateUtils.getNowDate()); + return proOrderWorkorderMapper.updateProOrderWorkorder(proOrderWorkorder); + } + + /** + * 批量删除生产工单 + * + * @param workorderIds 需要删除的生产工单主键 + * @return 结果 + */ + @Override + public int deleteProOrderWorkorderByWorkorderIds(String[] workorderIds) { + return proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(workorderIds); + } + + /** + * 删除生产工单信息 + * + * @param workorderId 生产工单主键 + * @return 结果 + */ + @Override + public int deleteProOrderWorkorderByWorkorderId(String workorderId) { + return proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderId(workorderId); + } +} \ No newline at end of file diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderMapper.xml index 766646ef..1147d24c 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderMapper.xml @@ -28,13 +28,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select id, plan_factory_code, order_type, order_code, prod_code, prod_desc, quantity, quantity_split + select id, plan_factory_code, order_type, order_code, prod_code, prod_desc, quantity, quantity_split, unit, worker_order, plan_pro_date, plan_complete, atrr1, atrr2, atrr3, status, parent_order, create_by, create_time, update_by, update_time, prod_type, - factory_code + factory_code, prod_spc from pro_order @@ -58,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and status = #{status} and parent_order = #{parentOrder} and prod_type = #{prodType} + and prod_spc = #{prodSpc} @@ -66,6 +68,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where id = #{id} + + + + insert into pro_order @@ -92,6 +103,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, update_time, prod_type, + prod_spc, #{id}, @@ -117,6 +129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, #{updateTime}, #{prodType}, + #{prodSpc}, @@ -145,6 +158,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, prod_type = #{prodType}, + prod_spc = #{prodSpc}, + + where id = #{id} + + + update pro_order + + quantity_split += #{atrr1}, + create_by = #{updateBy}, + create_time = #{updateTime}, + status = 1, where id = #{id} diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderBatchMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderBatchMapper.xml new file mode 100644 index 00000000..f82c4367 --- /dev/null +++ b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderBatchMapper.xml @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select batch_id, workorder_id, batch_code, batch_quantity, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, prod_type, factory_code from pro_order_workorder_batch + + + + + + + + insert into pro_order_workorder_batch + + batch_id, + workorder_id, + batch_code, + batch_quantity, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + prod_type, + factory_code, + + + #{batchId}, + #{workorderId}, + #{batchCode}, + #{batchQuantity}, + #{status}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{prodType}, + #{factoryCode}, + + + + + update pro_order_workorder_batch + + batch_id = #{batchId}, + batch_code = #{batchCode}, + batch_quantity = #{batchQuantity}, + status = #{status}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + prod_type = #{prodType}, + factory_code = #{factoryCode}, + + where workorder_id = #{workorderId} + + + + delete from pro_order_workorder_batch where workorder_id = #{workorderId} + + + + delete from pro_order_workorder_batch where workorder_id in + + #{workorderId} + + + \ No newline at end of file diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml new file mode 100644 index 00000000..ef444ef7 --- /dev/null +++ b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select workorder_id, workorder_code, workorder_name, order_id, order_code, product_id, product_code, product_name, product_spc, unit, quantity_produced, quantity_split, route_code, prod_line_code, product_date, shift_id, parent_order, ancestors, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, prod_type, factory_code from pro_order_workorder + + + + + + + + + + insert into pro_order_workorder + + workorder_id, + workorder_code, + workorder_name, + order_id, + order_code, + product_id, + product_code, + product_name, + product_spc, + unit, + quantity_produced, + quantity_split, + route_code, + prod_line_code, + product_date, + shift_id, + parent_order, + ancestors, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + prod_type, + factory_code, + + + #{workorderId}, + #{workorderCode}, + #{workorderName}, + #{orderId}, + #{orderCode}, + #{productId}, + #{productCode}, + #{productName}, + #{productSpc}, + #{unit}, + #{quantityProduced}, + #{quantitySplit}, + #{routeCode}, + #{prodLineCode}, + #{productDate}, + #{shiftId}, + #{parentOrder}, + #{ancestors}, + #{status}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{prodType}, + #{factoryCode}, + + + + + update pro_order_workorder + + workorder_code = #{workorderCode}, + workorder_name = #{workorderName}, + order_id = #{orderId}, + order_code = #{orderCode}, + product_id = #{productId}, + product_code = #{productCode}, + product_name = #{productName}, + product_spc = #{productSpc}, + unit = #{unit}, + quantity_produced = #{quantityProduced}, + quantity_split = #{quantitySplit}, + route_code = #{routeCode}, + prod_line_code = #{prodLineCode}, + product_date = #{productDate}, + shift_id = #{shiftId}, + parent_order = #{parentOrder}, + ancestors = #{ancestors}, + status = #{status}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + prod_type = #{prodType}, + factory_code = #{factoryCode}, + + where workorder_id = #{workorderId} + + + + delete from pro_order_workorder where workorder_id = #{workorderId} + + + + delete from pro_order_workorder where workorder_id in + + #{workorderId} + + + \ No newline at end of file From cf38b80dc72f4675d31bbfec9f2ba635f70f9066 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Fri, 21 Jul 2023 09:36:22 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97(=E4=BA=A7=E7=BA=BF?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E4=B8=BA=E6=9C=BA=E5=9E=8B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/op/mes/controller/ProOrderController.java | 2 +- .../op-mes/src/main/java/com/op/mes/domain/ProLine.java | 2 +- .../src/main/java/com/op/mes/mapper/ProOrderMapper.java | 9 ++++++--- .../main/java/com/op/mes/service/IProOrderService.java | 2 +- .../com/op/mes/service/impl/ProOrderServiceImpl.java | 6 ++---- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java index 6977db43..d6b9daff 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java @@ -80,7 +80,7 @@ public class ProOrderController extends BaseController { } /** - * 获取线体 + * 获取成型机 * * @return */ diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java index 7b7dbe63..32dbb38a 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProLine.java @@ -1,6 +1,6 @@ package com.op.mes.domain; -//线体实体类 +//线体成型机类 public class ProLine { private String key; private String label; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java index debb1074..f90c56d7 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java @@ -2,6 +2,7 @@ package com.op.mes.mapper; import java.util.List; +import com.baomidou.dynamic.datasource.annotation.DS; import com.op.mes.domain.Convert; import com.op.mes.domain.ProLine; import com.op.mes.domain.ProOrder; @@ -73,11 +74,12 @@ public interface ProOrderMapper { public int deleteProOrderByIds(String[] ids); /** - * 获取线体 + * 获取成型机 * * @return */ - @Select(" SELECT sf.f_code [key],sf.factory_name label FROM sys_factory sf WHERE sf.f_type='l' AND sf.status = '1' AND sf.del_flag = '0' ") + @DS("master") + @Select(" SELECT sda.dict_code AS 'key', sda.dict_label AS 'label' FROM sys_dict_data sda WHERE sda.status = '0' AND sda.dict_value = 'equ_type_cxj' ") public List selectProdLine(); /** @@ -100,7 +102,8 @@ public interface ProOrderMapper { * * @return */ - @Select("SELECT sf.factory_name name FROM sys_factory sf WHERE sf.f_type='l' AND sf.status = '1' AND sf.del_flag = '0' AND sf.f_code = #{prodLineCode}") + @DS("master") + @Select("SELECT sda.dict_label AS 'prodLineName' FROM sys_dict_data sda WHERE sda.status = '0' AND sda.dict_value = 'equ_type_cxj' AND sda.dict_code = #{prodLineName}") String selectProdLineName(String prodLineCode); /** diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java index 43ccc371..38f2b2be 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IProOrderService.java @@ -17,7 +17,7 @@ import com.op.mes.domain.vo.LineAndShiftVo; public interface IProOrderService { /** - * 获取线体 + * 获取成型机 * * @return */ diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java index 9b3746c3..c77cc73f 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java @@ -132,9 +132,8 @@ public class ProOrderServiceImpl implements IProOrderService { List proOrderWorkorderList = proOrderWorkorderMapper.selectFirWorkOrder(id); // 母工单循环遍历 for (int i = 0;i < proOrderWorkorderList.size();i++){ - // 通过设备code查询出设备名称 + // 通过设备code查询出机型名称 String prodLineName = proOrderMapper.selectProdLineName(proOrderWorkorderList.get(i).getProdLineCode()); - // 这里因为没有相对应字段所以用atrr1来表示批次号list // 通过工单id查询批次号 List batchCodeList = proOrderMapper.selectBatchCodesById(proOrderWorkorderList.get(i).getWorkorderId()); // 格式化数据 @@ -195,7 +194,7 @@ public class ProOrderServiceImpl implements IProOrderService { } /** - * 获取线体 + * 获取成型机 * * @return */ @@ -213,7 +212,6 @@ public class ProOrderServiceImpl implements IProOrderService { * @return 订单 */ @Override - @DS("#header.poolName") public ProOrder selectProOrderById(String id) { return proOrderMapper.selectProOrderById(id); } From 2238046740f992ff35a40e2c4b9327b06cd6b50d Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 25 Jul 2023 09:50:59 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97(=E4=BC=98=E5=8C=96)?= =?UTF-8?q?=E3=80=81=E6=B9=BF=E6=96=99=E8=AE=A1=E5=88=92=E7=AE=A1=E7=90=86?= =?UTF-8?q?init?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/mes/controller/ProOrderController.java | 1 - .../ProWetMaterialPlanController.java | 119 +++++++++ .../main/java/com/op/mes/domain/Bucket.java | 47 ++++ .../com/op/mes/domain/ProOrderWorkorder.java | 31 ++- .../com/op/mes/domain/ProWetMaterialPlan.java | 235 ++++++++++++++++++ .../com/op/mes/mapper/ProOrderMapper.java | 6 +- .../mes/mapper/ProOrderWorkorderMapper.java | 10 + .../mes/mapper/ProWetMaterialPlanMapper.java | 90 +++++++ .../service/IProWetMaterialPlanService.java | 77 ++++++ .../mes/service/impl/ProOrderServiceImpl.java | 32 ++- .../impl/ProWetMaterialPlanServiceImpl.java | 136 ++++++++++ .../mapper/mes/ProOrderWorkorderMapper.xml | 15 +- .../mapper/mes/ProWetMaterialPlanMapper.xml | 135 ++++++++++ 13 files changed, 922 insertions(+), 12 deletions(-) create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/controller/ProWetMaterialPlanController.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/Bucket.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/ProWetMaterialPlan.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/mapper/ProWetMaterialPlanMapper.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/IProWetMaterialPlanService.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProWetMaterialPlanServiceImpl.java create mode 100644 op-modules/op-mes/src/main/resources/mapper/mes/ProWetMaterialPlanMapper.xml diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java index d6b9daff..3c25bc14 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProOrderController.java @@ -45,7 +45,6 @@ public class ProOrderController extends BaseController { return proOrderService.getWorkOrderList(id); } - ; /** * 获取当前订单信息列表 diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/ProWetMaterialPlanController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProWetMaterialPlanController.java new file mode 100644 index 00000000..1b9c2794 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/ProWetMaterialPlanController.java @@ -0,0 +1,119 @@ +package com.op.mes.controller; + +import java.util.Date; +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.ProWetMaterialPlan; +import com.op.mes.service.IProWetMaterialPlanService; +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-07-24 + */ +@RestController +@RequestMapping("/plan") +public class ProWetMaterialPlanController extends BaseController { + @Autowired + private IProWetMaterialPlanService proWetMaterialPlanService; + + /** + * 查询料罐list + * + * @return + */ + @GetMapping("/getBucketList") + public AjaxResult getBucketList() { + return proWetMaterialPlanService.getBucketList(); + } + + /** + * 通过工单生产日期查询所有底层工单(排除已经分配过的工单) + * + * @return + */ + @GetMapping("/getWorkOrderByTime") + public AjaxResult getWorkOrderByTime(Date productDate) { + return proWetMaterialPlanService.getWorkOrderByTime(productDate); + } + + /** + * 查询湿料计划管理列表 + */ + @RequiresPermissions("mes:plan:list") + @GetMapping("/list") + public TableDataInfo list(ProWetMaterialPlan proWetMaterialPlan) { + startPage(); + List list = proWetMaterialPlanService.selectProWetMaterialPlanList(proWetMaterialPlan); + return getDataTable(list); + } + + /** + * 导出湿料计划管理列表 + */ + @RequiresPermissions("mes:plan:export") + @Log(title = "湿料计划管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProWetMaterialPlan proWetMaterialPlan) { + List list = proWetMaterialPlanService.selectProWetMaterialPlanList(proWetMaterialPlan); + ExcelUtil util = new ExcelUtil(ProWetMaterialPlan.class); + util.exportExcel(response, list, "湿料计划管理数据"); + } + + /** + * 获取湿料计划管理详细信息 + */ + @RequiresPermissions("mes:plan:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) { + return success(proWetMaterialPlanService.selectProWetMaterialPlanById(id)); + } + + /** + * 新增湿料计划管理 + */ + @RequiresPermissions("mes:plan:add") + @Log(title = "湿料计划管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProWetMaterialPlan proWetMaterialPlan) { + return toAjax(proWetMaterialPlanService.insertProWetMaterialPlan(proWetMaterialPlan)); + } + + /** + * 修改湿料计划管理 + */ + @RequiresPermissions("mes:plan:edit") + @Log(title = "湿料计划管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProWetMaterialPlan proWetMaterialPlan) { + return toAjax(proWetMaterialPlanService.updateProWetMaterialPlan(proWetMaterialPlan)); + } + + /** + * 删除湿料计划管理 + */ + @RequiresPermissions("mes:plan:remove") + @Log(title = "湿料计划管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(proWetMaterialPlanService.deleteProWetMaterialPlanByIds(ids)); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/Bucket.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/Bucket.java new file mode 100644 index 00000000..492adc68 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/Bucket.java @@ -0,0 +1,47 @@ +package com.op.mes.domain; + +// 料罐实体类 +public class Bucket { + // 料罐id + private Integer bucketId; + // 料罐编码 + private String bucketCode; + // 料罐名称 + private String bucketName; + + @Override + public String toString() { + return "Bucket{" + + "bucketId=" + bucketId + + ", bucketCode='" + bucketCode + '\'' + + ", bucketName='" + bucketName + '\'' + + '}'; + } + + public Integer getBucketId() { + return bucketId; + } + + public void setBucketId(Integer bucketId) { + this.bucketId = bucketId; + } + + public String getBucketCode() { + return bucketCode; + } + + public void setBucketCode(String bucketCode) { + this.bucketCode = bucketCode; + } + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } + + public Bucket() { + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java index 6ee767bd..de4637ef 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProOrderWorkorder.java @@ -115,14 +115,37 @@ public class ProOrderWorkorder extends TreeEntity { @Excel(name = "产品类型") private String prodType; + /** 是否为底层节点 1是 0不是 */ + @Excel(name = "是否为底层节点") + private Integer isEnd; + + /** 班次名称 */ + private String shiftDesc; + + public String getShiftDesc() { + return shiftDesc; + } + + public void setShiftDesc(String shiftDesc) { + this.shiftDesc = shiftDesc; + } + + public Integer getIsEnd() { + return isEnd; + } + + public void setIsEnd(Integer isEnd) { + this.isEnd = isEnd; + } + /** 批次号 */ - private StringBuilder batchCodeList; + private List batchCodeList; - public StringBuilder getBatchCodeList() { + public List getBatchCodeList() { return batchCodeList; } - public void setBatchCodeList(StringBuilder batchCodeList) { + public void setBatchCodeList(List batchCodeList) { this.batchCodeList = batchCodeList; } @@ -340,6 +363,8 @@ public class ProOrderWorkorder extends TreeEntity { .append("prodType", getProdType()) .append("factoryCode", getFactoryCode()) .append("batchCodeList",getBatchCodeList()) + .append("isEnd",getIsEnd()) + .append("shiftDesc",getShiftDesc()) .toString(); } } \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/ProWetMaterialPlan.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProWetMaterialPlan.java new file mode 100644 index 00000000..6f46acae --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/ProWetMaterialPlan.java @@ -0,0 +1,235 @@ +package com.op.mes.domain; + +import java.util.Date; +import java.util.List; + +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; + +/** + * 湿料计划管理对象 pro_wet_material_plan + * + * @author Open Platform + * @date 2023-07-24 + */ +public class ProWetMaterialPlan extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** ID */ + private String id; + + /** 计划工厂编码 */ + @Excel(name = "计划工厂编码") + private String factoryCode; + + /** 计划日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "计划日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date planTime; + + /** 已同步 */ + @Excel(name = "已同步") + private String syncFlag; + + /** 订单类型 */ + private String orderType; + + /** 物料号 */ + private String prodCode; + + /** 物料名称 */ + private String prodDesc; + + /** 存放大罐 */ + private String prodSource; + + /** 订单数量 */ + private Long quantity; + + /** 单位 */ + private String unit; + + /** $column.columnComment */ + private String atrr1; + + /** $column.columnComment */ + private String atrr2; + + /** $column.columnComment */ + private String atrr3; + + /** 计划状态(1正常0停用) */ + private String status; + + /** 产品类型 */ + private String prodType; + + /** 计划编码 */ + private String planCode; + + /** 开始时间 */ + private Date startTime; + + /** 结束时间 */ + private Date endTime; + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public void setId(String id) { + this.id = id; + } + + public String getId() { + return id; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setPlanTime(Date planTime) { + this.planTime = planTime; + } + + public Date getPlanTime() { + return planTime; + } + public void setSyncFlag(String syncFlag) { + this.syncFlag = syncFlag; + } + + public String getSyncFlag() { + return syncFlag; + } + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public String getOrderType() { + return orderType; + } + public void setProdCode(String prodCode) { + this.prodCode = prodCode; + } + + public String getProdCode() { + return prodCode; + } + public void setProdDesc(String prodDesc) { + this.prodDesc = prodDesc; + } + + public String getProdDesc() { + return prodDesc; + } + public void setProdSource(String prodSource) { + this.prodSource = prodSource; + } + + public String getProdSource() { + return prodSource; + } + public void setQuantity(Long quantity) { + this.quantity = quantity; + } + + public Long getQuantity() { + return quantity; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setAtrr1(String atrr1) { + this.atrr1 = atrr1; + } + + public String getAtrr1() { + return atrr1; + } + public void setAtrr2(String atrr2) { + this.atrr2 = atrr2; + } + + public String getAtrr2() { + return atrr2; + } + public void setAtrr3(String atrr3) { + this.atrr3 = atrr3; + } + + public String getAtrr3() { + return atrr3; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setProdType(String prodType) { + this.prodType = prodType; + } + + public String getProdType() { + return prodType; + } + public void setPlanCode(String planCode) { + this.planCode = planCode; + } + + public String getPlanCode() { + return planCode; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("factoryCode", getFactoryCode()) + .append("planTime", getPlanTime()) + .append("syncFlag", getSyncFlag()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("orderType", getOrderType()) + .append("prodCode", getProdCode()) + .append("prodDesc", getProdDesc()) + .append("prodSource", getProdSource()) + .append("quantity", getQuantity()) + .append("unit", getUnit()) + .append("atrr1", getAtrr1()) + .append("atrr2", getAtrr2()) + .append("atrr3", getAtrr3()) + .append("status", getStatus()) + .append("prodType", getProdType()) + .append("planCode", getPlanCode()) + .append("startTime",getStartTime()) + .append("endTime",getEndTime()) + .toString(); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java index f90c56d7..dea45793 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderMapper.java @@ -78,8 +78,7 @@ public interface ProOrderMapper { * * @return */ - @DS("master") - @Select(" SELECT sda.dict_code AS 'key', sda.dict_label AS 'label' FROM sys_dict_data sda WHERE sda.status = '0' AND sda.dict_value = 'equ_type_cxj' ") + @Select(" SELECT equipment_id AS 'key', equipment_name AS 'label' FROM base_equipment WHERE equipment_type_code = 'equ_type_cxj' ") public List selectProdLine(); /** @@ -102,8 +101,7 @@ public interface ProOrderMapper { * * @return */ - @DS("master") - @Select("SELECT sda.dict_label AS 'prodLineName' FROM sys_dict_data sda WHERE sda.status = '0' AND sda.dict_value = 'equ_type_cxj' AND sda.dict_code = #{prodLineName}") + @Select("SELECT equipment_name AS 'prodLineName' FROM base_equipment WHERE equipment_type_code = 'equ_type_cxj' AND equipment_id = #{prodLineName}") String selectProdLineName(String prodLineCode); /** diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java index ee90eedd..639287f2 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProOrderWorkorderMapper.java @@ -3,6 +3,7 @@ package com.op.mes.mapper; import com.op.mes.domain.ProOrderWorkorder; import org.apache.ibatis.annotations.Select; +import java.util.Date; import java.util.List; /** @@ -70,8 +71,17 @@ public interface ProOrderWorkorderMapper { /** * 通过code查询子工单 + * * @param workorderCode * @return */ List selectChildWorkOrder(String workorderCode); + + /** + * 通过工单生产日期查询没有被分配的所有子工单 + * + * @param productDate + * @return + */ + List selectWorkOrderByTime(Date productDate); } \ No newline at end of file diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProWetMaterialPlanMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProWetMaterialPlanMapper.java new file mode 100644 index 00000000..8d5c22b7 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/ProWetMaterialPlanMapper.java @@ -0,0 +1,90 @@ +package com.op.mes.mapper; + +import java.util.Date; +import java.util.List; + +import com.op.mes.domain.Bucket; +import com.op.mes.domain.ProWetMaterialPlan; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + * 湿料计划管理Mapper接口 + * + * @author Open Platform + * @date 2023-07-24 + */ +public interface ProWetMaterialPlanMapper { + /** + * 查询湿料计划管理 + * + * @param id 湿料计划管理主键 + * @return 湿料计划管理 + */ + public ProWetMaterialPlan selectProWetMaterialPlanById(String id); + + /** + * 查询湿料计划管理列表 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 湿料计划管理集合 + */ + public List selectProWetMaterialPlanList(ProWetMaterialPlan proWetMaterialPlan); + + /** + * 新增湿料计划管理 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 结果 + */ + public int insertProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan); + + /** + * 修改湿料计划管理 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 结果 + */ + public int updateProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan); + + /** + * 删除湿料计划管理 + * + * @param id 湿料计划管理主键 + * @return 结果 + */ + public int deleteProWetMaterialPlanById(String id); + + /** + * 批量删除湿料计划管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProWetMaterialPlanByIds(String[] ids); + + /** + * 根据时间范围查询范围内的计划列表 + * + * @param startTime + * @param endTime + * @return + */ + List selectProWetMaterialPlanListByTime(@Param("startTime") Date startTime, @Param("endTime") Date endTime); + + /** + * 通过班次id查询班次名称 + * + * @param shiftId + * @return + */ + @Select("SELECT bst.Shift_Desc_Global shiftName FROM base_shifts_t bst WHERE bst.Shift_Id = #{shiftId}") + String selectShiftById(String shiftId); + + /** + * 查询料罐list + * @return + */ + @Select("SELECT equipment_id AS 'bucketId',equipment_code AS 'bucketCode',equipment_name AS 'bucketName' FROM base_equipment WHERE equipment_type_code = 'equ_type_lg'") + List selectBucketList(); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IProWetMaterialPlanService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IProWetMaterialPlanService.java new file mode 100644 index 00000000..a479051e --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IProWetMaterialPlanService.java @@ -0,0 +1,77 @@ +package com.op.mes.service; + +import java.util.Date; +import java.util.List; + +import com.op.common.core.web.domain.AjaxResult; +import com.op.mes.domain.ProWetMaterialPlan; + +/** + * 湿料计划管理Service接口 + * + * @author Open Platform + * @date 2023-07-24 + */ +public interface IProWetMaterialPlanService { + /** + * 查询湿料计划管理 + * + * @param id 湿料计划管理主键 + * @return 湿料计划管理 + */ + public ProWetMaterialPlan selectProWetMaterialPlanById(String id); + + /** + * 查询湿料计划管理列表 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 湿料计划管理集合 + */ + public List selectProWetMaterialPlanList(ProWetMaterialPlan proWetMaterialPlan); + + /** + * 新增湿料计划管理 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 结果 + */ + public int insertProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan); + + /** + * 修改湿料计划管理 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 结果 + */ + public int updateProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan); + + /** + * 批量删除湿料计划管理 + * + * @param ids 需要删除的湿料计划管理主键集合 + * @return 结果 + */ + public int deleteProWetMaterialPlanByIds(String[] ids); + + /** + * 删除湿料计划管理信息 + * + * @param id 湿料计划管理主键 + * @return 结果 + */ + public int deleteProWetMaterialPlanById(String id); + + /** + * 通过工单生产日期查询所有子工单 + * + * @param productDate + * @return + */ + AjaxResult getWorkOrderByTime(Date productDate); + + /** + * 查询料罐list + * @return + */ + AjaxResult getBucketList(); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java index c77cc73f..3439e0f3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProOrderServiceImpl.java @@ -72,6 +72,10 @@ public class ProOrderServiceImpl implements IProOrderService { // 如果不重复 if (checkout) { + // 判断是否为底层节点 + int checkEnd = 0; + // 创建ProOrderWorkorder对象用于数据更新减少io + ProOrderWorkorder updateWorker = new ProOrderWorkorder(); ProOrder product = new ProOrder(); BeanUtils.copyProperties(splitOrderDTO.getProduct(), product); // 设置通用属性 @@ -88,6 +92,9 @@ public class ProOrderServiceImpl implements IProOrderService { // 二级 if (splitOrderDTO.getProduct().getChildren() != null) { + // 判断加1 + checkEnd += 1; + List secProOrderList = splitOrderDTO.getProduct().getChildren(); BeanUtils.copyProperties(secProOrderList.get(0), product); // 设置父工单 @@ -100,16 +107,36 @@ public class ProOrderServiceImpl implements IProOrderService { // 三级 if (secProOrderList.get(0).getChildren() != null) { + // 判断加1 + checkEnd += 1; + List thiProOrderList = secProOrderList.get(0).getChildren(); BeanUtils.copyProperties(thiProOrderList.get(0), product); // 设置父工单 proOrderWorkorder.setParentOrder(secWorkOrder.getWorkorderCode()); ProOrderWorkorder thiWorkOrder = setWorkOrder(proOrderWorkorder, product); + // 设置为底层节点 + thiWorkOrder.setIsEnd(1); // 更新到数据库 proOrderWorkorderMapper.insertProOrderWorkorder(thiWorkOrder); // 生成批次表并更新到数据库 setBatch(workBatch, splitOrderDTO.getFormFields(), thiWorkOrder.getWorkorderId()); } + + // 设置为底层节点 + if (checkEnd == 1){ + updateWorker.setWorkorderId(secWorkOrder.getWorkorderId()); + updateWorker.setIsEnd(1); + proOrderWorkorderMapper.updateProOrderWorkorder(updateWorker); + } + + } + + // 设置为底层节点 + if (checkEnd == 1){ + updateWorker.setWorkorderId(firWorkOrder.getWorkorderId()); + updateWorker.setIsEnd(1); + proOrderWorkorderMapper.updateProOrderWorkorder(updateWorker); } return success(); @@ -136,11 +163,10 @@ public class ProOrderServiceImpl implements IProOrderService { String prodLineName = proOrderMapper.selectProdLineName(proOrderWorkorderList.get(i).getProdLineCode()); // 通过工单id查询批次号 List batchCodeList = proOrderMapper.selectBatchCodesById(proOrderWorkorderList.get(i).getWorkorderId()); + List batchCodes = new ArrayList<>(); // 格式化数据 - StringBuilder batchCodes = new StringBuilder(); for (int j = 0;j < batchCodeList.size();j++){ - batchCodes.append(batchCodeList.get(j)); - batchCodes.append(";"); + batchCodes.add(new StringBuilder(batchCodeList.get(j)).append(";").append("\n")); } // 通过母工单workorder_id查询子工单 // 二级 diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProWetMaterialPlanServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProWetMaterialPlanServiceImpl.java new file mode 100644 index 00000000..e15caafe --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/ProWetMaterialPlanServiceImpl.java @@ -0,0 +1,136 @@ +package com.op.mes.service.impl; + +import java.util.Date; +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.web.domain.AjaxResult; +import com.op.mes.domain.ProOrderWorkorder; +import com.op.mes.mapper.ProOrderWorkorderMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.mes.mapper.ProWetMaterialPlanMapper; +import com.op.mes.domain.ProWetMaterialPlan; +import com.op.mes.service.IProWetMaterialPlanService; + +import static com.op.common.core.web.domain.AjaxResult.success; + +/** + * 湿料计划管理Service业务层处理 + * + * @author Open Platform + * @date 2023-07-24 + */ +@Service +public class ProWetMaterialPlanServiceImpl implements IProWetMaterialPlanService { + @Autowired + private ProWetMaterialPlanMapper proWetMaterialPlanMapper; + @Autowired + private ProOrderWorkorderMapper proOrderWorkorderMapper; + + /** + * 查询湿料计划管理 + * + * @param id 湿料计划管理主键 + * @return 湿料计划管理 + */ + @Override + @DS("#header.poolName") + public ProWetMaterialPlan selectProWetMaterialPlanById(String id) { + return proWetMaterialPlanMapper.selectProWetMaterialPlanById(id); + } + + /** + * 查询湿料计划管理列表 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 湿料计划管理 + */ + @Override + @DS("#header.poolName") + public List selectProWetMaterialPlanList(ProWetMaterialPlan proWetMaterialPlan) { + if (proWetMaterialPlan.getStartTime() != null && proWetMaterialPlan.getEndTime() != null) { + return proWetMaterialPlanMapper.selectProWetMaterialPlanListByTime(proWetMaterialPlan.getStartTime(), proWetMaterialPlan.getEndTime()); + } + return proWetMaterialPlanMapper.selectProWetMaterialPlanList(proWetMaterialPlan); + } + + /** + * 新增湿料计划管理 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan) { + proWetMaterialPlan.setCreateTime(DateUtils.getNowDate()); + return proWetMaterialPlanMapper.insertProWetMaterialPlan(proWetMaterialPlan); + } + + /** + * 修改湿料计划管理 + * + * @param proWetMaterialPlan 湿料计划管理 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateProWetMaterialPlan(ProWetMaterialPlan proWetMaterialPlan) { + proWetMaterialPlan.setUpdateTime(DateUtils.getNowDate()); + return proWetMaterialPlanMapper.updateProWetMaterialPlan(proWetMaterialPlan); + } + + /** + * 批量删除湿料计划管理 + * + * @param ids 需要删除的湿料计划管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteProWetMaterialPlanByIds(String[] ids) { + return proWetMaterialPlanMapper.deleteProWetMaterialPlanByIds(ids); + } + + /** + * 删除湿料计划管理信息 + * + * @param id 湿料计划管理主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteProWetMaterialPlanById(String id) { + return proWetMaterialPlanMapper.deleteProWetMaterialPlanById(id); + } + + /** + * 通过工单生产日期查询所有子工单 + * + * @param productDate + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getWorkOrderByTime(Date productDate) { + List workorderList = proOrderWorkorderMapper.selectWorkOrderByTime(productDate); + // 循环遍历 + for (int i = 0; i < workorderList.size(); i++){ + // 通过班次id获取班次名称 + workorderList.get(i).setShiftDesc(proWetMaterialPlanMapper.selectShiftById(workorderList.get(i).getShiftId())); + } + return success(workorderList); + } + + /** + * 查询料罐list + * @return + */ + @Override + @DS("#header.poolName") + public AjaxResult getBucketList() { + return success(proWetMaterialPlanMapper.selectBucketList()); + } +} diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml index ef444ef7..e73018c6 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/ProOrderWorkorderMapper.xml @@ -35,10 +35,11 @@ + - select workorder_id, workorder_code, workorder_name, order_id, order_code, product_id, product_code, product_name, product_spc, unit, quantity_produced, quantity_split, route_code, prod_line_code, product_date, shift_id, parent_order, ancestors, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, prod_type, factory_code from pro_order_workorder + select workorder_id, workorder_code, workorder_name, order_id, order_code, product_id, product_code, product_name, product_spc, unit, quantity_produced, quantity_split, route_code, prod_line_code, product_date, shift_id, parent_order, ancestors, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, prod_type, factory_code , is_end from pro_order_workorder @@ -85,6 +87,14 @@ WHERE parent_order = #{workorderCode} + insert into pro_order_workorder @@ -119,6 +129,7 @@ update_time, prod_type, factory_code, + is_end, #{workorderId}, @@ -151,6 +162,7 @@ #{updateTime}, #{prodType}, #{factoryCode}, + #{isEnd}, @@ -186,6 +198,7 @@ update_time = #{updateTime}, prod_type = #{prodType}, factory_code = #{factoryCode}, + is_end = #{isEnd}, where workorder_id = #{workorderId} diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/ProWetMaterialPlanMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/ProWetMaterialPlanMapper.xml new file mode 100644 index 00000000..626a54fc --- /dev/null +++ b/op-modules/op-mes/src/main/resources/mapper/mes/ProWetMaterialPlanMapper.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, factory_code, plan_time, sync_flag, create_by, create_time, update_by, update_time, order_type, prod_code, prod_desc, prod_source, quantity, unit, atrr1, atrr2, atrr3, status, prod_type, plan_code from pro_wet_material_plan + + + + + + + + + insert into pro_wet_material_plan + + id, + factory_code, + plan_time, + sync_flag, + create_by, + create_time, + update_by, + update_time, + order_type, + prod_code, + prod_desc, + prod_source, + quantity, + unit, + atrr1, + atrr2, + atrr3, + status, + prod_type, + plan_code, + + + #{id}, + #{factoryCode}, + #{planTime}, + #{syncFlag}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{orderType}, + #{prodCode}, + #{prodDesc}, + #{prodSource}, + #{quantity}, + #{unit}, + #{atrr1}, + #{atrr2}, + #{atrr3}, + #{status}, + #{prodType}, + #{planCode}, + + + + + update pro_wet_material_plan + + factory_code = #{factoryCode}, + plan_time = #{planTime}, + sync_flag = #{syncFlag}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + order_type = #{orderType}, + prod_code = #{prodCode}, + prod_desc = #{prodDesc}, + prod_source = #{prodSource}, + quantity = #{quantity}, + unit = #{unit}, + atrr1 = #{atrr1}, + atrr2 = #{atrr2}, + atrr3 = #{atrr3}, + status = #{status}, + prod_type = #{prodType}, + plan_code = #{planCode}, + + where id = #{id} + + + + delete from pro_wet_material_plan where id = #{id} + + + + delete from pro_wet_material_plan where id in + + #{id} + + + \ No newline at end of file