From 0e19bbb301fd4efdcbf3285ade2a149db7d0a613 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期五, 15 八月 2025 18:34:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialServiceImpl.java | 168 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 94 insertions(+), 74 deletions(-) diff --git a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialServiceImpl.java b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialServiceImpl.java index 494f85f..3590878 100644 --- a/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialServiceImpl.java +++ b/src/main/java/org/jeecg/modules/lsw/service/impl/LswMaterialServiceImpl.java @@ -1,106 +1,126 @@ package org.jeecg.modules.lsw.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.lsw.entity.LswMaterial; import org.jeecg.modules.lsw.entity.LswMaterialInventory; import org.jeecg.modules.lsw.mapper.LswMaterialInventoryMapper; import org.jeecg.modules.lsw.mapper.LswMaterialMapper; import org.jeecg.modules.lsw.service.ILswMaterialService; +import org.jeecg.modules.mes.entity.MesProductionOrder; +import org.jeecg.modules.pms.entity.PmsProcessBillMaterials; +import org.jeecg.modules.sap.dto.OrderBomDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; import java.io.Serializable; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @Description: 绾胯竟搴撶墿鏂欎俊鎭� * @Author: jeecg-boot - * @Date: 2025-06-30 + * @Date: 2025-06-30 * @Version: V1.0 */ @Service public class LswMaterialServiceImpl extends ServiceImpl<LswMaterialMapper, LswMaterial> implements ILswMaterialService { - @Autowired - private LswMaterialMapper lswMaterialMapper; - @Autowired - private LswMaterialInventoryMapper lswMaterialInventoryMapper; - - @Override - @Transactional(rollbackFor = Exception.class) - public void saveMain(LswMaterial lswMaterial, List<LswMaterialInventory> lswMaterialInventoryList) { - lswMaterialMapper.insert(lswMaterial); - if(lswMaterialInventoryList!=null && lswMaterialInventoryList.size()>0) { - for(LswMaterialInventory entity:lswMaterialInventoryList) { - //澶栭敭璁剧疆 - entity.setMaterialId(lswMaterial.getId()); - lswMaterialInventoryMapper.insert(entity); - } - } - } + @Autowired + private LswMaterialMapper lswMaterialMapper; + @Autowired + private LswMaterialInventoryMapper lswMaterialInventoryMapper; - @Override - @Transactional(rollbackFor = Exception.class) - public void updateMain(LswMaterial lswMaterial,List<LswMaterialInventory> lswMaterialInventoryList) { - lswMaterialMapper.updateById(lswMaterial); - - //1.鍏堝垹闄ゅ瓙琛ㄦ暟鎹� - lswMaterialInventoryMapper.deleteByMainId(lswMaterial.getId()); - - //2.瀛愯〃鏁版嵁閲嶆柊鎻掑叆 - if(lswMaterialInventoryList!=null && lswMaterialInventoryList.size()>0) { - for(LswMaterialInventory entity:lswMaterialInventoryList) { - //澶栭敭璁剧疆 - entity.setMaterialId(lswMaterial.getId()); - lswMaterialInventoryMapper.insert(entity); - } - } - } + @Override + public IPage<Map<String, Object>> getLswMaterialListData(Integer pageNo, Integer pageSize, HttpServletRequest req) { + IPage<Map> pageData = new Page<Map>(pageNo, pageSize); + Map<String, String> paramMap = new HashMap<String, String>(); + Map<String, String[]> parameterMap = req.getParameterMap(); + if (null != parameterMap) { + if (parameterMap.containsKey("materialNumber") && StringUtils.isNotBlank(parameterMap.get("materialNumber")[0])) { + paramMap.put("materialNumber", parameterMap.get("materialNumber")[0]); + } + if (parameterMap.containsKey("materialName") && StringUtils.isNotBlank(parameterMap.get("materialName")[0])) { + paramMap.put("materialName", parameterMap.get("materialName")[0].trim()); + } + if (parameterMap.containsKey("materialModel") && StringUtils.isNotBlank(parameterMap.get("materialModel")[0])) { + paramMap.put("materialModel", parameterMap.get("materialModel")[0].trim()); + } + if (parameterMap.containsKey("materialCategory") && StringUtils.isNotBlank(parameterMap.get("materialCategory")[0])) { + paramMap.put("materialCategory", parameterMap.get("materialCategory")[0].trim()); + } + } + return super.getBaseMapper().getLswMaterialListData(pageData, paramMap); + } - @Override - @Transactional(rollbackFor = Exception.class) - public void delMain(String id) { - lswMaterialInventoryMapper.deleteByMainId(id); - lswMaterialMapper.deleteById(id); - } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editMaterial(LswMaterial lswMaterial) { + LswMaterial entity = this.getBaseMapper().selectById(lswMaterial.getId()); + if (entity == null) { + throw new JeecgBootException("瑕佺紪杈戠殑鏁版嵁涓嶅瓨鍦紒"); + } + entity.setMaterialCategory(lswMaterial.getMaterialCategory()); + this.updateById(entity); + return true; + } - @Override - @Transactional(rollbackFor = Exception.class) - public void delBatchMain(Collection<? extends Serializable> idList) { - for(Serializable id:idList) { - lswMaterialInventoryMapper.deleteByMainId(id.toString()); - lswMaterialMapper.deleteById(id); - } - } + @Override + public LswMaterial queryByMaterialNumber(String materialNumber) { + LambdaQueryWrapper<LswMaterial> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LswMaterial::getMaterialNumber, materialNumber); + queryWrapper.eq(LswMaterial::getDelFlag, CommonConstant.DEL_FLAG_0); + List<LswMaterial> list = this.getBaseMapper().selectList(queryWrapper); + if (CollectionUtil.isEmpty(list)) { + return null; + } + return list.get(0); + } - @Override - public IPage<Map<String, Object>> getLswMaterialListData(Integer pageNo, Integer pageSize, HttpServletRequest req) { - IPage<Map> pageData = new Page<Map>(pageNo, pageSize); - Map<String, String> paramMap = new HashMap<String, String>(); - Map<String, String[]> parameterMap = req.getParameterMap(); - if (null != parameterMap) { - if (parameterMap.containsKey("materialNumber") && StringUtils.isNotBlank(parameterMap.get("materialNumber")[0])) { - paramMap.put("materialNumber", parameterMap.get("materialNumber")[0]); - } - if (parameterMap.containsKey("materialName") && StringUtils.isNotBlank(parameterMap.get("materialName")[0])) { - paramMap.put("materialName", parameterMap.get("materialName")[0].trim()); - } - if (parameterMap.containsKey("materialModel") && StringUtils.isNotBlank(parameterMap.get("materialModel")[0])) { - paramMap.put("materialModel", parameterMap.get("materialModel")[0].trim()); - } - if (parameterMap.containsKey("materialCategory") && StringUtils.isNotBlank(parameterMap.get("materialCategory")[0])) { - paramMap.put("materialCategory", parameterMap.get("materialCategory")[0].trim()); - } - } - return super.getBaseMapper().getLswMaterialListData(pageData, paramMap); - } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveOrUpdateMaterial(Map<String, MesProductionOrder> orderMap, List<OrderBomDTO> orderBomDTOList) { + Map<String, LswMaterial> addMap = new HashMap<>(); + for (Map.Entry<String, MesProductionOrder> entry : orderMap.entrySet()) { + MesProductionOrder order = entry.getValue(); + LswMaterial material = queryByMaterialNumber(order.getMaterialNumber()); + if (material == null) { + //鏂板鐗╂枡 + material = new LswMaterial(); + material.setMaterialStatus(CommonConstant.STATUS_1); + material.setMaterialNumber(order.getMaterialNumber()); + material.setMaterialName(order.getMaterialName()); + material.setMaterialUnit(order.getProductionUnit()); + material.setDelFlag(CommonConstant.DEL_FLAG_0); + addMap.put(material.getMaterialNumber(), material); + } + } + for (OrderBomDTO bomDTO : orderBomDTOList) { + LswMaterial material = queryByMaterialNumber(bomDTO.getMATNR()); + if (material == null) { + //鏂板鐗╂枡 + material = new LswMaterial(); + material.setMaterialStatus(CommonConstant.STATUS_1); + material.setMaterialNumber(bomDTO.getMATNR()); + material.setMaterialName(bomDTO.getMAKTX()); + material.setMaterialUnit(bomDTO.getMEINS()); + material.setDelFlag(CommonConstant.DEL_FLAG_0); + addMap.put(material.getMaterialNumber(), material); + } + } + if (CollectionUtil.isNotEmpty(addMap)) { + Collection<LswMaterial> addList = addMap.values(); + super.saveBatch(addList); + } + return true; + } } -- Gitblit v1.9.3