1.0.4 add物料信息

dev
yinq 3 months ago
parent a6ce138bac
commit 25ae52a03b

@ -17,99 +17,99 @@ import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType; import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil; import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; import org.dromara.oa.base.domain.vo.BaseMaterialInfoVo;
import org.dromara.oa.base.domain.bo.BaseMaterielInfoBo; import org.dromara.oa.base.domain.bo.BaseMaterialInfoBo;
import org.dromara.oa.base.service.IBaseMaterielInfoService; import org.dromara.oa.base.service.IBaseMaterialInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
/** /**
* SAP * SAP
* 访:/oa/base/materielInfo * 访:/oa/base/materialInfo
* *
* @author Yinq * @author Yinq
* @date 2025-09-28 * @date 2025-09-30
*/ */
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor
@RestController @RestController
@RequestMapping("/base/materielInfo") @RequestMapping("/base/materialInfo")
public class BaseMaterielInfoController extends BaseController { public class BaseMaterialInfoController extends BaseController {
private final IBaseMaterielInfoService baseMaterielInfoService; private final IBaseMaterialInfoService baseMaterialInfoService;
/** /**
* SAP * SAP
*/ */
@SaCheckPermission("oa/base:materielInfo:list") @SaCheckPermission("oa/base:materialInfo:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<BaseMaterielInfoVo> list(BaseMaterielInfoBo bo, PageQuery pageQuery) { public TableDataInfo<BaseMaterialInfoVo> list(BaseMaterialInfoBo bo, PageQuery pageQuery) {
return baseMaterielInfoService.queryPageList(bo, pageQuery); return baseMaterialInfoService.queryPageList(bo, pageQuery);
} }
/** /**
* SAP * SAP
*/ */
@SaCheckPermission("oa/base:materielInfo:export") @SaCheckPermission("oa/base:materialInfo:export")
@Log(title = "SAP物料信息", businessType = BusinessType.EXPORT) @Log(title = "SAP物料信息", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(BaseMaterielInfoBo bo, HttpServletResponse response) { public void export(BaseMaterialInfoBo bo, HttpServletResponse response) {
List<BaseMaterielInfoVo> list = baseMaterielInfoService.queryList(bo); List<BaseMaterialInfoVo> list = baseMaterialInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "SAP物料信息", BaseMaterielInfoVo.class, response); ExcelUtil.exportExcel(list, "SAP物料信息", BaseMaterialInfoVo.class, response);
} }
/** /**
* SAP * SAP
* *
* @param materielId * @param materialId
*/ */
@SaCheckPermission("oa/base:materielInfo:query") @SaCheckPermission("oa/base:materialInfo:query")
@GetMapping("/{materielId}") @GetMapping("/{materialId}")
public R<BaseMaterielInfoVo> getInfo(@NotNull(message = "主键不能为空") public R<BaseMaterialInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("materielId") Long materielId) { @PathVariable("materialId") Long materialId) {
return R.ok(baseMaterielInfoService.queryById(materielId)); return R.ok(baseMaterialInfoService.queryById(materialId));
} }
/** /**
* SAP * SAP
*/ */
@SaCheckPermission("oa/base:materielInfo:add") @SaCheckPermission("oa/base:materialInfo:add")
@Log(title = "SAP物料信息", businessType = BusinessType.INSERT) @Log(title = "SAP物料信息", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping() @PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BaseMaterielInfoBo bo) { public R<Void> add(@Validated(AddGroup.class) @RequestBody BaseMaterialInfoBo bo) {
return toAjax(baseMaterielInfoService.insertByBo(bo)); return toAjax(baseMaterialInfoService.insertByBo(bo));
} }
/** /**
* SAP * SAP
*/ */
@SaCheckPermission("oa/base:materielInfo:edit") @SaCheckPermission("oa/base:materialInfo:edit")
@Log(title = "SAP物料信息", businessType = BusinessType.UPDATE) @Log(title = "SAP物料信息", businessType = BusinessType.UPDATE)
@RepeatSubmit() @RepeatSubmit()
@PutMapping() @PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BaseMaterielInfoBo bo) { public R<Void> edit(@Validated(EditGroup.class) @RequestBody BaseMaterialInfoBo bo) {
return toAjax(baseMaterielInfoService.updateByBo(bo)); return toAjax(baseMaterialInfoService.updateByBo(bo));
} }
/** /**
* SAP * SAP
* *
* @param materielIds * @param materialIds
*/ */
@SaCheckPermission("oa/base:materielInfo:remove") @SaCheckPermission("oa/base:materialInfo:remove")
@Log(title = "SAP物料信息", businessType = BusinessType.DELETE) @Log(title = "SAP物料信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{materielIds}") @DeleteMapping("/{materialIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空") public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("materielIds") Long[] materielIds) { @PathVariable("materialIds") Long[] materialIds) {
return toAjax(baseMaterielInfoService.deleteWithValidByIds(List.of(materielIds), true)); return toAjax(baseMaterialInfoService.deleteWithValidByIds(List.of(materialIds), true));
} }
/** /**
* SAP * SAP
*/ */
@GetMapping("/getBaseMaterielInfoList") @GetMapping("/getBaseMaterialInfoList")
public R<List<BaseMaterielInfoVo>> getBaseMaterielInfoList(BaseMaterielInfoBo bo) { public R<List<BaseMaterialInfoVo>> getBaseMaterialInfoList(BaseMaterialInfoBo bo) {
List<BaseMaterielInfoVo> list = baseMaterielInfoService.queryList(bo); List<BaseMaterialInfoVo> list = baseMaterialInfoService.queryList(bo);
return R.ok(list); return R.ok(list);
} }

