You need to sign in or sign up before continuing.
Commit 51ce87e0 authored by 刘帅's avatar 刘帅

1.物资库存优化

parent ed8755c0
package com.maintain.business.controller; package com.maintain.business.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
import com.maintain.business.domain.bo.ErpCarBo;
import com.maintain.business.domain.vo.ErpCarVo;
import com.maintain.business.listener.ErpCarImportListener;
import com.maintain.business.listener.ErpMaterialImportListener;
import com.maintain.common.excel.ExcelResult;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.http.MediaType; import com.maintain.business.domain.bo.ErpMaterialBo;
import org.springframework.web.bind.annotation.*; import com.maintain.business.domain.vo.ErpMaterialVo;
import org.springframework.validation.annotation.Validated; import com.maintain.business.listener.ErpMaterialImportListener;
import com.maintain.common.annotation.RepeatSubmit; import com.maintain.business.service.IErpMaterialService;
import com.maintain.common.annotation.Log; import com.maintain.common.annotation.Log;
import com.maintain.common.annotation.RepeatSubmit;
import com.maintain.common.core.controller.BaseController; import com.maintain.common.core.controller.BaseController;
import com.maintain.common.core.domain.PageQuery; import com.maintain.common.core.domain.PageQuery;
import com.maintain.common.core.domain.R; import com.maintain.common.core.domain.R;
import com.maintain.common.core.page.TableDataInfo;
import com.maintain.common.core.validate.AddGroup; import com.maintain.common.core.validate.AddGroup;
import com.maintain.common.core.validate.EditGroup; import com.maintain.common.core.validate.EditGroup;
import com.maintain.common.enums.BusinessType; import com.maintain.common.enums.BusinessType;
import com.maintain.common.excel.ExcelResult;
import com.maintain.common.utils.poi.ExcelUtil; import com.maintain.common.utils.poi.ExcelUtil;
import com.maintain.business.domain.vo.ErpMaterialVo; import lombok.RequiredArgsConstructor;
import com.maintain.business.domain.bo.ErpMaterialBo; import org.springframework.http.MediaType;
import com.maintain.business.service.IErpMaterialService; import org.springframework.validation.annotation.Validated;
import com.maintain.common.core.page.TableDataInfo; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/** /**
* 物资 * 物资
* *
...@@ -51,7 +49,7 @@ public class ErpMaterialController extends BaseController { ...@@ -51,7 +49,7 @@ public class ErpMaterialController extends BaseController {
@SaCheckPermission("business:material:list") @SaCheckPermission("business:material:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<ErpMaterialVo> list(ErpMaterialBo bo, PageQuery pageQuery) { public TableDataInfo<ErpMaterialVo> list(ErpMaterialBo bo, PageQuery pageQuery) {
return iErpMaterialService.queryPageList(bo, pageQuery); return iErpMaterialService.customQueryPageList(bo, pageQuery);
} }
/** /**
......
package com.maintain.business.mapper; package com.maintain.business.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.maintain.business.domain.ErpMaterial; import com.maintain.business.domain.ErpMaterial;
import com.maintain.business.domain.ErpMaterialPickingInfo;
import com.maintain.business.domain.vo.ErpMaterialPickingInfoVo;
import com.maintain.business.domain.vo.ErpMaterialVo; import com.maintain.business.domain.vo.ErpMaterialVo;
import com.maintain.common.core.mapper.BaseMapperPlus; import com.maintain.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param;
/** /**
* 物资Mapper接口 * 物资Mapper接口
...@@ -12,4 +18,12 @@ import com.maintain.common.core.mapper.BaseMapperPlus; ...@@ -12,4 +18,12 @@ import com.maintain.common.core.mapper.BaseMapperPlus;
*/ */
public interface ErpMaterialMapper extends BaseMapperPlus<ErpMaterialMapper, ErpMaterial, ErpMaterialVo> { public interface ErpMaterialMapper extends BaseMapperPlus<ErpMaterialMapper, ErpMaterial, ErpMaterialVo> {
/**
* 自定义分页查询
* @param page
* @param queryWrapper
* @return
*/
Page<ErpMaterialVo> customQueryPageList(@Param("page") Page<ErpMaterial> page, @Param(Constants.WRAPPER) Wrapper<ErpMaterial> queryWrapper);
} }
...@@ -28,6 +28,11 @@ public interface IErpMaterialService { ...@@ -28,6 +28,11 @@ public interface IErpMaterialService {
*/ */
TableDataInfo<ErpMaterialVo> queryPageList(ErpMaterialBo bo, PageQuery pageQuery); TableDataInfo<ErpMaterialVo> queryPageList(ErpMaterialBo bo, PageQuery pageQuery);
/**
* 查询物资列表(自定义查询)
*/
TableDataInfo<ErpMaterialVo> customQueryPageList(ErpMaterialBo bo, PageQuery pageQuery);
/** /**
* 查询物资列表 * 查询物资列表
*/ */
......
package com.maintain.business.service.impl; package com.maintain.business.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.maintain.business.domain.ErpMaterialCheck; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.maintain.business.domain.ErpMaterial;
import com.maintain.business.domain.bo.ErpMaterialBo;
import com.maintain.business.domain.vo.*; import com.maintain.business.domain.vo.*;
import com.maintain.business.mapper.*; import com.maintain.business.mapper.*;
import com.maintain.business.service.IErpMaterialService;
import com.maintain.common.core.domain.PageQuery;
import com.maintain.common.core.page.TableDataInfo;
import com.maintain.common.enums.IsDeleteStatus; import com.maintain.common.enums.IsDeleteStatus;
import com.maintain.common.enums.IsEnableStatus; import com.maintain.common.enums.IsEnableStatus;
import com.maintain.common.utils.StringUtils; import com.maintain.common.utils.StringUtils;
import com.maintain.common.core.page.TableDataInfo;
import com.maintain.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.maintain.business.domain.bo.ErpMaterialBo;
import com.maintain.business.domain.ErpMaterial;
import com.maintain.business.service.IErpMaterialService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Collection;
import static net.sf.jsqlparser.parser.feature.Feature.update;
/** /**
* 物资Service业务层处理 * 物资Service业务层处理
...@@ -61,6 +59,15 @@ public class ErpMaterialServiceImpl implements IErpMaterialService { ...@@ -61,6 +59,15 @@ public class ErpMaterialServiceImpl implements IErpMaterialService {
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
/**
* 查询物资列表(自定义查询)
*/
@Override
public TableDataInfo<ErpMaterialVo> customQueryPageList(ErpMaterialBo bo, PageQuery pageQuery) {
Page<ErpMaterialVo> result = baseMapper.customQueryPageList(pageQuery.build(), this.customBuildQueryWrapper(bo));
return TableDataInfo.build(result);
}
/** /**
* 查询物资列表 * 查询物资列表
*/ */
...@@ -70,6 +77,18 @@ public class ErpMaterialServiceImpl implements IErpMaterialService { ...@@ -70,6 +77,18 @@ public class ErpMaterialServiceImpl implements IErpMaterialService {
return baseMapper.selectVoList(lqw); return baseMapper.selectVoList(lqw);
} }
private QueryWrapper<ErpMaterial> customBuildQueryWrapper(ErpMaterialBo bo) {
QueryWrapper<ErpMaterial> query = Wrappers.query();
query.like(null != bo.getVendorName(), "vendor_name", bo.getVendorName())
.like(null != bo.getMaterialName(), "material_name", bo.getMaterialName())
.like(null != bo.getMaterialCode(), "material_code", bo.getMaterialCode())
.like(null != bo.getMaterialSpecifications(), "material_specifications", bo.getMaterialSpecifications())
.eq(null != bo.getIsEnable(), "is_enable", bo.getIsEnable())
.eq(null != bo.getIsCheck(), "is_check", bo.getIsCheck())
.eq(null != bo.getIsUniversal(), "is_universal", bo.getIsUniversal());
return query;
}
private LambdaQueryWrapper<ErpMaterial> buildQueryWrapper(ErpMaterialBo bo) { private LambdaQueryWrapper<ErpMaterial> buildQueryWrapper(ErpMaterialBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ErpMaterial> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<ErpMaterial> lqw = Wrappers.lambdaQuery();
......
...@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.maintain.business.mapper.ErpMaterialMapper"> <mapper namespace="com.maintain.business.mapper.ErpMaterialMapper">
<resultMap type="com.maintain.business.domain.ErpMaterial" id="ErpMaterialResult"> <resultMap type="com.maintain.business.domain.vo.ErpMaterialVo" id="ErpMaterialResult">
<result property="id" column="id"/> <result property="id" column="id"/>
<result property="materialTypeId" column="material_type_id"/> <result property="materialTypeId" column="material_type_id"/>
<result property="materialTypeName" column="material_type_name"/> <result property="materialTypeName" column="material_type_name"/>
...@@ -24,9 +24,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -24,9 +24,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="isUniversal" column="is_universal"/> <result property="isUniversal" column="is_universal"/>
<result property="createBy" column="create_by"/> <result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/> <result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<sql id="customQuerySql">
SELECT DISTINCT m.*
FROM erp_material m
LEFT JOIN erp_material_picking_info p ON m.id = p.material_id
LEFT JOIN erp_material_putaway_info pu ON m.id = pu.material_id
LEFT JOIN erp_material_returns_info r ON m.id = r.material_id
WHERE p.material_id IS NOT NULL
OR pu.material_id IS NOT NULL
OR r.material_id IS NOT NULL
</sql>
<select id="customQueryPageList" resultType="com.maintain.business.domain.vo.ErpMaterialVo">
<include refid="customQuerySql" />
${ew.getCustomSqlSegment}
</select>
</mapper> </mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment