fix:修复已知bug

hhk
HuangHuiKang 3 weeks ago
parent 0d07d164bb
commit a516af0632

@ -53,4 +53,11 @@ public class MoldTicketResultsRespVO {
@Schema(description = "模具Id") @Schema(description = "模具Id")
private Long moldId; private Long moldId;
@Schema(description = "值类型")
private String valueType;
@Schema(description = "输入值")
private String textInput;
} }

@ -39,4 +39,9 @@ public class MoldTicketResultsSaveReqVO {
@Schema(description = "检验人") @Schema(description = "检验人")
private String inspector; private String inspector;
@Schema(description = "值类型")
private String valueType;
@Schema(description = "输入值")
private String textInput;
} }

@ -66,6 +66,16 @@ public class MoldTicketResultsDO extends BaseDO {
*/ */
private Long moldId; private Long moldId;
/**
*
*/
private String valueType;
/**
*
*/
private String textInput;
/** /**
* *
*/ */

@ -42,4 +42,6 @@ public class ErpStockCheckPageReqVO extends PageParam {
@Schema(description = "产品编号", example = "1") @Schema(description = "产品编号", example = "1")
private Long productId; private Long productId;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -51,4 +51,6 @@ public class ErpStockInPageReqVO extends PageParam {
@Schema(description = "仓库编号", example = "1") @Schema(description = "仓库编号", example = "1")
private Long warehouseId; private Long warehouseId;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -42,4 +42,8 @@ public class ErpStockMovePageReqVO extends PageParam {
@Schema(description = "调出仓库编号", example = "1") @Schema(description = "调出仓库编号", example = "1")
private Long fromWarehouseId; private Long fromWarehouseId;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -52,4 +52,6 @@ public class ErpStockOutPageReqVO extends PageParam {
@Schema(description = "仓库编号", example = "1") @Schema(description = "仓库编号", example = "1")
private Long warehouseId; private Long warehouseId;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -37,4 +37,7 @@ public class ErpStockRecordPageReqVO extends PageParam {
@Schema(description = "出入库时间", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "出入库时间", requiredMode = Schema.RequiredMode.REQUIRED)
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] recordTime; private LocalDateTime[] recordTime;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -20,4 +20,7 @@ public class ErpStockPageReqVO extends PageParam {
@Schema(description = "产品分类", example = "2802") @Schema(description = "产品分类", example = "2802")
private Long categoryId; private Long categoryId;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -21,4 +21,6 @@ public class ErpWarehousePageReqVO extends PageParam {
@InEnum(CommonStatusEnum.class) @InEnum(CommonStatusEnum.class)
private Integer status; private Integer status;
@Schema(description = "id集合导出用")
private String ids;
} }

@ -6,9 +6,15 @@ import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.check.ErpStockCheckPageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockCheckDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockCheckDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockCheckItemDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockCheckItemDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
* *
@ -31,6 +37,18 @@ public interface ErpStockCheckMapper extends BaseMapperX<ErpStockCheckDO> {
.eq(reqVO.getProductId() != null, ErpStockCheckItemDO::getProductId, reqVO.getProductId()) .eq(reqVO.getProductId() != null, ErpStockCheckItemDO::getProductId, reqVO.getProductId())
.groupBy(ErpStockCheckDO::getId); // 避免 1 对多查询,产生相同的 1 .groupBy(ErpStockCheckDO::getId); // 避免 1 对多查询,产生相同的 1
} }
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
query.in(ErpStockCheckDO::getId, idList);
}
return selectJoinPage(reqVO, ErpStockCheckDO.class, query); return selectJoinPage(reqVO, ErpStockCheckDO.class, query);
} }

@ -6,9 +6,14 @@ import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInPageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInItemDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInItemDO;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
* *
@ -34,6 +39,18 @@ public interface ErpStockInMapper extends BaseMapperX<ErpStockInDO> {
.eq(reqVO.getProductId() != null, ErpStockInItemDO::getProductId, reqVO.getProductId()) .eq(reqVO.getProductId() != null, ErpStockInItemDO::getProductId, reqVO.getProductId())
.groupBy(ErpStockInDO::getId); // 避免 1 对多查询,产生相同的 1 .groupBy(ErpStockInDO::getId); // 避免 1 对多查询,产生相同的 1
} }
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
query.in(ErpStockInDO::getId, idList);
}
return selectJoinPage(reqVO, ErpStockInDO.class, query); return selectJoinPage(reqVO, ErpStockInDO.class, query);
} }

