From d749d506a595648eb0e8a4ac584b0da643b2446d Mon Sep 17 00:00:00 2001 From: gongbaoxiong <751575283@qq.com> Date: Fri, 17 Jan 2025 14:07:02 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=9B=98?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E9=9C=80=E5=90=8C=E6=AD=A5ERP=E6=97=A0?= =?UTF-8?q?=E7=89=A9=E6=96=99=E4=BF=A1=E6=81=AF=E7=9A=84=E7=89=A9=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MdGruopDickServiceImpl.java | 27 +++++++-- .../service/impl/CockpitServiceImpl.java | 55 +++++++++++++++---- .../iostorage/IOStorageController.java | 2 +- .../impl/StIvtIostorinvServiceImpl.java | 3 + .../task/SyncErpBillsScheduleService.java | 3 +- 5 files changed, 69 insertions(+), 21 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 1ea3e6a1..1fd71e5c 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 @@ -3,22 +3,22 @@ package org.nl.wms.md_manage.group_dick.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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 com.kingdee.bos.webapi.sdk.K3CloudApi; import org.apache.commons.lang3.StringUtils; import org.nl.common.TableDataInfo; 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.CodeUtil; -import org.nl.common.utils.IdUtil; -import org.nl.common.utils.RedissonUtils; -import org.nl.common.utils.SecurityUtils; +import org.nl.common.utils.*; 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; @@ -32,6 +32,9 @@ 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; +import org.nl.wms.sync_manage.service.form_mapping.dao.SyncFormMapping; +import org.nl.wms.sync_manage.service.form_mapping.impl.SyncFormMappingServiceImpl; +import org.nl.wms.system_manage.service.quartz.task.SyncErpBillsScheduleService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -59,7 +62,8 @@ import java.util.stream.Collectors; @Service public class MdGruopDickServiceImpl extends ServiceImpl implements IMdGruopDickService { - + @Autowired + private SyncFormMappingServiceImpl syncFormMappingServiceImpl; @Autowired private IMdPbVehicleMaterService iMdPbVehicleMaterService; @Autowired @@ -68,6 +72,10 @@ public class MdGruopDickServiceImpl extends ServiceImpl().eq("material_code", material_code)); if (materialCode == null) { - throw new BadRequestException("第" + (i + 1) +"行,"+material_code+ "物料编码不存在"); + K3CloudApi k3CloudApi = erpServiceUtils.getCloudApi(); + SyncFormMapping syncFormMapping = syncFormMappingServiceImpl.getOne(new LambdaQueryWrapper().in(SyncFormMapping::getForm_type, "BD_MATERIAL")); + String materialMappingString = JSON.toJSONString(syncFormMapping.getMapping_json()); + boolean queryMaterialInfo = syncErpBillsScheduleService.queryMaterialInfo(materialMappingString, "BD_MATERIAL", false, material_code, k3CloudApi); + if (!queryMaterialInfo) { + throw new BadRequestException("第" + (i + 1) + "行," + material_code + "在ERP系统上检索不到相关物料信息,请检查!"); + } + materialCode = mdMeMaterialbaseService.getOne(new QueryWrapper().eq("material_code", material_code)); } materialCode.setSingle_weight(new BigDecimal(single_weight)); //更新单重 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 80b2cedb..5e2058ed 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 @@ -179,29 +179,42 @@ public class CockpitServiceImpl implements CockpitService { obj4.put("total", total4); obj4.put("box", box4); obj4.put("time", time4); - List taskList = cockpitMapper.getTaskListByDays(0); + List taskList1 = cockpitMapper.getTaskListByDays(0); + List taskList = new ArrayList<>(taskList1.stream() + .collect(Collectors.toMap( + task -> task.getVehicle_code() + "_" + task.getCreate_time(), + task -> task, + (existing, replacement) -> existing + )) + .values()); if (ObjectUtil.isNotEmpty(taskList)) { //料箱库入库 List stockList1 = taskList.stream() - .filter(r -> Integer.parseInt(r.getTask_type()) <= 14 && "FStockId".equals(r.getStor_code())) + .filter(r -> Integer.parseInt(r.getTask_type()) <= 12 && "FStockId".equals(r.getStor_code())) .collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(stockList1)) { obj1 = getElapsedTime(obj1, stockList1); } //料箱库出库 List stockList2 = taskList.stream() - .filter(r -> Integer.parseInt(r.getTask_type()) >= 20 && Integer.parseInt(r.getTask_type()) <= 25 && "FStockId".equals(r.getStor_code())) + .filter(r -> (Integer.parseInt(r.getTask_type()) >= 20 && Integer.parseInt(r.getTask_type()) <= 25) && "FStockId".equals(r.getStor_code()) && Integer.parseInt(r.getTask_type()) != 23) .collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(stockList2)) { obj2 = getElapsedTime(obj2, stockList2); } //托盘库入库 - List stockList3 = taskList.stream().filter(r -> "30".equals(r.getTask_type()) && "FStockPallet".equals(r.getStor_code())).collect(Collectors.toList()); + List stockList3 = taskList.stream().filter(r -> (Integer.parseInt(r.getTask_type()) <= 14||Integer.parseInt(r.getTask_type()) == 30)&&r.getVehicle_code().contains("T")).collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(stockList3)) { obj3 = getElapsedTime(obj3, stockList3); } //托盘库出库 - List stockList4 = taskList.stream().filter(r -> "40".equals(r.getTask_type()) && "FStockPallet".equals(r.getStor_code())).collect(Collectors.toList()); + List stockList4 = taskList.stream() + .filter(r -> + ((Integer.parseInt(r.getTask_type()) >= 20 && Integer.parseInt(r.getTask_type()) <= 22) + || Integer.parseInt(r.getTask_type()) == 40) + && r.getVehicle_code().contains("T") + ) + .collect(Collectors.toList()); if (ObjectUtil.isNotEmpty(stockList4)) { obj4 = getElapsedTime(obj4, stockList4); } @@ -268,19 +281,31 @@ public class CockpitServiceImpl implements CockpitService { List> lx_out_default = new ArrayList<>(); List> tp_in_default = new ArrayList<>(); List> tp_out_default = new ArrayList<>(); - List result = cockpitMapper.getTaskCountsByDays(); + List result1= cockpitMapper.getTaskCountsByDays(); + List result = new ArrayList<>(result1.stream() + .collect(Collectors.toMap( + task -> task.getVehicle_code() + "_" + task.getCreate_time(), + task -> task, + (existing, replacement) -> existing + )) + .values()); //料箱库入库 List stockList1 = result.stream() - .filter(r -> Integer.parseInt(r.getTask_type()) <= 14 && "FStockId".equals(r.getStor_code())) + .filter(r -> Integer.parseInt(r.getTask_type()) <= 12 && "FStockId".equals(r.getStor_code())) .collect(Collectors.toList()); //料箱库出库 List stockList2 = result.stream() - .filter(r -> Integer.parseInt(r.getTask_type()) >= 20 && Integer.parseInt(r.getTask_type()) <= 25 && "FStockId".equals(r.getStor_code())) + .filter(r -> Integer.parseInt(r.getTask_type()) >= 20 && Integer.parseInt(r.getTask_type()) <= 22 && "FStockId".equals(r.getStor_code())) .collect(Collectors.toList()); //托盘库入库 - List stockList3 = result.stream().filter(r -> "30".equals(r.getTask_type()) && "FStockPallet".equals(r.getStor_code())).collect(Collectors.toList()); + List stockList3 = result.stream().filter(r -> (Integer.parseInt(r.getTask_type()) <= 14||Integer.parseInt(r.getTask_type()) == 30)&&"T".contains(r.getVehicle_code())).collect(Collectors.toList()); //托盘库出库 - List stockList4 = result.stream().filter(r -> "40".equals(r.getTask_type()) && "FStockPallet".equals(r.getStor_code())).collect(Collectors.toList()); + List stockList4 = result.stream() + .filter(r -> + ((Integer.parseInt(r.getTask_type()) >= 20 && Integer.parseInt(r.getTask_type()) <= 22) + || Integer.parseInt(r.getTask_type()) == 40) + && "T".contains(r.getVehicle_code()) + ).collect(Collectors.toList()); //计算每天的数量 getWeekWorkStatistics(stockList1, lx_in_default, 7); getWeekWorkStatistics(stockList2, lx_out_default, 7); @@ -554,8 +579,14 @@ public class CockpitServiceImpl implements CockpitService { private static JSONObject getElapsedTime(JSONObject item, List stockList1) { double totalHours = 0; //计算数量 - BigDecimal total = stockList1.stream().filter(r -> StringUtils.isNotBlank(r.getUpdate_time())).map(TaskInfo::getQty) - .reduce(BigDecimal.ZERO, BigDecimal::add).setScale(0, RoundingMode.HALF_UP); + BigDecimal total = stockList1.stream() + .filter(r -> StringUtils.isNotBlank(r.getUpdate_time())) + .map(r -> { + BigDecimal qty = r.getQty(); + return (qty == null || BigDecimal.ZERO.compareTo(qty) == 0) ? BigDecimal.ONE : qty; + }) + .reduce(BigDecimal.ZERO, BigDecimal::add) + .setScale(0, RoundingMode.HALF_UP); item.put("total", total); //计算箱数 int box = stockList1.stream().filter(r -> StringUtils.isNotBlank(r.getUpdate_time())) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/IOStorageController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/IOStorageController.java index 520ed90d..964655b4 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/IOStorageController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/IOStorageController.java @@ -54,7 +54,7 @@ public class IOStorageController { @PostMapping("out") @SaIgnore - @Log("手持出库解绑") + @Log("手持出库出库确认") public ResponseEntity outStorage(@RequestBody JSONObject form) { String vehicle_code = form.getString("vehicle_code"); MdPbVehicleMater one = iMdPbVehicleMaterService.getOne(new QueryWrapper() diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java index 0cbb64af..92d11e30 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/io/service/iostor/impl/StIvtIostorinvServiceImpl.java @@ -358,6 +358,9 @@ public class StIvtIostorinvServiceImpl extends ServiceImpl