From fffc968134517ee4fc58cf09d3e4997647f9a4c9 Mon Sep 17 00:00:00 2001 From: zgw <13623675548@163.com> Date: Thu, 8 Jan 2026 11:00:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/ToErpApiController.java | 2 + .../ruoyi/api/mapper/JobStatisticsMapper.java | 17 +++++ .../service/impl/StockScreenServiceImpl.java | 67 ++++++++++------- .../api/service/impl/ToErpServiceImpl.java | 48 ++++++------- .../api/service/impl/ToWcsServiceImpl.java | 2 +- .../api/service/impl/ToWmsServiceImpl.java | 71 +++++++------------ .../mapper/BasCargoSpaceMapper.java | 13 ++++ .../service/IBasCargoSpaceService.java | 13 ++++ .../impl/BasCargoSpaceServiceImpl.java | 10 +++ .../stock/stock/mapper/BasStockMapper.java | 7 ++ .../stock/stock/service/IBasStockService.java | 7 ++ .../service/impl/BasStockServiceImpl.java | 5 ++ .../src/main/java/com/ruoyi/task/ErpTask.java | 22 ++++++ .../src/main/resources/application-druid.yml | 6 +- .../src/main/resources/application.yml | 2 +- .../mapper/api/JobStatisticsMapper.xml | 28 +++++++- .../bas/cargoSpace/BasCargoSpaceMapper.xml | 22 ++++++ .../resources/mapper/stock/BasStockMapper.xml | 8 +++ .../com/ruoyi/common/constant/Constants.java | 2 +- ruoyi-quartz/pom.xml | 1 + .../mapper/quartz/SysJobLogMapper.xml | 12 ++-- .../resources/mapper/quartz/SysJobMapper.xml | 4 +- ruoyi-ui/src/views/bas/traycode/index.vue | 3 +- 23 files changed, 263 insertions(+), 109 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/task/ErpTask.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java index 4944cdb..0cdc003 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToErpApiController.java @@ -7,6 +7,7 @@ import com.ruoyi.bas.BasProduct.domain.BasProduct; import com.ruoyi.bas.BasSupplier.domain.BasSupplier; import com.ruoyi.common.core.domain.AjaxResult; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.*; /** @@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.*; */ @RestController @RequestMapping("/api2erp") +@Component("erpTask") public class ToErpApiController { @Autowired diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java index 15e6b83..a78324f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/mapper/JobStatisticsMapper.java @@ -35,4 +35,21 @@ public interface JobStatisticsMapper { */ public List> selectMonthlyStatistics(@Param("year") int year, @Param("month") int month); + /** + * 查询指定日期范围内的每日入库出库统计 + * + * @param startDate 开始日期 (yyyy-MM-dd) + * @param endDate 结束日期 (yyyy-MM-dd) + * @return 统计列表 + */ + public List> selectDateRangeStatistics(@Param("startDate") String startDate, @Param("endDate") String endDate); + + /** + * 查询当成年每月入库出库统计 + * + * @param year 年份 + * @return 每月统计列表 + */ + public List> selectYearlyStatistics(@Param("year") int year); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/StockScreenServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/StockScreenServiceImpl.java index 0d4f196..03483e9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/StockScreenServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/StockScreenServiceImpl.java @@ -4,8 +4,8 @@ import com.ruoyi.api.service.IStockScreenService; import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper; import com.ruoyi.stock.stock.domain.BasStock; import com.ruoyi.stock.stock.service.IBasStockService; +import com.ruoyi.api.mapper.JobStatisticsMapper; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -13,6 +13,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Service public class StockScreenServiceImpl implements IStockScreenService { @@ -22,7 +23,7 @@ public class StockScreenServiceImpl implements IStockScreenService { @Autowired private BasCargoSpaceMapper basCargoSpaceMapper; @Autowired - private JdbcTemplate jdbcTemplate; + private JobStatisticsMapper jobStatisticsMapper; @Override public Map getAllStocksWithTotal() { @@ -79,28 +80,54 @@ public class StockScreenServiceImpl implements IStockScreenService { public Map getInOutSummary() { java.time.LocalDate now = java.time.LocalDate.now(); java.time.format.DateTimeFormatter dFmt = java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd"); - java.time.format.DateTimeFormatter mFmt = java.time.format.DateTimeFormatter.ofPattern("yyyy-MM"); String todayPrefix = now.format(dFmt); - int dIn = countLike("in_stockin_finish", todayPrefix); - int dOut = countLike("out_stockout_finish", todayPrefix); + + int dIn = jobStatisticsMapper.selectDailyInCount(todayPrefix); + int dOut = jobStatisticsMapper.selectDailyOutCount(todayPrefix); java.time.LocalDate monday = now.with(java.time.DayOfWeek.MONDAY); + java.time.LocalDate sunday = monday.plusDays(6); + String startWeek = monday.format(dFmt); + String endWeek = sunday.format(dFmt); + + List> rangeStats = jobStatisticsMapper.selectDateRangeStatistics(startWeek, endWeek); + Map> statsMap = rangeStats.stream() + .collect(Collectors.toMap(m -> String.valueOf(m.get("date")), m -> m, (k1, k2) -> k1)); + List wkIn = new ArrayList<>(); List wkOut = new ArrayList<>(); for (int i = 0; i < 7; i++) { java.time.LocalDate day = monday.plusDays(i); String p = day.format(dFmt); - wkIn.add(countLike("in_stockin_finish", p)); - wkOut.add(countLike("out_stockout_finish", p)); + Map stat = statsMap.get(p); + if (stat != null) { + wkIn.add(parseInt(stat.get("inCount"))); + wkOut.add(parseInt(stat.get("outCount"))); + } else { + wkIn.add(0); + wkOut.add(0); + } } int year = now.getYear(); + List> yearStats = jobStatisticsMapper.selectYearlyStatistics(year); + Map> yearStatsMap = new HashMap<>(); + for (Map m : yearStats) { + Object monthObj = m.get("month"); + if (monthObj != null) { + yearStatsMap.put(Integer.parseInt(String.valueOf(monthObj)), m); + } + } + List> monthStat = new ArrayList<>(); for (int m = 1; m <= 12; m++) { - java.time.LocalDate mm = java.time.LocalDate.of(year, m, 1); - String mp = mm.format(mFmt); - int mi = countLikeMonth("in_stockin_finish", mp); - int mo = countLikeMonth("out_stockout_finish", mp); + Map stat = yearStatsMap.get(m); + int mi = 0; + int mo = 0; + if (stat != null) { + mi = parseInt(stat.get("inCount")); + mo = parseInt(stat.get("outCount")); + } Map item = new HashMap<>(); item.put("mouth", String.valueOf(m)); item.put("入库", mi); @@ -117,20 +144,12 @@ public class StockScreenServiceImpl implements IStockScreenService { return res; } - private int countLike(String table, String dayPrefix) { + private int parseInt(Object obj) { + if (obj == null) return 0; + if (obj instanceof Number) return ((Number) obj).intValue(); try { - Integer c = jdbcTemplate.queryForObject("SELECT COUNT(1) FROM " + table + " WHERE create_date LIKE ?", Integer.class, dayPrefix + "%"); - return c == null ? 0 : c; - } catch (Exception e) { - return 0; - } - } - - private int countLikeMonth(String table, String monthPrefix) { - try { - Integer c = jdbcTemplate.queryForObject("SELECT COUNT(1) FROM " + table + " WHERE create_date LIKE ?", Integer.class, monthPrefix + "%"); - return c == null ? 0 : c; - } catch (Exception e) { + return Integer.parseInt(obj.toString()); + } catch (NumberFormatException e) { return 0; } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java index 0d48495..39cd7b7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToErpServiceImpl.java @@ -279,20 +279,26 @@ public class ToErpServiceImpl implements IToErpService { @Override public AjaxResult receiveOutStockList() { ErpOutStockListParam erpOutStockListParam = new ErpOutStockListParam(); - OutStockMiddle outStockMiddle = new OutStockMiddle(); - OutStockMiddle outStockMiddle1 = outStockMiddleService.selectOutStockMiddleByStockoutId("1"); - erpOutStockListParam.setDate3_end(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); -// 判断是否有上次访问时间 - if (ObjUtil.isNotNull(outStockMiddle1)){ - erpOutStockListParam.setDate3_start(outStockMiddle1.getCreateDate()); - outStockMiddle1.setCreateDate(erpOutStockListParam.getDate3_end()); - outStockMiddleService.updateOutStockMiddle(outStockMiddle1); - }else { - erpOutStockListParam.setDate3_start(""); - outStockMiddle.setStockoutId("1"); - outStockMiddle.setCreateDate(erpOutStockListParam.getDate3_end()); - outStockMiddleService.insertOutStockMiddle(outStockMiddle); - } +// OutStockMiddle outStockMiddle = new OutStockMiddle(); +// OutStockMiddle outStockMiddle1 = outStockMiddleService.selectOutStockMiddleByStockoutId("1"); +// erpOutStockListParam.setDate3_end(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); +//// 判断是否有上次访问时间 +// if (ObjUtil.isNotNull(outStockMiddle1)){ +// erpOutStockListParam.setDate3_start(outStockMiddle1.getCreateDate()); +// outStockMiddle1.setCreateDate(erpOutStockListParam.getDate3_end()); +// outStockMiddleService.updateOutStockMiddle(outStockMiddle1); +// }else { +// erpOutStockListParam.setDate3_start(""); +// outStockMiddle.setStockoutId("1"); +// outStockMiddle.setCreateDate(erpOutStockListParam.getDate3_end()); +// outStockMiddleService.insertOutStockMiddle(outStockMiddle); +// } + String today = DateUtil.today(); + erpOutStockListParam.setDate3_start(today + " 00:00:00"); + erpOutStockListParam.setDate3_end(today + " 23:59:59"); + erpOutStockListParam.setDate5_start(today + " 00:00:00"); + erpOutStockListParam.setDate5_end(today + " 23:59:59"); + erpOutStockListParam.setTitle("打冷"); erpOutStockListParam.setPage_index(0); erpOutStockListParam.setPage_size(0); erpOutStockListParam.setNeedList(1); @@ -416,8 +422,6 @@ public class ToErpServiceImpl implements IToErpService { outStockoutDetailService.insertOutStockoutDetail(outStockoutDetail); } } - - } return AjaxResult.success(); } @@ -686,7 +690,6 @@ public class ToErpServiceImpl implements IToErpService { private ObjectMapper objectMapper; //获取入库单据 - public AjaxResult getInStock(){ //创建请求体 InStockinNQueryRequest inStockinNQueryRequest = new InStockinNQueryRequest(); @@ -694,12 +697,10 @@ public class ToErpServiceImpl implements IToErpService { inStockinNQueryRequest.setSort1(0); // 设置日期范围为当天 String today = DateUtil.today(); -// inStockinNQueryRequest.setDate3Start(today + " 00:00:00"); -// inStockinNQueryRequest.setDate3End(today + " 23:59:59"); - inStockinNQueryRequest.setDate3Start("2025-11-03" + " 00:00:00"); - inStockinNQueryRequest.setDate3End("2025-11-03" + " 23:59:59"); - inStockinNQueryRequest.setDate5Start("2025-11-03" + " 00:00:00"); - inStockinNQueryRequest.setDate5End("2025-11-03" + " 23:59:59"); + inStockinNQueryRequest.setDate3Start(today + " 00:00:00"); + inStockinNQueryRequest.setDate3End(today + " 23:59:59"); + inStockinNQueryRequest.setDate5Start(today + " 00:00:00"); + inStockinNQueryRequest.setDate5End(today + " 23:59:59"); inStockinNQueryRequest.setTitle("打冷"); inStockinNQueryRequest.setNeedList(1); inStockinNQueryRequest.setPageIndex(1); @@ -920,7 +921,6 @@ public class ToErpServiceImpl implements IToErpService { requestLog.setRequestBody(jsonStr); requestLog.setResponseBody(body); requestLog.setEndpoint(endpoint); - boolean isSuccess = false; try { if (JSONUtil.isTypeJSON(body)) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java index edada2a..3cb5c58 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWcsServiceImpl.java @@ -40,7 +40,7 @@ public class ToWcsServiceImpl implements IToWcsService { @Override -// @Scheduled(fixedDelay=1500) + @Scheduled(fixedDelay=1500) public void pushOutMydoJob() { //查询所有未推送的料箱出库作业 MydoJob mydoJobParam = new MydoJob(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java index 9bb9f8d..902c2f9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java @@ -189,55 +189,38 @@ public class ToWmsServiceImpl implements IToWmsService { //>>>>>>>>>>>>>>获取物料库存信息 -> 有库存 -> 货位(cargospace) -> 存储区组(groupCodingNo) -> 根据groupCoding(由高到低) -> 获取状态1的货位分配 //>>>>>>>>>>>>>>获取物料库存信息 -> 无库存 -> 遍历存储区组(groupCodingNo) -> 查找全部货位空的区组 -> 根据groupCoding(由高到低) -> 获取状态1的货位分配 try { - //获取物料的货位集合 - 首先查找已经存放该物料的存储区 - List stocks = basStockService.selectBasStockListByProductId(productId); + // 1. 查找已存放该物料的存储区组(一次性获取去重后的组列表) + List existingGroups = basStockService.selectGroupCodingNosByProductId(productId); - //如果集合空 - 寻找未被占用的存储区组放货 - if (!stocks.isEmpty()) { - //如果物料已经存放在多个货位(区域) - 去重 - List stocksNew = stocks.stream().distinct().collect(Collectors.toList()); + if (!existingGroups.isEmpty()) { + // 2. 在这些组中查找任意一个空闲货位(status='1') + BasCargoSpace availableSpace = basCargoSpaceService.selectEmptyCargoSpaceInGroups(existingGroups); + if (availableSpace != null) { + // 分配成功,更新状态为3 + availableSpace.setStatus("3"); + basCargoSpaceService.updateBasCargoSpace(availableSpace); + return availableSpace.getCargoSpaceId(); + } + } - //查询对应货位的区域在【BasCargoSpace】是否有空位 - 在groupCodingNo的分组中是否仍然有状态【1】的货位 - for (BasStock stock : stocksNew) { - //获取每种物料的存放货位信息 - BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(stock.getCargoSpaceId()); - - //获取每种物料的存放货位信息 - 存储区 - String group = cargoSpace.getGroupCodingNo(); - - //获取该存储区组的所有货位 - List cargoSpaces = basCargoSpaceService.selectBasCargoSpaceListByGroupCodingNo(group); - - //在集合中获取状态为【1】的货位 - for (BasCargoSpace cs : cargoSpaces) { - //货位状态:1(未占用) -> 返回该货位结果 - if ("1".equals(cs.getStatus())) { - return cs.getCargoSpaceId(); - } + // 3. 如果没有现有组或现有组无空位,查找一个完全空闲的组(001-045) + String emptyGroupNo = basCargoSpaceService.selectFirstEmptyGroupCodingNo(); + + if (emptyGroupNo != null) { + // 4. 在该空闲组中,获取最内侧(groupCoding最大)的货位 + // 复用现有方法 selectBasCargoSpaceListByGroupCodingNo,它已按 group_coding desc 排序 + List cargoSpaces = basCargoSpaceService.selectBasCargoSpaceListByGroupCodingNo(emptyGroupNo); + + if (!cargoSpaces.isEmpty()) { + BasCargoSpace bestSpace = cargoSpaces.get(0); + // 再次确认状态(虽然 selectFirstEmptyGroupCodingNo 保证了组空,但为了安全) + if ("1".equals(bestSpace.getStatus())) { + bestSpace.setStatus("3"); + basCargoSpaceService.updateBasCargoSpace(bestSpace); + return bestSpace.getCargoSpaceId(); } - } } - for (int i = 1; i <= 45; i++) { - BasCargoSpace cargospace = new BasCargoSpace(); - - //存储区 - String groupCodingNo = String.format("%03d", i); - cargospace.setGroupCodingNo(groupCodingNo); - - //获取【groupCodingNo】所有货位 - List cargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(cargospace); - - //判断是否全部未占用,即某存储区全部为空位 - 避免物料混放 - boolean isAllEmpty = cargoSpaces.stream().allMatch(c -> "1".equals(c.getStatus())); - - //区域未占用 - 则分配最内侧货位 - if (isAllEmpty && cargoSpaces.size() > 0) { - cargoSpaces.sort(Comparator.comparing(BasCargoSpace::getGroupCoding).reversed()); - return cargoSpaces.get(0).getCargoSpaceId(); - } - } - } catch (Exception e) { log.error("入库子单获取目标货位失败,异常信息:" + e.getMessage()); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java index 19831be..235f1fa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/mapper/BasCargoSpaceMapper.java @@ -100,5 +100,18 @@ public interface BasCargoSpaceMapper extends BaseMapper */ public List selectCargoSpaceWithStock(); + /** + * 在指定存储区组中查找首个空闲货位 + * @param groups 存储区组列表 + * @return 空闲货位 + */ + public BasCargoSpace selectEmptyCargoSpaceInGroups(@Param("groups") List groups); + + /** + * 查找第一个完全空闲(无占用)的存储区组编号(范围001-045) + * @return 存储区组编号 + */ + public String selectFirstEmptyGroupCodingNo(); + void lockedCargoSpace(BasCargoSpace basCargoSpace); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java index 5b85bdd..ca28903 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/IBasCargoSpaceService.java @@ -38,6 +38,19 @@ public interface IBasCargoSpaceService extends IService */ public List selectBasCargoSpaceListByGroupCodingNo(String groupCodingNo); + /** + * 在指定存储区组中查找首个空闲货位 + * @param groups 存储区组列表 + * @return 空闲货位 + */ + public BasCargoSpace selectEmptyCargoSpaceInGroups(List groups); + + /** + * 查找第一个完全空闲(无占用)的存储区组编号 + * @return 存储区组编号 + */ + public String selectFirstEmptyGroupCodingNo(); + /** * 新增库存信息 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java index 085380b..a1dd589 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/bas/cargoSpace/service/impl/BasCargoSpaceServiceImpl.java @@ -58,6 +58,16 @@ public class BasCargoSpaceServiceImpl extends ServiceImpl groups) { + return basCargoSpaceMapper.selectEmptyCargoSpaceInGroups(groups); + } + + @Override + public String selectFirstEmptyGroupCodingNo() { + return basCargoSpaceMapper.selectFirstEmptyGroupCodingNo(); + } + /** * 新增库存信息 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java index 8e7989f..9cebb38 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/mapper/BasStockMapper.java @@ -29,6 +29,13 @@ public interface BasStockMapper */ public List selectBasStockListByProductId(String productId); + /** + * 查询指定物料所在的存储区组列表(去重) + * @param productId 物料ID + * @return 存储区组列表 + */ + public List selectGroupCodingNosByProductId(String productId); + /** * 查询库存信息列表 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java index 99489bc..c6211c0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/IBasStockService.java @@ -29,6 +29,13 @@ public interface IBasStockService */ public List selectBasStockListByProductId(String productId); + /** + * 查询指定物料所在的存储区组列表(去重) + * @param productId 物料ID + * @return 存储区组列表 + */ + public List selectGroupCodingNosByProductId(String productId); + /** * 查询库存信息列表 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java index 68a0266..dacd1e0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/stock/stock/service/impl/BasStockServiceImpl.java @@ -62,6 +62,11 @@ public class BasStockServiceImpl implements IBasStockService return basStockMapper.selectBasStockListByProductId(productId); } + @Override + public List selectGroupCodingNosByProductId(String productId) { + return basStockMapper.selectGroupCodingNosByProductId(productId); + } + /** * 查询库存信息列表 * diff --git a/ruoyi-admin/src/main/java/com/ruoyi/task/ErpTask.java b/ruoyi-admin/src/main/java/com/ruoyi/task/ErpTask.java new file mode 100644 index 0000000..a44ad1f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/task/ErpTask.java @@ -0,0 +1,22 @@ +package com.ruoyi.task; + +import com.ruoyi.api.service.impl.ToErpServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component("ErpTask") +public class ErpTask { + @Autowired + private ToErpServiceImpl toErpServiceImpl; + public void getInStock(){ + toErpServiceImpl.getInStock(); + } + + public void getOutStock(){ + toErpServiceImpl.receiveOutStockList(); + } + + public void getProductList(){ + toErpServiceImpl.receiveProduct(); + } +} diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 02a8760..7cf9b09 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -2,11 +2,11 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource - driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver + driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver druid: # 主库数据源 master: - url: jdbc:sqlserver://172.16.2.170:1433;databaseName=FT542-wms;encrypt=true;trustServerCertificate=true; + url: jdbc:sqlserver://192.168.10.200:1433;databaseName=FT542-wms;encrypt=true;trustServerCertificate=true username: sa password: Flrd0914. # 从库数据源 @@ -35,7 +35,7 @@ spring: # 配置一个连接在池中最大生存的时间,单位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置检测连接是否有效 - validationQuery: SELECT 1 FROM sys_oper_log + validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 7529151..3a86da9 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -71,7 +71,7 @@ spring: # redis 配置 redis: # 地址 - host: 172.16.2.170 + host: 192.168.10.200 # 端口,默认为6379 port: 6379 # 数据库索引 diff --git a/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml b/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml index ed4264c..2c64c01 100644 --- a/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/api/JobStatisticsMapper.xml @@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT COUNT(1) FROM mydo_job_finish WHERE CONVERT(varchar(10), create_time, 120) = #{createTime} - AND in_or_out >= 20 + AND in_or_out > 20 @@ -25,7 +25,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT DAY(create_time) as date, SUM(CASE WHEN in_or_out < 20 THEN 1 ELSE 0 END) as '入库', - SUM(CASE WHEN in_or_out >= 20 THEN 1 ELSE 0 END) as '出库' + SUM(CASE WHEN in_or_out > 20 THEN 1 ELSE 0 END) as '出库' FROM mydo_job_finish WHERE YEAR(create_time) = #{year} AND MONTH(create_time) = #{month} @@ -33,4 +33,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY date + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml index 85e1340..ab4eb85 100644 --- a/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/bas/cargoSpace/BasCargoSpaceMapper.xml @@ -263,4 +263,26 @@ and bs.spare7 = #{spare7} and bs.stock_status = #{stockStatus} + + + + diff --git a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml index 62d9745..86a0594 100644 --- a/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/stock/BasStockMapper.xml @@ -225,6 +225,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where bs.product_id = #{productId} + + insert into bas_stock diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java index b1d4775..7e5aac1 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java @@ -163,7 +163,7 @@ public class Constants /** * 定时任务白名单配置(仅允许访问的包名,如其他需要可以自行添加) */ - public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.quartz.task" }; + public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.quartz.task" ,"com.ruoyi.task"}; /** * 定时任务违规的字符 diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml index 68e3e1d..62bdf46 100644 --- a/ruoyi-quartz/pom.xml +++ b/ruoyi-quartz/pom.xml @@ -35,6 +35,7 @@ ruoyi-common + \ No newline at end of file diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml index ba1b683..cda3d7b 100644 --- a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml @@ -36,11 +36,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND invoke_target like concat('%', #{invokeTarget}, '%') - and date_format(create_time,'%Y%m%d') >= date_format(#{params.beginTime},'%Y%m%d') - - - and date_format(create_time,'%Y%m%d') <= date_format(#{params.endTime},'%Y%m%d') - + and convert(varchar(8), create_time, 112) >= convert(varchar(8), cast(#{params.beginTime} as datetime), 112) + + + and convert(varchar(8), create_time, 112) <= convert(varchar(8), cast(#{params.endTime} as datetime), 112) + order by create_time desc @@ -87,7 +87,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{jobMessage}, #{status}, #{exceptionInfo}, - sysdate() + GETDATE() ) diff --git a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml index 5605c44..1a22aa7 100644 --- a/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml +++ b/ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml @@ -75,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" status = #{status}, remark = #{remark}, update_by = #{updateBy}, - update_time = sysdate() + update_time = GETDATE() where job_id = #{jobId} @@ -104,7 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{status}, #{remark}, #{createBy}, - sysdate() + GETDATE() ) diff --git a/ruoyi-ui/src/views/bas/traycode/index.vue b/ruoyi-ui/src/views/bas/traycode/index.vue index b25c25b..cc3a8f3 100644 --- a/ruoyi-ui/src/views/bas/traycode/index.vue +++ b/ruoyi-ui/src/views/bas/traycode/index.vue @@ -194,7 +194,8 @@ format="CODE39" width="2" height="100" - display-value + font-options="bold" + font-size="28" />