@ -7,13 +7,17 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.stock.ErpStockPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.stock.ErpStockPageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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 org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
@ -24,11 +28,25 @@ import java.util.Map;
public interface ErpStockMapper extends BaseMapperX<ErpStockDO> { public interface ErpStockMapper extends BaseMapperX<ErpStockDO> {
default PageResult<ErpStockDO> selectPage(ErpStockPageReqVO reqVO) { default PageResult<ErpStockDO> selectPage(ErpStockPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpStockDO>()
LambdaQueryWrapperX<ErpStockDO> erpStockDOLambdaQueryWrapperX = new LambdaQueryWrapperX<ErpStockDO>()
.eqIfPresent(ErpStockDO::getProductId, reqVO.getProductId()) .eqIfPresent(ErpStockDO::getProductId, reqVO.getProductId())
.eqIfPresent(ErpStockDO::getWarehouseId, reqVO.getWarehouseId()) .eqIfPresent(ErpStockDO::getWarehouseId, reqVO.getWarehouseId())
.eqIfPresent(ErpStockDO::getCategoryId, reqVO.getCategoryId()) .eqIfPresent(ErpStockDO::getCategoryId, reqVO.getCategoryId())
.orderByDesc(ErpStockDO::getId)); .orderByDesc(ErpStockDO::getId);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
erpStockDOLambdaQueryWrapperX.in(ErpStockDO::getId, idList);
}
return selectPage(reqVO,erpStockDOLambdaQueryWrapperX);
} }
default ErpStockDO selectByProductIdAndWarehouseId(Long productId, Long warehouseId) { default ErpStockDO selectByProductIdAndWarehouseId(Long productId, Long warehouseId) {

@ -6,9 +6,15 @@ import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.move.ErpStockMovePageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockMoveDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockMoveDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockMoveItemDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockMoveItemDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockRecordDO;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
* *
@ -31,6 +37,19 @@ public interface ErpStockMoveMapper extends BaseMapperX<ErpStockMoveDO> {
.eq(reqVO.getProductId() != null, ErpStockMoveItemDO::getProductId, reqVO.getProductId()) .eq(reqVO.getProductId() != null, ErpStockMoveItemDO::getProductId, reqVO.getProductId())
.groupBy(ErpStockMoveDO::getId); // 避免 1 对多查询,产生相同的 1 .groupBy(ErpStockMoveDO::getId); // 避免 1 对多查询,产生相同的 1
} }
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
query.in(ErpStockMoveDO::getId, idList);
}
return selectJoinPage(reqVO, ErpStockMoveDO.class, query); return selectJoinPage(reqVO, ErpStockMoveDO.class, query);
} }

@ -5,13 +5,17 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.MPJLambdaWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutPageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO; import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockOutItemDO;
import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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 org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
@ -39,6 +43,16 @@ public interface ErpStockOutMapper extends BaseMapperX<ErpStockOutDO> {
.eq(reqVO.getProductId() != null, ErpStockOutItemDO::getProductId, reqVO.getProductId()) .eq(reqVO.getProductId() != null, ErpStockOutItemDO::getProductId, reqVO.getProductId())
.groupBy(ErpStockOutDO::getId); // 避免 1 对多查询,产生相同的 1 .groupBy(ErpStockOutDO::getId); // 避免 1 对多查询,产生相同的 1
} }
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
query.in(ErpStockInDO::getId, idList);
}
return selectJoinPage(reqVO, ErpStockOutDO.class, query); return selectJoinPage(reqVO, ErpStockOutDO.class, query);
} }

