From e98e114ff8765ca1ffbd6dda167e35d18b72f5d4 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 24 三月 2025 16:34:07 +0800 Subject: [PATCH] 代码优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocAreaMatRela.java | 6 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java | 15 - rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java | 32 ++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrGroupService.java | 4 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java | 115 +++++++++++++++- rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java | 20 ++ /dev/null | 23 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java | 82 ++++++++++- rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java | 38 +++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java | 8 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictTypeController.java | 14 + rsf-server/src/main/resources/application.yml | 4 rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictDataController.java | 15 + rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocAreaMatsParam.java | 6 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocAreaMatRelaService.java | 14 ++ 15 files changed, 334 insertions(+), 62 deletions(-) diff --git a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java index 6123a36..008d82d 100644 --- a/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java +++ b/rsf-common/src/main/java/com/vincent/rsf/common/utils/Utils.java @@ -48,6 +48,26 @@ return result; } + public static <T, R> List<T> getAllTree(List<T> data, R parentId, Function<? super T, ? extends R> parentIdMapper, Function<? super T, ? extends R> idMapper, BiConsumer<T, List<T>> consumer) { + List<T> result = new ArrayList<>(); + for (T datum : data) { + R dParentId = parentIdMapper.apply(datum); + R dId = idMapper.apply(datum); + if (dParentId.equals(dId)) { + List<T> children = toTreeData(data, dId, parentIdMapper, idMapper, consumer); + if (!children.isEmpty()) { + consumer.accept(datum, children); + } + result.add(datum); + } + if (dParentId.equals(dId)) { + continue; + } + } + return result; + } + + public static <T> void treeRemove(List<T> list, String condition, Function<? super T, ? extends String> fetcher, Function<T, List<T>> childrenGetter) { Iterator<T> iterator = list.iterator(); while (iterator.hasNext()) { diff --git a/rsf-server/src/main/java/asnOrderItemLog.sql b/rsf-server/src/main/java/asnOrderItemLog.sql deleted file mode 100644 index 367ed6d..0000000 --- a/rsf-server/src/main/java/asnOrderItemLog.sql +++ /dev/null @@ -1,43 +0,0 @@ --- save asnOrderItemLog record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.asnOrderItemLog', '0', '/manager/asnOrderItemLog', 'asnOrderItemLog', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query Asn order logs', '', '1', 'manager:asnOrderItemLog:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create Asn order logs', '', '1', 'manager:asnOrderItemLog:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update Asn order logs', '', '1', 'manager:asnOrderItemLog:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete Asn order logs', '', '1', 'manager:asnOrderItemLog:remove', '3', '1', '1'); - --- locale menu name -asnOrderItemLog: 'AsnOrderItemLog', - --- locale field -asnOrderItemLog: { - asnId: "asnId", - asnCode: "asnCode", - platItemId: "platItemId", - poDetlId: "poDetlId", - poCode: "poCode", - fieldsIndex: "fieldsIndex", - matnrId: "matnrId", - matnrCode: "matnrCode", - maktx: "maktx", - anfme: "anfme", - stockUnit: "stockUnit", - purQty: "purQty", - purUnit: "purUnit", - qty: "qty", - splrCode: "splrCode", - splrBatch: "splrBatch", - splrName: "splrName", - qrcode: "qrcode", - trackCode: "trackCode", - barcode: "barcode", - packName: "packName", - ntyStatus: "ntyStatus", -}, - --- ResourceContent -import asnOrderItemLog from './asnOrderItemLog'; - -case 'asnOrderItemLog': - return asnOrderItemLog; diff --git a/rsf-server/src/main/java/asnOrderLog.sql b/rsf-server/src/main/java/asnOrderLog.sql deleted file mode 100644 index 8ba0442..0000000 --- a/rsf-server/src/main/java/asnOrderLog.sql +++ /dev/null @@ -1,32 +0,0 @@ --- save asnOrderLog record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.asnOrderLog', '0', '/manager/asnOrderLog', 'asnOrderLog', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query Asn order logs', '', '1', 'manager:asnOrderLog:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create Asn order logs', '', '1', 'manager:asnOrderLog:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update Asn order logs', '', '1', 'manager:asnOrderLog:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete Asn order logs', '', '1', 'manager:asnOrderLog:remove', '3', '1', '1'); - --- locale menu name -asnOrderLog: 'AsnOrderLog', - --- locale field -asnOrderLog: { - code: "code", - poCode: "poCode", - poId: "poId", - type: "type", - wkType: "wkType", - anfme: "anfme", - qty: "qty", - logisNo: "logisNo", - arrTime: "arrTime", - rleStatus: "rleStatus", - ntyStatus: "ntyStatus", -}, - --- ResourceContent -import asnOrderLog from './asnOrderLog'; - -case 'asnOrderLog': - return asnOrderLog; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java index 9c60d37..cd7a388 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocAreaMatRelaController.java @@ -16,6 +16,7 @@ import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -60,10 +61,9 @@ @OperationLog("Create loc areas mats rela") @PostMapping("/locAreaMatRela/save") public R save(@RequestBody LocAreaMatRela locAreaMatRela) { + locAreaMatRela.setCreateBy(getLoginUserId()); - locAreaMatRela.setCreateTime(new Date()); locAreaMatRela.setUpdateBy(getLoginUserId()); - locAreaMatRela.setUpdateTime(new Date()); if (!locAreaMatRelaService.save(locAreaMatRela)) { return R.error("Save Fail"); } @@ -82,10 +82,53 @@ return R.ok("Update Success").add(locAreaMatRela); } - @PreAuthorize("hasAuthority('manager:locAreaMatRela:remove')") + @ApiOperation("鍒犻櫎鐗╂枡鍒嗙粍") + @GetMapping("/locAreaMatRela/group") + @PreAuthorize("hasAuthority('manager:locAreaMatRela:update')") + public R remByGroup(@RequestBody Map<String, Object> map) { + if (Objects.isNull(map)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + if (!StringUtils.isBlank(map.get("groupId").toString())) { + throw new CoolException("搴撲綅绫诲瀷涓嶈兘涓虹┖锛侊紒"); + } + if (!StringUtils.isBlank(map.get("areaMatId").toString())) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } + if (locAreaMatRelaService.removeByGroupId(map)) { + return R.ok(); + } else { + return R.error("鍒犻櫎澶辫触锛侊紒"); + } + } + + @ApiOperation("鍒犻櫎搴撲綅绫诲瀷") + @GetMapping("/locAreaMatRela/locType/remove") + @PreAuthorize("hasAuthority('manager:locAreaMatRela:update')") + public R removByLocType(@RequestBody Map<String, Object> param) { + if (Objects.isNull(param)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒锛�"); + } + if (!StringUtils.isBlank(param.get("locTypeId").toString())) { + throw new CoolException("搴撲綅绫诲瀷涓嶈兘涓虹┖锛侊紒"); + } + if (!StringUtils.isBlank(param.get("areaMatId").toString())) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } + if (locAreaMatRelaService.removeByLocType(param)) { + return R.ok(); + } else { + return R.ok("鍒犻櫎澶辫触锛侊紒"); + } + } + + @PreAuthorize("hasAuthority('manager:locAreaMatRela:list')") @OperationLog("Delete loc areas mats rela") @PostMapping("/locAreaMatRela/remove/{ids}") public R remove(@PathVariable Long[] ids) { + if (Objects.isNull(ids)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } if (!locAreaMatRelaService.removeByIds(Arrays.asList(ids))) { return R.error("Delete Fail"); } @@ -107,6 +150,27 @@ } @PreAuthorize("hasAuthority('manager:locAreaMatRela:list')") + @ApiOperation("鑾峰彇搴撳尯鐗╂枡鍒嗙粍") + @GetMapping("/locAreaMatRela/groups/{id}") + public R getAreaMatGroup(@PathVariable Long id) { + if (Objects.isNull(id)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return R.ok(locAreaMatRelaService.getAllGroups(id)); + } + + @PreAuthorize("hasAuthority('manager:locAreaMatRela:list')") + @ApiOperation("鑾峰彇搴撳尯搴撲綅绫诲瀷") + @GetMapping("/locAreaMatRela/locType/{id}") + public R getAreaMatLocType(@PathVariable Long id) { + if (Objects.isNull(id)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return R.ok(locAreaMatRelaService.getAllLocType(id)); + } + + + @PreAuthorize("hasAuthority('manager:locAreaMatRela:list')") @PostMapping("/locAreaMatRela/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { ExcelUtil.build(ExcelUtil.create(locAreaMatRelaService.list(), LocAreaMatRela.class), response); @@ -122,12 +186,12 @@ if (Objects.isNull(param.getAreaId())) { throw new CoolException("搴撳尯涓嶈兘涓虹┖锛侊紒"); } -// if (Objects.isNull(param.getTypeId()) || Objects.isNull(param.getLocId()) || param.getLocId().isEmpty() || param.getTypeId().isEmpty()) { -// throw new CoolException("搴撲綅绫诲瀷鎴栧簱浣嶄笉鑳戒负绌猴紒锛�"); -// } -// if (Objects.isNull(param.getGroupId()) || Objects.isNull(param.getMatnrId()) || param.getMatnrId().isEmpty()) { -// throw new CoolException("鐗╂枡鎴栫墿鏂欏垎绫讳笉鑳戒负绌猴紒锛�"); -// } + if (Objects.isNull(param.getWarehouseId())) { + throw new CoolException("浠撳簱涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(param.getAreaMatId())) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } return locAreaMatRelaService.binMatnrs(param); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java index fbc7197..2b745ee 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/MatnrGroupController.java @@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.*; +import java.util.stream.Collectors; @Api(tags = "鐗╂枡鍒嗙粍") @RestController @@ -141,18 +142,12 @@ @PreAuthorize("hasAuthority('manager:matnrGroup:list')") @PostMapping("/matnrGroup/tree") public R tree(@RequestBody(required = false) Map<String, Object> map) { - List<MatnrGroup> matnrs = new ArrayList<>(); if (Objects.isNull(map)) { - matnrs = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>().orderByAsc(MatnrGroup::getCode)); - } else { - if (Objects.isNull(map.get("condition"))) { - return R.ok("condition鍙傛暟涓嶈兘涓虹┖锛侊紒"); - } - matnrs = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>() - .like(MatnrGroup::getName, map.get("condition")).orderByAsc(MatnrGroup::getCode)); + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - List<MatnrGroup> treeData = Utils.toTreeData(matnrs, 0L, MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren); - return R.ok().add(treeData); + List<MatnrGroup> matnrs = matnrGroupService.getTreeData(map); + + return R.ok().add(matnrs); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java index 51afd7f..79b7975 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseAreasController.java @@ -98,15 +98,15 @@ throw new CoolException("鏁版嵁閿欒锛氫粨搴撳簱鍖轰笉瀛樺湪锛侊紒"); } if (!warehouseAreas.getName().equals(areas.getName())) { - List<WarehouseAreas> areasList = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getName, areas.getName())); + List<WarehouseAreas> areasList = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getName, warehouseAreas.getName())); if (!areasList.isEmpty()) { - throw new CoolException("浠撳簱鍚嶅凡瀛樺湪锛侊紒"); + throw new CoolException("鍚嶇О宸插瓨鍦紒锛�"); } } if (!warehouseAreas.getCode().equals(areas.getCode())) { - List<WarehouseAreas> areasList = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getCode, areas.getCode())); + List<WarehouseAreas> areasList = warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getCode, warehouseAreas.getCode())); if (!areasList.isEmpty()) { - throw new CoolException("浠撳簱缂栫爜宸插瓨鍦紒锛�"); + throw new CoolException("缂栫爜宸插瓨鍦紒锛�"); } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocAreaMatsParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocAreaMatsParam.java index 514452a..fb65e10 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocAreaMatsParam.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocAreaMatsParam.java @@ -26,6 +26,12 @@ @ApiModelProperty("搴撳尯ID") private Long areaId; + @ApiModelProperty("浠撳簱ID") + private Long warehouseId; + + @ApiModelProperty("涓诲崟ID") + private Long areaMatId; + @ApiModelProperty("搴撲綅绫诲瀷") private List<Long> typeId; diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocAreaMatRela.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocAreaMatRela.java index e086af8..98f25fe 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocAreaMatRela.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocAreaMatRela.java @@ -45,6 +45,12 @@ private Long areaId; /** + * 涓诲崟ID + */ + @ApiModelProperty("涓诲崟ID") + private Long areaMatId; + + /** * 缂栧彿 */ @ApiModelProperty(value= "缂栧彿") diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java index f26a29b..80a51e7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/LocTypeRela.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; +import com.vincent.rsf.server.manager.service.LocService; +import com.vincent.rsf.server.manager.service.WarehouseService; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,6 +18,7 @@ import java.io.Serializable; import java.util.Date; +import java.util.Objects; @Data @Accessors(chain = true) @@ -50,4 +53,39 @@ this.typeId = typeId; } +// /** +// * @author Ryan +// * @description 鑾峰彇搴撲綅 +// * @param +// * @return +// * @time 2025/3/24 10:28 +// */ +// public String getLocId$() { +// if (this.warehouseId == null) { return null; } +// WarehouseService warehouseService = SpringUtils.getBean(WarehouseService.class); +// Warehouse warehouse = warehouseService.getById(this.warehouseId); +// if (Objects.isNull(warehouse)) { +// return null; +// } +// return warehouse.getName(); +// } + + /** + * @author Ryan + * @description 鑾峰彇搴撳尯鍚嶇О + * @param + * @return + * @time 2025/3/24 10:27 + */ + public String getAreaId$() { + if (this.locId == null) { return null; } + LocService locService = SpringUtils.getBean(LocService.class); + Loc byId = locService.getById(this.locId); + if (Objects.isNull(byId)) { + return null; + } + return byId.getCode(); + } + + } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocAreaMatRelaService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocAreaMatRelaService.java index a8d0b3c..d9feb2c 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocAreaMatRelaService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocAreaMatRelaService.java @@ -4,8 +4,22 @@ import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.manager.controller.params.LocAreaMatsParam; import com.vincent.rsf.server.manager.entity.LocAreaMatRela; +import com.vincent.rsf.server.manager.entity.LocType; +import com.vincent.rsf.server.manager.entity.LocTypeRela; +import com.vincent.rsf.server.manager.entity.MatnrGroup; + +import java.util.List; +import java.util.Map; public interface LocAreaMatRelaService extends IService<LocAreaMatRela> { R binMatnrs(LocAreaMatsParam param); + + Boolean removeByGroupId(Map<String, Object> params); + + boolean removeByLocType(Map<String, Object> params); + + List<MatnrGroup> getAllGroups(Long id); + + List<LocType> getAllLocType(Long id); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrGroupService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrGroupService.java index 8344c66..a4cbed1 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrGroupService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/MatnrGroupService.java @@ -3,7 +3,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.vincent.rsf.server.manager.entity.MatnrGroup; +import java.util.List; +import java.util.Map; + public interface MatnrGroupService extends IService<MatnrGroup> { + List<MatnrGroup> getTreeData(Map<String, Object> map); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java index dce36e7..1521faa 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocAreaMatRelaServiceImpl.java @@ -4,20 +4,17 @@ import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.controller.params.LocAreaMatsParam; -import com.vincent.rsf.server.manager.entity.LocTypeRela; -import com.vincent.rsf.server.manager.entity.Matnr; +import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.mapper.LocAreaMatRelaMapper; -import com.vincent.rsf.server.manager.entity.LocAreaMatRela; -import com.vincent.rsf.server.manager.service.LocAreaMatRelaService; +import com.vincent.rsf.server.manager.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.vincent.rsf.server.manager.service.LocService; -import com.vincent.rsf.server.manager.service.LocTypeRelaService; -import com.vincent.rsf.server.manager.service.MatnrService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -31,7 +28,13 @@ private LocService locService; @Autowired + private MatnrGroupService matnrGroupService; + + @Autowired private LocTypeRelaService locTypeRelaService; + + @Autowired + private LocTypeService locTypeService; /** @@ -73,6 +76,7 @@ for (Matnr matnrId : matnrIds) { LocAreaMatRela locAreaMatRela = new LocAreaMatRela(); locAreaMatRela + .setAreaMatId(param.getAreaMatId()) .setAreaId(param.getAreaId()) .setLocId(locId) .setLocTypeId(typeId) @@ -94,6 +98,7 @@ LocAreaMatRela locAreaMatRela = new LocAreaMatRela(); locAreaMatRela .setAreaId(param.getAreaId()) + .setAreaMatId(param.getAreaMatId()) .setLocId(locTypeRela.getLocId()) .setLocTypeId(locTypeRela.getTypeId()) .setMatnrId(matnr.getId()) @@ -107,4 +112,100 @@ } return R.ok("缁戝畾鎴愬姛锛侊紒"); } + + /** + * @author Ryan + * @description 绉婚櫎鐗╂枡鍒嗙粍涓嬬粦瀹氬叧绯� + * @param + * @return + * @time 2025/3/24 13:33 + */ + @Override + public Boolean removeByGroupId(Map<String, Object> param) { + if (Objects.isNull(param)) { + throw new CoolException("鐗╂枡鍒嗙粍ID涓嶈兘涓虹┖锛侊紒"); + } + if (!StringUtils.isBlank(param.get("groupId").toString())) { + throw new CoolException("鐗╂枡鍒嗙被涓嶈兘涓虹┖锛侊紒"); + } + if (!StringUtils.isBlank(param.get("areaMatId").toString())) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } + if (!this.remove(new LambdaQueryWrapper<LocAreaMatRela>() + .eq(LocAreaMatRela::getAreaMatId, Long.parseLong(param.get("areaMatId").toString())) + .eq(LocAreaMatRela::getGroupId, Long.parseLong(param.get("groupId").toString())))) { + throw new CoolException("鍒犻櫎澶辫触锛侊紒"); + } + + return true; + } + + /** + * @author Ryan + * @description 绉婚櫎搴撲綅绫诲瀷缁戝畾鍏崇郴 + * @param + * @return + * @time 2025/3/24 13:32 + */ + @Override + public boolean removeByLocType(Map<String, Object> param) { + if (Objects.isNull(param)) { + throw new CoolException("搴撲綅绫诲瀷ID涓嶈兘涓虹┖锛侊紒"); + } + if (!this.remove(new LambdaQueryWrapper<LocAreaMatRela>() + .eq(LocAreaMatRela::getAreaMatId, Long.parseLong(param.get("areaMatId").toString())) + .eq(LocAreaMatRela::getLocTypeId, Long.parseLong(param.get("locTypeId").toString())))) { + throw new CoolException("鍒犻櫎澶辫触锛侊紒"); + } + + return true; + } + + /** + * @author Ryan + * @description 鑾峰彇鐗╂枡鍒嗙粍 + * @param + * @return + * @time 2025/3/24 13:32 + */ + @Override + public List<MatnrGroup> getAllGroups(Long id) { + if (Objects.isNull(id)) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } + List<LocAreaMatRela> locAreaMatRelas = this.list(new LambdaQueryWrapper<LocAreaMatRela>().eq(LocAreaMatRela::getAreaMatId, id)); + if (locAreaMatRelas.isEmpty()) { + throw new CoolException("搴撳尯缁戝畾鐗╂枡涓虹┖锛侊紒"); + } + List<Long> longList = locAreaMatRelas.stream().map(LocAreaMatRela::getGroupId).collect(Collectors.toList()); + List<MatnrGroup> groups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>().in(MatnrGroup::getId, longList)); + if (groups.isEmpty()) { + throw new CoolException("鏁版嵁閿欒锛氱墿鏂欏垎缁勪笉瀛樺湪锛侊紒"); + } + return groups; + } + + /** + * @author Ryan + * @description 鑾峰彇缁戝畾搴撲綅鐗╂枡 + * @param + * @return + * @time 2025/3/24 13:36 + */ + @Override + public List<LocType> getAllLocType(Long id) { + if (Objects.isNull(id)) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } + List<LocAreaMatRela> locAreaMatRelas = this.list(new LambdaQueryWrapper<LocAreaMatRela>().eq(LocAreaMatRela::getAreaMatId, id)); + if (locAreaMatRelas.isEmpty()) { + throw new CoolException("搴撳尯缁戝畾鐗╂枡涓虹┖锛侊紒"); + } + List<Long> longList = locAreaMatRelas.stream().map(LocAreaMatRela::getLocTypeId).collect(Collectors.toList()); + List<LocType> list = locTypeService.list(new LambdaQueryWrapper<LocType>().in(LocType::getId, longList)); + if (list.isEmpty()) { + throw new CoolException("鏁版嵁閿欒锛氬簱浣嶇被鍨嬩笉瀛樺湪锛侊紒"); + } + return list; + } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java index 515ae19..65b0fe6 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/MatnrGroupServiceImpl.java @@ -2,16 +2,48 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.vincent.rsf.common.utils.Utils; import com.vincent.rsf.framework.common.R; +import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.mapper.MatnrGroupMapper; import com.vincent.rsf.server.manager.entity.MatnrGroup; import com.vincent.rsf.server.manager.service.MatnrGroupService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; @Service("matnrGroupService") public class MatnrGroupServiceImpl extends ServiceImpl<MatnrGroupMapper, MatnrGroup> implements MatnrGroupService { + @Override + public List<MatnrGroup> getTreeData(Map<String, Object> map) { + List<MatnrGroup> matnrs = new ArrayList<>(); + if (Objects.isNull(map)) { + matnrs = this.list(new LambdaQueryWrapper<MatnrGroup>().orderByAsc(MatnrGroup::getCode)); + } else { + if (Objects.isNull(map.get("condition"))) { + throw new CoolException("condition鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + if (!StringUtils.isBlank(map.get("condition").toString())) { + List<MatnrGroup> groups = this.list(new LambdaQueryWrapper<MatnrGroup>() + .like(MatnrGroup::getName, map.get("condition")) + .orderByAsc(MatnrGroup::getCode)); + List<Long> collect = groups.stream().map(MatnrGroup::getId).collect(Collectors.toList()); + List<MatnrGroup> list = this.list(new LambdaQueryWrapper<MatnrGroup>().in(MatnrGroup::getId, collect)); + matnrs.addAll(list); + List<MatnrGroup> treeData = Utils.toTreeData(matnrs, 0L, MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren); + return treeData; + } else { + matnrs = this.list(new LambdaQueryWrapper<MatnrGroup>().orderByAsc(MatnrGroup::getCode)); + } + } + List<MatnrGroup> treeData = Utils.toTreeData(matnrs, 0L, MatnrGroup::getParentId, MatnrGroup::getId, MatnrGroup::setChildren); + return treeData; + } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictDataController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictDataController.java index fdf23e4..f450eb6 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictDataController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictDataController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; @@ -55,10 +56,20 @@ @OperationLog("Create 瀛楀吀鏁版嵁闆�") @PostMapping("/dictData/save") public R save(@RequestBody DictData dictData) { + if (Objects.isNull(dictData.getLabel())) { + throw new CoolException("鍒悕涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(dictData.getValue())) { + throw new CoolException("鍊间笉鑳戒负绌猴紒锛�"); + } + if (Objects.isNull(dictData.getDictTypeCode())) { + throw new CoolException("缂栫爜涓嶈兘涓虹┖锛侊紒"); + } + if (Objects.isNull(dictData.getDictTypeId())) { + throw new CoolException("涓诲崟ID涓嶈兘涓虹┖锛侊紒"); + } dictData.setCreateBy(getLoginUserId()); - dictData.setCreateTime(new Date()); dictData.setUpdateBy(getLoginUserId()); - dictData.setUpdateTime(new Date()); if (!dictDataService.save(dictData)) { return R.error("Save Fail"); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictTypeController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictTypeController.java index 1e06e7c..a705dd9 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictTypeController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/DictTypeController.java @@ -61,13 +61,15 @@ if (Objects.isNull(dictType.getName())) { throw new CoolException("瀛楀吀鍚嶇О涓嶈兘涓虹┖锛侊紒"); } - if (Objects.isNull(dictType.getDescription())) { - throw new CoolException("瀛楀吀鎻忚堪涓嶈兘涓虹┖锛侊紒"); - } if (Objects.isNull(dictType.getCode())) { throw new CoolException("瀛楀吀缂栫爜涓嶈兘涓虹┖锛侊紒"); } - + if (!dictTypeService.list(new LambdaQueryWrapper<DictType>().eq(DictType::getCode, dictType.getCode())).isEmpty()) { + throw new CoolException("缂栫爜涓嶈兘閲嶅锛侊紒"); + } + if (!dictTypeService.list(new LambdaQueryWrapper<DictType>().eq(DictType::getName, dictType.getName())).isEmpty()) { + throw new CoolException("鍚嶇О涓嶈兘閲嶅锛侊紒"); + } if (!dictTypeService.save(dictType)) { return R.error("Save Fail"); } @@ -78,8 +80,10 @@ @OperationLog("Update 鏁版嵁瀛楀吀") @PostMapping("/dictType/update") public R update(@RequestBody DictType dictType) { + if (Objects.isNull(dictType)) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } dictType.setUpdateBy(getLoginUserId()); - dictType.setUpdateTime(new Date()); if (!dictTypeService.updateById(dictType)) { return R.error("Update Fail"); } diff --git a/rsf-server/src/main/java/locArea.sql b/rsf-server/src/main/java/locArea.sql deleted file mode 100644 index 8db2b48..0000000 --- a/rsf-server/src/main/java/locArea.sql +++ /dev/null @@ -1,25 +0,0 @@ --- save locArea record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.locArea', '0', '/manager/locArea', 'locArea', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query loc areas', '185', '1', 'manager:locArea:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create loc areas', '185', '1', 'manager:locArea:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update loc areas', '185', '1', 'manager:locArea:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete loc areas', '185', '1', 'manager:locArea:remove', '3', '1', '1'); - --- locale menu name -locArea: 'LocArea', - --- locale field -locArea: { - name: "name", - code: "code", - areaId: "areaId", - locId: "locId", -}, - --- ResourceContent -import locArea from './locArea'; - -case 'locArea': - return locArea; diff --git a/rsf-server/src/main/java/locAreaMat.sql b/rsf-server/src/main/java/locAreaMat.sql deleted file mode 100644 index 90977b6..0000000 --- a/rsf-server/src/main/java/locAreaMat.sql +++ /dev/null @@ -1,23 +0,0 @@ --- save locAreaMat record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.locAreaMat', '0', '/test/locAreaMat', 'locAreaMat', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query loc areas mats', '195', '1', 'test:locAreaMat:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create loc areas mats', '195', '1', 'test:locAreaMat:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update loc areas mats', '195', '1', 'test:locAreaMat:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete loc areas mats', '195', '1', 'test:locAreaMat:remove', '3', '1', '1'); - --- locale menu name -locAreaMat: 'LocAreaMat', - --- locale field -locAreaMat: { - code: "code", - depict: "depict", -}, - --- ResourceContent -import locAreaMat from './locAreaMat'; - -case 'locAreaMat': - return locAreaMat; diff --git a/rsf-server/src/main/java/locAreaMatRela.sql b/rsf-server/src/main/java/locAreaMatRela.sql deleted file mode 100644 index 5c5e032..0000000 --- a/rsf-server/src/main/java/locAreaMatRela.sql +++ /dev/null @@ -1,27 +0,0 @@ --- save locAreaMatRela record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.locAreaMatRela', '0', '/manager/locAreaMatRela', 'locAreaMatRela', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query loc areas mats rela', '', '1', 'manager:locAreaMatRela:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create loc areas mats rela', '', '1', 'manager:locAreaMatRela:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update loc areas mats rela', '', '1', 'manager:locAreaMatRela:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete loc areas mats rela', '', '1', 'manager:locAreaMatRela:remove', '3', '1', '1'); - --- locale menu name -locAreaMatRela: 'LocAreaMatRela', - --- locale field -locAreaMatRela: { - areaId: "areaId", - code: "code", - matnrId: "matnrId", - groupId: "groupId", - locTypeId: "locTypeId", - locId: "locId", -}, - --- ResourceContent -import locAreaMatRela from './locAreaMatRela'; - -case 'locAreaMatRela': - return locAreaMatRela; diff --git a/rsf-server/src/main/java/locAreaRela.sql b/rsf-server/src/main/java/locAreaRela.sql deleted file mode 100644 index d6eb58e..0000000 --- a/rsf-server/src/main/java/locAreaRela.sql +++ /dev/null @@ -1,23 +0,0 @@ --- save locAreaRela record --- mysql -insert into `sys_menu` ( `name`, `parent_id`, `route`, `component`, `type`, `sort`, `tenant_id`, `status`) values ( 'menu.locAreaRela', '0', '/manager/locAreaRela', 'locAreaRela', '0' , '0', '1' , '1'); - -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Query loc areas rela', '', '1', 'manager:locAreaRela:list', '0', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Create loc areas rela', '', '1', 'manager:locAreaRela:save', '1', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Update loc areas rela', '', '1', 'manager:locAreaRela:update', '2', '1', '1'); -insert into `sys_menu` ( `name`, `parent_id`, `type`, `authority`, `sort`, `tenant_id`, `status`) values ( 'Delete loc areas rela', '', '1', 'manager:locAreaRela:remove', '3', '1', '1'); - --- locale menu name -locAreaRela: 'LocAreaRela', - --- locale field -locAreaRela: { - locAreaId: "locAreaId", - locId: "locId", -}, - --- ResourceContent -import locAreaRela from './locAreaRela'; - -case 'locAreaRela': - return locAreaRela; diff --git a/rsf-server/src/main/resources/application.yml b/rsf-server/src/main/resources/application.yml index dbc54f3..b6c0ce1 100644 --- a/rsf-server/src/main/resources/application.yml +++ b/rsf-server/src/main/resources/application.yml @@ -31,8 +31,8 @@ :banner: false db-config: id-type: auto - logic-delete-value: 1 - logic-not-delete-value: 0 +# logic-delete-value: 1 +# logic-not-delete-value: 0 super: pwd: xltys1995 -- Gitblit v1.9.1