Commit 9c00fa2c197de15f789beba4f039410c6d85ca1a
1 parent
6906a06f
fix:pda根据出库单号查询任务,新增根据库区筛选
Showing
5 changed files
with
157 additions
and
77 deletions
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 | } |
... | ... |