@ -4,9 +4,15 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.record.ErpStockRecordPageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.record.ErpStockRecordPageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockInDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockRecordDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpStockRecordDO;
import com.alibaba.excel.util.StringUtils;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
* *
@ -16,7 +22,8 @@ import org.apache.ibatis.annotations.Mapper;
public interface ErpStockRecordMapper extends BaseMapperX<ErpStockRecordDO> { public interface ErpStockRecordMapper extends BaseMapperX<ErpStockRecordDO> {
default PageResult<ErpStockRecordDO> selectPage(ErpStockRecordPageReqVO reqVO) { default PageResult<ErpStockRecordDO> selectPage(ErpStockRecordPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpStockRecordDO>()
LambdaQueryWrapperX<ErpStockRecordDO> erpStockRecordDOLambdaQueryWrapperX = new LambdaQueryWrapperX<ErpStockRecordDO>()
.eqIfPresent(ErpStockRecordDO::getProductId, reqVO.getProductId()) .eqIfPresent(ErpStockRecordDO::getProductId, reqVO.getProductId())
.eqIfPresent(ErpStockRecordDO::getCategoryId, reqVO.getCategoryId()) .eqIfPresent(ErpStockRecordDO::getCategoryId, reqVO.getCategoryId())
.eqIfPresent(ErpStockRecordDO::getWarehouseId, reqVO.getWarehouseId()) .eqIfPresent(ErpStockRecordDO::getWarehouseId, reqVO.getWarehouseId())
@ -24,7 +31,19 @@ public interface ErpStockRecordMapper extends BaseMapperX<ErpStockRecordDO> {
.likeIfPresent(ErpStockRecordDO::getBizNo, reqVO.getBizNo()) .likeIfPresent(ErpStockRecordDO::getBizNo, reqVO.getBizNo())
.betweenIfPresent(ErpStockRecordDO::getCreateTime, reqVO.getCreateTime()) .betweenIfPresent(ErpStockRecordDO::getCreateTime, reqVO.getCreateTime())
.betweenIfPresent(ErpStockRecordDO::getRecordTime, reqVO.getRecordTime()) .betweenIfPresent(ErpStockRecordDO::getRecordTime, reqVO.getRecordTime())
.orderByDesc(ErpStockRecordDO::getId)); .orderByDesc(ErpStockRecordDO::getId);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
erpStockRecordDOLambdaQueryWrapperX.in(ErpStockRecordDO::getId, idList);
}
return selectPage(reqVO,erpStockRecordDOLambdaQueryWrapperX);
} }
} }

