From 0316d7fdfbd248bbccdc023cda44aef9994b0109 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期六, 19 七月 2025 13:49:05 +0800 Subject: [PATCH] #盘点pda --- rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java | 2 rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaCheckOrderService.java | 14 +++ rsf-admin/src/page/orders/asnOrder/POItemModal.jsx | 4 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java | 121 ++++++++++++++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java | 18 ++++ rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java | 54 +++++++++++++ 6 files changed, 211 insertions(+), 2 deletions(-) diff --git a/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx b/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx index 471a4f1..65d8f88 100644 --- a/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx +++ b/rsf-admin/src/page/orders/asnOrder/POItemModal.jsx @@ -345,7 +345,7 @@ flex: 1, editable: true })) - setColumns([...columns, ...cols, action]) + setColumns([...columns, ...cols]) } else { notify(msg); } @@ -396,7 +396,7 @@ }} pageSizeOptions={[15, 25, 50, 100]} editMode="row" - checkboxSelection + onRowSelectionModelChange={handleSelectionChange} selectionModel={selectedRows} sx={{ diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java new file mode 100644 index 0000000..f452033 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/params/SaveCheckDiffParams.java @@ -0,0 +1,18 @@ +package com.vincent.rsf.server.api.controller.params; + +import com.vincent.rsf.server.manager.entity.CheckDiffItem; +import com.vincent.rsf.server.manager.entity.TaskItem; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +@Data +@Accessors +@ApiModel(value = "SaveCheckDiffParams", description = "淇濆瓨鐩樼偣鏁版嵁鍙傛暟") +public class SaveCheckDiffParams { + private String checkId; + private String container; + private List<CheckDiffItem> checkDiffItems; +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java new file mode 100644 index 0000000..eefd1f6 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/pda/PdaCheckOrderController.java @@ -0,0 +1,54 @@ +package com.vincent.rsf.server.api.controller.pda; + +import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.server.api.controller.params.SaveCheckDiffParams; +import com.vincent.rsf.server.api.service.PdaCheckOrderService; +import com.vincent.rsf.server.system.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@RestController +@RequestMapping("/pda") +@Api(tags = "pda鐩樼偣") +public class PdaCheckOrderController extends BaseController { + + @Autowired + private PdaCheckOrderService pdaCheckOrderService; + + @PreAuthorize("hasAuthority('manager:task:list')") + @PostMapping("/getCheckList") + @ApiOperation("鏌ヨ鐩樼偣宸紓鍗曞垪琛�") + public R getCheckList(@RequestBody Map<String, String> map) { + + return pdaCheckOrderService.getCheckList(map.get("code")); + } + + @PreAuthorize("hasAuthority('manager:task:list')") + @PostMapping("/getCheckTaskItemList") + @ApiOperation("鏌ヨ鐩樼偣浠诲姟鍒楄〃") + public R getCheckTaskItemList(@RequestBody Map<String, String> map) { + + return pdaCheckOrderService.getCheckTaskItemList(map.get("barcode"),map.get("checkCode")); + } + + @PreAuthorize("hasAuthority('manager:task:list')") + @GetMapping("/getCheckDiffReasonList") + @ApiOperation("鏌ヨ鐩樼偣宸紓鍘熷洜") + public R getCheckDiffReasonList() { + + return pdaCheckOrderService.getCheckDiffReasonList(); + } + + @PreAuthorize("hasAuthority('manager:task:list')") + @PostMapping("/saveCheckDiff") + @ApiOperation("淇濆瓨鐩樼偣鏁版嵁") + public R saveCheckDiff(@RequestBody SaveCheckDiffParams saveCheckDiffParams) { + + return pdaCheckOrderService.saveCheckDiff(saveCheckDiffParams,getLoginUserId()); + } +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaCheckOrderService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaCheckOrderService.java new file mode 100644 index 0000000..5641ca9 --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/PdaCheckOrderService.java @@ -0,0 +1,14 @@ +package com.vincent.rsf.server.api.service; + +import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.server.api.controller.params.SaveCheckDiffParams; + +public interface PdaCheckOrderService { + R getCheckList(String code); + + R getCheckTaskItemList(String barcode,String checkCode); + + R getCheckDiffReasonList(); + + R saveCheckDiff(SaveCheckDiffParams saveCheckDiffParams,Long loginUserId); +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java new file mode 100644 index 0000000..b0a263d --- /dev/null +++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java @@ -0,0 +1,121 @@ +package com.vincent.rsf.server.api.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.vincent.rsf.framework.common.Cools; +import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.framework.exception.CoolException; +import com.vincent.rsf.server.api.controller.params.SaveCheckDiffParams; +import com.vincent.rsf.server.api.service.PdaCheckOrderService; +import com.vincent.rsf.server.manager.entity.*; +import com.vincent.rsf.server.manager.enums.CheckDiffExceStatus; +import com.vincent.rsf.server.manager.enums.TaskStsType; +import com.vincent.rsf.server.manager.service.*; +import com.vincent.rsf.server.system.constant.DictTypeCode; +import com.vincent.rsf.server.system.entity.DictData; +import com.vincent.rsf.server.system.service.DictDataService; +import com.vincent.rsf.server.system.service.DictTypeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +@Service +public class PdaCheckOrderServiceImpl implements PdaCheckOrderService { + + @Autowired + private CheckDiffService checkDiffService; + + @Autowired + private CheckDiffItemService checkDiffItemService; + + @Autowired + private TaskService taskService; + + @Autowired + private TaskItemService taskItemService; + @Autowired + private DictTypeService dictTypeService; + @Autowired + private DictDataService dictDataService; + + @Override + public R getCheckList(String code) { + LambdaQueryWrapper<CheckDiff> lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(!Cools.isEmpty(code),CheckDiff::getOrderCode,code); + List<CheckDiff> waveList = checkDiffService.list(lambdaQueryWrapper); + return R.ok(waveList); + + } + + @Override + public R getCheckTaskItemList(String barcode,String checkCode) { + + List<CheckDiffItem> checkDiffItems = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>() + .eq(CheckDiffItem::getBarcode, barcode) + .eq(CheckDiffItem::getOrderCode, checkCode) + ); + if (checkDiffItems.isEmpty()){ + throw new CoolException("姝ゆ潯鐮佷笉鍦ㄥ綋鍓嶇洏鐐瑰崟涓�"); + } + LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Task::getBarcode, barcode); + Task task = taskService.getOne(lambdaQueryWrapper); + if (null == task){ + throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟"); + } + if (!task.getTaskStatus().equals(TaskStsType.AWAIT.id)){ + return R.error("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�"); + } + + + return R.ok(checkDiffItems); + } + + @Override + public R getCheckDiffReasonList() { + List<DictData> list = dictDataService.list(new LambdaQueryWrapper<DictData>() + .eq(DictData::getDictTypeCode, DictTypeCode.SYS_CHECK_DIFF_REASON) + ); + return R.ok(list); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R saveCheckDiff(SaveCheckDiffParams params,Long loginUserId) { + CheckDiff checkDiff = checkDiffService.getById(params.getCheckId()); + if (null == checkDiff){ + return R.error("鏈壘鍒扮洏鐐瑰樊寮傚崟"); + } + if (checkDiff.getExceStatus().equals(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val)){ + return R.error("璇ョ洏鐐瑰崟宸插畬鎴�"); + } + for (CheckDiffItem checkDiffItem: params.getCheckDiffItems()){ + CheckDiffItem diffItem = checkDiffItemService.getById(checkDiffItem.getId()); + if (null == diffItem){ + return R.error("鏁版嵁閿欒锛屾湭鎵惧埌宸紓鍗曟槑缁�"); + } + if(!checkDiffItemService.updateById(checkDiffItem)){ + throw new CoolException("鏇存柊宸紓鍗曟槑缁嗗け璐�"); + } + checkDiff.setCheckQty(checkDiff.getCheckQty()+checkDiffItem.getCheckQty()); + } + checkDiff.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val); + + if(!checkDiffService.updateById(checkDiff)){ + throw new CoolException("鏇存柊宸紓鍗曞け璐�"); + } + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getContainer())); + if (null == task){ + throw new CoolException("鏁版嵁閿欒锛屾湭鎵惧埌瀹瑰櫒鐮佸搴旂洏鐐逛换鍔�"); + } + task.setTaskStatus(TaskStsType.COMPLETE_OUT.id); + task.setUpdateBy(loginUserId); + task.setUpdateTime(new Date()); + if (!taskService.updateById(task)){ + throw new CoolException("鏇存柊浠诲姟澶辫触"); + } + return R.ok("鐩樼偣瀹屾垚"); + } +} diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java index 0c77e1a..4e51070 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java @@ -87,4 +87,6 @@ public final static String SYS_CHECK_EXCE_STATUS = "sys_check_exce_status"; /**鐩樼偣宸紓鍗曟墽琛岀姸鎬�*/ public final static String SYS_CHECK_DIFF_EXCE_STATUS = "sys_check_diff_exce_status"; + + public final static String SYS_CHECK_DIFF_REASON = "sys_check_diff_reason"; } -- Gitblit v1.9.1