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 17 import com.huaheng.common.exception.service.ServiceException;
18 18 import com.huaheng.common.utils.StringUtils;
19 19 import com.huaheng.common.utils.reflect.ReflectUtils;
  20 +import com.huaheng.common.utils.security.ShiroUtils;
20 21 import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
21 22 import com.huaheng.framework.web.controller.BaseController;
22 23 import com.huaheng.framework.web.domain.AjaxResult;
... ... @@ -468,15 +469,26 @@ public class MesReceiptController extends BaseController {
468 469 //@ApiLogger(apiName = "post调用E_Rd_In(MOM)入库接口", from="ROBOT")
469 470 @PostMapping("/postE_Rd_In")
470 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 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 485 JSONObject Rd_In_M = new JSONObject();
474 486 Rd_In_M.put("mno", receiptHeader.getCode());
475 487 Rd_In_M.put("MGPK", receiptHeader.getMOMID());
476 488 Rd_In_M.put("cBusType", receiptHeader.getReceiptType());
477 489 Rd_In_M.put("TAID", receiptHeader.getTAID());
478 490 Rd_In_M.put("FAID", receiptHeader.getFAID());
479   - Rd_In_M.put("UserNo", user.getLoginName());
  491 + Rd_In_M.put("UserNo", loginName);
480 492 Rd_In_M.put("warehouse", receiptHeader.getWarehouse());
481 493  
482 494 JSONArray jsonArray = new JSONArray();
... ... @@ -493,7 +505,7 @@ public class MesReceiptController extends BaseController {
493 505 Rd_In_S.put("receiptBarcode", receiptDetail.getReceiptBarcode());
494 506 Rd_In_S.put("warehouse", receiptHeader.getWarehouse());
495 507 Rd_In_S.put("warehouseName", receiptHeader.getWarehouseName());
496   - Rd_In_S.put("creatorCode", user.getLoginName());
  508 + Rd_In_S.put("creatorCode", loginName);
497 509 Rd_In_S.put("creatorName", receiptDetail.getLastUpdatedBy());
498 510 Rd_In_S.put("productionWorker", receiptHeader.getProductionWorker());
499 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 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 3 import lombok.Data;
7 4  
8 5 import java.io.Serializable;
9 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 12 @Data
14   -public class TaskDetailDto implements Serializable {
  13 +public class PdaTaskDetail implements Serializable {
15 14 private static final long serialVersionUID = 1L;
16   -
17   - private Integer taskId;
18 15 private String materialCode;
19 16 private String materialName;
20   - private String materialSpec;
21   - private String materialUnit;
22   - private String zoneCode;
23   - private String zoneName;
24 17 private String recordCode;
25 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 35 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
36 36 import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
37 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 41 import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
39   -import com.huaheng.pc.task.taskDetail.domain.TaskDetailDto;
40 42 import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
41 43 import com.huaheng.pc.task.taskHeader.domain.MobileTask;
42 44 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
... ... @@ -55,10 +57,7 @@ import org.springframework.web.bind.annotation.*;
55 57  
56 58 import javax.annotation.Resource;
57 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 61 import java.util.stream.Collectors;
63 62  
64 63  
... ... @@ -349,72 +348,109 @@ public class TaskHeaderController extends BaseController {
349 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 379 @PostMapping("/getTaskByShipmentCode")
353 380 @ResponseBody
354   - public AjaxResult getTaskByShipmentCode(String shipmentCode) {
  381 + public AjaxResult getTaskByShipmentCode(String shipmentCode, String zoneCode) {
355 382 if (StringUtils.isEmpty(shipmentCode)) {
356 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 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 }
... ...