@ -8,15 +8,15 @@ import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
/** /**
* SAP base_materiel_info * SAP base_material_info
* *
* @author Yinq * @author Yinq
* @date 2025-09-28 * @date 2025-09-30
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName("base_materiel_info") @TableName("base_material_info")
public class BaseMaterielInfo extends TenantEntity { public class BaseMaterialInfo extends TenantEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -24,28 +24,28 @@ public class BaseMaterielInfo extends TenantEntity {
/** /**
* ID * ID
*/ */
@TableId(value = "materiel_id", type = IdType.AUTO) @TableId(value = "material_id", type = IdType.AUTO)
private Long materielId; private Long materialId;
/** /**
* SAP * SAP
*/ */
private String materielCode; private String materialCode;
/** /**
* SAP * SAP
*/ */
private String materielName; private String materialName;
/** /**
* *
*/ */
private String materielBrand; private String materialBrand;
/** /**
* *
*/ */
private String materielModel; private String materialModel;
/** /**
* ID * ID
@ -88,9 +88,5 @@ public class BaseMaterielInfo extends TenantEntity {
@TableLogic @TableLogic
private String delFlag; private String delFlag;
/**
*
*/
@TableField(exist = false)
private String unitName;
} }

@ -1,6 +1,6 @@
package org.dromara.oa.base.domain.bo; package org.dromara.oa.base.domain.bo;
import org.dromara.oa.base.domain.BaseMaterielInfo; import org.dromara.oa.base.domain.BaseMaterialInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
@ -10,45 +10,46 @@ import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
/** /**
* SAP base_materiel_info * SAP base_material_info
* *
* @author Yinq * @author Yinq
* @date 2025-09-28 * @date 2025-09-30
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BaseMaterielInfo.class, reverseConvertGenerate = false) @AutoMapper(target = BaseMaterialInfo.class, reverseConvertGenerate = false)
public class BaseMaterielInfoBo extends BaseEntity { public class BaseMaterialInfoBo extends BaseEntity {
/** /**
* ID * ID
*/ */
@NotNull(message = "物料ID不能为空", groups = { EditGroup.class }) @NotNull(message = "物料ID不能为空", groups = { EditGroup.class })
private Long materielId; private Long materialId;
/** /**
* SAP * SAP
*/ */
private String materielCode; private String materialCode;
/** /**
* SAP * SAP
*/ */
private String materielName; private String materialName;
/** /**
* *
*/ */
private String materielBrand; private String materialBrand;
/** /**
* *
*/ */
private String materielModel; private String materialModel;
/** /**
* ID * ID
*/ */
@NotNull(message = "单位ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long unitId; private Long unitId;
/** /**
@ -81,9 +82,5 @@ public class BaseMaterielInfoBo extends BaseEntity {
*/ */
private String activeFlag; private String activeFlag;
/**
*
*/
private String unitName;
} }

