diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java index 449c8790..077b6a94 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesLineController.java @@ -1,10 +1,9 @@ package com.op.mes.controller; import java.util.List; -import java.util.Optional; import javax.servlet.http.HttpServletResponse; -import com.alibaba.nacos.shaded.com.google.protobuf.Internal; +import com.op.mes.domain.MesLineProduct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; @@ -76,13 +75,14 @@ public class MesLineController extends BaseController { @Log(title = "线体管理", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody MesLine mesLine) { - MesLine vali = mesLineService.validate(mesLine.getLineCode()); - if (ObjectUtils.isEmpty(vali)){ + MesLine vali = mesLineService.validate(mesLine); + if (ObjectUtils.isEmpty(vali)) { return toAjax(mesLineService.insertMesLine(mesLine)); }else { - return error("线体已存在不能重复添加!"); + return error("此标准已存在,请检查已有标准!"); } + } /** @@ -113,5 +113,12 @@ public class MesLineController extends BaseController { List list = mesLineService.selectLineBody(mesLine); return getDataTable(list); } + + @GetMapping("/getProductListBom") + public TableDataInfo getProductListBom(MesLineProduct mesLineProduct) { + startPage(); + List list = mesLineService.getProductListBom(mesLineProduct); + return getDataTable(list); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java index daed8201..88994fc3 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLine.java @@ -85,6 +85,8 @@ public class MesLine extends BaseEntity { private BigDecimal standarXl;//标准效率 private BigDecimal actXl;//实际效率 + private List productList; + public BigDecimal getStandarMan() { return standarMan; } @@ -225,6 +227,14 @@ public class MesLine extends BaseEntity { this.qualityList = qualityList; } + public List getProductList() { + return productList; + } + + public void setProductList(List productList) { + this.productList = productList; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLineProduct.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLineProduct.java new file mode 100644 index 00000000..aa71949e --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesLineProduct.java @@ -0,0 +1,87 @@ +package com.op.mes.domain; + +import com.op.common.core.web.domain.BaseEntity; + +public class MesLineProduct extends BaseEntity { + private static final long serialVersionUID = 1L; + + private String id; + + private String productCode; + + private String productName; + + private String belongTo; + + private String factoryCode; + + private String delFlag; + + private String attr1; + + private String attr2; + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getBelongTo() { + return belongTo; + } + + public void setBelongTo(String belongTo) { + this.belongTo = belongTo; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr2() { + return attr2; + } + + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java index 06da9577..27e695d6 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineMapper.java @@ -3,6 +3,7 @@ package com.op.mes.mapper; import java.util.List; import com.op.mes.domain.MesLine; +import com.op.mes.domain.MesLineProduct; import org.apache.ibatis.annotations.Mapper; /** @@ -65,5 +66,7 @@ public interface MesLineMapper { */ public List selectLineBody(MesLine mesLine); - public MesLine validate(String lineCode); + public MesLine validate(MesLine mesLine); + + public List getProductListBom(MesLineProduct mesLineProduct); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineProductMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineProductMapper.java new file mode 100644 index 00000000..ae5afdaf --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesLineProductMapper.java @@ -0,0 +1,71 @@ +package com.op.mes.mapper; + +import java.util.List; + +import com.op.mes.domain.MesLineProduct; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 线体产品管理Mapper接口 + * + * @author Open Platform + * @date 2024-06-06 + */ +@Mapper +public interface MesLineProductMapper { + /** + * 查询线体产品管理 + * + * @param id 线体产品管理主键 + * @return 线体产品管理 + */ + public MesLineProduct selectMesLineProductById(String id); + + /** + * 查询线体产品管理列表 + * + * @param mesLineProduct 线体产品管理 + * @return 线体产品管理集合 + */ + public List selectMesLineProductList(MesLineProduct mesLineProduct); + + /** + * 新增线体产品管理 + * + * @param mesLineProduct 线体产品管理 + * @return 结果 + */ + public int insertMesLineProduct(MesLineProduct mesLineProduct); + + /** + * 修改线体产品管理 + * + * @param mesLineProduct 线体产品管理 + * @return 结果 + */ + public int updateMesLineProduct(MesLineProduct mesLineProduct); + + /** + * 删除线体产品管理 + * + * @param id 线体产品管理主键 + * @return 结果 + */ + public int deleteMesLineProductById(String id); + + /** + * 批量删除线体产品管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesLineProductByIds(String[] ids); + + public int batchInsertMesLineProduct(@Param("list") List mesLineProductList); + + int deleteProductByBelongTo(@Param("belongTo") String belongTo); + + List selectProductByBelongTo(@Param("belongTo") String belongTo); + +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineProductService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineProductService.java new file mode 100644 index 00000000..1df18a28 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineProductService.java @@ -0,0 +1,67 @@ +package com.op.mes.service; + +import java.util.List; + +import com.op.mes.domain.MesLineProduct; + +/** + * 线体产品管理Service接口 + * + * @author Open Platform + * @date 2024-06-06 + */ +public interface IMesLineProductService { + /** + * 查询线体产品管理 + * + * @param id 线体产品管理主键 + * @return 线体产品管理 + */ + public MesLineProduct selectMesLineProductById(String id); + + /** + * 查询线体产品管理列表 + * + * @param mesLineProduct 线体产品管理 + * @return 线体产品管理集合 + */ + public List selectMesLineProductList(MesLineProduct mesLineProduct); + + /** + * 新增线体产品管理 + * + * @param mesLineProduct 线体产品管理 + * @return 结果 + */ + public int insertMesLineProduct(MesLineProduct mesLineProduct); + + /** + * 修改线体产品管理 + * + * @param mesLineProduct 线体产品管理 + * @return 结果 + */ + public int updateMesLineProduct(MesLineProduct mesLineProduct); + + /** + * 批量删除线体产品管理 + * + * @param ids 需要删除的线体产品管理主键集合 + * @return 结果 + */ + public int deleteMesLineProductByIds(String[] ids); + + /** + * 删除线体产品管理信息 + * + * @param id 线体产品管理主键 + * @return 结果 + */ + public int deleteMesLineProductById(String id); + + public int batchInsertMesLineProduct(List mesLineProductList); + + public int deleteProductByBelongTo(String belongTo); + + List selectProductByBelongTo(String belongTo); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineService.java index 78a085ea..fbca681e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineService.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/IMesLineService.java @@ -3,6 +3,7 @@ package com.op.mes.service; import java.util.List; import com.op.mes.domain.MesLine; +import com.op.mes.domain.MesLineProduct; /** * 线体管理Service接口 @@ -64,5 +65,7 @@ public interface IMesLineService { */ public List selectLineBody(MesLine mesLine); - public MesLine validate(String lineCode); + public MesLine validate(MesLine mesLine); + + public List getProductListBom(MesLineProduct productDto); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineProductServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineProductServiceImpl.java new file mode 100644 index 00000000..7212b4b4 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineProductServiceImpl.java @@ -0,0 +1,109 @@ +package com.op.mes.service.impl; + +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.mes.mapper.MesLineProductMapper; +import com.op.mes.domain.MesLineProduct; +import com.op.mes.service.IMesLineProductService; + +/** + * 线体产品管理Service业务层处理 + * + * @author Open Platform + * @date 2024-06-06 + */ +@Service +public class MesLineProductServiceImpl implements IMesLineProductService { + @Autowired + private MesLineProductMapper mesLineProductMapper; + + /** + * 查询线体产品管理 + * + * @param id 线体产品管理主键 + * @return 线体产品管理 + */ + @Override + public MesLineProduct selectMesLineProductById(String id) { + return mesLineProductMapper.selectMesLineProductById(id); + } + + /** + * 查询线体产品管理列表 + * + * @param mesLineProduct 线体产品管理 + * @return 线体产品管理 + */ + @Override + public List selectMesLineProductList(MesLineProduct mesLineProduct) { + return mesLineProductMapper.selectMesLineProductList(mesLineProduct); + } + + /** + * 新增线体产品管理 + * + * @param mesLineProduct 线体产品管理 + * @return 结果 + */ + @Override + public int insertMesLineProduct(MesLineProduct mesLineProduct) { + mesLineProduct.setCreateTime(DateUtils.getNowDate()); + return mesLineProductMapper.insertMesLineProduct(mesLineProduct); + } + + /** + * 修改线体产品管理 + * + * @param mesLineProduct 线体产品管理 + * @return 结果 + */ + @Override + public int updateMesLineProduct(MesLineProduct mesLineProduct) { + mesLineProduct.setUpdateTime(DateUtils.getNowDate()); + return mesLineProductMapper.updateMesLineProduct(mesLineProduct); + } + + /** + * 批量删除线体产品管理 + * + * @param ids 需要删除的线体产品管理主键 + * @return 结果 + */ + @Override + public int deleteMesLineProductByIds(String[] ids) { + return mesLineProductMapper.deleteMesLineProductByIds(ids); + } + + /** + * 删除线体产品管理信息 + * + * @param id 线体产品管理主键 + * @return 结果 + */ + @Override + public int deleteMesLineProductById(String id) { + return mesLineProductMapper.deleteMesLineProductById(id); + } + + @Override + @DS("#header.poolName") + public int batchInsertMesLineProduct(List mesLineProductList) { + return mesLineProductMapper.batchInsertMesLineProduct(mesLineProductList); + } + + @Override + @DS("#header.poolName") + public int deleteProductByBelongTo(String belongTo) { + return mesLineProductMapper.deleteProductByBelongTo(belongTo); + } + + @Override + @DS("#header.poolName") + public List selectProductByBelongTo(String belongTo) { + return mesLineProductMapper.selectProductByBelongTo(belongTo); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java index 0c4c04cb..47b34aaa 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesLineServiceImpl.java @@ -9,7 +9,9 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.mes.domain.MesLineProcess; +import com.op.mes.domain.MesLineProduct; import com.op.mes.service.IMesLineProcessService; +import com.op.mes.service.IMesLineProductService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -36,6 +38,8 @@ public class MesLineServiceImpl implements IMesLineService { @Autowired private IMesLineProcessService mesLineProcessService; + @Autowired + private IMesLineProductService mesLineProductService; /** * 查询线体管理 @@ -52,10 +56,17 @@ public class MesLineServiceImpl implements IMesLineService { List qualityList = mesList.stream().map(MesLineProcess::getQuality).collect(Collectors.toList()); MesLine mesLine = mesLineMapper.selectMesLineById(id); //设置线体数据 - if (!CollectionUtils.isEmpty(processList)) { + if (CollectionUtils.isNotEmpty(processList)) { mesLine.setProcessList(processList); mesLine.setQualityList(qualityList); } + // 绑定线体产品 + List productList = mesLineProductService.selectProductByBelongTo(id); + + if (CollectionUtils.isNotEmpty(productList)) { + mesLine.setProductList(productList); + } + return mesLine; } @@ -79,15 +90,48 @@ public class MesLineServiceImpl implements IMesLineService { */ @Override @DS("#header.poolName") + @Transactional(propagation = Propagation.REQUIRED) public int insertMesLine(MesLine mesLine) { mesLine.setCreateTime(DateUtils.getNowDate()); mesLine.setCreateBy(SecurityUtils.getUsername()); mesLine.setId(IdUtils.fastSimpleUUID()); + String belongTo = mesLine.getId(); // 获取工厂编码 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); mesLine.setFactoryCode(factoryCode); + // 绑定工艺 + List processList = mesLine.getProcessList(); + List qualityList = mesLine.getQualityList(); + if (!CollectionUtils.isEmpty(processList)) { + + String lineCode = mesLine.getLineCode(); + String lineName = mesLine.getLineName(); + for (int i = 0; i < processList.size(); i++) { + MesLineProcess mesLineProcess = new MesLineProcess(); + mesLineProcess.setBelongTo(belongTo); + mesLineProcess.setProcessName(processList.get(i)); + mesLineProcess.setQuality(qualityList.get(i)); + mesLineProcess.setLineCode(lineCode); + mesLineProcess.setLineName(lineName); + mesLineProcess.setFactoryCode(factoryCode); + mesLineProcessService.insertMesLineProcess(mesLineProcess); + } + } + // 绑定产品 + List productList = mesLine.getProductList(); + if (CollectionUtils.isNotEmpty(productList)) { + for (MesLineProduct item : productList) { + item.setId(IdUtils.fastSimpleUUID()); + item.setBelongTo(belongTo); + item.setFactoryCode(factoryCode); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(DateUtils.getNowDate()); + } + mesLineProductService.batchInsertMesLineProduct(productList); + } + return mesLineMapper.insertMesLine(mesLine); } @@ -103,20 +147,20 @@ public class MesLineServiceImpl implements IMesLineService { public int updateMesLine(MesLine mesLine) { mesLine.setUpdateTime(DateUtils.getNowDate()); mesLine.setUpdateBy(SecurityUtils.getUsername()); + String belongTo = mesLine.getId(); + // 获取工厂编码 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); + // 绑定工艺 List processList = mesLine.getProcessList(); List qualityList = mesLine.getQualityList(); + mesLineProcessService.deleteMesLineProcessByBelongTo(belongTo); + if (!CollectionUtils.isEmpty(processList)) { //删除旧的工艺项 - mesLineProcessService.deleteMesLineProcessByBelongTo(mesLine.getId()); - - String belongTo = mesLine.getId(); String lineCode = mesLine.getLineCode(); String lineName = mesLine.getLineName(); - // 获取工厂编码 - HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); - String key = "#header.poolName"; - String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); - for (int i = 0; i < processList.size(); i++) { MesLineProcess mesLineProcess = new MesLineProcess(); mesLineProcess.setBelongTo(belongTo); @@ -128,6 +172,20 @@ public class MesLineServiceImpl implements IMesLineService { mesLineProcessService.insertMesLineProcess(mesLineProcess); } } + // 绑定产品 + List productList = mesLine.getProductList(); + mesLineProductService.deleteProductByBelongTo(belongTo); + if (CollectionUtils.isNotEmpty(productList)) { + + for (MesLineProduct item : productList) { + item.setId(IdUtils.fastSimpleUUID()); + item.setBelongTo(belongTo); + item.setFactoryCode(factoryCode); + item.setCreateBy(SecurityUtils.getUsername()); + item.setCreateTime(DateUtils.getNowDate()); + } + mesLineProductService.batchInsertMesLineProduct(productList); + } return mesLineMapper.updateMesLine(mesLine); @@ -164,7 +222,13 @@ public class MesLineServiceImpl implements IMesLineService { @Override @DS("#header.poolName") - public MesLine validate(String lineCode) { - return mesLineMapper.validate(lineCode); + public MesLine validate(MesLine mesLine) { + return mesLineMapper.validate(mesLine); + } + + @Override + @DS("#header.poolName") + public List getProductListBom(MesLineProduct mesLineProduct) { + return mesLineMapper.getProductListBom(mesLineProduct); } } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml index 2738b225..5ea1d826 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineMapper.xml @@ -140,7 +140,7 @@ select equipment_code line_code, equipment_name line_name from base_equipment - where del_flag = '0' + where del_flag = '0' and equipment_type_code = 'equ_type_bzx' and equipment_code = #{lineCode} @@ -151,6 +151,18 @@ + + + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesLineProductMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineProductMapper.xml new file mode 100644 index 00000000..34d66dbb --- /dev/null +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesLineProductMapper.xml @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + select id, + product_code, + product_name, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + belong_to + from mes_line_product + + + + + + + + insert into mes_line_product + + id, + + product_code, + + product_name, + + attr1, + + attr2, + + attr3, + + attr4, + + create_by, + + create_time, + + update_by, + + update_time, + + factory_code, + + del_flag, + + belong_to, + + + + #{id}, + + #{productCode}, + + #{productName}, + + #{attr1}, + + #{attr2}, + + #{attr3}, + + #{attr4}, + + #{createBy}, + + #{createTime}, + + #{updateBy}, + + #{updateTime}, + + #{factoryCode}, + + #{delFlag}, + + #{belongTo}, + + + + + + update mes_line_product + + product_code = + #{productCode}, + + product_name = + #{productName}, + + attr1 = + #{attr1}, + + attr2 = + #{attr2}, + + attr3 = + #{attr3}, + + attr4 = + #{attr4}, + + create_by = + #{createBy}, + + create_time = + #{createTime}, + + update_by = + #{updateBy}, + + update_time = + #{updateTime}, + + factory_code = + #{factoryCode}, + + del_flag = + #{delFlag}, + + belong_to = + #{belongTo}, + + + where id = #{id} + + + + INSERT INTO mes_line_product ( + id, + product_code, + product_name, + attr1, + create_by, + create_time, + update_by, + update_time, + factory_code, + belong_to + ) + VALUES + + ( + #{element.id}, + #{element.productCode}, + #{element.productName}, + #{element.attr1}, + #{element.createBy}, + #{element.createTime}, + #{element.updateBy}, + #{element.updateTime}, + #{element.factoryCode}, + #{element.belongTo} + ) + + + + + delete + from mes_line_product + where id = #{id} + + + + delete from mes_line_product where id in + + #{id} + + + + delete from mes_line_product where belong_to = #{belongTo} + + + + +