Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
7817cfb727
@ -0,0 +1,51 @@
|
||||
package com.cdzy.ebikeoperate.controller;
|
||||
|
||||
import com.cdzy.common.model.JsonResult;
|
||||
import com.cdzy.ebikeoperate.model.dto.request.ReqDevicePartStockInDto;
|
||||
import com.cdzy.ebikeoperate.service.EbikeBikeQrcodeService;
|
||||
import com.cdzy.ebikeoperate.service.EbikeComponentService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 部件的相关接口
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/ebikeComponent")
|
||||
public class EbikeComponentController {
|
||||
|
||||
@Autowired
|
||||
EbikeComponentService ebikeComponentService;
|
||||
/***
|
||||
* 中控设备部件入库接口
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/ecuStorageSave")
|
||||
public JsonResult<?> ecuStorageSave(@RequestBody ReqDevicePartStockInDto params) {
|
||||
|
||||
return ebikeComponentService.ecuStorageSave(params);
|
||||
}
|
||||
|
||||
/***
|
||||
* 设备部件作废接口 (通用
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/invalidateDevicePart")
|
||||
public JsonResult<?> invalidateDevicePart(@RequestParam(name="componentEnterRecordId")String componentEnterRecordId) {
|
||||
return ebikeComponentService.invalidateDevicePart(componentEnterRecordId);
|
||||
}
|
||||
|
||||
/***
|
||||
* 设备部件取消接口(通用)
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/cancelDevicePart")
|
||||
public JsonResult<?> cancelDevicePart(@RequestParam(name = "componentEnterRecordId") String componentEnterRecordId) {
|
||||
return ebikeComponentService.cancelDevicePart(componentEnterRecordId);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.mapper;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeComponentInventory;
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
|
||||
/**
|
||||
* 映射层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeComponentInventoryMapper extends BaseMapper<EbikeComponentInventory> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.mapper;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeComponentInventorycount;
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
|
||||
/**
|
||||
* 映射层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeComponentInventorycountMapper extends BaseMapper<EbikeComponentInventorycount> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.mapper;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuEnterRecords;
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
|
||||
/**
|
||||
* 映射层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeEcuEnterRecordsMapper extends BaseMapper<EbikeEcuEnterRecords> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.mapper;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords;
|
||||
import com.mybatisflex.core.BaseMapper;
|
||||
|
||||
/**
|
||||
* 映射层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeEcuOutRecordsMapper extends BaseMapper<EbikeEcuOutRecords> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
package com.cdzy.ebikeoperate.model.dto.request;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeBatteryEnterRecords;
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuEnterRecords;
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeHelmetEnterRecords;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 中控设备部件入库Dto
|
||||
*
|
||||
* 用于接收中控设备部件入库请求数据,包含设备部件的基本信息及入库记录。
|
||||
* 支持多种类型的部件,增强了类型的扩展性与可读性。
|
||||
*
|
||||
* @author zjd
|
||||
* @date 2025/5/20
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ReqDevicePartStockInDto {
|
||||
|
||||
/**
|
||||
* 部件记录主键。若存在记录ID则传递,若无则可不传。
|
||||
*/
|
||||
private String componentEnterRecordId;
|
||||
|
||||
/**
|
||||
* 所属区域,表示设备部件入库的区域。
|
||||
*/
|
||||
private String owningRegion;
|
||||
|
||||
/**
|
||||
* 部件类型ID,表示部件的类别(如电池、ECU等,部件的编号)。
|
||||
*/
|
||||
private String componentType;
|
||||
|
||||
/**
|
||||
* 入库数量,表示该批次部件的数量。
|
||||
*/
|
||||
private int enterQuantity;
|
||||
|
||||
/**
|
||||
* 入库类型:1 表示暂存,2 表示入库。
|
||||
*/
|
||||
private Integer stockInType;
|
||||
|
||||
/**
|
||||
* 中控信息列表,包含所有ECU部件的入库记录。
|
||||
*/
|
||||
private List<EbikeEcuEnterRecords> ebikeEcuEnterRecords;
|
||||
|
||||
/**
|
||||
* 头盔信息列表,包含所有头盔部件的入库记录。
|
||||
*/
|
||||
private List<EbikeHelmetEnterRecords> ebikeHelmetEnterRecords;
|
||||
|
||||
/**
|
||||
* 电池信息列表,包含所有电池部件的入库记录。
|
||||
*/
|
||||
private List<EbikeBatteryEnterRecords> ebikeBatteryEnterRecords;
|
||||
|
||||
}
|
||||
@ -0,0 +1,88 @@
|
||||
package com.cdzy.ebikeoperate.model.pojo;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("ebike_component_inventory")
|
||||
public class EbikeComponentInventory implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 库存记录的唯一ID
|
||||
*/
|
||||
@Id
|
||||
private String inventoryId;
|
||||
|
||||
/**
|
||||
* 部件编号(如头盔编号、电池编号、中控编号)
|
||||
*/
|
||||
private String itemCode;
|
||||
|
||||
/**
|
||||
* 部件序列号(例如:EcuSn
|
||||
*/
|
||||
private String serialNumber;
|
||||
|
||||
/**
|
||||
* 部件类型
|
||||
*/
|
||||
private String componentType;
|
||||
|
||||
/**
|
||||
* 部件名称
|
||||
*/
|
||||
private String componentName;
|
||||
|
||||
/**
|
||||
* 组织id(运营商id
|
||||
*/
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 品牌
|
||||
*/
|
||||
private String brand;
|
||||
|
||||
/**
|
||||
* 部件单价
|
||||
*/
|
||||
private Double componentPrice;
|
||||
|
||||
/**
|
||||
* 上次更新时间
|
||||
*/
|
||||
private LocalDateTime lastUpdatedAt;
|
||||
|
||||
/**
|
||||
* 上次更新操作员
|
||||
*/
|
||||
private String lastUpdatedUser;
|
||||
|
||||
/**
|
||||
* 0:待入库,1:取消,2:废除,3已入库,4:已出库
|
||||
*/
|
||||
private Integer state;
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package com.cdzy.ebikeoperate.model.pojo;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("ebike_component_inventorycount")
|
||||
public class EbikeComponentInventorycount implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 部件类型的唯一ID
|
||||
*/
|
||||
@Id
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 组织id(运营商id
|
||||
*/
|
||||
private Long orgId;
|
||||
|
||||
/**
|
||||
* 部件类型编号
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 部件类型名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 品牌
|
||||
*/
|
||||
private String brand;
|
||||
|
||||
/**
|
||||
* 部件数量
|
||||
*/
|
||||
private Integer count;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
private Double price;
|
||||
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package com.cdzy.ebikeoperate.model.pojo;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("ebike_ecu_enter_records")
|
||||
public class EbikeEcuEnterRecords implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 中控入库记录的唯一ID
|
||||
*/
|
||||
@Id
|
||||
private String ecuEnterRecordId;
|
||||
|
||||
/**
|
||||
* 组件入库记录ID
|
||||
*/
|
||||
private String componentEnterRecordId;
|
||||
|
||||
/**
|
||||
* 中控编码
|
||||
*/
|
||||
private String ecuCode;
|
||||
|
||||
/**
|
||||
* 中控序列号
|
||||
*/
|
||||
private String ecuSn;
|
||||
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package com.cdzy.ebikeoperate.model.pojo;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 实体类。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("ebike_ecu_out_records")
|
||||
public class EbikeEcuOutRecords implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 中控出库记录的唯一ID
|
||||
*/
|
||||
@Id
|
||||
private String ecuOutRecordId;
|
||||
|
||||
/**
|
||||
* 组件出库记录ID
|
||||
*/
|
||||
private Integer componentOutRecordId;
|
||||
|
||||
/**
|
||||
* 中控编码
|
||||
*/
|
||||
private String ecuCode;
|
||||
|
||||
/**
|
||||
* 中控序列号
|
||||
*/
|
||||
private String ecuSn;
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.service;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeComponentInventory;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
|
||||
/**
|
||||
* 服务层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeComponentInventoryService extends IService<EbikeComponentInventory> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.service;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeComponentInventorycount;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
|
||||
/**
|
||||
* 服务层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeComponentInventorycountService extends IService<EbikeComponentInventorycount> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
package com.cdzy.ebikeoperate.service;
|
||||
|
||||
import com.cdzy.common.model.JsonResult;
|
||||
import com.cdzy.ebikeoperate.model.dto.request.ReqDevicePartStockInDto;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* 中控设备部件入库接口
|
||||
*/
|
||||
public interface EbikeComponentService {
|
||||
|
||||
|
||||
/***
|
||||
* 中控设备部件入库接口
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
JsonResult<?> ecuStorageSave(ReqDevicePartStockInDto params);
|
||||
|
||||
/***
|
||||
* 设备部件作废接口 (通用
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
JsonResult<?> invalidateDevicePart(String componentEnterRecordId);
|
||||
/***
|
||||
* 设备部件取消接口(通用)
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
JsonResult<?> cancelDevicePart(String componentEnterRecordId);
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.service;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuEnterRecords;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
|
||||
/**
|
||||
* 服务层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeEcuEnterRecordsService extends IService<EbikeEcuEnterRecords> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.cdzy.ebikeoperate.service;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuOutRecords;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
|
||||
/**
|
||||
* 服务层。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
public interface EbikeEcuOutRecordsService extends IService<EbikeEcuOutRecords> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.cdzy.ebikeoperate.service.impl;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeComponentInventory;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.cdzy.ebikeoperate.mapper.EbikeComponentInventoryMapper;
|
||||
import com.cdzy.ebikeoperate.service.EbikeComponentInventoryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 服务层实现。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Service
|
||||
public class EbikeComponentInventoryServiceImpl extends ServiceImpl<EbikeComponentInventoryMapper, EbikeComponentInventory> implements EbikeComponentInventoryService{
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.cdzy.ebikeoperate.service.impl;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeComponentInventorycount;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.cdzy.ebikeoperate.mapper.EbikeComponentInventorycountMapper;
|
||||
import com.cdzy.ebikeoperate.service.EbikeComponentInventorycountService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 服务层实现。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Service
|
||||
public class EbikeComponentInventorycountServiceImpl extends ServiceImpl<EbikeComponentInventorycountMapper, EbikeComponentInventorycount> implements EbikeComponentInventorycountService{
|
||||
|
||||
}
|
||||
@ -0,0 +1,269 @@
|
||||
package com.cdzy.ebikeoperate.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.cdzy.common.enums.Code;
|
||||
import com.cdzy.common.model.JsonResult;
|
||||
import com.cdzy.ebikeoperate.mapper.*;
|
||||
import com.cdzy.ebikeoperate.model.dto.request.ReqDevicePartStockInDto;
|
||||
import com.cdzy.ebikeoperate.model.pojo.*;
|
||||
import com.cdzy.ebikeoperate.service.EbikeComponentService;
|
||||
import com.cdzy.ebikeoperate.service.EbikeComponentTypeInfoService;
|
||||
import com.ebike.feign.clients.StaffFeignClient;
|
||||
import com.ebike.feign.model.rsp.StaffFeign;
|
||||
import com.mybatisflex.core.query.QueryWrapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 部件的相关接口实现
|
||||
*/
|
||||
@Service
|
||||
public class EbikeComponentServiceImpl implements EbikeComponentService {
|
||||
|
||||
@Resource
|
||||
private EbikeEcuEnterRecordsMapper ebikeEcuEnterRecordsMapper;
|
||||
@Resource
|
||||
private EbikeComponentProductionMapper ebikeComponentProductionMapper;
|
||||
|
||||
@Resource
|
||||
private StaffFeignClient staffFeignClient;
|
||||
@Resource
|
||||
private EbikeComponentTypeInfoMapper ebikeComponentTypeInfoMapper;
|
||||
@Resource
|
||||
private EbikeComponentEnterRecordsMapper ebikeComponentEnterRecordsMapper;
|
||||
|
||||
@Resource
|
||||
private EbikeComponentInventoryMapper ebikeComponentInventoryMapper;
|
||||
@Resource
|
||||
private EbikeComponentInventorycountMapper ebikeComponentInventorycountMapper;
|
||||
@Resource
|
||||
private EbikeBatteryEnterRecordsMapper ebikeBatteryEnterRecordsMapper;
|
||||
@Resource
|
||||
private EbikeHelmetEnterRecordsMapper ebikeHelmetEnterRecordsMapper;
|
||||
|
||||
|
||||
public EbikeComponentServiceImpl(EbikeEcuEnterRecordsMapper ebikeEcuEnterRecordsMapper, EbikeComponentProductionMapper ebikeComponentProductionMapper) {
|
||||
this.ebikeEcuEnterRecordsMapper = ebikeEcuEnterRecordsMapper;
|
||||
this.ebikeComponentProductionMapper = ebikeComponentProductionMapper;
|
||||
}
|
||||
|
||||
/***
|
||||
* 中控设备部件入库接口
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public JsonResult<?> ecuStorageSave(ReqDevicePartStockInDto params){
|
||||
//判断是
|
||||
//查询部件价格
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq("id",params.getComponentType());
|
||||
EbikeComponentTypeInfo ebikeComponentTypeInfo = ebikeComponentTypeInfoMapper.selectOneById(queryWrapper);
|
||||
StaffFeign staffFeign = getStaffFeignInfo();
|
||||
// 获取当前操作用户
|
||||
String userId = staffFeign.getStaffId().toString();
|
||||
Long orgId = staffFeign.getOrgId();
|
||||
|
||||
//判断
|
||||
String componentEnterRecordId = params.getComponentEnterRecordId();
|
||||
EbikeComponentEnterRecords ebikeComponentEnterRecords = new EbikeComponentEnterRecords();
|
||||
ebikeComponentEnterRecords.setOwningRegion(params.getOwningRegion());
|
||||
ebikeComponentEnterRecords.setComponentEnterRecordId(params.getComponentType());
|
||||
ebikeComponentEnterRecords.setEnterQuantity(params.getEnterQuantity());
|
||||
ebikeComponentEnterRecords.setComponentPrice(ebikeComponentTypeInfo.getPrice());
|
||||
ebikeComponentEnterRecords.setCreatedUser(userId);
|
||||
ebikeComponentEnterRecords.setCreatedAt(LocalDateTime.now());
|
||||
ebikeComponentEnterRecords.setState("1");//已入库
|
||||
if(componentEnterRecordId==null){ //新增
|
||||
ebikeComponentEnterRecordsMapper.insert(ebikeComponentEnterRecords);
|
||||
}else{
|
||||
//查询表中是否存在一条记录
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
long l = ebikeComponentEnterRecordsMapper.selectCountByQuery(query);
|
||||
if(l>0){//编辑
|
||||
ebikeComponentEnterRecords.setComponentEnterRecordId(componentEnterRecordId);
|
||||
ebikeComponentEnterRecordsMapper.update(ebikeComponentEnterRecords);
|
||||
}else{
|
||||
ebikeComponentEnterRecordsMapper.insert(ebikeComponentEnterRecords);
|
||||
}
|
||||
}
|
||||
componentEnterRecordId=ebikeComponentEnterRecords.getComponentEnterRecordId();
|
||||
|
||||
//判断数据是否存在 存在则更新 否则插入 删除这次记录的所有 重新插入
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
ebikeEcuEnterRecordsMapper.deleteByQuery(query);
|
||||
//保存ecu入库记录
|
||||
List<EbikeEcuEnterRecords> enterRecords = params.getEbikeEcuEnterRecords();
|
||||
for(EbikeEcuEnterRecords record:enterRecords){
|
||||
record.setComponentEnterRecordId(componentEnterRecordId);
|
||||
ebikeEcuEnterRecordsMapper.insert(record);
|
||||
//部件仓库明细的插入 只有入库的时候才写入 写入后就不可删除了 只能通过状态控制
|
||||
EbikeComponentInventory ebikeComponentInventory = new EbikeComponentInventory();
|
||||
ebikeComponentInventory.setItemCode(record.getEcuCode());
|
||||
ebikeComponentInventory.setSerialNumber(record.getEcuCode());
|
||||
ebikeComponentInventory.setComponentType(ebikeComponentTypeInfo.getId());
|
||||
ebikeComponentInventory.setComponentName(ebikeComponentTypeInfo.getName());
|
||||
ebikeComponentInventory.setComponentPrice(ebikeComponentTypeInfo.getPrice());
|
||||
ebikeComponentInventory.setOrgId(orgId);
|
||||
ebikeComponentInventory.setBrand(ebikeComponentTypeInfo.getBrand());
|
||||
ebikeComponentInventory.setLastUpdatedAt(LocalDateTime.now());
|
||||
ebikeComponentInventory.setLastUpdatedUser(userId);
|
||||
ebikeComponentInventory.setState(1);//已入库
|
||||
ebikeComponentInventoryMapper.insert(ebikeComponentInventory);
|
||||
}
|
||||
int size = enterRecords.size();
|
||||
// 根据部件类型编号查询部件类型 新增或更新 统计表
|
||||
QueryWrapper query1 = new QueryWrapper();
|
||||
query1.eq("code", ebikeComponentTypeInfo.getId());
|
||||
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query1);
|
||||
ebikeComponentInventorycount.setOrgId(orgId);
|
||||
ebikeComponentInventorycount.setCode(ebikeComponentTypeInfo.getId());
|
||||
ebikeComponentInventorycount.setName(ebikeComponentTypeInfo.getName());
|
||||
ebikeComponentInventorycount.setBrand(ebikeComponentTypeInfo.getBrand());
|
||||
ebikeComponentInventorycount.setUnit(ebikeComponentTypeInfo.getUnit());
|
||||
ebikeComponentInventorycount.setPrice(ebikeComponentTypeInfo.getPrice());
|
||||
if(ebikeComponentInventorycount==null){
|
||||
ebikeComponentInventorycount.setCount(size);
|
||||
ebikeComponentInventorycountMapper.insert(ebikeComponentInventorycount);
|
||||
}else {
|
||||
ebikeComponentInventorycount.setCount(size+ebikeComponentInventorycount.getCount());
|
||||
ebikeComponentInventorycountMapper.update(ebikeComponentInventorycount);
|
||||
}
|
||||
return JsonResult.success("入库成功");
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* 设备部件作废接口 (通用
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public JsonResult<?> invalidateDevicePart(String componentEnterRecordId){
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
EbikeComponentEnterRecords ebikeComponentEnterRecords = ebikeComponentEnterRecordsMapper.selectOneByQuery(query);
|
||||
String componentType = ebikeComponentEnterRecords.getComponentType();
|
||||
Integer enterQuantity = ebikeComponentEnterRecords.getEnterQuantity();
|
||||
// 电池262711452730000 头盔262711452730001 中控262711452730008 需要单独操作明细表
|
||||
//先更新记录表状态 为已作废(-2)
|
||||
ebikeComponentEnterRecords.setState("-2");
|
||||
ebikeComponentEnterRecordsMapper.update(ebikeComponentEnterRecords);
|
||||
switch (componentType) {
|
||||
case "262711452730000": // 电池
|
||||
updateBatteryDetails(componentEnterRecordId,componentType,-2); // 找到电池编号 更新仓库明细状态 和仓库总数量
|
||||
break;
|
||||
case "262711452730001": // 头盔
|
||||
updateHelmetDetails(componentEnterRecordId,componentType,-2); // 找到头盔编号 更新仓库明细状态 和仓库总数量
|
||||
break;
|
||||
case "262711452730008": // 中控
|
||||
updateCentralControlDetails(componentEnterRecordId,componentType,-2); // 找到中控编号 更新仓库明细状态 和仓库总数量
|
||||
break;
|
||||
default: // 其他
|
||||
updateOtherComponentStock(componentType,enterQuantity); // 其他直接根据数量 更新仓库总数量
|
||||
break;
|
||||
}
|
||||
return JsonResult.success("成功");
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* 设备部件取消接口(通用)
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public JsonResult<?> cancelDevicePart(String componentEnterRecordId){
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
EbikeComponentEnterRecords ebikeComponentEnterRecords = ebikeComponentEnterRecordsMapper.selectOneByQuery(query);
|
||||
//先更新记录表状态 为已取消(-1)
|
||||
ebikeComponentEnterRecords.setState("-1");
|
||||
ebikeComponentEnterRecordsMapper.update(ebikeComponentEnterRecords);
|
||||
return JsonResult.success("成功");
|
||||
}
|
||||
|
||||
|
||||
// 方法实现
|
||||
private void updateBatteryDetails(String componentEnterRecordId,String componentType,Integer state) {
|
||||
// 具体更新电池仓库明细状态和仓库总数量的逻辑
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
List<EbikeBatteryEnterRecords> ebikeBatteryEnterRecords = ebikeBatteryEnterRecordsMapper.selectListWithRelationsByQuery(query);
|
||||
for(EbikeBatteryEnterRecords record:ebikeBatteryEnterRecords){
|
||||
query = new QueryWrapper();
|
||||
query.eq("item_code", record.getBatteryCode());
|
||||
EbikeComponentInventory ebikeComponentInventory = ebikeComponentInventoryMapper.selectOneByQuery(query);
|
||||
ebikeComponentInventory.setState(state);
|
||||
ebikeComponentInventoryMapper.update(ebikeComponentInventory);
|
||||
}
|
||||
int size = ebikeBatteryEnterRecords.size();
|
||||
updateOtherComponentStock(componentType,size);
|
||||
}
|
||||
private void updateHelmetDetails(String componentEnterRecordId,String componentType,Integer state) {
|
||||
// 具体更新头盔仓库明细状态和仓库总数量的逻辑
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
|
||||
List<EbikeHelmetEnterRecords> ebikeHelmetEnterRecords = ebikeHelmetEnterRecordsMapper.selectListWithRelationsByQuery(query);
|
||||
for(EbikeHelmetEnterRecords record:ebikeHelmetEnterRecords){
|
||||
query = new QueryWrapper();
|
||||
query.eq("item_code", record.getHelmetCode());
|
||||
EbikeComponentInventory ebikeComponentInventory = ebikeComponentInventoryMapper.selectOneByQuery(query);
|
||||
ebikeComponentInventory.setState(state);
|
||||
ebikeComponentInventoryMapper.update(ebikeComponentInventory);
|
||||
}
|
||||
int size = ebikeHelmetEnterRecords.size();
|
||||
updateOtherComponentStock(componentType,size);
|
||||
}
|
||||
|
||||
private void updateCentralControlDetails(String componentEnterRecordId,String componentType,Integer state) {
|
||||
// 具体更新中控仓库明细状态和仓库总数量的逻辑
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
List<EbikeEcuEnterRecords> ebikeEcuEnterRecords = ebikeEcuEnterRecordsMapper.selectListWithRelationsByQuery(query);
|
||||
for(EbikeEcuEnterRecords record:ebikeEcuEnterRecords){
|
||||
query = new QueryWrapper();
|
||||
query.eq("item_code", record.getEcuSn());
|
||||
query.eq("serial_number", record.getEcuCode());
|
||||
EbikeComponentInventory ebikeComponentInventory = ebikeComponentInventoryMapper.selectOneByQuery(query);
|
||||
ebikeComponentInventory.setState(state);
|
||||
ebikeComponentInventoryMapper.update(ebikeComponentInventory);
|
||||
}
|
||||
int size = ebikeEcuEnterRecords.size();
|
||||
updateOtherComponentStock(componentType,size);
|
||||
}
|
||||
private void updateOtherComponentStock(String componentType,Integer size) {
|
||||
// 具体更新其他组件仓库总数量的逻辑
|
||||
QueryWrapper query1 = new QueryWrapper();
|
||||
query1.eq("code", componentType);
|
||||
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query1);
|
||||
if(ebikeComponentInventorycount !=null){
|
||||
ebikeComponentInventorycount.setCount(ebikeComponentInventorycount.getCount()-size);
|
||||
ebikeComponentInventorycountMapper.update(ebikeComponentInventorycount);
|
||||
}
|
||||
}
|
||||
public StaffFeign getStaffFeignInfo() {
|
||||
String tokenValue = StpUtil.getTokenValue();
|
||||
// 调用 Feign 客户端获取用户信息
|
||||
JsonResult<StaffFeign> result = staffFeignClient.getInfoByToken(tokenValue);
|
||||
// 判断返回码,若失败则抛出异常
|
||||
if (result.getCode() != Code.SUCCESS) {
|
||||
throw new RuntimeException("获取用户信息失败");
|
||||
}
|
||||
// 返回获取到的 StaffFeign 数据
|
||||
return result.getData();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.cdzy.ebikeoperate.service.impl;
|
||||
|
||||
import com.cdzy.ebikeoperate.model.pojo.EbikeEcuEnterRecords;
|
||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||
import com.cdzy.ebikeoperate.mapper.EbikeEcuEnterRecordsMapper;
|
||||
import com.cdzy.ebikeoperate.service.EbikeEcuEnterRecordsService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 服务层实现。
|
||||
*
|
||||
* @author zjd
|
||||
* @since 2025-05-19
|
||||
*/
|
||||
@Service
|
||||
public class EbikeEcuEnterRecordsServiceImpl extends ServiceImpl<EbikeEcuEnterRecordsMapper, EbikeEcuEnterRecords> implements EbikeEcuEnterRecordsService{
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user