From d0226747665355acecd5b4f2b5c0beb020586729 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 17 一月 2025 15:37:32 +0800 Subject: [PATCH] # 23. PDA拣货单据,勾选或点击确认按钮后,完成当前单据 (已完成) 24. PDA出库成功后,界面数据重置,避免重复操作 (已修复) 25. PDA接口请求,添加一个Loading遮档 (已修复) 27. 非平库单据,在平库可做入库操作 (已修复) 28. 平库已组拖数据,组拖完成后依然可组拖 (已修复) 29. 平库入库后,订单明细没有添加(已修复) 30. 平库入库后,单据类型没有修改(已修复) 31. 没有绑定播种位,不能进行播种,前后端都需加判定(已修复) 33. 平库入库未修改入库已完成数量(已修复) 34. cacheSite缓存站点逻辑需重新梳理,入库生成波次时(已完成) 35. PDA添加发货确认,默认全选 (已修复) 36. 大屏获取任务时,是由容器到达的拖盘码确认通知 (已修复) 37. 拣货单序号不显示 问题修复 (已修复) 42. pda发货确认,添加不同颜色区分是否全部完成拣货,绿色全部拣货完成,红色完成部分拣货(已修复) 43. CTU入库完成后,订单明细没有删除,执行中数量清空(已修复) 44. 平库入库完成后,历史档明细完成数量没有更新 (已修复) 45. PDA料号不显示 (已修复) 46. 发货完成后,波次管理数据未加入历史档 (已修复) --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java | 405 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 227 insertions(+), 178 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java index c9b7b0a..7c05460 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/LocDetlController.java @@ -1,178 +1,227 @@ -package com.zy.asrs.wms.asrs.controller; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.parser.Feature; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.zy.asrs.framework.common.Cools; -import com.zy.asrs.framework.common.R; -import com.zy.asrs.wms.asrs.entity.*; -import com.zy.asrs.wms.asrs.service.LocDetlFieldService; -import com.zy.asrs.wms.asrs.service.MatFieldService; -import com.zy.asrs.wms.common.annotation.OperationLog; -import com.zy.asrs.wms.common.domain.BaseParam; -import com.zy.asrs.wms.common.domain.KeyValVo; -import com.zy.asrs.wms.common.domain.PageParam; -import com.zy.asrs.wms.asrs.service.LocDetlService; -import com.zy.asrs.wms.system.controller.BaseController; -import com.zy.asrs.wms.utils.ExcelUtil; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; -import java.util.*; - -@RestController -@RequestMapping("/api") -public class LocDetlController extends BaseController { - - @Autowired - private LocDetlService locDetlService; - @Autowired - private MatFieldService matFieldService; - @Autowired - private LocDetlFieldService locDetlFieldService; - - @PreAuthorize("hasAuthority('asrs:locDetl:list')") - @PostMapping("/locDetl/page") - public R page(@RequestBody Map<String, Object> map) { -// BaseParam baseParam = buildParam(map, BaseParam.class); -// PageParam<LocDetl, BaseParam> pageParam = new PageParam<>(baseParam, LocDetl.class); -// -// PageParam<LocDetl, BaseParam> page = locDetlService.page(pageParam, pageParam.buildWrapper(true)); -// JSONObject data = JSON.parseObject(JSON.toJSONString(page)); -// -// List<LocDetl> records = page.getRecords(); -// data.put("records", records); -// for (LocDetl locDetl : records) { -// List<LocDetlField> list = locDetlFieldService.list(new LambdaQueryWrapper<LocDetlField>().eq(LocDetlField::getDetlId, locDetl.getId())); -// locDetl.syncField(list); -// } - - BaseParam baseParam = buildParam(map, BaseParam.class); - PageParam<ViewLocDetl, BaseParam> pageParam = new PageParam<>(baseParam, ViewLocDetl.class); - PageParam<ViewLocDetl, BaseParam> data = locDetlService.getPage(pageParam, pageParam.buildWrapper(true)); - return R.ok().add(data); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:list')") - @PostMapping("/locDetl/list") - public R list(@RequestBody Map<String, Object> map) { - List<LocDetl> list = locDetlService.getLocDetlList(map); - return R.ok().add(list); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:list')") - @GetMapping("/locDetl/locId/{locId}") - public R list(@PathVariable("locId") Long locId) { - List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locId)); - List<LocDetl> locDetls = locDetlService.parseLocDetl(list); - return R.ok().add(locDetls); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:list')") - @GetMapping("/locDetl/{id}") - public R get(@PathVariable("id") Long id) { - return R.ok().add(locDetlService.getById(id)); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:save')") - @OperationLog("鎵归噺鎻掑叆搴撳瓨鏄庣粏") - @PostMapping("/locDetl/batchAdd") - public R save(@RequestBody List<LocDetl> locDetls) { - - return R.ok().add(locDetls); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:save')") - @OperationLog("娣诲姞搴撳瓨鏄庣粏") - @PostMapping("/locDetl/save") - public R save(@RequestBody LocDetl locDetl) { - if (!locDetlService.save(locDetl)) { - return R.error("娣诲姞澶辫触"); - } - - //鎻掑叆搴撳瓨鏄庣粏瀛楁 - List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getUnique, 1)); - for (MatField matField : matFields) { - LocDetlField locDetlField = new LocDetlField(); - locDetlField.setDetlId(locDetl.getId()); - locDetlField.setFieldId(matField.getId()); - locDetlField.setName(matField.getName()); - locDetlFieldService.save(locDetlField); - } - - return R.ok("娣诲姞鎴愬姛"); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:update')") - @OperationLog("淇敼搴撳瓨鏄庣粏") - @PostMapping("/locDetl/update") - public R update(@RequestBody HashMap<String,Object> param) { - LocDetl locDetl = JSON.parseObject(JSON.toJSONString(param), LocDetl.class, Feature.DisableCircularReferenceDetect); - //璁剧疆鎵╁睍瀛楁 - setLocDetlField(param, locDetl); - - if (!locDetlService.updateById(locDetl)) { - return R.error("淇敼澶辫触"); - } - return R.ok("淇敼鎴愬姛"); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:remove')") - @OperationLog("鍒犻櫎搴撳瓨鏄庣粏") - @PostMapping("/locDetl/remove/{ids}") - public R remove(@PathVariable Long[] ids) { - if (!locDetlService.removeByIds(Arrays.asList(ids))) { - return R.error("鍒犻櫎澶辫触"); - } - return R.ok("鍒犻櫎鎴愬姛"); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:list')") - @PostMapping("/locDetl/query") - public R query(@RequestParam(required = false) String condition) { - List<KeyValVo> vos = new ArrayList<>(); - LambdaQueryWrapper<LocDetl> wrapper = new LambdaQueryWrapper<>(); - if (!Cools.isEmpty(condition)) { - wrapper.like(LocDetl::getId, condition); - } - locDetlService.page(new Page<>(1, 30), wrapper).getRecords().forEach( - item -> vos.add(new KeyValVo(item.getId(), item.getId())) - ); - return R.ok().add(vos); - } - - @PreAuthorize("hasAuthority('asrs:locDetl:list')") - @PostMapping("/locDetl/export") - public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { - List<LocDetl> locDetls = locDetlService.parseLocDetl(locDetlService.list()); - List<MatField> locFields = matFieldService.getLocFields(); - ExcelUtil.build(ExcelUtil.create(locDetls, LocDetl.class, locFields), response); - } - - private void setLocDetlField(HashMap<String, Object> param, LocDetl locDetl) { - //鑾峰彇鎵╁睍瀛楁 - List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1)); - for (MatField matField : matFields) { - if (param.containsKey(matField.getName())) { - LocDetlField fieldValue = locDetlFieldService.getOne(new LambdaQueryWrapper<LocDetlField>() - .eq(LocDetlField::getDetlId, locDetl.getId()) - .eq(LocDetlField::getFieldId, matField.getId())); - if (fieldValue == null) { - fieldValue = new LocDetlField(); - fieldValue.setDetlId(locDetl.getId()); - fieldValue.setFieldId(matField.getId()); - fieldValue.setName(matField.getName()); - fieldValue.setValue(param.get(matField.getName()).toString()); - locDetlFieldService.save(fieldValue); - }else { - fieldValue.setValue(param.get(matField.getName()).toString()); - locDetlFieldService.updateById(fieldValue); - } - } - } - } - -} +package com.zy.asrs.wms.asrs.controller; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.parser.Feature; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.framework.common.R; +import com.zy.asrs.framework.exception.CoolException; +import com.zy.asrs.wms.asrs.entity.*; +import com.zy.asrs.wms.asrs.entity.enums.LocStsType; +import com.zy.asrs.wms.asrs.entity.param.LocDetlFreezeParam; +import com.zy.asrs.wms.asrs.service.LocDetlFieldService; +import com.zy.asrs.wms.asrs.service.LocService; +import com.zy.asrs.wms.asrs.service.MatFieldService; +import com.zy.asrs.wms.common.annotation.CacheData; +import com.zy.asrs.wms.common.annotation.OperationLog; +import com.zy.asrs.wms.common.domain.BaseParam; +import com.zy.asrs.wms.common.domain.KeyValVo; +import com.zy.asrs.wms.common.domain.PageParam; +import com.zy.asrs.wms.asrs.service.LocDetlService; +import com.zy.asrs.wms.system.controller.BaseController; +import com.zy.asrs.wms.utils.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.*; + +@RestController +@RequestMapping("/api") +public class LocDetlController extends BaseController { + + @Autowired + private LocService locService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private MatFieldService matFieldService; + @Autowired + private LocDetlFieldService locDetlFieldService; + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @PostMapping("/locDetl/page") + @CacheData(tableName = {"man_loc_detl"}) + public R page(@RequestBody Map<String, Object> map) { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<ViewLocDetl, BaseParam> pageParam = new PageParam<>(baseParam, ViewLocDetl.class); + PageParam<ViewLocDetl, BaseParam> data = locDetlService.getPage(pageParam, pageParam.buildWrapper(true)); + return R.ok().add(data); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @PostMapping("/locDetl/outPage") + @CacheData(tableName = {"man_loc_detl"}) + public R outPage(@RequestBody Map<String, Object> map) { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<ViewLocDetl, BaseParam> pageParam = new PageParam<>(baseParam, ViewLocDetl.class); + + QueryWrapper<ViewLocDetl> queryWrapper = pageParam.buildWrapper(true); + List<Long> locIds = locService.listBySts(LocStsType.F.val()); + if (locIds.isEmpty()) { + locIds.add(-1L); + } + queryWrapper.in("loc_id", locIds); + PageParam<ViewLocDetl, BaseParam> data = locDetlService.getPage(pageParam, queryWrapper); + return R.ok().add(data); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @PostMapping("/locDetl/list") + @CacheData(tableName = {"man_loc_detl"}) + public R list(@RequestBody Map<String, Object> map) { + List<LocDetl> list = locDetlService.getLocDetlList(map); + return R.ok().add(list); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @PostMapping("/locDetl/listByIds") + @CacheData(tableName = {"man_loc_detl"}) + public R listByIds(@RequestBody List<Long> ids) { + List<LocDetl> list = locDetlService.listByIds(ids); + List<LocDetl> locDetls = locDetlService.parseLocDetl(list); + return R.ok().add(locDetls); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @GetMapping("/locDetl/locId/{locId}") + @CacheData(tableName = {"man_loc_detl"}) + public R list(@PathVariable("locId") Long locId) { + List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, locId)); + List<LocDetl> locDetls = locDetlService.parseLocDetl(list); + return R.ok().add(locDetls); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @GetMapping("/locDetl/locNo/{locNo}") + @CacheData(tableName = {"man_loc_detl"}) + public R list(@PathVariable("locNo") String locNo) { + Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, locNo)); + if (loc == null) { + return R.error("搴撲綅涓嶅瓨鍦�"); + } + List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocId, loc.getId())); + List<LocDetl> locDetls = locDetlService.parseLocDetl(list); + return R.ok().add(locDetls); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @GetMapping("/locDetl/{id}") + @CacheData(tableName = {"man_loc_detl"}) + public R get(@PathVariable("id") Long id) { + return R.ok().add(locDetlService.getById(id)); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:save')") + @OperationLog("鎵归噺鎻掑叆搴撳瓨鏄庣粏") + @PostMapping("/locDetl/batchAdd") + public R save(@RequestBody List<LocDetl> locDetls) { + + return R.ok().add(locDetls); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:save')") + @OperationLog("娣诲姞搴撳瓨鏄庣粏") + @PostMapping("/locDetl/save") + public R save(@RequestBody LocDetl locDetl) { + if (!locDetlService.save(locDetl)) { + return R.error("娣诲姞澶辫触"); + } + + //鎻掑叆搴撳瓨鏄庣粏瀛楁 + List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getUnique, 1)); + for (MatField matField : matFields) { + LocDetlField locDetlField = new LocDetlField(); + locDetlField.setDetlId(locDetl.getId()); + locDetlField.setFieldId(matField.getId()); + locDetlField.setName(matField.getName()); + locDetlFieldService.save(locDetlField); + } + return R.ok("娣诲姞鎴愬姛"); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:update')") + @OperationLog("淇敼搴撳瓨鏄庣粏") + @PostMapping("/locDetl/update") + public R update(@RequestBody HashMap<String,Object> param) { + LocDetl locDetl = JSON.parseObject(JSON.toJSONString(param), LocDetl.class, Feature.DisableCircularReferenceDetect); + //璁剧疆鎵╁睍瀛楁 + setLocDetlField(param, locDetl); + + if (!locDetlService.updateById(locDetl)) { + return R.error("淇敼澶辫触"); + } + return R.ok("淇敼鎴愬姛"); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:remove')") + @OperationLog("鍒犻櫎搴撳瓨鏄庣粏") + @PostMapping("/locDetl/remove/{ids}") + public R remove(@PathVariable Long[] ids) { + if (!locDetlService.removeByIds(Arrays.asList(ids))) { + return R.error("鍒犻櫎澶辫触"); + } + return R.ok("鍒犻櫎鎴愬姛"); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @PostMapping("/locDetl/query") + public R query(@RequestParam(required = false) String condition) { + List<KeyValVo> vos = new ArrayList<>(); + LambdaQueryWrapper<LocDetl> wrapper = new LambdaQueryWrapper<>(); + if (!Cools.isEmpty(condition)) { + wrapper.like(LocDetl::getId, condition); + } + locDetlService.page(new Page<>(1, 30), wrapper).getRecords().forEach( + item -> vos.add(new KeyValVo(item.getId(), item.getId())) + ); + return R.ok().add(vos); + } + + @PreAuthorize("hasAuthority('asrs:locDetl:list')") + @PostMapping("/locDetl/export") + public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<LocDetl, BaseParam> pageParam = new PageParam<>(baseParam, LocDetl.class); + List<LocDetl> data = locDetlService.list(pageParam.buildWrapper(true)); + + List<LocDetl> locDetls = locDetlService.parseLocDetl(data); + List<MatField> locFields = matFieldService.getLocFields(); + ExcelUtil.build(ExcelUtil.create(locDetls, LocDetl.class, locFields), response); + } + + private void setLocDetlField(HashMap<String, Object> param, LocDetl locDetl) { + //鑾峰彇鎵╁睍瀛楁 + List<MatField> matFields = matFieldService.list(new LambdaQueryWrapper<MatField>().eq(MatField::getFieldType, 1)); + for (MatField matField : matFields) { + if (param.containsKey(matField.getName())) { + LocDetlField fieldValue = locDetlFieldService.getOne(new LambdaQueryWrapper<LocDetlField>() + .eq(LocDetlField::getDetlId, locDetl.getId()) + .eq(LocDetlField::getFieldId, matField.getId())); + if (fieldValue == null) { + fieldValue = new LocDetlField(); + fieldValue.setDetlId(locDetl.getId()); + fieldValue.setFieldId(matField.getId()); + fieldValue.setName(matField.getName()); + fieldValue.setValue(param.get(matField.getName()).toString()); + locDetlFieldService.save(fieldValue); + }else { + fieldValue.setValue(param.get(matField.getName()).toString()); + locDetlFieldService.updateById(fieldValue); + } + } + } + } + + @PreAuthorize("hasAuthority('asrs:locDetl:update')") + @OperationLog("搴撳瓨鍐荤粨") + @PostMapping("/locDetl/freeze") + public R freeze(@RequestBody LocDetlFreezeParam param) { + locDetlService.locDetlFreeze(param); + return R.ok(); + } + +} -- Gitblit v1.9.1