@ -1,6 +1,6 @@
package org.dromara.oa.base.domain.vo; package org.dromara.oa.base.domain.vo;
import org.dromara.oa.base.domain.BaseMaterielInfo; import org.dromara.oa.base.domain.BaseMaterialInfo;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty; import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.annotation.ExcelDictFormat;
@ -15,15 +15,15 @@ import java.util.Date;
/** /**
* SAP base_materiel_info * SAP base_material_info
* *
* @author Yinq * @author Yinq
* @date 2025-09-28 * @date 2025-09-30
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = BaseMaterielInfo.class) @AutoMapper(target = BaseMaterialInfo.class)
public class BaseMaterielInfoVo implements Serializable { public class BaseMaterialInfoVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -32,31 +32,31 @@ public class BaseMaterielInfoVo implements Serializable {
* ID * ID
*/ */
@ExcelProperty(value = "物料ID") @ExcelProperty(value = "物料ID")
private Long materielId; private Long materialId;
/** /**
* SAP * SAP
*/ */
@ExcelProperty(value = "SAP物料编码") @ExcelProperty(value = "SAP物料编码")
private String materielCode; private String materialCode;
/** /**
* SAP * SAP
*/ */
@ExcelProperty(value = "SAP物料名称") @ExcelProperty(value = "SAP物料名称")
private String materielName; private String materialName;
/** /**
* *
*/ */
@ExcelProperty(value = "物料品牌") @ExcelProperty(value = "物料品牌")
private String materielBrand; private String materialBrand;
/** /**
* *
*/ */
@ExcelProperty(value = "物料型号") @ExcelProperty(value = "物料型号")
private String materielModel; private String materialModel;
/** /**
* ID * ID
@ -64,12 +64,6 @@ public class BaseMaterielInfoVo implements Serializable {
@ExcelProperty(value = "单位ID") @ExcelProperty(value = "单位ID")
private Long unitId; private Long unitId;
/**
*
*/
@ExcelProperty(value = "物料单位")
private String unitName;
/** /**
* *
*/ */
@ -108,4 +102,5 @@ public class BaseMaterielInfoVo implements Serializable {
@ExcelDictFormat(dictType = "active_flag") @ExcelDictFormat(dictType = "active_flag")
private String activeFlag; private String activeFlag;
} }

@ -1,22 +1,21 @@
package org.dromara.oa.base.mapper; package org.dromara.oa.base.mapper;
import java.util.List; import java.util.List;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.dromara.oa.base.domain.BaseMaterielInfo; import org.dromara.oa.base.domain.BaseMaterialInfo;
import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; import org.dromara.oa.base.domain.vo.BaseMaterialInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/** /**
* SAPMapper * SAPMapper
* *
* @author Yinq * @author Yinq
* @date 2025-09-28 * @date 2025-09-30
*/ */
public interface BaseMaterielInfoMapper extends BaseMapperPlus<BaseMaterielInfo, BaseMaterielInfoVo> { public interface BaseMaterialInfoMapper extends BaseMapperPlus<BaseMaterialInfo, BaseMaterialInfoVo> {
/** /**
* SAP * SAP
@ -25,7 +24,7 @@ public interface BaseMaterielInfoMapper extends BaseMapperPlus<BaseMaterielInfo,
* @param queryWrapper * @param queryWrapper
* @return SAP * @return SAP
*/ */
public Page<BaseMaterielInfoVo> selectCustomBaseMaterielInfoVoList(@Param("page") Page<BaseMaterielInfoVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<BaseMaterielInfo> queryWrapper); public Page<BaseMaterialInfoVo> selectCustomBaseMaterialInfoVoList(@Param("page") Page<BaseMaterialInfoVo> page, @Param(Constants.WRAPPER) MPJLambdaWrapper<BaseMaterialInfo> queryWrapper);
/** /**
* SAP * SAP
@ -33,6 +32,6 @@ public interface BaseMaterielInfoMapper extends BaseMapperPlus<BaseMaterielInfo,
* @param queryWrapper * @param queryWrapper
* @return SAP * @return SAP
*/ */
public List<BaseMaterielInfoVo> selectCustomBaseMaterielInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<BaseMaterielInfo> queryWrapper); public List<BaseMaterialInfoVo> selectCustomBaseMaterialInfoVoList(@Param(Constants.WRAPPER) MPJLambdaWrapper<BaseMaterialInfo> queryWrapper);
} }

