From ac955351e2d5f45d90367f5af19e4d6b0ba7bb7b Mon Sep 17 00:00:00 2001 From: Administrator <1923636941@qq.com> Date: Sat, 15 Apr 2023 18:11:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A7=E5=93=81=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E4=BF=A1=E6=81=AF=E5=A2=9E=E5=8A=A0ancestors=E5=B1=9E?= =?UTF-8?q?=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StuffDetailController.java | 8 +---- .../stuff/controller/StuffTypeController.java | 10 ++++++ .../modules/stuff/entity/StuffDetail.java | 26 ++++++++++++++- .../xmgl/modules/stuff/entity/StuffType.java | 4 +++ .../stuff/mapper/StuffDetailMapper.java | 6 ++++ .../stuff/mapper/xml/StuffDetailMapper.xml | 11 +++++++ .../stuff/service/IStuffDetailService.java | 5 +++ .../service/impl/StuffDetailServiceImpl.java | 33 +++++++++++++++++++ .../com/zhgd/xmgl/util/ReflectionUtil.java | 13 +++++--- 9 files changed, 104 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffDetailController.java b/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffDetailController.java index 17baf569d..bbd9b1006 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffDetailController.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffDetailController.java @@ -65,13 +65,7 @@ public class StuffDetailController { @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { - Result> result = new Result>(); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(stuffDetail, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = stuffDetailService.page(page, queryWrapper); - result.setSuccess(true); - result.setResult(pageList); - return result; + return stuffDetailService.queryPageList(stuffDetail,pageNo,pageSize,req); } /** diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffTypeController.java b/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffTypeController.java index 409a9eb0c..4e237fb70 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffTypeController.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/controller/StuffTypeController.java @@ -110,7 +110,17 @@ public class StuffTypeController { public Result add(@RequestBody StuffType stuffType) { Result result = new Result(); try { + boolean top = stuffType.getParentId() == null || stuffType.getParentId() == 0; + if (top) { + stuffType.setParentId(0L); + stuffType.setAncestors("0"); + } stuffTypeService.save(stuffType); + if (!top) { + StuffType p = stuffTypeService.getById(stuffType.getParentId()); + stuffType.setAncestors(p.getAncestors() + "," + p.getId()); + stuffTypeService.updateById(stuffType); + } result.success("添加成功!"); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffDetail.java b/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffDetail.java index 9cd48a382..6248374e2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffDetail.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffDetail.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.stuff.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -11,6 +12,7 @@ import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; +import java.util.Date; /** * @Description: 货品 @@ -35,7 +37,7 @@ public class StuffDetail implements Serializable { */ @Excel(name = "货品分类id", width = 15) @ApiModelProperty(value = "货品分类id") - private java.lang.Integer stuffTypeId; + private java.lang.Long stuffTypeId; /** * 货号 */ @@ -118,4 +120,26 @@ public class StuffDetail implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间") private java.util.Date updateTime; + + @ApiModelProperty(value = "数量") + private Integer quantity; + + @TableField(exist = false) + @ApiModelProperty(value = "仓库id") + private Long stuffWarehouseId; + + @TableField(exist = false) + @ApiModelProperty(value = "仓库名称") + private String warehouseNames; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "开始时间") + private Date startTime; + + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "结束时间") + private Date endTime; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffType.java b/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffType.java index cf46c1814..4826bd563 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffType.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/entity/StuffType.java @@ -85,6 +85,10 @@ public class StuffType implements Serializable { @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; + @ApiModelProperty(value = "祖级列表") + private java.lang.String ancestors; + + @TableField(exist = false) private List children; } diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/StuffDetailMapper.java b/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/StuffDetailMapper.java index 97ca7384f..6d4688507 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/StuffDetailMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/StuffDetailMapper.java @@ -1,8 +1,13 @@ package com.zhgd.xmgl.modules.stuff.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.xmgl.modules.stuff.entity.StuffDetail; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * @Description: 货品 @@ -13,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface StuffDetailMapper extends BaseMapper { + IPage queryPageList(StuffDetail stuffDetail, Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/xml/StuffDetailMapper.xml b/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/xml/StuffDetailMapper.xml index 86e3e474a..d86a8136b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/xml/StuffDetailMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/mapper/xml/StuffDetailMapper.xml @@ -2,4 +2,15 @@ + diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/service/IStuffDetailService.java b/src/main/java/com/zhgd/xmgl/modules/stuff/service/IStuffDetailService.java index c5238bcfc..dda83f187 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/service/IStuffDetailService.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/service/IStuffDetailService.java @@ -1,8 +1,12 @@ package com.zhgd.xmgl.modules.stuff.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.modules.stuff.entity.StuffDetail; +import javax.servlet.http.HttpServletRequest; + /** * @Description: 货品 * @author: pds @@ -11,4 +15,5 @@ import com.zhgd.xmgl.modules.stuff.entity.StuffDetail; */ public interface IStuffDetailService extends IService { + Result> queryPageList(StuffDetail stuffDetail, Integer pageNo, Integer pageSize, HttpServletRequest req); } diff --git a/src/main/java/com/zhgd/xmgl/modules/stuff/service/impl/StuffDetailServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/stuff/service/impl/StuffDetailServiceImpl.java index b47e8c37a..5e1227a5d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/stuff/service/impl/StuffDetailServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/stuff/service/impl/StuffDetailServiceImpl.java @@ -1,11 +1,20 @@ package com.zhgd.xmgl.modules.stuff.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.modules.stuff.entity.StuffDetail; import com.zhgd.xmgl.modules.stuff.mapper.StuffDetailMapper; import com.zhgd.xmgl.modules.stuff.service.IStuffDetailService; +import com.zhgd.xmgl.util.ReflectionUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; + /** * @Description: 货品 * @author: pds @@ -14,5 +23,29 @@ import org.springframework.stereotype.Service; */ @Service public class StuffDetailServiceImpl extends ServiceImpl implements IStuffDetailService { + @Autowired + StuffDetailMapper stuffDetailMapper; + @Override + public Result> queryPageList(StuffDetail stuffDetail, Integer pageNo, Integer pageSize, HttpServletRequest req) { + Result> result = new Result<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + String stuffDetailAlias = "sd."; + String warehouseAlias = "sw."; + queryWrapper + .eq(StringUtils.isNotBlank(stuffDetail.getProjectSn()), stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getProjectSn), stuffDetail.getProjectSn()) + .eq(stuffDetail.getStuffTypeId() != null, stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getStuffTypeId), stuffDetail.getStuffTypeId()) + .eq(stuffDetail.getStuffWarehouseId() != null, warehouseAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getStuffWarehouseId), stuffDetail.getStuffWarehouseId()) + .le(stuffDetail.getEndTime() != null, stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getUpdateTime), stuffDetail.getEndTime()) + .ge(stuffDetail.getStartTime() != null, stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getUpdateTime), stuffDetail.getStartTime()) + .like(StringUtils.isNotBlank(stuffDetail.getStuffNumber()), stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getStuffNumber), stuffDetail.getStuffNumber()) + .like(StringUtils.isNotBlank(stuffDetail.getLookupCode()), stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getLookupCode), stuffDetail.getLookupCode()) + .like(StringUtils.isNotBlank(stuffDetail.getName()), stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getName), stuffDetail.getName()) + .like(StringUtils.isNotBlank(stuffDetail.getSpecification()), stuffDetailAlias + ReflectionUtil.getFieldNameToUlc(StuffDetail::getSpecification), stuffDetail.getSpecification()); + Page page = new Page(pageNo, pageSize); + IPage pageList = stuffDetailMapper.queryPageList(stuffDetail, page, queryWrapper); + result.setSuccess(true); + result.setResult(pageList); + return result; + } } diff --git a/src/main/java/com/zhgd/xmgl/util/ReflectionUtil.java b/src/main/java/com/zhgd/xmgl/util/ReflectionUtil.java index 256efe7da..cce78eac7 100644 --- a/src/main/java/com/zhgd/xmgl/util/ReflectionUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/ReflectionUtil.java @@ -1,5 +1,6 @@ package com.zhgd.xmgl.util; +import cn.hutool.core.util.StrUtil; import org.springframework.util.ClassUtils; import org.springframework.util.ReflectionUtils; @@ -20,6 +21,14 @@ public class ReflectionUtil { private static Map, Field> cache = new ConcurrentHashMap<>(); + public static List getFieldNameList(SerializableFunction... functions) { + return Arrays.stream(functions).map(ReflectionUtil::getFieldName).collect(Collectors.toList()); + } + + public static String getFieldNameToUlc(SerializableFunction function) { + return StrUtil.toUnderlineCase(getFieldName(function)); + } + /** * 方法引用获取属性名 * @@ -33,10 +42,6 @@ public class ReflectionUtil { return field.getName(); } - public static List getFieldNameList(SerializableFunction... functions) { - return Arrays.stream(functions).map(ReflectionUtil::getFieldName).collect(Collectors.toList()); - } - public static Field getField(SerializableFunction function) { return cache.computeIfAbsent(function, ReflectionUtil::findField); }