Compare commits

...

4 Commits
hhk ... main

Author SHA1 Message Date
kkk-ops fdba3ea563 Merge branch 'main' of https://git.ngsk.tech/linweidong/besure_server 2 hours ago
kkk-ops 8f08766aaa merge 2 hours ago
kkk-ops afd95d255a merge 2 hours ago
kkk-ops fdc1e5e684 设备点位单位列表 2 hours ago

@ -54,11 +54,11 @@ public class ErpProductController {
ErpProductPageReqVO productPageReqVO = new ErpProductPageReqVO();
productPageReqVO.setName(createReqVO.getName());
if (!productMapper.selectProductExist(productPageReqVO).getList().isEmpty()) {
return error(400,"名称不能重复");
return error(400,"名称+规格不能重复");
}
productPageReqVO = new ErpProductPageReqVO();
productPageReqVO.setCode(createReqVO.getBarCode());
if (!productMapper.selectProductExist(productPageReqVO).getList().isEmpty()) {
if (!productMapper.selectProductCodeExist(productPageReqVO).getList().isEmpty()) {
return error(400,"编码不能重复");
}
return success(productService.createProduct(createReqVO));

@ -115,4 +115,12 @@ public class ErpProductUnitController {
}
@GetMapping("/flag-list")
@Operation(summary = "获得产品主单位列表")
public CommonResult<List<ErpProductUnitDO>> getProductUnitListByFlag() {
List<ErpProductUnitDO> productUnitDOList = productUnitService.getProductUnitListByFlag();
return success(productUnitDOList);
}
}

@ -27,4 +27,7 @@ public class ErpProductPageReqVO extends PageParam {
@Schema(description = "产品编号", example = "11161")
private String code;
@Schema(description = "产品规格", example = "红色")
private String standard;
}

@ -24,4 +24,13 @@ public class ErpProductUnitSaveReqVO {
@InEnum(CommonStatusEnum.class)
private Integer status;
@Schema(description = "是否主单位", example = "芋艿")
private String primaryFlag;
@Schema(description = "关联主单位id", example = "芋艿")
private Long primaryId;
@Schema(description = "换算比例", example = "芋艿")
private Double changeRate;
}

@ -29,13 +29,20 @@ public interface ErpProductMapper extends BaseMapperX<ErpProductDO> {
.orderByDesc(ErpProductDO::getId));
}
default PageResult<ErpProductDO> selectProductExist(ErpProductPageReqVO reqVO) {
default PageResult<ErpProductDO> selectProductCodeExist(ErpProductPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpProductDO>()
.eqIfPresent(ErpProductDO::getName, reqVO.getName())
.eqIfPresent(ErpProductDO::getBarCode, reqVO.getCode())
.orderByAsc(ErpProductDO::getId));
}
default PageResult<ErpProductDO> selectProductExist(ErpProductPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpProductDO>()
.eqIfPresent(ErpProductDO::getName, reqVO.getName())
.eqIfPresent(ErpProductDO::getStandard, reqVO.getStandard())
.orderByAsc(ErpProductDO::getId));
}
default Long selectCountByCategoryId(Long categoryId) {
return selectCount(ErpProductDO::getCategoryId, categoryId);
}