@ -5,9 +5,12 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehousePageReqVO; import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehousePageReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO; import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO;
import com.alibaba.excel.util.StringUtils;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* ERP Mapper * ERP Mapper
@ -18,10 +21,22 @@ import java.util.List;
public interface ErpWarehouseMapper extends BaseMapperX<ErpWarehouseDO> { public interface ErpWarehouseMapper extends BaseMapperX<ErpWarehouseDO> {
default PageResult<ErpWarehouseDO> selectPage(ErpWarehousePageReqVO reqVO) { default PageResult<ErpWarehouseDO> selectPage(ErpWarehousePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpWarehouseDO>()
LambdaQueryWrapperX<ErpWarehouseDO> erpWarehouseDOLambdaQueryWrapperX = new LambdaQueryWrapperX<ErpWarehouseDO>()
.likeIfPresent(ErpWarehouseDO::getName, reqVO.getName()) .likeIfPresent(ErpWarehouseDO::getName, reqVO.getName())
.eqIfPresent(ErpWarehouseDO::getStatus, reqVO.getStatus()) .eqIfPresent(ErpWarehouseDO::getStatus, reqVO.getStatus())
.orderByDesc(ErpWarehouseDO::getId)); .orderByDesc(ErpWarehouseDO::getId);
// 单独处理 ids 条件
if (StringUtils.isNotBlank(reqVO.getIds())) {
List<Long> idList = Arrays.stream(reqVO.getIds().split(","))
.map(String::trim)
.map(Long::valueOf)
.collect(Collectors.toList());
erpWarehouseDOLambdaQueryWrapperX.in(ErpWarehouseDO::getId, idList);
}
return selectPage(reqVO,erpWarehouseDOLambdaQueryWrapperX);
} }
default ErpWarehouseDO selectByDefaultStatus() { default ErpWarehouseDO selectByDefaultStatus() {

@ -135,11 +135,11 @@ public class DeviceModelAttributeController {
// 准备模板数据 // 准备模板数据
List<DeviceModelAttributeImportExcelVO> list = new ArrayList<>(); List<DeviceModelAttributeImportExcelVO> list = new ArrayList<>();
list.add(DeviceModelAttributeImportExcelVO.builder() list.add(DeviceModelAttributeImportExcelVO.builder()
.attributeCode("test") .attributeCode("temperature_001")
.attributeName("温度") .attributeName("温度")
// .attributeType("1") // .attributeType("1")
.typeName("报警信息") .typeName("报警信息")
.dataType("int64") .dataType("float")
.address("AI0") .address("AI0")
.dataUnit("s") .dataUnit("s")
.ratio(1.0) .ratio(1.0)
@ -150,7 +150,7 @@ public class DeviceModelAttributeController {
.attributeName("湿度") .attributeName("湿度")
// .attributeType("2") // .attributeType("2")
.typeName("能源参数") .typeName("能源参数")
.dataType("int64") .dataType("double")
.address("AI1") .address("AI1")
.dataUnit("s") .dataUnit("s")
.ratio(1.0) .ratio(1.0)

@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 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.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService; import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService;
import cn.iocoder.yudao.module.iot.controller.admin.device.enums.JavaToTdengineTypeEnum;
import cn.iocoder.yudao.module.iot.dal.dataobject.deviceattributetype.DeviceAttributeTypeDO; 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.dal.mysql.deviceattributetype.DeviceAttributeTypeMapper;
import cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants; import cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants;
@ -234,7 +235,7 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
@Override @Override
@Transactional(rollbackFor = Exception.class) // 完全复用你的事务注解,异常回滚所有导入 // @Transactional(rollbackFor = Exception.class) // 完全复用你的事务注解,异常回滚所有导入
public DeviceModelAttributeImportRespVO importAttributeList(List<DeviceModelAttributeImportExcelVO> importAttributes, Long deviceModelId, boolean isUpdateSupport) { public DeviceModelAttributeImportRespVO importAttributeList(List<DeviceModelAttributeImportExcelVO> importAttributes, Long deviceModelId, boolean isUpdateSupport) {
// 1.1 参数校验 - 完全复刻 User 的空列表校验逻辑 // 1.1 参数校验 - 完全复刻 User 的空列表校验逻辑
if (CollUtil.isEmpty(importAttributes)) { if (CollUtil.isEmpty(importAttributes)) {
@ -250,6 +251,7 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
Map<String, String> typeNameToIdMap = attributeTypes.stream() Map<String, String> typeNameToIdMap = attributeTypes.stream()
.collect(Collectors.toMap(DeviceAttributeTypeDO::getName, type -> String.valueOf(type.getId()))); .collect(Collectors.toMap(DeviceAttributeTypeDO::getName, type -> String.valueOf(type.getId())));
// 3. 初始化返回 VO - 完全复刻 User 的 builder 方式,使用 LinkedHashMap 保持顺序 // 3. 初始化返回 VO - 完全复刻 User 的 builder 方式,使用 LinkedHashMap 保持顺序
DeviceModelAttributeImportRespVO respVO = DeviceModelAttributeImportRespVO.builder() DeviceModelAttributeImportRespVO respVO = DeviceModelAttributeImportRespVO.builder()
.createCodes(new ArrayList<>()) .createCodes(new ArrayList<>())
@ -264,18 +266,40 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
// 4.2 处理点位类型转换 // 4.2 处理点位类型转换
String typeName = importAttribute.getTypeName(); String typeName = importAttribute.getTypeName();
// 不能为空
if (StringUtils.isBlank(typeName)) { if (StringUtils.isBlank(typeName)) {
respVO.getFailureCodes().put(importAttribute.getAttributeCode(), "点位类型名称不能为空"); respVO.getFailureCodes().put(importAttribute.getAttributeCode(), "点位类型名称不能为空");
return; return;
} }
String attributeTypeId = typeNameToIdMap.get(typeName); // 必须存在于数据库类型列表中(防止乱填)
if (StringUtils.isBlank(attributeTypeId)) { if (!typeNameToIdMap.containsKey(typeName)) {
respVO.getFailureCodes().put(importAttribute.getAttributeCode(), "点位类型名称无效: " + typeName); respVO.getFailureCodes().put(importAttribute.getAttributeCode(),
"点位类型名称不存在: " + typeName);
return; return;
} }
String attributeTypeId = typeNameToIdMap.get(typeName);
// 设置点位类型ID // 设置点位类型ID
importAttribute.setAttributeType(attributeTypeId); importAttribute.setAttributeType(attributeTypeId);
//dataType校验
String dataType = importAttribute.getDataType();
if (StringUtils.isBlank(dataType)) {
respVO.getFailureCodes().put(importAttribute.getAttributeCode(),
"数据类型 不能为空");
return;
}
dataType = StringUtils.trim(dataType);
// 必须在枚举中存在
JavaToTdengineTypeEnum typeEnum = JavaToTdengineTypeEnum.fromJavaType(dataType);
if (typeEnum == null) {
respVO.getFailureCodes().put(importAttribute.getAttributeCode(),
"数据类型 非法,仅支持: byte, short, int, long, float, double, boolean, char");
return;
}
// 4.3.1 校验字段是否符合要求 - 完全复刻 User 的 ValidationUtils.validate 调用 // 4.3.1 校验字段是否符合要求 - 完全复刻 User 的 ValidationUtils.validate 调用
try { try {
// 注意:如果有 DeviceModelAttributeSaveReqVO替换为该 VO无则直接校验 importAttribute // 注意:如果有 DeviceModelAttributeSaveReqVO替换为该 VO无则直接校验 importAttribute
@ -293,27 +317,53 @@ import static cn.iocoder.yudao.module.iot.enums.ErrorCodeConstants.*;
return; return;
} }
// 4.4.1 判断如果不存在,进行插入 - 完全复刻 User 的 selectByUsername 逻辑 // 4.4 查询数据库是否已存在
DeviceModelAttributeDO existAttribute = deviceModelAttributeMapper.selectByAttributeCode(importAttribute.getAttributeCode()); DeviceModelAttributeDO existAttribute =
if (existAttribute == null) { deviceModelAttributeMapper.selectOne(
// 创建DO对象并设置点位类型名称 Wrappers.<DeviceModelAttributeDO>lambdaQuery()
DeviceModelAttributeDO deviceModelAttribute = BeanUtils.toBean(importAttribute, DeviceModelAttributeDO.class); .eq(DeviceModelAttributeDO::getDeviceModelId, deviceModelId)
deviceModelAttribute.setTypeName(typeName); // 设置点位类型名称 .eq(DeviceModelAttributeDO::getAttributeCode, importAttribute.getAttributeCode())
);
// ===== 不允许覆盖 =====
if (!isUpdateSupport) {
// 如果已存在 → 直接失败
if (existAttribute != null) {
respVO.getFailureCodes().put(importAttribute.getAttributeCode(),
"点位编码 已存在,不允许重复");
return;
}
// 不存在 → 新增
DeviceModelAttributeDO deviceModelAttribute =
BeanUtils.toBean(importAttribute, DeviceModelAttributeDO.class);
deviceModelAttribute.setTypeName(typeName);
deviceModelAttributeMapper.insert(deviceModelAttribute); deviceModelAttributeMapper.insert(deviceModelAttribute);
respVO.getCreateCodes().add(importAttribute.getAttributeCode()); respVO.getCreateCodes().add(importAttribute.getAttributeCode());
return; return;
} }
// 4.4.2 如果存在,判断是否允许更新 - 完全复刻 User 的更新逻辑 // ===== 允许覆盖 =====
if (!isUpdateSupport) {
respVO.getFailureCodes().put(importAttribute.getAttributeCode(), DEVICE_MODEL_ATTRIBUTE_NOT_EXISTS.getMsg()); // 不存在 → 新增
if (existAttribute == null) {
DeviceModelAttributeDO deviceModelAttribute =
BeanUtils.toBean(importAttribute, DeviceModelAttributeDO.class);
deviceModelAttribute.setTypeName(typeName);
deviceModelAttributeMapper.insert(deviceModelAttribute);
respVO.getCreateCodes().add(importAttribute.getAttributeCode());
return; return;
} }
// 创建更新对象并设置点位类型名称 // 已存在 → 更新
DeviceModelAttributeDO updateAttribute = BeanUtils.toBean(importAttribute, DeviceModelAttributeDO.class); DeviceModelAttributeDO updateAttribute =
updateAttribute.setId(existAttribute.getId()); // 复用已有数据的 ID BeanUtils.toBean(importAttribute, DeviceModelAttributeDO.class);
updateAttribute.setTypeName(typeName); // 设置点位类型名称 updateAttribute.setId(existAttribute.getId());
updateAttribute.setTypeName(typeName);
deviceModelAttributeMapper.updateById(updateAttribute); deviceModelAttributeMapper.updateById(updateAttribute);
respVO.getUpdateCodes().add(importAttribute.getAttributeCode()); respVO.getUpdateCodes().add(importAttribute.getAttributeCode());
}); });

@ -120,6 +120,7 @@ public class GenerateWorkOrderTask implements Task {
ticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria()); ticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria());
ticketResultsDO.setManagementId(ticketManagementDO.getId()); ticketResultsDO.setManagementId(ticketManagementDO.getId());
ticketResultsDO.setDeviceId(deviceId); ticketResultsDO.setDeviceId(deviceId);
ticketResultsDO.setValueType(dvSubjectDO.getValueType());
// TODO 默认为内置管理员Id // TODO 默认为内置管理员Id
ticketResultsDO.setCreator("1"); ticketResultsDO.setCreator("1");
ticketResultsDO.setUpdater("1"); ticketResultsDO.setUpdater("1");

@ -75,7 +75,7 @@ public class TicketResultsController {
@Operation(summary = "获得工单检验结果分页") @Operation(summary = "获得工单检验结果分页")
@PreAuthorize("@ss.hasPermission('mes:ticket-results:query')") @PreAuthorize("@ss.hasPermission('mes:ticket-results:query')")
public CommonResult<PageResult<TicketResultsRespVO>> getTicketResultsPage(@Valid TicketResultsPageReqVO pageReqVO) { public CommonResult<PageResult<TicketResultsRespVO>> getTicketResultsPage(@Valid TicketResultsPageReqVO pageReqVO) {
PageResult<TicketResultsDO> pageResult = ticketResultsService.getTicketResultsPage(pageReqVO); PageResult<TicketResultsDO> pageResult = ticketResultsService.getTicketResultsPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, TicketResultsRespVO.class)); return success(BeanUtils.toBean(pageResult, TicketResultsRespVO.class));
} }

@ -53,4 +53,12 @@ public class TicketResultsRespVO {
@Schema(description = "设备Id") @Schema(description = "设备Id")
private Long deviceId; private Long deviceId;
@Schema(description = "值类型0-数值 1-布尔值 2-文本")
private String valueType;
@Schema(description = "输入值")
private String textInput;
} }

@ -41,4 +41,11 @@ public class TicketResultsSaveReqVO {
@Schema(description = "检验人") @Schema(description = "检验人")
private String inspector; private String inspector;
@Schema(description = "值类型0-数值 1-布尔值 2-文本")
private String valueType;
@Schema(description = "输入值")
private String textInput;
} }

@ -80,4 +80,8 @@ public class ZjTaskResultsRespVO {
@ExcelProperty("设备id") @ExcelProperty("设备id")
private Long deviceId; private Long deviceId;
@Schema(description = "输入值")
private String textInput;
} }

@ -54,4 +54,7 @@ public class ZjTaskResultsSaveReqVO {
@Schema(description = "设备id", example = "23960") @Schema(description = "设备id", example = "23960")
private Long deviceId; private Long deviceId;
@Schema(description = "输入值")
private String textInput;
} }

@ -65,6 +65,18 @@ public class TicketResultsDO extends BaseDO {
*/ */
private Long deviceId; private Long deviceId;
/**
* 0- 1- 2-
*/
private String valueType;
/**
*
*/
private String textInput;
/** /**
* *
*/ */
@ -75,4 +87,6 @@ public class TicketResultsDO extends BaseDO {
private String operator; private String operator;
} }

@ -81,4 +81,9 @@ public class ZjTaskResultsDO extends BaseDO {
*/ */
private Long deviceId; private Long deviceId;
/**
*
*/
private String textInput;
} }

