代码同步-删除单位管理功能,删除商品管理单位相关内容,添加商品规格字段;删除goodsunit

main
‘zhengbw’ 3 months ago
parent 6cffaf7164
commit 3ed71c7133

@ -25,10 +25,6 @@ public class GoodsInfoRespDTO {
* id * id
*/ */
private Long goodsTypeId; private Long goodsTypeId;
/**
*
*/
private String goodsUnit;
/** /**
* *
*/ */

@ -27,18 +27,9 @@ public class GoodsInfoBaseVO {
@ApiModelProperty(value = "商品类型id", required = true) @ApiModelProperty(value = "商品类型id", required = true)
private Long goodsTypeId; private Long goodsTypeId;
@ApiModelProperty(value = "是否基础单位(kg)") @ApiModelProperty(value = "商品规格")
private Boolean isBaseUnit;
@ApiModelProperty(value = "商品单位id, 是基础单位(kg)时 该字段为0")
private Long goodsUnitId;
@ApiModelProperty(value = "商品规格, 换算之后写入的数值 如5kg/袋 (或者kg)")
private String goodsSpecs; private String goodsSpecs;
@ApiModelProperty(value = "换算值")
private BigDecimal conversionValue;
@ApiModelProperty(value = "商品说明") @ApiModelProperty(value = "商品说明")
private String goodsRemarks; private String goodsRemarks;

@ -17,8 +17,8 @@ public class GoodsInfoForTransferRespVO {
@ApiModelProperty(value = "商品编码", required = true) @ApiModelProperty(value = "商品编码", required = true)
private String goodsId; private String goodsId;
@ApiModelProperty(value = "商品单位", required = true) @ApiModelProperty(value = "商品规格", required = true)
private String goodsUnit; private String goodsSpecs;
@ApiModelProperty(value = "所属商户id", required = true) @ApiModelProperty(value = "所属商户id", required = true)
private Long belongBusinessId; private Long belongBusinessId;

@ -32,18 +32,9 @@ public class GoodsInfoListReqVO {
@ApiModelProperty(value = "商品类型id") @ApiModelProperty(value = "商品类型id")
private Long goodsTypeId; private Long goodsTypeId;
@ApiModelProperty(value = "是否基础单位(kg)") @ApiModelProperty(value = "商品规格")
private Boolean isBaseUnit;
@ApiModelProperty(value = "商品单位id, 是基础单位(kg)时 该字段为0")
private Long goodsUnitId;
@ApiModelProperty(value = "商品规格, 换算之后写入的数值 如5kg/袋 (或者kg)")
private String goodsSpecs; private String goodsSpecs;
@ApiModelProperty(value = "换算值")
private BigDecimal conversionValue;
@ApiModelProperty(value = "商品说明") @ApiModelProperty(value = "商品说明")
private String goodsRemarks; private String goodsRemarks;

@ -30,18 +30,9 @@ public class GoodsInfoPageReqVO extends PageParam {
@ApiModelProperty(value = "商品类型id") @ApiModelProperty(value = "商品类型id")
private Long goodsTypeId; private Long goodsTypeId;
@ApiModelProperty(value = "是否基础单位(kg)") @ApiModelProperty(value = "商品规格")
private Boolean isBaseUnit;
@ApiModelProperty(value = "商品单位id, 是基础单位(kg)时 该字段为0")
private Long goodsUnitId;
@ApiModelProperty(value = "商品规格, 换算之后写入的数值 如5kg/袋 (或者kg)")
private String goodsSpecs; private String goodsSpecs;
@ApiModelProperty(value = "换算值")
private BigDecimal conversionValue;
@ApiModelProperty(value = "商品单位名称") @ApiModelProperty(value = "商品单位名称")
private String goodsUnitName; private String goodsUnitName;

@ -14,8 +14,8 @@ public class GoodsInfoRespVO extends GoodsInfoBaseVO {
@ApiModelProperty(value = " 编码", required = true) @ApiModelProperty(value = " 编码", required = true)
private Long id; private Long id;
@ApiModelProperty(value = "商品单位") @ApiModelProperty(value = "商品规格")
private String unitName; private String goodsSpecs;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private Date createTime; private Date createTime;

@ -1,88 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.basic.controller.admin.unit.vo.*;
import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO;
import cn.iocoder.yudao.module.basic.convert.unit.UnitConvert;
import cn.iocoder.yudao.module.basic.service.unit.UnitService;
@Api(tags = "管理后台 - 单位")
@RestController
@RequestMapping("/basic/unit")
@Validated
public class UnitController {
@Resource
private UnitService unitService;
@PostMapping("/create")
@ApiOperation("创建单位")
@PreAuthorize("@ss.hasPermission('basic:unit:create')")
public CommonResult<Long> createUnit(@Valid @RequestBody UnitCreateReqVO createReqVO) {
return success(unitService.createUnit(createReqVO));
}
@PutMapping("/update")
@ApiOperation("更新单位")
@PreAuthorize("@ss.hasPermission('basic:unit:update')")
public CommonResult<Boolean> updateUnit(@Valid @RequestBody UnitUpdateReqVO updateReqVO) {
unitService.updateUnit(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@ApiOperation("删除单位")
@ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
@PreAuthorize("@ss.hasPermission('basic:unit:delete')")
public CommonResult<Boolean> deleteUnit(@RequestParam("id") Long id) {
unitService.deleteUnit(id);
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得单位")
@ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
@PreAuthorize("@ss.hasPermission('basic:unit:query')")
public CommonResult<UnitRespVO> getUnit(@RequestParam("id") Long id) {
UnitDO unit = unitService.getUnit(id);
return success(UnitConvert.INSTANCE.convert(unit));
}
@GetMapping("/list")
@ApiOperation("获得单位列表")
@ApiImplicitParam(name = "ids", value = "编号列表", required = true, example = "1024,2048", dataTypeClass = List.class)
@PreAuthorize("@ss.hasPermission('basic:unit:query')")
public CommonResult<List<UnitRespVO>> getUnitList(@RequestParam("ids") Collection<Long> ids) {
List<UnitDO> list = unitService.getUnitList(ids);
return success(UnitConvert.INSTANCE.convertList(list));
}
@GetMapping("/page")
@ApiOperation("获得单位分页")
@PreAuthorize("@ss.hasPermission('basic:unit:query')")
public CommonResult<PageResult<UnitRespVO>> getUnitPage(@Valid UnitPageReqVO pageVO) {
PageResult<UnitDO> pageResult = unitService.getUnitPage(pageVO);
return success(UnitConvert.INSTANCE.convertPage(pageResult));
}
}

@ -1,19 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
/**
* Base VO VO 使
* VO Swagger
*/
@Data
public class UnitBaseVO {
@ApiModelProperty(value = "单位名称", required = true)
@NotNull(message = "单位名称不能为空")
private String unitName;
}

@ -1,14 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 商品创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UnitCreateReqVO extends UnitBaseVO {
}

@ -1,26 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import com.alibaba.excel.annotation.ExcelProperty;
/**
* Excel VO
*
* @author
*/
@Data
public class UnitExcelVO {
@ExcelProperty(" 编码")
private Long id;
@ExcelProperty("单位名称")
private String unitName;
@ExcelProperty("创建时间")
private Date createTime;
}

@ -1,21 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel(value = "管理后台 - 商品 Excel 导出 Request VO", description = "参数和 UnitPageReqVO 是一致的")
@Data
public class UnitExportReqVO {
@ApiModelProperty(value = "单位名称")
private String unitName;
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private Date[] createTime;
}

@ -1,24 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import cn.iocoder.yudao.framework.common.util.date.DateUtils;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
@ApiModel("管理后台 - 商品分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UnitPageReqVO extends PageParam {
@ApiModelProperty(value = "单位名称")
private String unitName;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT")
@ApiModelProperty(value = "创建时间")
private Date[] createTime;
}

@ -1,22 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import io.swagger.annotations.*;
import java.util.Date;
@ApiModel("管理后台 - 商品 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UnitRespVO extends UnitBaseVO {
@ApiModelProperty(value = " 编码", required = true)
private Long id;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT")
@ApiModelProperty(value = "创建时间")
private Date createTime;
}

@ -1,18 +0,0 @@
package cn.iocoder.yudao.module.basic.controller.admin.unit.vo;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
@ApiModel("管理后台 - 商品更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class UnitUpdateReqVO extends UnitBaseVO {
@ApiModelProperty(value = " 编码", required = true)
@NotNull(message = " 编码不能为空")
private Long id;
}

@ -1,34 +0,0 @@
package cn.iocoder.yudao.module.basic.convert.unit;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import cn.iocoder.yudao.module.basic.controller.admin.unit.vo.*;
import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO;
/**
* Convert
*
* @author
*/
@Mapper
public interface UnitConvert {
UnitConvert INSTANCE = Mappers.getMapper(UnitConvert.class);
UnitDO convert(UnitCreateReqVO bean);
UnitDO convert(UnitUpdateReqVO bean);
UnitRespVO convert(UnitDO bean);
List<UnitRespVO> convertList(List<UnitDO> list);
PageResult<UnitRespVO> convertPage(PageResult<UnitDO> page);
List<UnitExcelVO> convertList02(List<UnitDO> list);
}

@ -47,21 +47,9 @@ public class GoodsInfoDO extends BaseDO {
*/ */
private Long goodsTypeId; private Long goodsTypeId;
/** /**
* (kg) *
*/
private Boolean isBaseUnit;
/**
* id, (kg) 0
*/
private Long goodsUnitId;
/**
* , 5kg/ (kg)
*/ */
private String goodsSpecs; private String goodsSpecs;
/**
*
*/
private BigDecimal conversionValue;
/** /**
* *
*/ */

@ -29,10 +29,7 @@ public interface GoodsInfoMapper extends BaseMapperX<GoodsInfoDO> {
.eqIfPresent(GoodsInfoDO::getGoodsId, reqVO.getGoodsId()) .eqIfPresent(GoodsInfoDO::getGoodsId, reqVO.getGoodsId())
.eqIfPresent(GoodsInfoDO::getGoodsType, reqVO.getGoodsType()) .eqIfPresent(GoodsInfoDO::getGoodsType, reqVO.getGoodsType())
.eqIfPresent(GoodsInfoDO::getGoodsTypeId, reqVO.getGoodsTypeId()) .eqIfPresent(GoodsInfoDO::getGoodsTypeId, reqVO.getGoodsTypeId())
.eqIfPresent(GoodsInfoDO::getIsBaseUnit, reqVO.getIsBaseUnit())
.eqIfPresent(GoodsInfoDO::getGoodsSpecs, reqVO.getGoodsSpecs()) .eqIfPresent(GoodsInfoDO::getGoodsSpecs, reqVO.getGoodsSpecs())
.eqIfPresent(GoodsInfoDO::getGoodsUnitId, reqVO.getGoodsUnitId())
.eqIfPresent(GoodsInfoDO::getConversionValue,reqVO.getConversionValue())
.eqIfPresent(GoodsInfoDO::getGoodsImgUrl, reqVO.getGoodsImgUrl()) .eqIfPresent(GoodsInfoDO::getGoodsImgUrl, reqVO.getGoodsImgUrl())
.eqIfPresent(GoodsInfoDO::getShelfLife, reqVO.getShelfLife()) .eqIfPresent(GoodsInfoDO::getShelfLife, reqVO.getShelfLife())
.eqIfPresent(GoodsInfoDO::getBelongBusinessId, reqVO.getBelongBusinessId()) .eqIfPresent(GoodsInfoDO::getBelongBusinessId, reqVO.getBelongBusinessId())
@ -47,10 +44,7 @@ public interface GoodsInfoMapper extends BaseMapperX<GoodsInfoDO> {
.eqIfPresent(GoodsInfoDO::getGoodsId, reqVO.getGoodsId()) .eqIfPresent(GoodsInfoDO::getGoodsId, reqVO.getGoodsId())
.eqIfPresent(GoodsInfoDO::getGoodsType, reqVO.getGoodsType()) .eqIfPresent(GoodsInfoDO::getGoodsType, reqVO.getGoodsType())
.eqIfPresent(GoodsInfoDO::getGoodsTypeId, reqVO.getGoodsTypeId()) .eqIfPresent(GoodsInfoDO::getGoodsTypeId, reqVO.getGoodsTypeId())
.eqIfPresent(GoodsInfoDO::getIsBaseUnit, reqVO.getIsBaseUnit())
.eqIfPresent(GoodsInfoDO::getGoodsSpecs, reqVO.getGoodsSpecs()) .eqIfPresent(GoodsInfoDO::getGoodsSpecs, reqVO.getGoodsSpecs())
.eqIfPresent(GoodsInfoDO::getGoodsUnitId, reqVO.getGoodsUnitId())
.eqIfPresent(GoodsInfoDO::getConversionValue,reqVO.getConversionValue())
.eqIfPresent(GoodsInfoDO::getGoodsImgUrl, reqVO.getGoodsImgUrl()) .eqIfPresent(GoodsInfoDO::getGoodsImgUrl, reqVO.getGoodsImgUrl())
.eqIfPresent(GoodsInfoDO::getShelfLife, reqVO.getShelfLife()) .eqIfPresent(GoodsInfoDO::getShelfLife, reqVO.getShelfLife())
.eqIfPresent(GoodsInfoDO::getBelongBusinessId, reqVO.getBelongBusinessId()) .eqIfPresent(GoodsInfoDO::getBelongBusinessId, reqVO.getBelongBusinessId())
@ -64,7 +58,6 @@ public interface GoodsInfoMapper extends BaseMapperX<GoodsInfoDO> {
IPage<GoodsInfoDO> selectGoodsInfoById(Page<GoodsInfoDO> page, IPage<GoodsInfoDO> selectGoodsInfoById(Page<GoodsInfoDO> page,
@Param("goodsName") String goodsName, @Param("goodsName") String goodsName,
@Param("goodsId") String goodsId, @Param("goodsId") String goodsId,
@Param("goodsUnitId") Long goodsUnitId,
@Param("belongBusinessName") String belongBusinessName); @Param("belongBusinessName") String belongBusinessName);
List<GoodsInfoRespVO> getGoodsListByBusinessInfoId(@Param("businessInfoId") Long businessInfoId); List<GoodsInfoRespVO> getGoodsListByBusinessInfoId(@Param("businessInfoId") Long businessInfoId);

@ -1,34 +0,0 @@
package cn.iocoder.yudao.module.basic.dal.mysql.unit;
import java.util.*;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO;
import org.apache.ibatis.annotations.Mapper;
import cn.iocoder.yudao.module.basic.controller.admin.unit.vo.*;
/**
* Mapper
*
* @author
*/
@Mapper
public interface UnitMapper extends BaseMapperX<UnitDO> {
default PageResult<UnitDO> selectPage(UnitPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<UnitDO>()
.likeIfPresent(UnitDO::getUnitName, reqVO.getUnitName())
.betweenIfPresent(UnitDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(UnitDO::getId));
}
default List<UnitDO> selectList(UnitExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<UnitDO>()
.likeIfPresent(UnitDO::getUnitName, reqVO.getUnitName())
.betweenIfPresent(UnitDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(UnitDO::getId));
}
}

@ -12,7 +12,6 @@ import cn.iocoder.yudao.module.basic.dal.dataobject.goodsinfo.GoodsInfoDO;
import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO; import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO;
import cn.iocoder.yudao.module.basic.dal.mysql.dealergoods.DealerGoodsMapper; import cn.iocoder.yudao.module.basic.dal.mysql.dealergoods.DealerGoodsMapper;
import cn.iocoder.yudao.module.basic.dal.mysql.goodsinfo.GoodsInfoMapper; import cn.iocoder.yudao.module.basic.dal.mysql.goodsinfo.GoodsInfoMapper;
import cn.iocoder.yudao.module.basic.dal.mysql.unit.UnitMapper;
import cn.iocoder.yudao.module.basic.enums.ErrorCodeConstants; import cn.iocoder.yudao.module.basic.enums.ErrorCodeConstants;
import cn.iocoder.yudao.module.basic.service.businessinfo.BusinessInfoServiceImpl; import cn.iocoder.yudao.module.basic.service.businessinfo.BusinessInfoServiceImpl;
import cn.iocoder.yudao.module.product.api.harvestbatch.HarvestBatchApi; import cn.iocoder.yudao.module.product.api.harvestbatch.HarvestBatchApi;
@ -56,9 +55,6 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
@Resource @Resource
private HarvestBatchApi harvestBatchApi; private HarvestBatchApi harvestBatchApi;
@Resource
private UnitMapper unitMapper;
/** /**
* *
* *
@ -75,36 +71,17 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
GoodsInfoDO goodsInfo = GoodsInfoConvert.INSTANCE.convert(createReqVO); GoodsInfoDO goodsInfo = GoodsInfoConvert.INSTANCE.convert(createReqVO);
try { try {
goodsInfo.setGoodsId(CodeEnum.GOODS_INFO_CODE.getCode()); goodsInfo.setGoodsId(CodeEnum.GOODS_INFO_CODE.getCode());
// 设置商品规格 goodsInfoMapper.insert(goodsInfo);
if (goodsInfo.getIsBaseUnit()) { } catch (Exception e) {
goodsInfo.setGoodsSpecs("kg"); e.printStackTrace();
} else { throw exception(GOODS_INFO_FAIL_CREATE);
BigDecimal conversionValue = goodsInfo.getConversionValue();
if (conversionValue != null) {
String goodsSpecs = String.format("%skg/%s", conversionValue, getUnitName(goodsInfo.getGoodsUnitId()));
goodsInfo.setGoodsSpecs(goodsSpecs);
}
}
goodsInfoMapper.insert(goodsInfo);
} catch(Exception e){
e.printStackTrace();
throw exception(GOODS_INFO_FAIL_CREATE);
}
redisUtil.updateGoodsInfoRedis(goodsInfo.getId(), GoodsInfoConvert.INSTANCE.convertToDTO(goodsInfo));
// 返回
return goodsInfo.getId();
} }
// 根据商品单位ID获取单位名称 redisUtil.updateGoodsInfoRedis(goodsInfo.getId(), GoodsInfoConvert.INSTANCE.convertToDTO(goodsInfo));
private String getUnitName(Long unitId) { // 返回
UnitDO unit = unitMapper.selectById(unitId); return goodsInfo.getId();
if (unit != null) {
return unit.getUnitName();
} else {
throw new RuntimeException("无法找到对应的单位");
}
} }
/** /**
* *
* *
@ -120,21 +97,12 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
throw exception(GOODS_INFO_NOT_EXISTS); throw exception(GOODS_INFO_NOT_EXISTS);
} }
//检查商品名称是否发生变化 //检查商品名称是否发生变化
if (!Objects.equals(originalGoodsInfo.getGoodsName(),updateReqVO.getGoodsName())){ if (!Objects.equals(originalGoodsInfo.getGoodsName(), updateReqVO.getGoodsName())) {
//商品名称发生变化,进行唯一校验 //商品名称发生变化,进行唯一校验
validateGoodsNameExists(updateReqVO.getGoodsName()); validateGoodsNameExists(updateReqVO.getGoodsName());
} }
// 更新记录 // 更新记录
GoodsInfoDO newGoodsInfo = GoodsInfoConvert.INSTANCE.convert(updateReqVO); GoodsInfoDO newGoodsInfo = GoodsInfoConvert.INSTANCE.convert(updateReqVO);
// 设置商品规格
if (newGoodsInfo.getIsBaseUnit()) {
newGoodsInfo.setGoodsSpecs("kg");
newGoodsInfo.setGoodsUnitId(0L);
} else {
String goodsSpecs = String.format("%skg/%s", newGoodsInfo.getConversionValue(), getUnitName(newGoodsInfo.getGoodsUnitId()));
newGoodsInfo.setGoodsSpecs(goodsSpecs);
}
try { try {
goodsInfoMapper.updateById(newGoodsInfo); goodsInfoMapper.updateById(newGoodsInfo);
} catch (Exception e) { } catch (Exception e) {
@ -144,13 +112,15 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
redisUtil.updateGoodsInfoRedis(newGoodsInfo.getId(), GoodsInfoConvert.INSTANCE.convertToDTO(newGoodsInfo)); redisUtil.updateGoodsInfoRedis(newGoodsInfo.getId(), GoodsInfoConvert.INSTANCE.convertToDTO(newGoodsInfo));
} }
private void validateGoodsNameExists(String goodsName) { private void validateGoodsNameExists(String goodsName) {
QueryWrapper<GoodsInfoDO> wrapper = new QueryWrapper<>(); QueryWrapper<GoodsInfoDO> wrapper = new QueryWrapper<>();
wrapper.eq("goods_name",goodsName); wrapper.eq("goods_name", goodsName);
if (goodsInfoMapper.selectOne(wrapper) != null) { if (goodsInfoMapper.selectOne(wrapper) != null) {
throw exception(GOODS_INFO_ALREADY_EXIST); throw exception(GOODS_INFO_ALREADY_EXIST);
} }
} }
/** /**
* *
* *
@ -212,18 +182,11 @@ public class GoodsInfoServiceImpl implements GoodsInfoService {
*/ */
@Override @Override
public PageResult<GoodsInfoDO> getGoodsInfoPage(GoodsInfoPageReqVO pageReqVO) { public PageResult<GoodsInfoDO> getGoodsInfoPage(GoodsInfoPageReqVO pageReqVO) {
Page<GoodsInfoDO> page = new Page<>(pageReqVO.getPageNo(),pageReqVO.getPageSize()); Page<GoodsInfoDO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
IPage<GoodsInfoDO> goodsInfoDOIPage = goodsInfoMapper.selectGoodsInfoById(page, pageReqVO.getGoodsName(), IPage<GoodsInfoDO> goodsInfoDOIPage = goodsInfoMapper.selectGoodsInfoById(page, pageReqVO.getGoodsName(),
pageReqVO.getGoodsId(), pageReqVO.getGoodsUnitId(),pageReqVO.getBelongBusinessName()); pageReqVO.getGoodsId(), pageReqVO.getBelongBusinessName());
// 根据goodsUnitId设置goodsUnitName
List<GoodsInfoDO> records = goodsInfoDOIPage.getRecords(); List<GoodsInfoDO> records = goodsInfoDOIPage.getRecords();
for (GoodsInfoDO goodsInfo : records) {
if (goodsInfo.getGoodsUnitId() == 0) {
goodsInfo.setGoodsUnitName("kg");
} else {
goodsInfo.setGoodsUnitName(getUnitName(goodsInfo.getGoodsUnitId()));
}
}
PageResult<GoodsInfoDO> goodsInfoDOPageResult = new PageResult<GoodsInfoDO>().setList(records); PageResult<GoodsInfoDO> goodsInfoDOPageResult = new PageResult<GoodsInfoDO>().setList(records);
goodsInfoDOPageResult.setTotal(goodsInfoDOIPage.getTotal()); goodsInfoDOPageResult.setTotal(goodsInfoDOIPage.getTotal());
return goodsInfoDOPageResult; return goodsInfoDOPageResult;

@ -1,62 +0,0 @@
package cn.iocoder.yudao.module.basic.service.unit;
import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.basic.controller.admin.unit.vo.*;
import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
/**
* Service
*
* @author
*/
public interface UnitService {
/**
*
*
* @param createReqVO
* @return
*/
Long createUnit(@Valid UnitCreateReqVO createReqVO);
/**
*
*
* @param updateReqVO
*/
void updateUnit(@Valid UnitUpdateReqVO updateReqVO);
/**
*
*
* @param id
*/
void deleteUnit(Long id);
/**
*
*
* @param id
* @return
*/
UnitDO getUnit(Long id);
/**
*
*
* @param ids
* @return
*/
List<UnitDO> getUnitList(Collection<Long> ids);
/**
*
*
* @param pageReqVO
* @return
*/
PageResult<UnitDO> getUnitPage(UnitPageReqVO pageReqVO);
}

@ -1,96 +0,0 @@
package cn.iocoder.yudao.module.basic.service.unit;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.util.*;
import cn.iocoder.yudao.module.basic.controller.admin.unit.vo.*;
import cn.iocoder.yudao.module.basic.dal.dataobject.unit.UnitDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.basic.convert.unit.UnitConvert;
import cn.iocoder.yudao.module.basic.dal.mysql.unit.UnitMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.basic.enums.ErrorCodeConstants.*;
/**
* Service
*
* @author
*/
@Service
@Validated
public class UnitServiceImpl implements UnitService {
@Resource
private UnitMapper unitMapper;
@Override
public Long createUnit(UnitCreateReqVO createReqVO) {
//校验单位昵称是否重复
validateUnitNameExists(createReqVO.getUnitName());
// 插入
UnitDO unit = UnitConvert.INSTANCE.convert(createReqVO);
unitMapper.insert(unit);
// 返回
return unit.getId();
}
private void validateUnitNameExists(String unitName) {
QueryWrapper<UnitDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("unit_name",unitName);
if (unitMapper.selectOne(queryWrapper) != null){
throw exception(UNIT_NAME_ALREADY_EXISTS);
}
}
@Override
public void updateUnit(UnitUpdateReqVO updateReqVO) {
// 校验存在
UnitDO unitInfo = unitMapper.selectById(updateReqVO.getId());
if (unitInfo == null){
throw exception(UNIT_NOT_EXISTS);
}
// 检查单位名称是否发生变化
if (!Objects.equals(unitInfo.getUnitName(),updateReqVO.getUnitName())) {
//校验商户昵称的地块类型名称是否重复
validateUnitNameExists(updateReqVO.getUnitName());
}
// 更新
UnitDO updateObj = UnitConvert.INSTANCE.convert(updateReqVO);
unitMapper.updateById(updateObj);
}
@Override
public void deleteUnit(Long id) {
// 校验存在
validateUnitExists(id);
// 删除
unitMapper.deleteById(id);
}
private void validateUnitExists(Long id) {
if (unitMapper.selectById(id) == null) {
throw exception(UNIT_NOT_EXISTS);
}
}
@Override
public UnitDO getUnit(Long id) {
return unitMapper.selectById(id);
}
@Override
public List<UnitDO> getUnitList(Collection<Long> ids) {
return unitMapper.selectBatchIds(ids);
}
@Override
public PageResult<UnitDO> getUnitPage(UnitPageReqVO pageReqVO) {
return unitMapper.selectPage(pageReqVO);
}
}

@ -31,28 +31,22 @@
<!-- </select>--> <!-- </select>-->
<select id="selectGoodsInfoById" <select id="selectGoodsInfoById"
resultType="cn.iocoder.yudao.module.basic.dal.dataobject.goodsinfo.GoodsInfoDO"> resultType="cn.iocoder.yudao.module.basic.dal.dataobject.goodsinfo.GoodsInfoDO">
SELECT a.*,b.unit_name goods_unit_name SELECT a.*
FROM basic_goods_info a FROM basic_goods_info a
LEFT JOIN basic_unit b ON goods_unit_id = b.id WHERE a.deleted = 0
WHERE a.deleted = 0 <if test="goodsName != null and goodsName != ''">and a.goods_name LIKE CONCAT('%', #{goodsName}, '%')</if>
<if test="goodsName != null and goodsName != ''"> and a.goods_name LIKE CONCAT('%', #{goodsName}, '%') </if> <if test="goodsId != null and goodsId != ''">and a.goods_id = #{goodsId}</if>
<if test="goodsId != null and goodsId != ''"> and a.goods_id = #{goodsId} </if> <if test="belongBusinessName != null and belongBusinessName != ''">and a.belong_business_name LIKE CONCAT('%',
<if test="belongBusinessName != null and belongBusinessName != ''"> and a.belong_business_name LIKE CONCAT('%', #{belongBusinessName}, '%') </if> #{belongBusinessName}, '%')
</if>
ORDER BY a.id DESC ORDER BY a.id DESC
</select> </select>
<select id="getGoodsListByBusinessInfoId" resultType="cn.iocoder.yudao.module.basic.controller.admin.goodsinfo.vo.GoodsInfoRespVO"> <select id="getGoodsListByBusinessInfoId" resultType="cn.iocoder.yudao.module.basic.controller.admin.goodsinfo.vo.GoodsInfoRespVO">
SELECT SELECT
bgi.*, bgi.*
CASE
bgi.is_base_unit
WHEN 1 THEN
'kg'
ELSE bu.unit_name
END unitName
FROM FROM
basic_goods_info bgi basic_goods_info bgi
LEFT JOIN basic_unit bu ON bgi.goods_unit_id = bu.id
WHERE WHERE
bgi.deleted = 0 bgi.deleted = 0
and bgi.belong_business_id = #{businessInfoId} and bgi.belong_business_id = #{businessInfoId}
@ -60,31 +54,22 @@
<select id="queryListOfMiniResult" <select id="queryListOfMiniResult"
resultType="cn.iocoder.yudao.module.basic.controller.admin.goodsinfo.vo.GoodsInfoForTransferRespVO"> resultType="cn.iocoder.yudao.module.basic.controller.admin.goodsinfo.vo.GoodsInfoForTransferRespVO">
SELECT SELECT bgi.id,
bii.id, bii.goods_id, bii.goods_name,bii.belong_business_id,bii.belong_business_name, bgi.goods_id,
CASE bgi.goods_name,
bii.goods_unit_id bgi.goods_specs,
WHEN 0 THEN bgi.belong_business_id,
'kg' bgi.belong_business_name
ELSE bu.unit_name FROM basic_goods_info bgi
END goodsUnit WHERE bgi.deleted = 0
FROM basic_goods_info bii AND bgi.belong_business_id = #{belongBusinessId}
LEFT JOIN basic_unit bu ON bii.goods_unit_id = bu.id
WHERE bii.deleted = 0 AND bii.belong_business_id = #{belongBusinessId}
</select> </select>
<select id="getByGoodsId" resultType="cn.iocoder.yudao.module.basic.controller.admin.goodsinfo.vo.GoodsInfoRespVO"> <select id="getByGoodsId" resultType="cn.iocoder.yudao.module.basic.controller.admin.goodsinfo.vo.GoodsInfoRespVO">
SELECT SELECT
bgi.*, bgi.*
CASE
bgi.is_base_unit
WHEN 1 THEN
'kg'
ELSE bu.unit_name
END unitName
FROM FROM
basic_goods_info bgi basic_goods_info bgi
LEFT JOIN basic_unit bu ON bgi.goods_unit_id = bu.id
WHERE WHERE
bgi.deleted = 0 bgi.deleted = 0
and bgi.goods_id = #{goodsId} and bgi.goods_id = #{goodsId}

@ -1,7 +1,10 @@
package cn.iocoder.yudao.module.product.controller.admin.harvestbatch.vo; package cn.iocoder.yudao.module.product.controller.admin.harvestbatch.vo;
import lombok.*; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.*; import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.Date; import java.util.Date;
@ -17,9 +20,6 @@ public class HarvestBatchRespVO extends HarvestBatchBaseVO {
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private Date createTime; private Date createTime;
@ApiModelProperty(value = "商品单位")
private String goodsUnit;
@ApiModelProperty(value = "商品规格") @ApiModelProperty(value = "商品规格")
private String goodsSpecs; private String goodsSpecs;

@ -306,7 +306,6 @@ public class HarvestInfoServiceImpl implements HarvestInfoService {
goodsInfos.forEach(item -> goodsInfoMap.put(item.getGoodsId(), item)); goodsInfos.forEach(item -> goodsInfoMap.put(item.getGoodsId(), item));
for(HarvestBatchRespVO respVo: harvestBatchResps) { for(HarvestBatchRespVO respVo: harvestBatchResps) {
respVo.setGoodsUnit(goodsInfoMap.get(respVo.getGoodsId()).getGoodsUnit());
respVo.setGoodsSpecs(goodsInfoMap.get(respVo.getGoodsId()).getGoodsSpecs()); respVo.setGoodsSpecs(goodsInfoMap.get(respVo.getGoodsId()).getGoodsSpecs());
} }
} }

Loading…
Cancel
Save