From 8e3f72e0ae505afb9024ebb47b8f6fa58f81f4f9 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Thu, 10 Jul 2025 09:26:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AE=B0=E5=BD=95=E8=A1=A8?= =?UTF-8?q?=20=20wcs=E5=AF=B9=E5=A4=96=E6=8E=A5=E5=8F=A3=20=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=96=99=E6=9E=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/ToWmsApiController.java | 61 ++++ .../com/ruoyi/api/domain/WmsJobRequest.java | 23 ++ .../com/ruoyi/api/service/IToWmsService.java | 17 + .../api/service/impl/ToWmsServiceImpl.java | 95 +++++ .../service/impl/MydoJobServiceImpl.java | 5 +- .../mydojobdetail/domain/MydoJobDetail.java | 10 + .../log/controller/RequestLogController.java | 104 ++++++ .../java/com/ruoyi/log/domain/RequestLog.java | 247 +++++++++++++ .../ruoyi/log/mapper/RequestLogMapper.java | 61 ++++ .../ruoyi/log/service/IRequestLogService.java | 61 ++++ .../service/impl/RequestLogServiceImpl.java | 93 +++++ .../OutExceptionRecordController.java | 8 +- .../domain/OutExceptionRecord.java | 36 +- .../mapper/OutExceptionRecordMapper.java | 21 +- .../service/IOutExceptionRecordService.java | 20 +- .../impl/OutExceptionRecordServiceImpl.java | 24 +- .../controller/OutPickSubmitController.java | 104 ++++++ .../out/submit/domain/OutPickSubmit.java | 112 ++++++ .../submit/mapper/OutPickSubmitMapper.java | 61 ++++ .../submit/service/IOutPickSubmitService.java | 61 ++++ .../impl/OutPickSubmitServiceImpl.java | 93 +++++ .../ruoyi/pda/controller/PdaController.java | 20 +- .../com/ruoyi/pda/service/PdaService.java | 2 + .../com/ruoyi/pda/service/PdaServiceImp.java | 86 ++++- .../mapper/out/OutPickSubmitMapper.xml | 76 ++++ .../requestInterface/RequestLogMapper.xml | 121 ++++++ ruoyi-ui/src/api/requestInterface/log.js | 44 +++ .../src/views/requestInterface/log/index.vue | 344 ++++++++++++++++++ 28 files changed, 1934 insertions(+), 76 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/domain/WmsJobRequest.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/log/controller/RequestLogController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/log/domain/RequestLog.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/log/mapper/RequestLogMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java rename ruoyi-admin/src/main/java/com/ruoyi/out/{ => exception}/controller/OutExceptionRecordController.java (95%) rename ruoyi-admin/src/main/java/com/ruoyi/out/{ => exception}/domain/OutExceptionRecord.java (77%) rename ruoyi-admin/src/main/java/com/ruoyi/out/{ => exception}/mapper/OutExceptionRecordMapper.java (87%) rename ruoyi-admin/src/main/java/com/ruoyi/out/{ => exception}/service/IOutExceptionRecordService.java (87%) rename ruoyi-admin/src/main/java/com/ruoyi/out/{ => exception}/service/impl/OutExceptionRecordServiceImpl.java (88%) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/submit/controller/OutPickSubmitController.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/submit/mapper/OutPickSubmitMapper.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/IOutPickSubmitService.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/impl/OutPickSubmitServiceImpl.java create mode 100644 ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml create mode 100644 ruoyi-admin/src/main/resources/mapper/requestInterface/RequestLogMapper.xml create mode 100644 ruoyi-ui/src/api/requestInterface/log.js create mode 100644 ruoyi-ui/src/views/requestInterface/log/index.vue diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java new file mode 100644 index 0000000..06ed460 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/controller/ToWmsApiController.java @@ -0,0 +1,61 @@ +package com.ruoyi.api.controller; + +import com.ruoyi.api.domain.WmsJobRequest; +import com.ruoyi.api.service.IToWmsService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.job.mydojob.domain.MydoJob; +import com.ruoyi.job.mydojob.service.IMydoJobService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 作业统计 Controller + */ +@RestController +@RequestMapping("/api2wms") +public class ToWmsApiController { + + @Autowired + private IToWmsService toWmsService; + + /** + * 入库任务请求 + */ + @PostMapping("/inJob") + public AjaxResult inJob(@RequestBody MydoJob mydoJob) { + return toWmsService.inJob(mydoJob); + } + + /** + * 入库、出库 任务完成回传 + * Map + * "wmsType": "任务类型" 1-入库 2-出库 3-agv搬运, + * taskNo:出库 入库任务号 + * trayCode:托盘码 + * positionCode1:起点 + * positionCode2:终点 + * containerCode:容器编码 + * + */ + @PostMapping("/jobFinish") + public AjaxResult jobFinish(@RequestBody WmsJobRequest wmsJobRequest) { + return toWmsService.jobFinish(wmsJobRequest); + } + + /** + * 放货有货,重新分配货位 + */ + @GetMapping("/reAssign") + public AjaxResult reAssign(MydoJob mydoJob) { + return AjaxResult.success(); + } + + /** + * 取货无货,重新分配物料 + */ + @GetMapping("/reMaterial") + public AjaxResult reMaterial(MydoJob mydoJob) { + return AjaxResult.success(); + } + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/domain/WmsJobRequest.java b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/WmsJobRequest.java new file mode 100644 index 0000000..2a348f2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/domain/WmsJobRequest.java @@ -0,0 +1,23 @@ +package com.ruoyi.api.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class WmsJobRequest { + //wms任务类型 1 入库 2-出库 3-agv任务 + private String wmsType; + //wms任务号 + private String taskNo; + //托盘编码 + private String trayCode; + //料架编码 + private String containerCode; + //起点 + private String positionCode1; + //终点 + private String positionCode2; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java new file mode 100644 index 0000000..86adcf0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/IToWmsService.java @@ -0,0 +1,17 @@ +package com.ruoyi.api.service; + +import com.ruoyi.api.domain.WmsJobRequest; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.job.mydojob.domain.MydoJob; + +import java.util.Map; + +/** + * 作业统计 Service 接口 + */ +public interface IToWmsService { + + AjaxResult inJob(MydoJob mydoJob); + + AjaxResult jobFinish(WmsJobRequest wmsJobRequest); +} 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 new file mode 100644 index 0000000..d638eb9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/service/impl/ToWmsServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.api.service.impl; + +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpUtil; +import com.ruoyi.api.domain.WmsJobRequest; +import com.ruoyi.api.mapper.JobStatisticsMapper; +import com.ruoyi.api.service.IJobStatisticsService; +import com.ruoyi.api.service.IToWmsService; +import com.ruoyi.bas.cargoSpace.mapper.BasCargoSpaceMapper; +import com.ruoyi.bas.container.domain.BasContainer; +import com.ruoyi.bas.container.service.IBasContainerService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.job.mydojob.domain.MydoJob; +import com.ruoyi.job.mydojob.mapper.MydoJobMapper; +import com.ruoyi.job.mydojob.service.IMydoJobService; +import org.aspectj.weaver.loadtime.Aj; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 作业统计 Service 实现 + */ +@Service +public class ToWmsServiceImpl implements IToWmsService { + @Autowired + private IMydoJobService mydoJobService; + @Autowired + private IBasContainerService basContainerService; + + + @Override + public AjaxResult inJob(MydoJob mydoJob) { + List mydoJobs = mydoJobService.selectMydoJobList(mydoJob); + if(mydoJobs.isEmpty()){ + return AjaxResult.error("此托盘没有作业"); + } + return AjaxResult.success(mydoJobs.get(0)); + } + + @Override + public AjaxResult jobFinish(WmsJobRequest wmsJobRequest) { + MydoJob mydoJobParam = new MydoJob(); + switch (wmsJobRequest.getWmsType()){ + case "1": + //入库 + mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo()); + mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode()); + List inMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam); + if (inMydoJobs.isEmpty()){ + return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo()); + } + MydoJob inMydoJob = inMydoJobs.get(0); + mydoJobService.manualCompleted(inMydoJob); + break; + case "2": + //出库 + mydoJobParam.setTaskNo(wmsJobRequest.getTaskNo()); + mydoJobParam.setTrayCode(wmsJobRequest.getTrayCode()); + List outMydoJobs = mydoJobService.selectMydoJobList(mydoJobParam); + if (outMydoJobs.isEmpty()){ + return AjaxResult.error("没有该作业 taskNo: {}", wmsJobRequest.getTaskNo()); + } + //mydoJobService.OuthandFinish(outMydoJobs.stream().map(MydoJob::getJobId).toArray(String[]::new)); + //todo 同步电子标签 + + break; + case "3": + //agv搬运作业 + //绑定料架和点位 + BasContainer basContainerParam = new BasContainer(); + basContainerParam.setContainerId(wmsJobRequest.getContainerCode()); + basContainerParam.setPortName(wmsJobRequest.getPositionCode1()); + List basContainers = basContainerService.selectBasContainerList(basContainerParam); + if (basContainers.isEmpty()){ + return AjaxResult.error("没有该料架 {}", wmsJobRequest.getContainerCode()); + } + //修改绑定点位 + BasContainer basContainer = basContainers.get(0); + basContainer.setPortName(wmsJobRequest.getPositionCode2()); + basContainerService.updateBasContainer(basContainer); + break; + default: + return AjaxResult.error("作业类型错误"); + } + return null; + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java index 1ff8a8f..575e343 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojob/service/impl/MydoJobServiceImpl.java @@ -1,7 +1,6 @@ package com.ruoyi.job.mydojob.service.impl; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -23,10 +22,10 @@ import com.ruoyi.in.stockindetail.domain.InStockinDetail; import com.ruoyi.in.stockindetail.service.IInStockinDetailService; import com.ruoyi.job.mydojobdetail.domain.MydoJobDetail; import com.ruoyi.job.mydojobdetail.service.IMydoJobDetailService; -import com.ruoyi.out.domain.OutExceptionRecord; +import com.ruoyi.out.exception.domain.OutExceptionRecord; import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail; import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService; -import com.ruoyi.out.service.IOutExceptionRecordService; +import com.ruoyi.out.exception.service.IOutExceptionRecordService; import com.ruoyi.stock.stock.domain.BasStock; import com.ruoyi.stock.stock.service.IBasStockService; import org.springframework.beans.factory.annotation.Autowired; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java index 74430fe..694d7e0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/mydojobdetail/domain/MydoJobDetail.java @@ -126,6 +126,16 @@ public class MydoJobDetail extends BaseEntity //额外字段 private ExtraField extraField; private String pickQuantityReal; + //绑定容器物品数量 + private String pickBindQuantity; + + public String getPickBindQuantity() { + return pickBindQuantity; + } + + public void setPickBindQuantity(String pickBindQuantity) { + this.pickBindQuantity = pickBindQuantity; + } public String getPickQuantityReal() { return pickQuantityReal; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/controller/RequestLogController.java b/ruoyi-admin/src/main/java/com/ruoyi/log/controller/RequestLogController.java new file mode 100644 index 0000000..3376539 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/controller/RequestLogController.java @@ -0,0 +1,104 @@ +package com.ruoyi.log.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.log.domain.RequestLog; +import com.ruoyi.log.service.IRequestLogService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 接口记录Controller + * + * @author ruoyi + * @date 2025-07-02 + */ +@RestController +@RequestMapping("/requestInterface/log") +public class RequestLogController extends BaseController +{ + @Autowired + private IRequestLogService requestLogService; + + /** + * 查询接口记录列表 + */ + @PreAuthorize("@ss.hasPermi('requestInterface:log:list')") + @GetMapping("/list") + public TableDataInfo list(RequestLog requestLog) + { + startPage(); + List list = requestLogService.selectRequestLogList(requestLog); + return getDataTable(list); + } + + /** + * 导出接口记录列表 + */ + @PreAuthorize("@ss.hasPermi('requestInterface:log:export')") + @Log(title = "接口记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RequestLog requestLog) + { + List list = requestLogService.selectRequestLogList(requestLog); + ExcelUtil util = new ExcelUtil(RequestLog.class); + util.exportExcel(response, list, "接口记录数据"); + } + + /** + * 获取接口记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('requestInterface:log:query')") + @GetMapping(value = "/{requestId}") + public AjaxResult getInfo(@PathVariable("requestId") Long requestId) + { + return success(requestLogService.selectRequestLogByRequestId(requestId)); + } + + /** + * 新增接口记录 + */ + @PreAuthorize("@ss.hasPermi('requestInterface:log:add')") + @Log(title = "接口记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RequestLog requestLog) + { + return toAjax(requestLogService.insertRequestLog(requestLog)); + } + + /** + * 修改接口记录 + */ + @PreAuthorize("@ss.hasPermi('requestInterface:log:edit')") + @Log(title = "接口记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RequestLog requestLog) + { + return toAjax(requestLogService.updateRequestLog(requestLog)); + } + + /** + * 删除接口记录 + */ + @PreAuthorize("@ss.hasPermi('requestInterface:log:remove')") + @Log(title = "接口记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{requestIds}") + public AjaxResult remove(@PathVariable Long[] requestIds) + { + return toAjax(requestLogService.deleteRequestLogByRequestIds(requestIds)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/domain/RequestLog.java b/ruoyi-admin/src/main/java/com/ruoyi/log/domain/RequestLog.java new file mode 100644 index 0000000..871bfad --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/domain/RequestLog.java @@ -0,0 +1,247 @@ +package com.ruoyi.log.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 接口记录对象 request_log + * + * @author ruoyi + * @date 2025-07-02 + */ +public class RequestLog extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 请求id */ + private Long requestId; + + /** 请求时间 */ + @Excel(name = "请求时间") + private String requestTime; + + /** 来源系统 */ + @Excel(name = "来源系统") + private String sourceSystem; + + /** 目标系统 */ + @Excel(name = "目标系统") + private String targetSystem; + + /** 接口名称 */ + @Excel(name = "接口名称") + private String endpoint; + + /** 请求URL */ + @Excel(name = "请求URL") + private String requestUrl; + + /** 请求方式 */ + @Excel(name = "请求方式") + private String requestMethod; + + /** 请求头信息 */ + @Excel(name = "请求头信息") + private String requestHeaders; + + /** 请求参数 */ + @Excel(name = "请求参数") + private String requestBody; + + /** 响应时间 */ + @Excel(name = "响应时间") + private String responseTime; + + /** 响应主体 */ + @Excel(name = "响应主体") + private String responseBody; + + /** 响应状态 */ + @Excel(name = "响应状态") + private String responseStatus; + + /** 错误信息 */ + @Excel(name = "错误信息") + private String errorDetails; + + /** 耗时 */ + @Excel(name = "耗时") + private String duration; + + /** 是否成功 */ + @Excel(name = "是否成功") + private String isSuccessful; + + public void setRequestId(Long requestId) + { + this.requestId = requestId; + } + + public Long getRequestId() + { + return requestId; + } + + public void setRequestTime(String requestTime) + { + this.requestTime = requestTime; + } + + public String getRequestTime() + { + return requestTime; + } + + public void setSourceSystem(String sourceSystem) + { + this.sourceSystem = sourceSystem; + } + + public String getSourceSystem() + { + return sourceSystem; + } + + public void setTargetSystem(String targetSystem) + { + this.targetSystem = targetSystem; + } + + public String getTargetSystem() + { + return targetSystem; + } + + public void setEndpoint(String endpoint) + { + this.endpoint = endpoint; + } + + public String getEndpoint() + { + return endpoint; + } + + public void setRequestUrl(String requestUrl) + { + this.requestUrl = requestUrl; + } + + public String getRequestUrl() + { + return requestUrl; + } + + public void setRequestMethod(String requestMethod) + { + this.requestMethod = requestMethod; + } + + public String getRequestMethod() + { + return requestMethod; + } + + public void setRequestHeaders(String requestHeaders) + { + this.requestHeaders = requestHeaders; + } + + public String getRequestHeaders() + { + return requestHeaders; + } + + public void setRequestBody(String requestBody) + { + this.requestBody = requestBody; + } + + public String getRequestBody() + { + return requestBody; + } + + public void setResponseTime(String responseTime) + { + this.responseTime = responseTime; + } + + public String getResponseTime() + { + return responseTime; + } + + public void setResponseBody(String responseBody) + { + this.responseBody = responseBody; + } + + public String getResponseBody() + { + return responseBody; + } + + public void setResponseStatus(String responseStatus) + { + this.responseStatus = responseStatus; + } + + public String getResponseStatus() + { + return responseStatus; + } + + public void setErrorDetails(String errorDetails) + { + this.errorDetails = errorDetails; + } + + public String getErrorDetails() + { + return errorDetails; + } + + public void setDuration(String duration) + { + this.duration = duration; + } + + public String getDuration() + { + return duration; + } + + public void setIsSuccessful(String isSuccessful) + { + this.isSuccessful = isSuccessful; + } + + public String getIsSuccessful() + { + return isSuccessful; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("requestId", getRequestId()) + .append("requestTime", getRequestTime()) + .append("sourceSystem", getSourceSystem()) + .append("targetSystem", getTargetSystem()) + .append("endpoint", getEndpoint()) + .append("requestUrl", getRequestUrl()) + .append("requestMethod", getRequestMethod()) + .append("requestHeaders", getRequestHeaders()) + .append("requestBody", getRequestBody()) + .append("responseTime", getResponseTime()) + .append("responseBody", getResponseBody()) + .append("responseStatus", getResponseStatus()) + .append("errorDetails", getErrorDetails()) + .append("duration", getDuration()) + .append("isSuccessful", getIsSuccessful()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/mapper/RequestLogMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/log/mapper/RequestLogMapper.java new file mode 100644 index 0000000..a933ec2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/mapper/RequestLogMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.log.mapper; + +import java.util.List; +import com.ruoyi.log.domain.RequestLog; + +/** + * 接口记录Mapper接口 + * + * @author ruoyi + * @date 2025-07-02 + */ +public interface RequestLogMapper +{ + /** + * 查询接口记录 + * + * @param requestId 接口记录主键 + * @return 接口记录 + */ + public RequestLog selectRequestLogByRequestId(Long requestId); + + /** + * 查询接口记录列表 + * + * @param requestLog 接口记录 + * @return 接口记录集合 + */ + public List selectRequestLogList(RequestLog requestLog); + + /** + * 新增接口记录 + * + * @param requestLog 接口记录 + * @return 结果 + */ + public int insertRequestLog(RequestLog requestLog); + + /** + * 修改接口记录 + * + * @param requestLog 接口记录 + * @return 结果 + */ + public int updateRequestLog(RequestLog requestLog); + + /** + * 删除接口记录 + * + * @param requestId 接口记录主键 + * @return 结果 + */ + public int deleteRequestLogByRequestId(Long requestId); + + /** + * 批量删除接口记录 + * + * @param requestIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRequestLogByRequestIds(Long[] requestIds); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java b/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java new file mode 100644 index 0000000..06013a8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/service/IRequestLogService.java @@ -0,0 +1,61 @@ +package com.ruoyi.log.service; + +import java.util.List; +import com.ruoyi.log.domain.RequestLog; + +/** + * 接口记录Service接口 + * + * @author ruoyi + * @date 2025-07-02 + */ +public interface IRequestLogService +{ + /** + * 查询接口记录 + * + * @param requestId 接口记录主键 + * @return 接口记录 + */ + public RequestLog selectRequestLogByRequestId(Long requestId); + + /** + * 查询接口记录列表 + * + * @param requestLog 接口记录 + * @return 接口记录集合 + */ + public List selectRequestLogList(RequestLog requestLog); + + /** + * 新增接口记录 + * + * @param requestLog 接口记录 + * @return 结果 + */ + public int insertRequestLog(RequestLog requestLog); + + /** + * 修改接口记录 + * + * @param requestLog 接口记录 + * @return 结果 + */ + public int updateRequestLog(RequestLog requestLog); + + /** + * 批量删除接口记录 + * + * @param requestIds 需要删除的接口记录主键集合 + * @return 结果 + */ + public int deleteRequestLogByRequestIds(Long[] requestIds); + + /** + * 删除接口记录信息 + * + * @param requestId 接口记录主键 + * @return 结果 + */ + public int deleteRequestLogByRequestId(Long requestId); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java new file mode 100644 index 0000000..3a4de16 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/log/service/impl/RequestLogServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.log.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.log.mapper.RequestLogMapper; +import com.ruoyi.log.domain.RequestLog; +import com.ruoyi.log.service.IRequestLogService; + +/** + * 接口记录Service业务层处理 + * + * @author ruoyi + * @date 2025-07-02 + */ +@Service +public class RequestLogServiceImpl implements IRequestLogService +{ + @Autowired + private RequestLogMapper requestLogMapper; + + /** + * 查询接口记录 + * + * @param requestId 接口记录主键 + * @return 接口记录 + */ + @Override + public RequestLog selectRequestLogByRequestId(Long requestId) + { + return requestLogMapper.selectRequestLogByRequestId(requestId); + } + + /** + * 查询接口记录列表 + * + * @param requestLog 接口记录 + * @return 接口记录 + */ + @Override + public List selectRequestLogList(RequestLog requestLog) + { + return requestLogMapper.selectRequestLogList(requestLog); + } + + /** + * 新增接口记录 + * + * @param requestLog 接口记录 + * @return 结果 + */ + @Override + public int insertRequestLog(RequestLog requestLog) + { + return requestLogMapper.insertRequestLog(requestLog); + } + + /** + * 修改接口记录 + * + * @param requestLog 接口记录 + * @return 结果 + */ + @Override + public int updateRequestLog(RequestLog requestLog) + { + return requestLogMapper.updateRequestLog(requestLog); + } + + /** + * 批量删除接口记录 + * + * @param requestIds 需要删除的接口记录主键 + * @return 结果 + */ + @Override + public int deleteRequestLogByRequestIds(Long[] requestIds) + { + return requestLogMapper.deleteRequestLogByRequestIds(requestIds); + } + + /** + * 删除接口记录信息 + * + * @param requestId 接口记录主键 + * @return 结果 + */ + @Override + public int deleteRequestLogByRequestId(Long requestId) + { + return requestLogMapper.deleteRequestLogByRequestId(requestId); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/controller/OutExceptionRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/controller/OutExceptionRecordController.java similarity index 95% rename from ruoyi-admin/src/main/java/com/ruoyi/out/controller/OutExceptionRecordController.java rename to ruoyi-admin/src/main/java/com/ruoyi/out/exception/controller/OutExceptionRecordController.java index 40d4104..2722e5b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/controller/OutExceptionRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/controller/OutExceptionRecordController.java @@ -1,4 +1,4 @@ -package com.ruoyi.out.controller; +package com.ruoyi.out.exception.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -16,14 +16,14 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.out.domain.OutExceptionRecord; -import com.ruoyi.out.service.IOutExceptionRecordService; +import com.ruoyi.out.exception.domain.OutExceptionRecord; +import com.ruoyi.out.exception.service.IOutExceptionRecordService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; /** * 出库异常Controller - * + * * @author ruoyi * @date 2025-07-01 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/domain/OutExceptionRecord.java b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/domain/OutExceptionRecord.java similarity index 77% rename from ruoyi-admin/src/main/java/com/ruoyi/out/domain/OutExceptionRecord.java rename to ruoyi-admin/src/main/java/com/ruoyi/out/exception/domain/OutExceptionRecord.java index f14a228..42ff181 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/domain/OutExceptionRecord.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/domain/OutExceptionRecord.java @@ -1,4 +1,4 @@ -package com.ruoyi.out.domain; +package com.ruoyi.out.exception.domain; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -7,7 +7,7 @@ import com.ruoyi.common.core.domain.BaseEntity; /** * 出库异常对象 out_exception_record - * + * * @author ruoyi * @date 2025-07-01 */ @@ -46,82 +46,82 @@ public class OutExceptionRecord extends BaseEntity @Excel(name = "备用3") private String spare3; - public void setOutGuid(Long outGuid) + public void setOutGuid(Long outGuid) { this.outGuid = outGuid; } - public Long getOutGuid() + public Long getOutGuid() { return outGuid; } - public void setWarehouseId(String warehouseId) + public void setWarehouseId(String warehouseId) { this.warehouseId = warehouseId; } - public String getWarehouseId() + public String getWarehouseId() { return warehouseId; } - public void setStockId(String stockId) + public void setStockId(String stockId) { this.stockId = stockId; } - public String getStockId() + public String getStockId() { return stockId; } - public void setTrayCode(String trayCode) + public void setTrayCode(String trayCode) { this.trayCode = trayCode; } - public String getTrayCode() + public String getTrayCode() { return trayCode; } - public void setProductId(String productId) + public void setProductId(String productId) { this.productId = productId; } - public String getProductId() + public String getProductId() { return productId; } - public void setSpare1(String spare1) + public void setSpare1(String spare1) { this.spare1 = spare1; } - public String getSpare1() + public String getSpare1() { return spare1; } - public void setSpare2(String spare2) + public void setSpare2(String spare2) { this.spare2 = spare2; } - public String getSpare2() + public String getSpare2() { return spare2; } - public void setSpare3(String spare3) + public void setSpare3(String spare3) { this.spare3 = spare3; } - public String getSpare3() + public String getSpare3() { return spare3; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/mapper/OutExceptionRecordMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/mapper/OutExceptionRecordMapper.java similarity index 87% rename from ruoyi-admin/src/main/java/com/ruoyi/out/mapper/OutExceptionRecordMapper.java rename to ruoyi-admin/src/main/java/com/ruoyi/out/exception/mapper/OutExceptionRecordMapper.java index b2a655e..22d39e7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/mapper/OutExceptionRecordMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/mapper/OutExceptionRecordMapper.java @@ -1,19 +1,20 @@ -package com.ruoyi.out.mapper; +package com.ruoyi.out.exception.mapper; + +import com.ruoyi.out.exception.domain.OutExceptionRecord; import java.util.List; -import com.ruoyi.out.domain.OutExceptionRecord; /** * 出库异常Mapper接口 - * + * * @author ruoyi * @date 2025-07-01 */ -public interface OutExceptionRecordMapper +public interface OutExceptionRecordMapper { /** * 查询出库异常 - * + * * @param outGuid 出库异常主键 * @return 出库异常 */ @@ -21,7 +22,7 @@ public interface OutExceptionRecordMapper /** * 查询出库异常列表 - * + * * @param outExceptionRecord 出库异常 * @return 出库异常集合 */ @@ -29,7 +30,7 @@ public interface OutExceptionRecordMapper /** * 新增出库异常 - * + * * @param outExceptionRecord 出库异常 * @return 结果 */ @@ -37,7 +38,7 @@ public interface OutExceptionRecordMapper /** * 修改出库异常 - * + * * @param outExceptionRecord 出库异常 * @return 结果 */ @@ -45,7 +46,7 @@ public interface OutExceptionRecordMapper /** * 删除出库异常 - * + * * @param outGuid 出库异常主键 * @return 结果 */ @@ -53,7 +54,7 @@ public interface OutExceptionRecordMapper /** * 批量删除出库异常 - * + * * @param outGuids 需要删除的数据主键集合 * @return 结果 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/service/IOutExceptionRecordService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/service/IOutExceptionRecordService.java similarity index 87% rename from ruoyi-admin/src/main/java/com/ruoyi/out/service/IOutExceptionRecordService.java rename to ruoyi-admin/src/main/java/com/ruoyi/out/exception/service/IOutExceptionRecordService.java index 85ef77c..2284d39 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/service/IOutExceptionRecordService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/service/IOutExceptionRecordService.java @@ -1,19 +1,19 @@ -package com.ruoyi.out.service; +package com.ruoyi.out.exception.service; import java.util.List; -import com.ruoyi.out.domain.OutExceptionRecord; +import com.ruoyi.out.exception.domain.OutExceptionRecord; /** * 出库异常Service接口 - * + * * @author ruoyi * @date 2025-07-01 */ -public interface IOutExceptionRecordService +public interface IOutExceptionRecordService { /** * 查询出库异常 - * + * * @param outGuid 出库异常主键 * @return 出库异常 */ @@ -21,7 +21,7 @@ public interface IOutExceptionRecordService /** * 查询出库异常列表 - * + * * @param outExceptionRecord 出库异常 * @return 出库异常集合 */ @@ -29,7 +29,7 @@ public interface IOutExceptionRecordService /** * 新增出库异常 - * + * * @param outExceptionRecord 出库异常 * @return 结果 */ @@ -37,7 +37,7 @@ public interface IOutExceptionRecordService /** * 修改出库异常 - * + * * @param outExceptionRecord 出库异常 * @return 结果 */ @@ -45,7 +45,7 @@ public interface IOutExceptionRecordService /** * 批量删除出库异常 - * + * * @param outGuids 需要删除的出库异常主键集合 * @return 结果 */ @@ -53,7 +53,7 @@ public interface IOutExceptionRecordService /** * 删除出库异常信息 - * + * * @param outGuid 出库异常主键 * @return 结果 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/service/impl/OutExceptionRecordServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/service/impl/OutExceptionRecordServiceImpl.java similarity index 88% rename from ruoyi-admin/src/main/java/com/ruoyi/out/service/impl/OutExceptionRecordServiceImpl.java rename to ruoyi-admin/src/main/java/com/ruoyi/out/exception/service/impl/OutExceptionRecordServiceImpl.java index bb3826a..65741bd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/out/service/impl/OutExceptionRecordServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/exception/service/impl/OutExceptionRecordServiceImpl.java @@ -1,27 +1,27 @@ -package com.ruoyi.out.service.impl; +package com.ruoyi.out.exception.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.ruoyi.out.mapper.OutExceptionRecordMapper; -import com.ruoyi.out.domain.OutExceptionRecord; -import com.ruoyi.out.service.IOutExceptionRecordService; +import com.ruoyi.out.exception.mapper.OutExceptionRecordMapper; +import com.ruoyi.out.exception.domain.OutExceptionRecord; +import com.ruoyi.out.exception.service.IOutExceptionRecordService; /** * 出库异常Service业务层处理 - * + * * @author ruoyi * @date 2025-07-01 */ @Service -public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService +public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService { @Autowired private OutExceptionRecordMapper outExceptionRecordMapper; /** * 查询出库异常 - * + * * @param outGuid 出库异常主键 * @return 出库异常 */ @@ -33,7 +33,7 @@ public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService /** * 查询出库异常列表 - * + * * @param outExceptionRecord 出库异常 * @return 出库异常 */ @@ -45,7 +45,7 @@ public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService /** * 新增出库异常 - * + * * @param outExceptionRecord 出库异常 * @return 结果 */ @@ -57,7 +57,7 @@ public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService /** * 修改出库异常 - * + * * @param outExceptionRecord 出库异常 * @return 结果 */ @@ -69,7 +69,7 @@ public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService /** * 批量删除出库异常 - * + * * @param outGuids 需要删除的出库异常主键 * @return 结果 */ @@ -81,7 +81,7 @@ public class OutExceptionRecordServiceImpl implements IOutExceptionRecordService /** * 删除出库异常信息 - * + * * @param outGuid 出库异常主键 * @return 结果 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/controller/OutPickSubmitController.java b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/controller/OutPickSubmitController.java new file mode 100644 index 0000000..20c1adf --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/controller/OutPickSubmitController.java @@ -0,0 +1,104 @@ +package com.ruoyi.out.submit.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.out.submit.domain.OutPickSubmit; +import com.ruoyi.out.submit.service.IOutPickSubmitService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 出库拣选缓存记录Controller + * + * @author ruoyi + * @date 2025-07-10 + */ +@RestController +@RequestMapping("/out/submit") +public class OutPickSubmitController extends BaseController +{ + @Autowired + private IOutPickSubmitService outPickSubmitService; + + /** + * 查询出库拣选缓存记录列表 + */ + @PreAuthorize("@ss.hasPermi('out:submit:list')") + @GetMapping("/list") + public TableDataInfo list(OutPickSubmit outPickSubmit) + { + startPage(); + List list = outPickSubmitService.selectOutPickSubmitList(outPickSubmit); + return getDataTable(list); + } + + /** + * 导出出库拣选缓存记录列表 + */ + @PreAuthorize("@ss.hasPermi('out:submit:export')") + @Log(title = "出库拣选缓存记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, OutPickSubmit outPickSubmit) + { + List list = outPickSubmitService.selectOutPickSubmitList(outPickSubmit); + ExcelUtil util = new ExcelUtil(OutPickSubmit.class); + util.exportExcel(response, list, "出库拣选缓存记录数据"); + } + + /** + * 获取出库拣选缓存记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('out:submit:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(outPickSubmitService.selectOutPickSubmitById(id)); + } + + /** + * 新增出库拣选缓存记录 + */ + @PreAuthorize("@ss.hasPermi('out:submit:add')") + @Log(title = "出库拣选缓存记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody OutPickSubmit outPickSubmit) + { + return toAjax(outPickSubmitService.insertOutPickSubmit(outPickSubmit)); + } + + /** + * 修改出库拣选缓存记录 + */ + @PreAuthorize("@ss.hasPermi('out:submit:edit')") + @Log(title = "出库拣选缓存记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody OutPickSubmit outPickSubmit) + { + return toAjax(outPickSubmitService.updateOutPickSubmit(outPickSubmit)); + } + + /** + * 删除出库拣选缓存记录 + */ + @PreAuthorize("@ss.hasPermi('out:submit:remove')") + @Log(title = "出库拣选缓存记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(outPickSubmitService.deleteOutPickSubmitByIds(ids)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java new file mode 100644 index 0000000..bba0a66 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/domain/OutPickSubmit.java @@ -0,0 +1,112 @@ +package com.ruoyi.out.submit.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 出库拣选缓存记录对象 out_pick_submit + * + * @author ruoyi + * @date 2025-07-10 + */ +public class OutPickSubmit extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 托盘码 */ + @Excel(name = "托盘码") + private String trayCode; + + /** 任务id */ + @Excel(name = "任务id") + private String jobId; + + /** 子任务id */ + @Excel(name = "子任务id") + private String jobDetailId; + + /** 物料编码 */ + @Excel(name = "物料编码") + private String productId; + + /** 物料数量 */ + @Excel(name = "物料数量") + private String quantit; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + + public void setTrayCode(String trayCode) + { + this.trayCode = trayCode; + } + + public String getTrayCode() + { + return trayCode; + } + + public void setJobId(String jobId) + { + this.jobId = jobId; + } + + public String getJobId() + { + return jobId; + } + + public void setJobDetailId(String jobDetailId) + { + this.jobDetailId = jobDetailId; + } + + public String getJobDetailId() + { + return jobDetailId; + } + + public void setProductId(String productId) + { + this.productId = productId; + } + + public String getProductId() + { + return productId; + } + + public void setQuantit(String quantit) + { + this.quantit = quantit; + } + + public String getQuantit() + { + return quantit; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("trayCode", getTrayCode()) + .append("jobId", getJobId()) + .append("jobDetailId", getJobDetailId()) + .append("productId", getProductId()) + .append("quantit", getQuantit()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/mapper/OutPickSubmitMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/mapper/OutPickSubmitMapper.java new file mode 100644 index 0000000..aecebd9 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/mapper/OutPickSubmitMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.out.submit.mapper; + +import java.util.List; +import com.ruoyi.out.submit.domain.OutPickSubmit; + +/** + * 出库拣选缓存记录Mapper接口 + * + * @author ruoyi + * @date 2025-07-10 + */ +public interface OutPickSubmitMapper +{ + /** + * 查询出库拣选缓存记录 + * + * @param id 出库拣选缓存记录主键 + * @return 出库拣选缓存记录 + */ + public OutPickSubmit selectOutPickSubmitById(Long id); + + /** + * 查询出库拣选缓存记录列表 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 出库拣选缓存记录集合 + */ + public List selectOutPickSubmitList(OutPickSubmit outPickSubmit); + + /** + * 新增出库拣选缓存记录 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 结果 + */ + public int insertOutPickSubmit(OutPickSubmit outPickSubmit); + + /** + * 修改出库拣选缓存记录 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 结果 + */ + public int updateOutPickSubmit(OutPickSubmit outPickSubmit); + + /** + * 删除出库拣选缓存记录 + * + * @param id 出库拣选缓存记录主键 + * @return 结果 + */ + public int deleteOutPickSubmitById(Long id); + + /** + * 批量删除出库拣选缓存记录 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteOutPickSubmitByIds(Long[] ids); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/IOutPickSubmitService.java b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/IOutPickSubmitService.java new file mode 100644 index 0000000..4bce272 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/IOutPickSubmitService.java @@ -0,0 +1,61 @@ +package com.ruoyi.out.submit.service; + +import java.util.List; +import com.ruoyi.out.submit.domain.OutPickSubmit; + +/** + * 出库拣选缓存记录Service接口 + * + * @author ruoyi + * @date 2025-07-10 + */ +public interface IOutPickSubmitService +{ + /** + * 查询出库拣选缓存记录 + * + * @param id 出库拣选缓存记录主键 + * @return 出库拣选缓存记录 + */ + public OutPickSubmit selectOutPickSubmitById(Long id); + + /** + * 查询出库拣选缓存记录列表 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 出库拣选缓存记录集合 + */ + public List selectOutPickSubmitList(OutPickSubmit outPickSubmit); + + /** + * 新增出库拣选缓存记录 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 结果 + */ + public int insertOutPickSubmit(OutPickSubmit outPickSubmit); + + /** + * 修改出库拣选缓存记录 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 结果 + */ + public int updateOutPickSubmit(OutPickSubmit outPickSubmit); + + /** + * 批量删除出库拣选缓存记录 + * + * @param ids 需要删除的出库拣选缓存记录主键集合 + * @return 结果 + */ + public int deleteOutPickSubmitByIds(Long[] ids); + + /** + * 删除出库拣选缓存记录信息 + * + * @param id 出库拣选缓存记录主键 + * @return 结果 + */ + public int deleteOutPickSubmitById(Long id); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/impl/OutPickSubmitServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/impl/OutPickSubmitServiceImpl.java new file mode 100644 index 0000000..8026ddf --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/out/submit/service/impl/OutPickSubmitServiceImpl.java @@ -0,0 +1,93 @@ +package com.ruoyi.out.submit.service.impl; + +import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.out.submit.mapper.OutPickSubmitMapper; +import com.ruoyi.out.submit.domain.OutPickSubmit; +import com.ruoyi.out.submit.service.IOutPickSubmitService; + +/** + * 出库拣选缓存记录Service业务层处理 + * + * @author ruoyi + * @date 2025-07-10 + */ +@Service +public class OutPickSubmitServiceImpl implements IOutPickSubmitService +{ + @Autowired + private OutPickSubmitMapper outPickSubmitMapper; + + /** + * 查询出库拣选缓存记录 + * + * @param id 出库拣选缓存记录主键 + * @return 出库拣选缓存记录 + */ + @Override + public OutPickSubmit selectOutPickSubmitById(Long id) + { + return outPickSubmitMapper.selectOutPickSubmitById(id); + } + + /** + * 查询出库拣选缓存记录列表 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 出库拣选缓存记录 + */ + @Override + public List selectOutPickSubmitList(OutPickSubmit outPickSubmit) + { + return outPickSubmitMapper.selectOutPickSubmitList(outPickSubmit); + } + + /** + * 新增出库拣选缓存记录 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 结果 + */ + @Override + public int insertOutPickSubmit(OutPickSubmit outPickSubmit) + { + return outPickSubmitMapper.insertOutPickSubmit(outPickSubmit); + } + + /** + * 修改出库拣选缓存记录 + * + * @param outPickSubmit 出库拣选缓存记录 + * @return 结果 + */ + @Override + public int updateOutPickSubmit(OutPickSubmit outPickSubmit) + { + return outPickSubmitMapper.updateOutPickSubmit(outPickSubmit); + } + + /** + * 批量删除出库拣选缓存记录 + * + * @param ids 需要删除的出库拣选缓存记录主键 + * @return 结果 + */ + @Override + public int deleteOutPickSubmitByIds(Long[] ids) + { + return outPickSubmitMapper.deleteOutPickSubmitByIds(ids); + } + + /** + * 删除出库拣选缓存记录信息 + * + * @param id 出库拣选缓存记录主键 + * @return 结果 + */ + @Override + public int deleteOutPickSubmitById(Long id) + { + return outPickSubmitMapper.deleteOutPickSubmitById(id); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java index ce5fb0c..57cad65 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/controller/PdaController.java @@ -73,7 +73,6 @@ public class PdaController extends BaseController { */ @RequestMapping("/emptyTrayIn") @ResponseBody - @Log(title = "空托盘入库", businessType = BusinessType.INSERT) public AjaxResult emptyTrayIn(@RequestBody TrayCodeMsg trayCodeMsg) { BasWarehouse basWarehouse = basWarehouseService.selectBasWarehouseByWarehouseId(trayCodeMsg.getWarehouseId()); if (basWarehouse == null) { @@ -87,7 +86,7 @@ public class PdaController extends BaseController { basCargoSpace.setWarehouseId(trayCodeMsg.getWarehouseId()); basCargoSpace.setStatus("1"); List basCargoSpaces = basCargoSpaceService.selectBasCargoSpaceList(basCargoSpace); - if (basCargoSpaces.size() == 0) { + if (basCargoSpaces.isEmpty()) { return AjaxResult.error("此仓库没有空余货位"); } else { trayCodeMsg.setCargoSpaceId(basCargoSpaces.get(0).getCargoSpaceId()); @@ -122,7 +121,7 @@ public class PdaController extends BaseController { basStock.setWarehouseId(warehouseId); List basStockList = basStockService.selectKtpStock(basStock); - if (basStockList.size() != 0) { + if (!basStockList.isEmpty()) { return AjaxResult.success(basStockList); } else { return AjaxResult.error("此区域没有空托盘库存"); @@ -306,7 +305,7 @@ public class PdaController extends BaseController { public AjaxResult taskList(@RequestBody TrayCodeMsg trayCodeMsg) { List basWarehouses = basWarehouseService.selectBasWarehouseList(new BasWarehouse()); List mydoJobArrayList = new ArrayList<>(); - if(basWarehouses.size() != 0){ + if(!basWarehouses.isEmpty()){ for(BasWarehouse basWarehouse : basWarehouses){ @@ -356,7 +355,7 @@ public class PdaController extends BaseController { mydoJob.setTrayCode(trayCodeMsg.getTrayCode()); mydoJob.setStatus(trayCodeMsg.getStatus()); List mydoJobs = mydoJobService.selectMydoJobList(mydoJob); - if(mydoJobs.size() == 0){ + if(mydoJobs.isEmpty()){ return AjaxResult.error("此托盘没有作业"); } MydoJobDetail mydoJobDetail = new MydoJobDetail(); @@ -407,5 +406,16 @@ public class PdaController extends BaseController { } + + /** + * 绑定料架 + * @param trayCodeMakeSure + * @return + */ + @PostMapping("/bindContainer") + @ResponseBody + public AjaxResult bindContainer(@RequestBody TrayCodeMakeSure trayCodeMakeSure) { + return pdaService.bindContainer(trayCodeMakeSure); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java index 3006c56..e22991d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaService.java @@ -35,4 +35,6 @@ public interface PdaService { AjaxResult outException(TrayCodeMakeSure trayCodeMakeSure); AjaxResult agvRequest(BasContainer basContainer); + + AjaxResult bindContainer(TrayCodeMakeSure trayCodeMakeSure); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java index 7db6b58..ae1a1a2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/pda/service/PdaServiceImp.java @@ -26,6 +26,8 @@ import com.ruoyi.out.outStockout.domain.OutStockout; import com.ruoyi.out.outStockout.service.IOutStockoutService; import com.ruoyi.out.outStockoutDetail.domain.OutStockoutDetail; import com.ruoyi.out.outStockoutDetail.service.IOutStockoutDetailService; +import com.ruoyi.out.submit.domain.OutPickSubmit; +import com.ruoyi.out.submit.service.IOutPickSubmitService; import com.ruoyi.pda.domain.TrayCodeMakeSure; import com.ruoyi.pda.domain.TrayCodeMsg; import com.ruoyi.pda.mapper.PdaMapper; @@ -76,6 +78,8 @@ public class PdaServiceImp implements PdaService { private BasProductPortMapper basProductPortMapper; @Autowired private IBasStockService basStockService; + @Autowired + private IOutPickSubmitService outPickSubmitService; /** * 空托盘入库 @@ -304,22 +308,26 @@ public class PdaServiceImp implements PdaService { mydoJobDetailOld.setPickQuantity(oldPickQuantity.add(newPickQuantity).toString()); mydoJobDetailService.updateMydoJobDetail(mydoJobDetailOld); - //绑定容器 - BasContainerDetails basContainerDetailsParam = new BasContainerDetails(); - basContainerDetailsParam.setContainerId(trayCodeMakeSure.getContainerCode()); - basContainerDetailsParam.setProductId(mydoJobDetailOld.getProductId()); - List basContainerDetails = basContainerDetailsService.selectBasContainerDetailsList(basContainerDetailsParam); - if (CollUtil.isNotEmpty(basContainerDetails)){ - BasContainerDetails oldBasContainerDetails = basContainerDetails.get(0); - oldBasContainerDetails.setQuantity(oldBasContainerDetails.getQuantity()+Convert.toLong(mydoJobDetail.getPickQuantity())); - basContainerDetailsService.updateBasContainerDetails(oldBasContainerDetails); + OutPickSubmit outPickSubmitParam = new OutPickSubmit(); + //outPickSubmitParam.setJobId(mydoJob.getJobId()); + //outPickSubmitParam.setJobDetailId(mydoJobDetail.getJobDetailId()); + outPickSubmitParam.setTrayCode(trayCodeMakeSure.getTrayCode()); + List outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam); + if (outPickSubmits.isEmpty()){ + //存入中间表 + OutPickSubmit outPickSubmit = new OutPickSubmit(); + outPickSubmit.setJobId(mydoJob.getJobId()); + outPickSubmit.setJobDetailId(mydoJobDetail.getJobDetailId()); + outPickSubmit.setProductId(mydoJobDetail.getProductId()); + outPickSubmit.setQuantit(mydoJobDetail.getPickQuantity()); + outPickSubmit.setTrayCode(trayCodeMakeSure.getTrayCode()); + outPickSubmitService.insertOutPickSubmit(outPickSubmit); }else { - BasContainerDetails newBasContainerDetails = new BasContainerDetails(); - newBasContainerDetails.setContainerId(trayCodeMakeSure.getContainerCode()); - newBasContainerDetails.setProductId(mydoJobDetail.getProductId()); - newBasContainerDetails.setQuantity(Convert.toLong(mydoJobDetail.getPickQuantity())); - basContainerDetailsService.insertBasContainerDetails(newBasContainerDetails); + OutPickSubmit oldOutPickSubmit = outPickSubmits.get(0); + oldOutPickSubmit.setQuantit(Convert.toBigDecimal(oldOutPickSubmit.getQuantit()).add(Convert.toBigDecimal(mydoJobDetail.getPickQuantity())).toString()); + outPickSubmitService.updateOutPickSubmit(oldOutPickSubmit); } + //bindContainer(trayCodeMakeSure, mydoJobDetail, mydoJobDetailOld); //修改单据实际数量 String inOrOutDId = mydoJobDetailOld.getInOrOutDId(); @@ -349,6 +357,8 @@ public class PdaServiceImp implements PdaService { } } + + @Override @Transactional(rollbackFor = Exception.class) public AjaxResult checkMakeSure(TrayCodeMakeSure trayCodeMakeSure) { @@ -485,4 +495,52 @@ public class PdaServiceImp implements PdaService { return null; } + + @Override + public AjaxResult bindContainer(TrayCodeMakeSure trayCodeMakeSure) { + if (CollUtil.isEmpty(trayCodeMakeSure.getMydoJobDetailList())){ + return AjaxResult.warn("请选择提供绑定数量"); + } + if (StrUtil.isEmpty(trayCodeMakeSure.getContainerCode())){ + return AjaxResult.warn("请选择绑定容器"); + } + for (MydoJobDetail mydoJobDetail : trayCodeMakeSure.getMydoJobDetailList()) { + //绑定容器 + BasContainerDetails basContainerDetailsParam = new BasContainerDetails(); + basContainerDetailsParam.setContainerId(trayCodeMakeSure.getContainerCode()); + basContainerDetailsParam.setProductId(mydoJobDetail.getProductId()); + List basContainerDetails = basContainerDetailsService.selectBasContainerDetailsList(basContainerDetailsParam); + if (CollUtil.isNotEmpty(basContainerDetails)){ + BasContainerDetails oldBasContainerDetails = basContainerDetails.get(0); + oldBasContainerDetails.setQuantity(oldBasContainerDetails.getQuantity()+Convert.toLong(mydoJobDetail.getPickBindQuantity())); + basContainerDetailsService.updateBasContainerDetails(oldBasContainerDetails); + }else { + BasContainerDetails newBasContainerDetails = new BasContainerDetails(); + newBasContainerDetails.setContainerId(trayCodeMakeSure.getContainerCode()); + newBasContainerDetails.setProductId(mydoJobDetail.getProductId()); + newBasContainerDetails.setQuantity(Convert.toLong(mydoJobDetail.getPickBindQuantity())); + basContainerDetailsService.insertBasContainerDetails(newBasContainerDetails); + } + //减少中间表数量 + OutPickSubmit outPickSubmitParam = new OutPickSubmit(); + //outPickSubmitParam.setJobId(mydoJobDetail.getJobId()); + //outPickSubmitParam.setJobDetailId(mydoJobDetail.getJobDetailId()); + outPickSubmitParam.setTrayCode(trayCodeMakeSure.getTrayCode()); + List outPickSubmits = outPickSubmitService.selectOutPickSubmitList(outPickSubmitParam); + for (OutPickSubmit outPickSubmit : outPickSubmits) { + BigDecimal subtract = Convert.toBigDecimal(outPickSubmit.getQuantit()).subtract(Convert.toBigDecimal(mydoJobDetail.getPickBindQuantity())); + if (subtract.compareTo(BigDecimal.ZERO) == 0){ + //删除缓存信息 + outPickSubmitService.deleteOutPickSubmitById(outPickSubmit.getId()); + }else if (subtract.compareTo(BigDecimal.ZERO) < 0){ + return AjaxResult.warn("绑定数量不能大于实际数量"); + }else { + outPickSubmit.setQuantit(subtract.toString()); + outPickSubmitService.updateOutPickSubmit(outPickSubmit); + } + } + } + return AjaxResult.success("绑定成功"); + } + } diff --git a/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml b/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml new file mode 100644 index 0000000..2d06799 --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/out/OutPickSubmitMapper.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + select id, tray_code, job_id, job_detail_id, product_id, quantit from out_pick_submit + + + + + + + + insert into out_pick_submit + + tray_code, + job_id, + job_detail_id, + product_id, + quantit, + + + #{trayCode}, + #{jobId}, + #{jobDetailId}, + #{productId}, + #{quantit}, + + + + + update out_pick_submit + + tray_code = #{trayCode}, + job_id = #{jobId}, + job_detail_id = #{jobDetailId}, + product_id = #{productId}, + quantit = #{quantit}, + + where id = #{id} + + + + delete from out_pick_submit where id = #{id} + + + + delete from out_pick_submit where id in + + #{id} + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/requestInterface/RequestLogMapper.xml b/ruoyi-admin/src/main/resources/mapper/requestInterface/RequestLogMapper.xml new file mode 100644 index 0000000..794571f --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/requestInterface/RequestLogMapper.xml @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + select request_id, request_time, source_system, target_system, endpoint, request_url, request_method, request_headers, request_body, response_time, response_body, response_status, error_details, duration, Is_successful from request_log + + + + + + + + insert into request_log + + request_time, + source_system, + target_system, + endpoint, + request_url, + request_method, + request_headers, + request_body, + response_time, + response_body, + response_status, + error_details, + duration, + Is_successful, + + + #{requestTime}, + #{sourceSystem}, + #{targetSystem}, + #{endpoint}, + #{requestUrl}, + #{requestMethod}, + #{requestHeaders}, + #{requestBody}, + #{responseTime}, + #{responseBody}, + #{responseStatus}, + #{errorDetails}, + #{duration}, + #{isSuccessful}, + + + + + update request_log + + request_time = #{requestTime}, + source_system = #{sourceSystem}, + target_system = #{targetSystem}, + endpoint = #{endpoint}, + request_url = #{requestUrl}, + request_method = #{requestMethod}, + request_headers = #{requestHeaders}, + request_body = #{requestBody}, + response_time = #{responseTime}, + response_body = #{responseBody}, + response_status = #{responseStatus}, + error_details = #{errorDetails}, + duration = #{duration}, + Is_successful = #{isSuccessful}, + + where request_id = #{requestId} + + + + delete from request_log where request_id = #{requestId} + + + + delete from request_log where request_id in + + #{requestId} + + + \ No newline at end of file diff --git a/ruoyi-ui/src/api/requestInterface/log.js b/ruoyi-ui/src/api/requestInterface/log.js new file mode 100644 index 0000000..123dca1 --- /dev/null +++ b/ruoyi-ui/src/api/requestInterface/log.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询接口记录列表 +export function listLog(query) { + return request({ + url: '/requestInterface/log/list', + method: 'get', + params: query + }) +} + +// 查询接口记录详细 +export function getLog(requestId) { + return request({ + url: '/requestInterface/log/' + requestId, + method: 'get' + }) +} + +// 新增接口记录 +export function addLog(data) { + return request({ + url: '/requestInterface/log', + method: 'post', + data: data + }) +} + +// 修改接口记录 +export function updateLog(data) { + return request({ + url: '/requestInterface/log', + method: 'put', + data: data + }) +} + +// 删除接口记录 +export function delLog(requestId) { + return request({ + url: '/requestInterface/log/' + requestId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/views/requestInterface/log/index.vue b/ruoyi-ui/src/views/requestInterface/log/index.vue new file mode 100644 index 0000000..3564089 --- /dev/null +++ b/ruoyi-ui/src/views/requestInterface/log/index.vue @@ -0,0 +1,344 @@ + + +