Commit 9c00fa2c197de15f789beba4f039410c6d85ca1a

Authored by 易文鹏
1 parent 6906a06f

fix:pda根据出库单号查询任务,新增根据库区筛选

src/main/java/com/huaheng/api/mes/controller/MesReceiptController.java
@@ -17,6 +17,7 @@ import com.huaheng.common.constant.QuantityConstant; @@ -17,6 +17,7 @@ import com.huaheng.common.constant.QuantityConstant;
17 import com.huaheng.common.exception.service.ServiceException; 17 import com.huaheng.common.exception.service.ServiceException;
18 import com.huaheng.common.utils.StringUtils; 18 import com.huaheng.common.utils.StringUtils;
19 import com.huaheng.common.utils.reflect.ReflectUtils; 19 import com.huaheng.common.utils.reflect.ReflectUtils;
  20 +import com.huaheng.common.utils.security.ShiroUtils;
20 import com.huaheng.framework.aspectj.lang.annotation.ApiLogger; 21 import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
21 import com.huaheng.framework.web.controller.BaseController; 22 import com.huaheng.framework.web.controller.BaseController;
22 import com.huaheng.framework.web.domain.AjaxResult; 23 import com.huaheng.framework.web.domain.AjaxResult;
@@ -468,15 +469,26 @@ public class MesReceiptController extends BaseController { @@ -468,15 +469,26 @@ public class MesReceiptController extends BaseController {
468 //@ApiLogger(apiName = "post调用E_Rd_In(MOM)入库接口", from="ROBOT") 469 //@ApiLogger(apiName = "post调用E_Rd_In(MOM)入库接口", from="ROBOT")
469 @PostMapping("/postE_Rd_In") 470 @PostMapping("/postE_Rd_In")
470 public ReturnInfo postE_Rd_In(@RequestBody ReceiptDetail receiptDetail) { 471 public ReturnInfo postE_Rd_In(@RequestBody ReceiptDetail receiptDetail) {
  472 + if (StringUtils.isNotBlank(receiptDetail.getLastUpdatedBy())) {
  473 + receiptDetail.setLastUpdatedBy("PDA");
  474 + } else if (StringUtils.isNotEmpty(ShiroUtils.getName())) {
  475 + receiptDetail.setLastUpdatedBy(ShiroUtils.getName());
  476 + }
471 User user = userService.selectUserByEmail(receiptDetail.getLastUpdatedBy()); 477 User user = userService.selectUserByEmail(receiptDetail.getLastUpdatedBy());
472 - ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId()); //59 478 + String loginName = "";
  479 + if (user == null) {
  480 + loginName = "PDA";
  481 + } else {
  482 + loginName = user.getLoginName();
  483 + }
  484 + ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
473 JSONObject Rd_In_M = new JSONObject(); 485 JSONObject Rd_In_M = new JSONObject();
474 Rd_In_M.put("mno", receiptHeader.getCode()); 486 Rd_In_M.put("mno", receiptHeader.getCode());
475 Rd_In_M.put("MGPK", receiptHeader.getMOMID()); 487 Rd_In_M.put("MGPK", receiptHeader.getMOMID());
476 Rd_In_M.put("cBusType", receiptHeader.getReceiptType()); 488 Rd_In_M.put("cBusType", receiptHeader.getReceiptType());
477 Rd_In_M.put("TAID", receiptHeader.getTAID()); 489 Rd_In_M.put("TAID", receiptHeader.getTAID());
478 Rd_In_M.put("FAID", receiptHeader.getFAID()); 490 Rd_In_M.put("FAID", receiptHeader.getFAID());
479 - Rd_In_M.put("UserNo", user.getLoginName()); 491 + Rd_In_M.put("UserNo", loginName);
480 Rd_In_M.put("warehouse", receiptHeader.getWarehouse()); 492 Rd_In_M.put("warehouse", receiptHeader.getWarehouse());
481 493
482 JSONArray jsonArray = new JSONArray(); 494 JSONArray jsonArray = new JSONArray();
@@ -493,7 +505,7 @@ public class MesReceiptController extends BaseController { @@ -493,7 +505,7 @@ public class MesReceiptController extends BaseController {
493 Rd_In_S.put("receiptBarcode", receiptDetail.getReceiptBarcode()); 505 Rd_In_S.put("receiptBarcode", receiptDetail.getReceiptBarcode());
494 Rd_In_S.put("warehouse", receiptHeader.getWarehouse()); 506 Rd_In_S.put("warehouse", receiptHeader.getWarehouse());
495 Rd_In_S.put("warehouseName", receiptHeader.getWarehouseName()); 507 Rd_In_S.put("warehouseName", receiptHeader.getWarehouseName());
496 - Rd_In_S.put("creatorCode", user.getLoginName()); 508 + Rd_In_S.put("creatorCode", loginName);
497 Rd_In_S.put("creatorName", receiptDetail.getLastUpdatedBy()); 509 Rd_In_S.put("creatorName", receiptDetail.getLastUpdatedBy());
498 Rd_In_S.put("productionWorker", receiptHeader.getProductionWorker()); 510 Rd_In_S.put("productionWorker", receiptHeader.getProductionWorker());
499 Rd_In_S.put("productionWorkerName", receiptHeader.getProductionWorkerName()); 511 Rd_In_S.put("productionWorkerName", receiptHeader.getProductionWorkerName());
src/main/java/com/huaheng/pc/task/taskDetail/domain/TaskDetailDto.java renamed to src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskDetail.java
1 package com.huaheng.pc.task.taskDetail.domain; 1 package com.huaheng.pc.task.taskDetail.domain;
2 2
3 -import com.baomidou.mybatisplus.annotation.*;  
4 -import io.swagger.annotations.ApiModel;  
5 -import io.swagger.annotations.ApiModelProperty;  
6 import lombok.Data; 3 import lombok.Data;
7 4
8 import java.io.Serializable; 5 import java.io.Serializable;
9 import java.math.BigDecimal; 6 import java.math.BigDecimal;
10 -import java.util.Date;  
11 -  
12 7
  8 +/**
  9 + * @author yiwenpeng
  10 + * @date 2023/9/13 14:18
  11 + */
13 @Data 12 @Data
14 -public class TaskDetailDto implements Serializable { 13 +public class PdaTaskDetail implements Serializable {
15 private static final long serialVersionUID = 1L; 14 private static final long serialVersionUID = 1L;
16 -  
17 - private Integer taskId;  
18 private String materialCode; 15 private String materialCode;
19 private String materialName; 16 private String materialName;
20 - private String materialSpec;  
21 - private String materialUnit;  
22 - private String zoneCode;  
23 - private String zoneName;  
24 private String recordCode; 17 private String recordCode;
25 private BigDecimal qty; 18 private BigDecimal qty;
26 } 19 }
src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskHeader.java 0 → 100644
  1 +package com.huaheng.pc.task.taskDetail.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.io.Serializable;
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * @author yiwenpeng
  10 + * @date 2023/9/13 14:29
  11 + */
  12 +@Data
  13 +public class PdaTaskHeader implements Serializable {
  14 + private static final long serialVersionUID = 1L;
  15 + private Integer taskId;
  16 + private String zoneCode;
  17 + private String zoneName;
  18 + private List<PdaTaskDetail> pdaTaskDetail;
  19 +}
src/main/java/com/huaheng/pc/task/taskDetail/domain/PdaTaskVo.java 0 → 100644
  1 +package com.huaheng.pc.task.taskDetail.domain;
  2 +
  3 +import lombok.Data;
  4 +
  5 +import java.io.Serializable;
  6 +import java.math.BigDecimal;
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * @author yiwenpeng
  11 + * @date 2023/9/13 13:48
  12 + */
  13 +
  14 +@Data
  15 +public class PdaTaskVo implements Serializable {
  16 + private static final long serialVersionUID = 1L;
  17 +
  18 + private List<PdaTaskHeader> pdaTaskHeader;
  19 +
  20 +}
src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java
@@ -35,8 +35,10 @@ import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; @@ -35,8 +35,10 @@ import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail;
35 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; 35 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
36 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; 36 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
37 import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; 37 import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
  38 +import com.huaheng.pc.task.taskDetail.domain.PdaTaskDetail;
  39 +import com.huaheng.pc.task.taskDetail.domain.PdaTaskHeader;
  40 +import com.huaheng.pc.task.taskDetail.domain.PdaTaskVo;
38 import com.huaheng.pc.task.taskDetail.domain.TaskDetail; 41 import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
39 -import com.huaheng.pc.task.taskDetail.domain.TaskDetailDto;  
40 import com.huaheng.pc.task.taskDetail.service.TaskDetailService; 42 import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
41 import com.huaheng.pc.task.taskHeader.domain.MobileTask; 43 import com.huaheng.pc.task.taskHeader.domain.MobileTask;
42 import com.huaheng.pc.task.taskHeader.domain.TaskHeader; 44 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
@@ -55,10 +57,7 @@ import org.springframework.web.bind.annotation.*; @@ -55,10 +57,7 @@ import org.springframework.web.bind.annotation.*;
55 57
56 import javax.annotation.Resource; 58 import javax.annotation.Resource;
57 import javax.servlet.http.HttpServletRequest; 59 import javax.servlet.http.HttpServletRequest;
58 -import java.util.AbstractList;  
59 -import java.util.ArrayList;  
60 -import java.util.Collections;  
61 -import java.util.List; 60 +import java.util.*;
62 import java.util.stream.Collectors; 61 import java.util.stream.Collectors;
63 62
64 63
@@ -349,72 +348,109 @@ public class TaskHeaderController extends BaseController { @@ -349,72 +348,109 @@ public class TaskHeaderController extends BaseController {
349 return AjaxResult.success(); 348 return AjaxResult.success();
350 } 349 }
351 350
  351 +
  352 + //@PostMapping("/getTaskByShipmentCode")
  353 + //@ResponseBody
  354 + //public AjaxResult getTaskByShipmentCode(String shipmentCode) {
  355 + // if (StringUtils.isEmpty(shipmentCode)) {
  356 + // return AjaxResult.error("单据号为空!");
  357 + // }
  358 + // List<TaskDetailDto> DTO = new ArrayList<>();
  359 + // List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode));
  360 + // if (list.isEmpty()) {
  361 + // return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode);
  362 + // }
  363 + // for (TaskDetail taskDetail : list) {
  364 + // if (taskDetail.getFlat() != null && taskDetail.getFlat() == 1 && taskDetail.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) {
  365 + // TaskDetailDto taskDetailDto = new TaskDetailDto();
  366 + // taskDetailDto.setTaskId(taskDetail.getTaskId());
  367 + // taskDetailDto.setMaterialName(taskDetail.getMaterialName());
  368 + // taskDetailDto.setMaterialCode(taskDetail.getMaterialCode());
  369 + // taskDetailDto.setZoneCode(taskDetail.getZoneCode());
  370 + // taskDetailDto.setZoneName(taskDetail.getZoneName());
  371 + // taskDetailDto.setRecordCode(taskDetail.getRecordCode());
  372 + // taskDetailDto.setQty(taskDetail.getQty());
  373 + // DTO.add(taskDetailDto);
  374 + // }
  375 + // }
  376 + // return AjaxResult.success(DTO);
  377 + //}
  378 +
352 @PostMapping("/getTaskByShipmentCode") 379 @PostMapping("/getTaskByShipmentCode")
353 @ResponseBody 380 @ResponseBody
354 - public AjaxResult getTaskByShipmentCode(String shipmentCode) { 381 + public AjaxResult getTaskByShipmentCode(String shipmentCode, String zoneCode) {
355 if (StringUtils.isEmpty(shipmentCode)) { 382 if (StringUtils.isEmpty(shipmentCode)) {
356 return AjaxResult.error("单据号为空!"); 383 return AjaxResult.error("单据号为空!");
357 } 384 }
358 - List<TaskDetailDto> DTO = new ArrayList<>();  
359 - List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode));  
360 - if (list.isEmpty()) { 385 + List<TaskDetail> taskDetails = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>()
  386 + .eq(StringUtils.isNotEmpty(zoneCode), TaskDetail::getZoneCode, zoneCode)
  387 + .eq(TaskDetail::getBillCode, shipmentCode));
  388 + if (taskDetails.isEmpty()) {
361 return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode); 389 return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode);
362 - //List<TaskDetail> list1 = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getRecordCode, shipmentCode));  
363 - //if (!list1.isEmpty()) {  
364 - // shipmentCode = list1.get(0).getBillCode();  
365 - // list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode));  
366 - //} else {  
367 - // return AjaxResult.error("该单据号,没有查到对应平库出库任务:" + shipmentCode);  
368 - //}  
369 } 390 }
370 - for (TaskDetail taskDetail : list) {  
371 - if (taskDetail.getFlat() != null && taskDetail.getFlat() == 1 && taskDetail.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) {  
372 - TaskDetailDto taskDetailDto = new TaskDetailDto();  
373 - taskDetailDto.setTaskId(taskDetail.getTaskId());  
374 - taskDetailDto.setMaterialName(taskDetail.getMaterialName());  
375 - taskDetailDto.setMaterialCode(taskDetail.getMaterialCode());  
376 - taskDetailDto.setZoneCode(taskDetail.getZoneCode());  
377 - taskDetailDto.setZoneName(taskDetail.getZoneName());  
378 - taskDetailDto.setRecordCode(taskDetail.getRecordCode());  
379 - taskDetailDto.setQty(taskDetail.getQty());  
380 - DTO.add(taskDetailDto); 391 + List<Integer> ids = taskDetails.stream().map(TaskDetail::getTaskId).distinct().collect(Collectors.toList());
  392 + PdaTaskVo VO = new PdaTaskVo();
  393 + List<TaskHeader> taskHeaders = taskHeaderService.list(new LambdaQueryWrapper<TaskHeader>().in(TaskHeader::getId, ids));
  394 + List<PdaTaskHeader> headerList = new ArrayList<>();
  395 + for (TaskHeader taskHeader : taskHeaders) {
  396 + List<PdaTaskDetail> details = new ArrayList<>();
  397 + if (taskHeader.getFlat() != null && taskHeader.getFlat() == 1 && taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) {
  398 + PdaTaskHeader header = new PdaTaskHeader();
  399 + header.setTaskId(taskHeader.getId());
  400 + header.setZoneCode(taskHeader.getZoneCode());
  401 + String name = zoneService.getOne(new LambdaQueryWrapper<Zone>().eq(Zone::getCode, taskHeader.getZoneCode())).getName();
  402 + header.setZoneName(name);
  403 + for (TaskDetail taskDetail : taskDetails) {
  404 + if (taskDetail.getTaskId().equals(taskHeader.getId())) {
  405 + PdaTaskDetail detail = new PdaTaskDetail();
  406 + detail.setMaterialCode(taskDetail.getMaterialCode());
  407 + detail.setMaterialName(taskDetail.getMaterialName());
  408 + detail.setRecordCode(taskDetail.getRecordCode());
  409 + detail.setQty(taskDetail.getQty());
  410 + details.add(detail);
  411 + }
  412 +
  413 + }
  414 + header.setPdaTaskDetail(details);
  415 + headerList.add(header);
381 } 416 }
382 } 417 }
383 - return AjaxResult.success(DTO); 418 + VO.setPdaTaskHeader(headerList);
  419 + return AjaxResult.success(VO);
384 } 420 }
385 421
386 - @PostMapping("/getTaskByTaskId")  
387 - @ResponseBody  
388 - public AjaxResult getTaskByTaskId(String taskId) {  
389 - if (StringUtils.isEmpty(taskId)) {  
390 - return AjaxResult.error("任务号为空!");  
391 - }  
392 - TaskHeader taskHeader = taskHeaderService.getById(taskId);  
393 - if (taskHeader == null) {  
394 - return AjaxResult.error("任务没找到ID:" + taskId);  
395 - }  
396 - if (!taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) {  
397 - return AjaxResult.error("任务不是新建状态,可能已完成");  
398 - }  
399 - if (taskHeader.getFlat() == null || taskHeader.getFlat() != 1) {  
400 - return AjaxResult.error("只能扫平库任务");  
401 - }  
402 - List<TaskDetail> taskDetails = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskId, taskId));  
403 - if (taskDetails.isEmpty()) {  
404 - return AjaxResult.error("没有查到对应的任务明细");  
405 - }  
406 - List<TaskDetailDto> DTO = new ArrayList<>();  
407 - for (TaskDetail taskDetail : taskDetails) {  
408 - TaskDetailDto taskDetailDto = new TaskDetailDto();  
409 - taskDetailDto.setTaskId(taskDetail.getTaskId());  
410 - taskDetailDto.setMaterialName(taskDetail.getMaterialName());  
411 - taskDetailDto.setMaterialCode(taskDetail.getMaterialCode());  
412 - taskDetailDto.setZoneCode(taskDetail.getZoneCode());  
413 - taskDetailDto.setZoneName(taskDetail.getZoneName());  
414 - taskDetailDto.setRecordCode(taskDetail.getRecordCode());  
415 - taskDetailDto.setQty(taskDetail.getQty());  
416 - DTO.add(taskDetailDto);  
417 - }  
418 - return AjaxResult.success(DTO);  
419 - } 422 + //@PostMapping("/getTaskByTaskId")
  423 + //@ResponseBody
  424 + //public AjaxResult getTaskByTaskId(String taskId) {
  425 + // if (StringUtils.isEmpty(taskId)) {
  426 + // return AjaxResult.error("任务号为空!");
  427 + // }
  428 + // TaskHeader taskHeader = taskHeaderService.getById(taskId);
  429 + // if (taskHeader == null) {
  430 + // return AjaxResult.error("任务没找到ID:" + taskId);
  431 + // }
  432 + // if (!taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) {
  433 + // return AjaxResult.error("任务不是新建状态,可能已完成");
  434 + // }
  435 + // if (taskHeader.getFlat() == null || taskHeader.getFlat() != 1) {
  436 + // return AjaxResult.error("只能扫平库任务");
  437 + // }
  438 + // List<TaskDetail> taskDetails = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskId, taskId));
  439 + // if (taskDetails.isEmpty()) {
  440 + // return AjaxResult.error("没有查到对应的任务明细");
  441 + // }
  442 + // List<TaskDetailDto> DTO = new ArrayList<>();
  443 + // for (TaskDetail taskDetail : taskDetails) {
  444 + // TaskDetailDto taskDetailDto = new TaskDetailDto();
  445 + // taskDetailDto.setTaskId(taskDetail.getTaskId());
  446 + // taskDetailDto.setMaterialName(taskDetail.getMaterialName());
  447 + // taskDetailDto.setMaterialCode(taskDetail.getMaterialCode());
  448 + // taskDetailDto.setZoneCode(taskDetail.getZoneCode());
  449 + // taskDetailDto.setZoneName(taskDetail.getZoneName());
  450 + // taskDetailDto.setRecordCode(taskDetail.getRecordCode());
  451 + // taskDetailDto.setQty(taskDetail.getQty());
  452 + // DTO.add(taskDetailDto);
  453 + // }
  454 + // return AjaxResult.success(DTO);
  455 + //}
420 } 456 }