@ -92,6 +92,13 @@ public interface ErpProductUnitService {
*/
List<ErpProductUnitDO> getProductUnitList();
/**
*
*
* @return
*/
List<ErpProductUnitDO> getProductUnitListByFlag();
/**
*
*

@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.unit.ErpProductUn
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.dal.mysql.product.ErpProductUnitMapper;
import cn.iocoder.yudao.module.erp.framework.bean.ProductUnitEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.annotations.VisibleForTesting;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@ -52,7 +53,7 @@ public class ErpProductUnitServiceImpl implements ErpProductUnitService {
updateReqVO.getId().equals(ProductUnitEnum.Kilogram.getUnitId())
|| updateReqVO.getId().equals(ProductUnitEnum.Gram.getUnitId())
|| updateReqVO.getId().equals(ProductUnitEnum.Each.getUnitId())){
throw exception(new ErrorCode(500,"内置单位不允许更改"));
throw exception(new ErrorCode(40001,"内置单位不允许更改"));
}
// 1.1 校验存在
validateProductUnitExists(updateReqVO.getId());
@ -129,4 +130,10 @@ public class ErpProductUnitServiceImpl implements ErpProductUnitService {
public ErpProductUnitDO getProductUnitByName(String name) {
return productUnitMapper.selectByName(name);
}
@Override
public List<ErpProductUnitDO> getProductUnitListByFlag() {
QueryWrapper<ErpProductUnitDO> wrapper = new QueryWrapper<>();
wrapper.eq("primary_flag", "Y");
return productUnitMapper.selectList(wrapper);
}
}

@ -42,9 +42,12 @@ public class DeviceModelAttributeRespVO {
private String address;
@Schema(description = "单位")
@ExcelProperty("单位")
private String dataUnit;
@Schema(description = "单位")
@ExcelProperty("单位")
private String dataUnitName;
@Schema(description = "倍率")
@ExcelProperty("倍率")
private Double ratio;

@ -3,6 +3,9 @@ package cn.iocoder.yudao.module.iot.service.devicemodelattribute;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService;
import cn.iocoder.yudao.module.iot.dal.dataobject.deviceattributetype.DeviceAttributeTypeDO;
import cn.iocoder.yudao.module.iot.dal.mysql.deviceattributetype.DeviceAttributeTypeMapper;
import cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants;
@ -32,6 +35,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.iot.dal.mysql.devicemodelattribute.DeviceModelAttributeMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
/**
@ -53,6 +57,9 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
@Resource
private DeviceAttributeTypeMapper deviceAttributeTypeMapper;
@Resource
private ErpProductUnitService productUnitService;
@Override
public Long createDeviceModelAttribute(DeviceModelAttributeSaveReqVO createReqVO) {
@ -115,9 +122,33 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
// List<DeviceAttributeTypeDO> attributeTypes = deviceAttributeTypeMapper.selectList();
// Map<Long, String> typeNameMap = attributeTypes.stream()
// .collect(Collectors.toMap(DeviceAttributeTypeDO::getId, DeviceAttributeTypeDO::getName));
Map<Long, ErpProductUnitDO> unitMap = productUnitService.getProductUnitMap(
pageResult.getList().stream()
.map(DeviceModelAttributeDO::getDataUnit)
.filter(StringUtils::isNotEmpty)
.map(str -> {
try {
return Long.valueOf(str.trim());
} catch (NumberFormatException e) {
return null;
}
})
.filter(Objects::nonNull)
.collect(Collectors.toSet())
);
// 转换并设置类型名称
PageResult<DeviceModelAttributeRespVO> respPageResult = BeanUtils.toBean(pageResult, DeviceModelAttributeRespVO.class);
PageResult<DeviceModelAttributeRespVO> respPageResult = BeanUtils.toBean(pageResult, DeviceModelAttributeRespVO.class, deviceModelAttribute -> {
String dataUnitStr = deviceModelAttribute.getDataUnit();
if (StringUtils.isNotBlank(dataUnitStr)) {
try {
Long dataUnitId = Long.valueOf(dataUnitStr.trim());
MapUtils.findAndThen(unitMap, dataUnitId,
unit -> deviceModelAttribute.setDataUnitName(unit.getName()));
} catch (NumberFormatException e) {
}
}
});
// respPageResult.getList().forEach(item -> {
// String typeName = typeNameMap.get(item.getAttributeType());
@ -252,7 +283,7 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
importAttributes.forEach(importAttribute -> {
// 4.1 设置设备型号ID
importAttribute.setDeviceModelId(deviceModelId);
// 4.2 处理点位类型转换
String typeName = importAttribute.getTypeName();
if (StringUtils.isBlank(typeName)) {

Loading…
Cancel
Save