@ -1,8 +1,8 @@
package org.dromara.oa.base.service; package org.dromara.oa.base.service;
import org.dromara.oa.base.domain.BaseMaterielInfo; import org.dromara.oa.base.domain.BaseMaterialInfo;
import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo; import org.dromara.oa.base.domain.vo.BaseMaterialInfoVo;
import org.dromara.oa.base.domain.bo.BaseMaterielInfoBo; import org.dromara.oa.base.domain.bo.BaseMaterialInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
@ -13,17 +13,17 @@ import java.util.List;
* SAPService * SAPService
* *
* @author Yinq * @author Yinq
* @date 2025-09-28 * @date 2025-09-30
*/ */
public interface IBaseMaterielInfoService { public interface IBaseMaterialInfoService {
/** /**
* SAP * SAP
* *
* @param materielId * @param materialId
* @return SAP * @return SAP
*/ */
BaseMaterielInfoVo queryById(Long materielId); BaseMaterialInfoVo queryById(Long materialId);
/** /**
* SAP * SAP
@ -32,7 +32,7 @@ public interface IBaseMaterielInfoService {
* @param pageQuery * @param pageQuery
* @return SAP * @return SAP
*/ */
TableDataInfo<BaseMaterielInfoVo> queryPageList(BaseMaterielInfoBo bo, PageQuery pageQuery); TableDataInfo<BaseMaterialInfoVo> queryPageList(BaseMaterialInfoBo bo, PageQuery pageQuery);
/** /**
* SAP * SAP
@ -40,7 +40,7 @@ public interface IBaseMaterielInfoService {
* @param bo * @param bo
* @return SAP * @return SAP
*/ */
List<BaseMaterielInfoVo> queryList(BaseMaterielInfoBo bo); List<BaseMaterialInfoVo> queryList(BaseMaterialInfoBo bo);
/** /**
* SAP * SAP
@ -48,7 +48,7 @@ public interface IBaseMaterielInfoService {
* @param bo SAP * @param bo SAP
* @return * @return
*/ */
Boolean insertByBo(BaseMaterielInfoBo bo); Boolean insertByBo(BaseMaterialInfoBo bo);
/** /**
* SAP * SAP
@ -56,7 +56,7 @@ public interface IBaseMaterielInfoService {
* @param bo SAP * @param bo SAP
* @return * @return
*/ */
Boolean updateByBo(BaseMaterielInfoBo bo); Boolean updateByBo(BaseMaterialInfoBo bo);
/** /**
* SAP * SAP

@ -0,0 +1,141 @@
package org.dromara.oa.base.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.oa.base.domain.bo.BaseMaterialInfoBo;
import org.dromara.oa.base.domain.vo.BaseMaterialInfoVo;
import org.dromara.oa.base.domain.BaseMaterialInfo;
import org.dromara.oa.base.mapper.BaseMaterialInfoMapper;
import org.dromara.oa.base.service.IBaseMaterialInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* SAPService
*
* @author Yinq
* @date 2025-09-30
*/
@RequiredArgsConstructor
@Service
public class BaseMaterialInfoServiceImpl implements IBaseMaterialInfoService {
private final BaseMaterialInfoMapper baseMapper;
/**
* SAP
*
* @param materialId
* @return SAP
*/
@Override
public BaseMaterialInfoVo queryById(Long materialId){
return baseMapper.selectVoById(materialId);
}
/**
* SAP
*
* @param bo
* @param pageQuery
* @return SAP
*/
@Override
public TableDataInfo<BaseMaterialInfoVo> queryPageList(BaseMaterialInfoBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<BaseMaterialInfo> lqw = buildQueryWrapper(bo);
Page<BaseMaterialInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* SAP
*
* @param bo
* @return SAP
*/
@Override
public List<BaseMaterialInfoVo> queryList(BaseMaterialInfoBo bo) {
MPJLambdaWrapper<BaseMaterialInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<BaseMaterialInfo> buildQueryWrapper(BaseMaterialInfoBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<BaseMaterialInfo> lqw = JoinWrappers.lambda(BaseMaterialInfo.class)
.selectAll(BaseMaterialInfo.class)
.eq(StringUtils.isNotBlank(bo.getMaterialCode()), BaseMaterialInfo::getMaterialCode, bo.getMaterialCode())
.like(StringUtils.isNotBlank(bo.getMaterialName()), BaseMaterialInfo::getMaterialName, bo.getMaterialName())
.eq(StringUtils.isNotBlank(bo.getMaterialBrand()), BaseMaterialInfo::getMaterialBrand, bo.getMaterialBrand())
.eq(StringUtils.isNotBlank(bo.getMaterialModel()), BaseMaterialInfo::getMaterialModel, bo.getMaterialModel())
.eq(bo.getUnitId() != null, BaseMaterialInfo::getUnitId, bo.getUnitId())
.eq(StringUtils.isNotBlank(bo.getMaterialParameter()), BaseMaterialInfo::getMaterialParameter, bo.getMaterialParameter())
.eq(bo.getPurchasePrice() != null, BaseMaterialInfo::getPurchasePrice, bo.getPurchasePrice())
.eq(bo.getForeignPrice() != null, BaseMaterialInfo::getForeignPrice, bo.getForeignPrice())
.eq(bo.getStockingPeriod() != null, BaseMaterialInfo::getStockingPeriod, bo.getStockingPeriod())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseMaterialInfo::getActiveFlag, bo.getActiveFlag())
;
return lqw;
}
/**
* SAP
*
* @param bo SAP
* @return
*/
@Override
public Boolean insertByBo(BaseMaterialInfoBo bo) {
BaseMaterialInfo add = MapstructUtils.convert(bo, BaseMaterialInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setMaterialId(add.getMaterialId());
}
return flag;
}
/**
* SAP
*
* @param bo SAP
* @return
*/
@Override
public Boolean updateByBo(BaseMaterialInfoBo bo) {
BaseMaterialInfo update = MapstructUtils.convert(bo, BaseMaterialInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BaseMaterialInfo entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* SAP
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -1,143 +0,0 @@
package org.dromara.oa.base.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.oa.base.domain.BaseUnitInfo;
import org.springframework.stereotype.Service;
import org.dromara.oa.base.domain.bo.BaseMaterielInfoBo;
import org.dromara.oa.base.domain.vo.BaseMaterielInfoVo;
import org.dromara.oa.base.domain.BaseMaterielInfo;
import org.dromara.oa.base.mapper.BaseMaterielInfoMapper;
import org.dromara.oa.base.service.IBaseMaterielInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* SAPService
*
* @author Yinq
* @date 2025-09-28
*/
@RequiredArgsConstructor
@Service
public class BaseMaterielInfoServiceImpl implements IBaseMaterielInfoService {
private final BaseMaterielInfoMapper baseMapper;
/**
* SAP
*
* @param materielId
* @return SAP
*/
@Override
public BaseMaterielInfoVo queryById(Long materielId) {
return baseMapper.selectVoById(materielId);
}
/**
* SAP
*
* @param bo
* @param pageQuery
* @return SAP
*/
@Override
public TableDataInfo<BaseMaterielInfoVo> queryPageList(BaseMaterielInfoBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<BaseMaterielInfo> lqw = buildQueryWrapper(bo);
Page<BaseMaterielInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* SAP
*
* @param bo
* @return SAP
*/
@Override
public List<BaseMaterielInfoVo> queryList(BaseMaterielInfoBo bo) {
MPJLambdaWrapper<BaseMaterielInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<BaseMaterielInfo> buildQueryWrapper(BaseMaterielInfoBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<BaseMaterielInfo> lqw = JoinWrappers.lambda(BaseMaterielInfo.class)
.selectAll(BaseMaterielInfo.class)
.select(BaseUnitInfo::getUnitName)
.leftJoin(BaseUnitInfo.class, BaseUnitInfo::getUnitId, BaseMaterielInfo::getUnitId)
.like(StringUtils.isNotBlank(bo.getMaterielCode()), BaseMaterielInfo::getMaterielCode, bo.getMaterielCode())
.like(StringUtils.isNotBlank(bo.getMaterielName()), BaseMaterielInfo::getMaterielName, bo.getMaterielName())
.like(StringUtils.isNotBlank(bo.getMaterielBrand()), BaseMaterielInfo::getMaterielBrand, bo.getMaterielBrand())
.like(StringUtils.isNotBlank(bo.getMaterielModel()), BaseMaterielInfo::getMaterielModel, bo.getMaterielModel())
.eq(bo.getUnitId() != null, BaseMaterielInfo::getUnitId, bo.getUnitId())
.like(StringUtils.isNotBlank(bo.getMaterialParameter()), BaseMaterielInfo::getMaterialParameter, bo.getMaterialParameter())
.eq(bo.getPurchasePrice() != null, BaseMaterielInfo::getPurchasePrice, bo.getPurchasePrice())
.eq(bo.getForeignPrice() != null, BaseMaterielInfo::getForeignPrice, bo.getForeignPrice())
.eq(bo.getStockingPeriod() != null, BaseMaterielInfo::getStockingPeriod, bo.getStockingPeriod())
.eq(StringUtils.isNotBlank(bo.getActiveFlag()), BaseMaterielInfo::getActiveFlag, bo.getActiveFlag());
return lqw;
}
/**
* SAP
*
* @param bo SAP
* @return
*/
@Override
public Boolean insertByBo(BaseMaterielInfoBo bo) {
BaseMaterielInfo add = MapstructUtils.convert(bo, BaseMaterielInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setMaterielId(add.getMaterielId());
}
return flag;
}
/**
* SAP
*
* @param bo SAP
* @return
*/
@Override
public Boolean updateByBo(BaseMaterielInfoBo bo) {
BaseMaterielInfo update = MapstructUtils.convert(bo, BaseMaterielInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(BaseMaterielInfo entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* SAP
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -2,17 +2,17 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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="org.dromara.oa.base.mapper.BaseMaterielInfoMapper"> <mapper namespace="org.dromara.oa.base.mapper.BaseMaterialInfoMapper">
<resultMap type="org.dromara.oa.base.domain.vo.BaseMaterielInfoVo" id="BaseMaterielInfoResult"> <resultMap type="org.dromara.oa.base.domain.vo.BaseMaterialInfoVo" id="BaseMaterialInfoResult">
</resultMap> </resultMap>
<select id="selectCustomBaseMaterielInfoVoList" resultMap="BaseMaterielInfoResult"> <select id="selectCustomBaseMaterialInfoVoList" resultMap="BaseMaterialInfoResult">
select materiel_id, select material_id,
tenant_id, tenant_id,
materiel_code, material_code,
materiel_name, material_name,
materiel_brand, material_brand,
materiel_model, material_model,
unit_id, unit_id,
material_parameter, material_parameter,
purchase_price, purchase_price,
@ -26,7 +26,7 @@
create_time, create_time,
update_by, update_by,
update_time update_time
from base_materiel_info t from base_material_info t
${ew.getCustomSqlSegment} ${ew.getCustomSqlSegment}
</select> </select>
Loading…
Cancel
Save