From 8a8cee04d8a2b0c0d1afbab8ff6e31902245f748 Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Sun, 22 Dec 2024 01:45:33 +0800 Subject: [PATCH] =?UTF-8?q?opt=EF=BC=9A=E4=BF=AE=E5=A4=8D=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=E6=97=B6=E9=97=B4=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MdGruopDickServiceImpl.java | 92 ++++++++++++++----- .../service/impl/CockpitServiceImpl.java | 22 ++++- .../cockpit/service/mapper/CockpitMapper.xml | 41 ++++----- .../service/impl/PmFormDataServiceImpl.java | 2 +- 4 files changed, 108 insertions(+), 49 deletions(-) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java index 8e76ad2c..4fed827f 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/md_manage/group_dick/service/impl/MdGruopDickServiceImpl.java @@ -1,12 +1,12 @@ package org.nl.wms.md_manage.group_dick.service.impl; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import org.apache.commons.lang3.StringUtils; @@ -15,19 +15,20 @@ import org.nl.common.domain.constant.DictConstantPool; import org.nl.common.domain.entity.PageQuery; import org.nl.common.domain.exception.BadRequestException; import org.nl.common.enums.StatusEnum; -import org.nl.common.utils.*; +import org.nl.common.utils.CodeUtil; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.RedissonUtils; +import org.nl.common.utils.SecurityUtils; import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService; import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase; import org.nl.wms.base_manage.vehicle.service.IBmVehicleInfoService; import org.nl.wms.base_manage.vehicle.service.dao.BmVehicleInfo; -import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; -import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; - +import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService; import org.nl.wms.md_manage.group_dick.service.dao.MdGruopDick; import org.nl.wms.md_manage.group_dick.service.dao.mapper.MdGruopDickMapper; -import org.nl.wms.md_manage.group_dick.service.IMdGruopDickService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.nl.wms.md_manage.group_dick.service.dto.GroupDickQuery; +import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; +import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; import org.nl.wms.md_manage.vehicleMater.service.dto.MdPbVehicleMaterVo; import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; @@ -45,7 +46,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Consumer; import java.util.stream.Collectors; /** @@ -160,16 +160,53 @@ public class MdGruopDickServiceImpl extends ServiceImpl0){ List collect = tmpCount1.stream().filter(mdPbVehicleMater -> mdPbVehicleMater.getNeed_pick()&&mdPbVehicleMater.getVehicle_code().contains("T")).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(collect)){ + if (!CollectionUtils.isEmpty(collect)) { String vehicles = collect.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.joining(",")); - throw new BadRequestException("载具"+vehicles+"为拣选回库无需组盘"); + throw new BadRequestException("载具" + vehicles + "为拣选回库无需组盘"); } - throw new BadRequestException("组盘失败:载具已经存在组盘信息"+tmpCount1.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.joining(","))); + throw new BadRequestException("组盘失败:载具已经存在组盘信息" + tmpCount1.stream().map(MdPbVehicleMater::getVehicle_code).collect(Collectors.joining(","))); } this.saveBatch(map.values()); iMdPbVehicleMaterService.saveBatch(vehicleMaters); } + + /** + * 无单重物料导入修改 + */ + + @Transactional + public void excelImport1(MultipartFile file, HttpServletRequest request, HttpServletResponse response) { + try { + InputStream inputStream = file.getInputStream(); + ExcelReader excelReader = ExcelUtil.getReader(inputStream); + List> read = excelReader.read(); + if (read.size() > 1) { + for (int i = 1; i < read.size(); i++) { + List list = read.get(i); + String material_code = (String) list.get(0); + String single_weight = String.valueOf(list.get(1)); + if (StringUtils.isEmpty(material_code) || StringUtils.isEmpty(single_weight)) { + throw new BadRequestException("第" + (i + 1) + "行数据不全"); + } + MdMeMaterialbase materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper().eq("material_code", material_code)); + if (materialCode == null) { + throw new BadRequestException(material_code + "物料编码不存在"); + } + materialCode.setSingle_weight(new BigDecimal(single_weight)); + //更新单重 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(MdMeMaterialbase::getNearby_weight, new BigDecimal(single_weight)); + updateWrapper.eq(MdMeMaterialbase::getMaterial_id, materialCode.getMaterial_id()); + mdMeMaterialbaseService.update(updateWrapper); + + } + } + } catch (Exception ex) { + throw new BadRequestException("导入失败" + ex.getMessage()); + } + } + @Override @Transactional public void excelImport(MultipartFile file, HttpServletRequest request, HttpServletResponse response) { @@ -178,30 +215,37 @@ public class MdGruopDickServiceImpl extends ServiceImpl> read = excelReader.read(); String now = DateUtil.now(); - if (read.size()>1){ + if (read.size() > 1) { List groups = new ArrayList<>(); List vms = new ArrayList<>(); for (int i = 1; i < read.size(); i++) { List list = read.get(i); - String vehicle_code = (String)list.get(0); - String material_code = (String)list.get(1); - String pcsn = (String)list.get(2); + String vehicle_code = (String) list.get(0); + String material_code = (String) list.get(1); + String pcsn = (String) list.get(2); String qty = String.valueOf(list.get(3)); - if (StringUtils.isEmpty(vehicle_code)||StringUtils.isEmpty(material_code)||StringUtils.isEmpty(pcsn)||StringUtils.isEmpty(qty)){ - throw new BadRequestException("第"+(i+1)+"行数据不全"); + String single_weight = String.valueOf(list.get(4)); + if (StringUtils.isEmpty(vehicle_code) || StringUtils.isEmpty(material_code) || StringUtils.isEmpty(pcsn) || StringUtils.isEmpty(qty) || StringUtils.isEmpty(single_weight)) { + throw new BadRequestException("第" + (i + 1) + "行数据不全"); } BmVehicleInfo vehicleInfo = iBmVehicleInfoService.vehileInfo(vehicle_code); - if (vehicleInfo==null){ - throw new BadRequestException(vehicle_code+"载具信息不存在"); + if (vehicleInfo == null) { + throw new BadRequestException(vehicle_code + "载具信息不存在"); } List vehicleMaters = iMdPbVehicleMaterService.getVehicleMaters(vehicle_code); - if (!CollectionUtils.isEmpty(vehicleMaters)){ - throw new BadRequestException(vehicle_code+"存在信息,先出库确认在使用"); + if (!CollectionUtils.isEmpty(vehicleMaters)) { + throw new BadRequestException(vehicle_code + "存在信息,先出库确认在使用"); } MdMeMaterialbase materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper().eq("material_code", material_code)); - if (materialCode==null){ - throw new BadRequestException(material_code+"物料编码不存在"); + if (materialCode == null) { + throw new BadRequestException(material_code + "物料编码不存在"); } + materialCode.setSingle_weight(new BigDecimal(single_weight)); + //更新单重 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(MdMeMaterialbase::getNearby_weight, new BigDecimal(single_weight)); + updateWrapper.eq(MdMeMaterialbase::getMaterial_id, materialCode.getMaterial_id()); + mdMeMaterialbaseService.update(updateWrapper); MdGruopDick dick = new MdGruopDick(); dick.setVehicle_code(vehicle_code); dick.setCode(CodeUtil.getNewCode("md_group_dick")); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/impl/CockpitServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/impl/CockpitServiceImpl.java index f6bd42ee..b5dd0224 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/impl/CockpitServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/impl/CockpitServiceImpl.java @@ -174,7 +174,7 @@ public class CockpitServiceImpl implements CockpitService { obj4.put("total", total4); obj4.put("box", box4); obj4.put("time", time4); - List taskList = cockpitMapper.getTaskListByDays(7); + List taskList = cockpitMapper.getTaskListByDays(0); if (ObjectUtil.isNotEmpty(taskList)) { //料箱库入库 List stockList1 = taskList.stream() @@ -442,7 +442,13 @@ public class CockpitServiceImpl implements CockpitService { if (StringUtils.isNotBlank(task.getCreate_time()) && StringUtils.isNotBlank(task.getUpdate_time())) { LocalDateTime createTime = LocalDateTime.parse(task.getCreate_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); LocalDateTime updateTime = LocalDateTime.parse(task.getUpdate_time(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - return Duration.between(createTime, updateTime); + // 计算时间间隔 + Duration duration = Duration.between(createTime, updateTime); + //时间间隔大于10分钟,就是异常任务,默认为5分钟最长出入库时间 + if (duration.toMinutes() >= 15) { + duration = Duration.ofMinutes(5); + } + return duration; } else { return Duration.ZERO; } @@ -463,11 +469,21 @@ public class CockpitServiceImpl implements CockpitService { real_qty_default.add(item); } if (ObjectUtil.isNotEmpty(real_qty)) { + //计算数量 + // Map ghRealQtyMap = real_qty.stream() + // .filter(r -> StringUtils.isNotBlank(r.getUpdate_time())) + // .collect(Collectors.groupingBy( + // TaskInfo::getCreate_time, + // Collectors.reducing(BigDecimal.ZERO, TaskInfo::getQty, BigDecimal::add) + // )); Map ghRealQtyMap = real_qty.stream() .filter(r -> StringUtils.isNotBlank(r.getUpdate_time())) .collect(Collectors.groupingBy( TaskInfo::getCreate_time, - Collectors.reducing(BigDecimal.ZERO, TaskInfo::getQty, BigDecimal::add) + Collectors.reducing(BigDecimal.ZERO, task -> { + int boxCount = task.getVehicle_code().split(",").length; + return BigDecimal.valueOf(boxCount); + }, BigDecimal::add) )); real_qty_default.forEach(tbItem -> { String date = (String) tbItem.get("date"); diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/mapper/CockpitMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/mapper/CockpitMapper.xml index d2f514cb..3b22e5c9 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/mapper/CockpitMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/cockpit/service/mapper/CockpitMapper.xml @@ -13,18 +13,19 @@