From 9c00fa2c197de15f789beba4f039410c6d85ca1a Mon Sep 17 00:00:00 2001 From: yiwenpeng <ywp303@163.com> Date: Wed, 13 Sep 2023 15:45:51 +0800 Subject: [PATCH] fix:pda根据出库单号查询任务,新增根据库区筛选 --- src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java | 18 +++++++++++++++--- src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskDetail.java | 19 +++++++++++++++++++ src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskHeader.java | 19 +++++++++++++++++++ src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskVo.java | 20 ++++++++++++++++++++ src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetailDto.java | 26 -------------------------- src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------- 6 files changed, 171 insertions(+), 91 deletions(-) create mode 100644 src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskDetail.java create mode 100644 src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskHeader.java create mode 100644 src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskVo.java delete mode 100644 src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetailDto.java diff --git a/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java b/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java index f366bb2..479cfff 100644 --- a/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java +++ b/src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java @@ -17,6 +17,7 @@ import com.huaheng.common.constant.QuantityConstant; import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.reflect.ReflectUtils; +import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.aspectj.lang.annotation.ApiLogger; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; @@ -468,15 +469,26 @@ public class MesReceiptController extends BaseController { //@ApiLogger(apiName = "post调用E_Rd_In(MOM)入库接口", from="ROBOT") @PostMapping("/postE_Rd_In") public ReturnInfo postE_Rd_In(@RequestBody ReceiptDetail receiptDetail) { + if (StringUtils.isNotBlank(receiptDetail.getLastUpdatedBy())) { + receiptDetail.setLastUpdatedBy("PDA"); + } else if (StringUtils.isNotEmpty(ShiroUtils.getName())) { + receiptDetail.setLastUpdatedBy(ShiroUtils.getName()); + } User user = userService.selectUserByEmail(receiptDetail.getLastUpdatedBy()); - ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); //59 + String loginName = ""; + if (user == null) { + loginName = "PDA"; + } else { + loginName = user.getLoginName(); + } + ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); JSONObject Rd_In_M = new JSONObject(); Rd_In_M.put("mno", receiptHeader.getCode()); Rd_In_M.put("MGPK", receiptHeader.getMOMID()); Rd_In_M.put("cBusType", receiptHeader.getReceiptType()); Rd_In_M.put("TAID", receiptHeader.getTAID()); Rd_In_M.put("FAID", receiptHeader.getFAID()); - Rd_In_M.put("UserNo", user.getLoginName()); + Rd_In_M.put("UserNo", loginName); Rd_In_M.put("warehouse", receiptHeader.getWarehouse()); JSONArray jsonArray = new JSONArray(); @@ -493,7 +505,7 @@ public class MesReceiptController extends BaseController { Rd_In_S.put("receiptBarcode", receiptDetail.getReceiptBarcode()); Rd_In_S.put("warehouse", receiptHeader.getWarehouse()); Rd_In_S.put("warehouseName", receiptHeader.getWarehouseName()); - Rd_In_S.put("creatorCode", user.getLoginName()); + Rd_In_S.put("creatorCode", loginName); Rd_In_S.put("creatorName", receiptDetail.getLastUpdatedBy()); Rd_In_S.put("productionWorker", receiptHeader.getProductionWorker()); Rd_In_S.put("productionWorkerName", receiptHeader.getProductionWorkerName()); diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskDetail.java b/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskDetail.java new file mode 100644 index 0000000..6afa7f1 --- /dev/null +++ b/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskDetail.java @@ -0,0 +1,19 @@ +package com.huaheng.pc.task.taskDetail.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @author yiwenpeng + * @date 2023/9/13 14:18 + */ +@Data +public class PdaTaskDetail implements Serializable { + private static final long serialVersionUID = 1L; + private String materialCode; + private String materialName; + private String recordCode; + private BigDecimal qty; +} diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskHeader.java b/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskHeader.java new file mode 100644 index 0000000..b682ab1 --- /dev/null +++ b/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskHeader.java @@ -0,0 +1,19 @@ +package com.huaheng.pc.task.taskDetail.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author yiwenpeng + * @date 2023/9/13 14:29 + */ +@Data +public class PdaTaskHeader implements Serializable { + private static final long serialVersionUID = 1L; + private Integer taskId; + private String zoneCode; + private String zoneName; + private List<PdaTaskDetail> pdaTaskDetail; +} diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskVo.java b/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskVo.java new file mode 100644 index 0000000..ebc3c86 --- /dev/null +++ b/src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskVo.java @@ -0,0 +1,20 @@ +package com.huaheng.pc.task.taskDetail.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + * @author yiwenpeng + * @date 2023/9/13 13:48 + */ + +@Data +public class PdaTaskVo implements Serializable { + private static final long serialVersionUID = 1L; + + private List<PdaTaskHeader> pdaTaskHeader; + +} diff --git a/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetailDto.java b/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetailDto.java deleted file mode 100644 index df0b3eb..0000000 --- a/src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetailDto.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.huaheng.pc.task.taskDetail.domain; - -import com.baomidou.mybatisplus.annotation.*; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - - -@Data -public class TaskDetailDto implements Serializable { - private static final long serialVersionUID = 1L; - - private Integer taskId; - private String materialCode; - private String materialName; - private String materialSpec; - private String materialUnit; - private String zoneCode; - private String zoneName; - private String recordCode; - private BigDecimal qty; -} diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java index 1fdf48c..40d8b6d 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java @@ -35,8 +35,10 @@ import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; +import com.huaheng.pc.task.taskDetail.domain.PdaTaskDetail; +import com.huaheng.pc.task.taskDetail.domain.PdaTaskHeader; +import com.huaheng.pc.task.taskDetail.domain.PdaTaskVo; import com.huaheng.pc.task.taskDetail.domain.TaskDetail; -import com.huaheng.pc.task.taskDetail.domain.TaskDetailDto; import com.huaheng.pc.task.taskDetail.service.TaskDetailService; import com.huaheng.pc.task.taskHeader.domain.MobileTask; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; @@ -55,10 +57,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.AbstractList; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @@ -349,72 +348,109 @@ public class TaskHeaderController extends BaseController { return AjaxResult.success(); } + + //@PostMapping("/getTaskByShipmentCode") + //@ResponseBody + //public AjaxResult getTaskByShipmentCode(String shipmentCode) { + // if (StringUtils.isEmpty(shipmentCode)) { + // return AjaxResult.error("单据号为空!"); + // } + // List<TaskDetailDto> DTO = new ArrayList<>(); + // List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode)); + // if (list.isEmpty()) { + // return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode); + // } + // for (TaskDetail taskDetail : list) { + // if (taskDetail.getFlat() != null && taskDetail.getFlat() == 1 && taskDetail.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { + // TaskDetailDto taskDetailDto = new TaskDetailDto(); + // taskDetailDto.setTaskId(taskDetail.getTaskId()); + // taskDetailDto.setMaterialName(taskDetail.getMaterialName()); + // taskDetailDto.setMaterialCode(taskDetail.getMaterialCode()); + // taskDetailDto.setZoneCode(taskDetail.getZoneCode()); + // taskDetailDto.setZoneName(taskDetail.getZoneName()); + // taskDetailDto.setRecordCode(taskDetail.getRecordCode()); + // taskDetailDto.setQty(taskDetail.getQty()); + // DTO.add(taskDetailDto); + // } + // } + // return AjaxResult.success(DTO); + //} + @PostMapping("/getTaskByShipmentCode") @ResponseBody - public AjaxResult getTaskByShipmentCode(String shipmentCode) { + public AjaxResult getTaskByShipmentCode(String shipmentCode, String zoneCode) { if (StringUtils.isEmpty(shipmentCode)) { return AjaxResult.error("单据号为空!"); } - List<TaskDetailDto> DTO = new ArrayList<>(); - List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode)); - if (list.isEmpty()) { + List<TaskDetail> taskDetails = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>() + .eq(StringUtils.isNotEmpty(zoneCode), TaskDetail::getZoneCode, zoneCode) + .eq(TaskDetail::getBillCode, shipmentCode)); + if (taskDetails.isEmpty()) { return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode); - //List<TaskDetail> list1 = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getRecordCode, shipmentCode)); - //if (!list1.isEmpty()) { - // shipmentCode = list1.get(0).getBillCode(); - // list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode)); - //} else { - // return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode); - //} } - for (TaskDetail taskDetail : list) { - if (taskDetail.getFlat() != null && taskDetail.getFlat() == 1 && taskDetail.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { - TaskDetailDto taskDetailDto = new TaskDetailDto(); - taskDetailDto.setTaskId(taskDetail.getTaskId()); - taskDetailDto.setMaterialName(taskDetail.getMaterialName()); - taskDetailDto.setMaterialCode(taskDetail.getMaterialCode()); - taskDetailDto.setZoneCode(taskDetail.getZoneCode()); - taskDetailDto.setZoneName(taskDetail.getZoneName()); - taskDetailDto.setRecordCode(taskDetail.getRecordCode()); - taskDetailDto.setQty(taskDetail.getQty()); - DTO.add(taskDetailDto); + List<Integer> ids = taskDetails.stream().map(TaskDetail::getTaskId).distinct().collect(Collectors.toList()); + PdaTaskVo VO = new PdaTaskVo(); + List<TaskHeader> taskHeaders = taskHeaderService.list(new LambdaQueryWrapper<TaskHeader>().in(TaskHeader::getId, ids)); + List<PdaTaskHeader> headerList = new ArrayList<>(); + for (TaskHeader taskHeader : taskHeaders) { + List<PdaTaskDetail> details = new ArrayList<>(); + if (taskHeader.getFlat() != null && taskHeader.getFlat() == 1 && taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { + PdaTaskHeader header = new PdaTaskHeader(); + header.setTaskId(taskHeader.getId()); + header.setZoneCode(taskHeader.getZoneCode()); + String name = zoneService.getOne(new LambdaQueryWrapper<Zone>().eq(Zone::getCode, taskHeader.getZoneCode())).getName(); + header.setZoneName(name); + for (TaskDetail taskDetail : taskDetails) { + if (taskDetail.getTaskId().equals(taskHeader.getId())) { + PdaTaskDetail detail = new PdaTaskDetail(); + detail.setMaterialCode(taskDetail.getMaterialCode()); + detail.setMaterialName(taskDetail.getMaterialName()); + detail.setRecordCode(taskDetail.getRecordCode()); + detail.setQty(taskDetail.getQty()); + details.add(detail); + } + + } + header.setPdaTaskDetail(details); + headerList.add(header); } } - return AjaxResult.success(DTO); + VO.setPdaTaskHeader(headerList); + return AjaxResult.success(VO); } - @PostMapping("/getTaskByTaskId") - @ResponseBody - public AjaxResult getTaskByTaskId(String taskId) { - if (StringUtils.isEmpty(taskId)) { - return AjaxResult.error("任务号为空!"); - } - TaskHeader taskHeader = taskHeaderService.getById(taskId); - if (taskHeader == null) { - return AjaxResult.error("任务没找到ID:" + taskId); - } - if (!taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { - return AjaxResult.error("任务不是新建状态,可能已完成"); - } - if (taskHeader.getFlat() == null || taskHeader.getFlat() != 1) { - return AjaxResult.error("只能扫平库任务"); - } - List<TaskDetail> taskDetails = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskId, taskId)); - if (taskDetails.isEmpty()) { - return AjaxResult.error("没有查到对应的任务明细"); - } - List<TaskDetailDto> DTO = new ArrayList<>(); - for (TaskDetail taskDetail : taskDetails) { - TaskDetailDto taskDetailDto = new TaskDetailDto(); - taskDetailDto.setTaskId(taskDetail.getTaskId()); - taskDetailDto.setMaterialName(taskDetail.getMaterialName()); - taskDetailDto.setMaterialCode(taskDetail.getMaterialCode()); - taskDetailDto.setZoneCode(taskDetail.getZoneCode()); - taskDetailDto.setZoneName(taskDetail.getZoneName()); - taskDetailDto.setRecordCode(taskDetail.getRecordCode()); - taskDetailDto.setQty(taskDetail.getQty()); - DTO.add(taskDetailDto); - } - return AjaxResult.success(DTO); - } + //@PostMapping("/getTaskByTaskId") + //@ResponseBody + //public AjaxResult getTaskByTaskId(String taskId) { + // if (StringUtils.isEmpty(taskId)) { + // return AjaxResult.error("任务号为空!"); + // } + // TaskHeader taskHeader = taskHeaderService.getById(taskId); + // if (taskHeader == null) { + // return AjaxResult.error("任务没找到ID:" + taskId); + // } + // if (!taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { + // return AjaxResult.error("任务不是新建状态,可能已完成"); + // } + // if (taskHeader.getFlat() == null || taskHeader.getFlat() != 1) { + // return AjaxResult.error("只能扫平库任务"); + // } + // List<TaskDetail> taskDetails = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskId, taskId)); + // if (taskDetails.isEmpty()) { + // return AjaxResult.error("没有查到对应的任务明细"); + // } + // List<TaskDetailDto> DTO = new ArrayList<>(); + // for (TaskDetail taskDetail : taskDetails) { + // TaskDetailDto taskDetailDto = new TaskDetailDto(); + // taskDetailDto.setTaskId(taskDetail.getTaskId()); + // taskDetailDto.setMaterialName(taskDetail.getMaterialName()); + // taskDetailDto.setMaterialCode(taskDetail.getMaterialCode()); + // taskDetailDto.setZoneCode(taskDetail.getZoneCode()); + // taskDetailDto.setZoneName(taskDetail.getZoneName()); + // taskDetailDto.setRecordCode(taskDetail.getRecordCode()); + // taskDetailDto.setQty(taskDetail.getQty()); + // DTO.add(taskDetailDto); + // } + // return AjaxResult.success(DTO); + //} } -- libgit2 0.22.2