@ -230,27 +230,49 @@ public class CriticalComponentServiceImpl implements CriticalComponentService {
return; return;
} }
// 3.2 检查是否已存在 // 3.2 查询数据库是否已存在
CriticalComponentDO existComponent = criticalComponentMapper.selectByCode(importComponent.getCode()); CriticalComponentDO existComponent =
criticalComponentMapper.selectByCode(importComponent.getCode());
// ===== 不允许覆盖 =====
if (!isUpdateSupport) {
// 已存在 → 失败(必须唯一)
if (existComponent != null) {
respVO.getFailureCodes().put(importComponent.getCode(),
"编码 已存在,不允许重复");
return;
}
// 不存在 → 新增
CriticalComponentDO newComponent =
BeanUtils.toBean(importComponent, CriticalComponentDO.class);
newComponent.setCreateTime(LocalDateTime.now());
criticalComponentMapper.insert(newComponent);
respVO.getCreateCodes().add(importComponent.getCode());
return;
}
// ===== 允许覆盖 =====
// 不存在 → 新增
if (existComponent == null) { if (existComponent == null) {
// 3.3 创建新记录 CriticalComponentDO newComponent =
CriticalComponentDO newComponent = BeanUtils.toBean(importComponent, CriticalComponentDO.class); BeanUtils.toBean(importComponent, CriticalComponentDO.class);
// 设置创建时间为当前时间
newComponent.setCreateTime(LocalDateTime.now()); newComponent.setCreateTime(LocalDateTime.now());
criticalComponentMapper.insert(newComponent); criticalComponentMapper.insert(newComponent);
respVO.getCreateCodes().add(importComponent.getCode()); respVO.getCreateCodes().add(importComponent.getCode());
} else if (isUpdateSupport) { return;
// 3.4 更新已有记录
CriticalComponentDO updateComponent = BeanUtils.toBean(importComponent, CriticalComponentDO.class);
updateComponent.setId(existComponent.getId());
// 保持原有创建时间不变
updateComponent.setCreateTime(existComponent.getCreateTime());
criticalComponentMapper.updateById(updateComponent);
respVO.getUpdateCodes().add(importComponent.getCode());
} else {
// 3.5 已存在且不支持更新
respVO.getFailureCodes().put(importComponent.getCode(), "该关键件已存在");
} }
// 已存在 → 更新
CriticalComponentDO updateComponent =
BeanUtils.toBean(importComponent, CriticalComponentDO.class);
updateComponent.setId(existComponent.getId());
updateComponent.setCreateTime(existComponent.getCreateTime());
criticalComponentMapper.updateById(updateComponent);
respVO.getUpdateCodes().add(importComponent.getCode());
}); });
return respVO; return respVO;

