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] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=A8=A1=E5=9D=97(=E4=BC=98=E5=8C=96)=E3=80=81?= =?UTF-8?q?=E6=B9=BF=E6=96=99=E8=AE=A1=E5=88=92=E7=AE=A1=E7=90=86init?= 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 | 33 ++- .../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, 923 insertions(+), 13 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 d6b9daffb..3c25bc14f 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 000000000..1b9c27943 --- /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 000000000..492adc682 --- /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 6ee767bdc..de4637efc 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; - /** 批次号 */ - private StringBuilder batchCodeList; + /** 是否为底层节点 1是 0不是 */ + @Excel(name = "是否为底层节点") + private Integer isEnd; - public StringBuilder getBatchCodeList() { + /** 班次名称 */ + 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 List batchCodeList; + + 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 000000000..6f46acae2 --- /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 f90c56d78..dea457932 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 ee90eedde..639287f2d 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 000000000..8d5c22b71 --- /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 000000000..a479051ee --- /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 c77cc73f2..3439e0f30 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 000000000..e15caafe2 --- /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 ef444ef76..e73018c62 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 000000000..626a54fc0 --- /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