@ -200,6 +200,7 @@ public PageResult<MoldTaskManagementDO> getMoldTaskManagementPage(MoldTaskManage
moldticketResultsDO.setJudgmentCriteria(moldSubjectDO.getJudgmentCriteria()); moldticketResultsDO.setJudgmentCriteria(moldSubjectDO.getJudgmentCriteria());
moldticketResultsDO.setManagementId(moldticketManagementDO.getId()); moldticketResultsDO.setManagementId(moldticketManagementDO.getId());
moldticketResultsDO.setMoldId(moldId); moldticketResultsDO.setMoldId(moldId);
moldticketResultsDO.setValueType(moldSubjectDO.getValueType());
moldticketResultsMapper.insert(moldticketResultsDO); moldticketResultsMapper.insert(moldticketResultsDO);
} }

@ -205,6 +205,7 @@ public class TaskManagementServiceImpl implements TaskManagementService {
ticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria()); ticketResultsDO.setJudgmentCriteria(dvSubjectDO.getJudgmentCriteria());
ticketResultsDO.setManagementId(ticketManagementDO.getId()); ticketResultsDO.setManagementId(ticketManagementDO.getId());
ticketResultsDO.setDeviceId(deviceId); ticketResultsDO.setDeviceId(deviceId);
ticketResultsDO.setValueType(dvSubjectDO.getValueType());
ticketResultsMapper.insert(ticketResultsDO); ticketResultsMapper.insert(ticketResultsDO);
} }

Loading…
Cancel
Save