Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
1147431a33
@ -10,7 +10,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 部件的相关接口
|
||||
* 车辆部件的相关接口
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/ebikeComponent")
|
||||
@ -18,8 +18,8 @@ public class EbikeComponentController {
|
||||
|
||||
@Autowired
|
||||
EbikeComponentService ebikeComponentService;
|
||||
/***
|
||||
* 中控设备部件入库接口
|
||||
/**
|
||||
* 中控设备部件(入库,暂存) (stockInType 1暂存2入库
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@ -28,9 +28,8 @@ public class EbikeComponentController {
|
||||
|
||||
return ebikeComponentService.ecuStorageSave(params);
|
||||
}
|
||||
|
||||
/***
|
||||
* 设备部件作废接口 (通用
|
||||
/**
|
||||
* 设备部件作废 (通用
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
@ -38,9 +37,8 @@ public class EbikeComponentController {
|
||||
public JsonResult<?> invalidateDevicePart(@RequestParam(name="componentEnterRecordId")String componentEnterRecordId) {
|
||||
return ebikeComponentService.invalidateDevicePart(componentEnterRecordId);
|
||||
}
|
||||
|
||||
/***
|
||||
* 设备部件取消接口(通用)
|
||||
/**
|
||||
* 设备部件取消(通用)
|
||||
* @param componentEnterRecordId
|
||||
* @return
|
||||
*/
|
||||
|
||||
@ -41,10 +41,10 @@ public class ReqDevicePartStockInDto {
|
||||
/**
|
||||
* 入库数量,表示该批次部件的数量。
|
||||
*/
|
||||
private int enterQuantity;
|
||||
private Integer enterQuantity;
|
||||
|
||||
/**
|
||||
* 入库类型:1 表示暂存,2 表示入库。
|
||||
* 入库类型:0或空 表示暂存,1 表示入库。
|
||||
*/
|
||||
private Integer stockInType;
|
||||
|
||||
|
||||
@ -55,25 +55,78 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
|
||||
}
|
||||
|
||||
/***
|
||||
* 中控设备部件入库接口
|
||||
* 中控设备部件入库接口,暂存
|
||||
* @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();
|
||||
public JsonResult<?> ecuStorageSave(ReqDevicePartStockInDto params) {
|
||||
Integer stockInType = params.getStockInType();
|
||||
String userId = getStaffId(); // 获取当前操作用户ID
|
||||
Long orgId = getOrgId(); // 获取当前操作用户所在组织ID
|
||||
EbikeComponentTypeInfo ebikeComponentTypeInfo = getComponentTypeInfo(params.getComponentType()); // 获取部件信息
|
||||
|
||||
//判断
|
||||
String componentEnterRecordId = params.getComponentEnterRecordId();
|
||||
// 获取或新增部件记录
|
||||
EbikeComponentEnterRecords ebikeComponentEnterRecords = buildEnterRecord(params, userId, ebikeComponentTypeInfo,stockInType);
|
||||
saveOrUpdateEnterRecord(ebikeComponentEnterRecords, params.getComponentEnterRecordId());
|
||||
|
||||
String componentEnterRecordId = ebikeComponentEnterRecords.getComponentEnterRecordId();
|
||||
|
||||
if(params.getEbikeEcuEnterRecords().size()>0){
|
||||
// 删除原有的ECU入库记录并保存新的记录
|
||||
deleteAndInsertEcuEnterRecords(componentEnterRecordId, params.getEbikeEcuEnterRecords(), stockInType, ebikeComponentTypeInfo, userId, orgId);
|
||||
if (stockInType == 1) {
|
||||
updateInventoryCount(ebikeComponentTypeInfo, orgId, params.getEbikeEcuEnterRecords().size());
|
||||
}
|
||||
}else if(params.getEbikeBatteryEnterRecords().size()>0){
|
||||
// 删除原有的电池入库记录并保存新的记录
|
||||
deleteAndInsertBatteryRecords(componentEnterRecordId, params.getEbikeBatteryEnterRecords(), stockInType, ebikeComponentTypeInfo, userId, orgId);
|
||||
if (stockInType == 1) {
|
||||
updateInventoryCount(ebikeComponentTypeInfo, orgId, params.getEbikeBatteryEnterRecords().size());
|
||||
}
|
||||
}else if(params.getEbikeHelmetEnterRecords().size()>0){
|
||||
// 删除原有的头盔入库记录并保存新的记录
|
||||
deleteAndInsertHelmetEnterRecords(componentEnterRecordId, params.getEbikeHelmetEnterRecords(), stockInType, ebikeComponentTypeInfo, userId, orgId);
|
||||
if (stockInType == 1) {
|
||||
updateInventoryCount(ebikeComponentTypeInfo, orgId, params.getEbikeHelmetEnterRecords().size());
|
||||
}
|
||||
}else {
|
||||
//部件数量 enterQuantity 更新部件库
|
||||
Integer enterQuantity = params.getEnterQuantity();
|
||||
if (stockInType == 1) {
|
||||
updateInventoryCount(ebikeComponentTypeInfo, orgId,enterQuantity);
|
||||
}
|
||||
}
|
||||
return JsonResult.success("成功");
|
||||
}
|
||||
/*
|
||||
获取用户Id
|
||||
*/
|
||||
private String getStaffId() {
|
||||
StaffFeign staffFeign = getStaffFeignInfo();
|
||||
return staffFeign.getStaffId().toString();
|
||||
}
|
||||
/*
|
||||
获取组织Id
|
||||
*/
|
||||
private Long getOrgId() {
|
||||
StaffFeign staffFeign = getStaffFeignInfo();
|
||||
return staffFeign.getOrgId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车辆部件类型表信息
|
||||
* @param componentType
|
||||
* @return
|
||||
*/
|
||||
private EbikeComponentTypeInfo getComponentTypeInfo(String componentType) {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq("id", componentType);
|
||||
return ebikeComponentTypeInfoMapper.selectOneById(queryWrapper);
|
||||
}
|
||||
|
||||
private EbikeComponentEnterRecords buildEnterRecord(ReqDevicePartStockInDto params, String userId, EbikeComponentTypeInfo ebikeComponentTypeInfo,Integer stockInType) {
|
||||
EbikeComponentEnterRecords ebikeComponentEnterRecords = new EbikeComponentEnterRecords();
|
||||
ebikeComponentEnterRecords.setOwningRegion(params.getOwningRegion());
|
||||
ebikeComponentEnterRecords.setComponentEnterRecordId(params.getComponentType());
|
||||
@ -81,36 +134,73 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
|
||||
ebikeComponentEnterRecords.setComponentPrice(ebikeComponentTypeInfo.getPrice());
|
||||
ebikeComponentEnterRecords.setCreatedUser(userId);
|
||||
ebikeComponentEnterRecords.setCreatedAt(LocalDateTime.now());
|
||||
ebikeComponentEnterRecords.setState("1");//已入库
|
||||
if(componentEnterRecordId==null){ //新增
|
||||
ebikeComponentEnterRecords.setState(stockInType==1 ? "1":"0"); // 暂存为 0 入库为1
|
||||
return ebikeComponentEnterRecords;
|
||||
}
|
||||
|
||||
private void saveOrUpdateEnterRecord(EbikeComponentEnterRecords ebikeComponentEnterRecords, String componentEnterRecordId) {
|
||||
if (componentEnterRecordId == null) { // 新增
|
||||
ebikeComponentEnterRecordsMapper.insert(ebikeComponentEnterRecords);
|
||||
}else{
|
||||
//查询表中是否存在一条记录
|
||||
} else { // 编辑或新增
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
long l = ebikeComponentEnterRecordsMapper.selectCountByQuery(query);
|
||||
if(l>0){//编辑
|
||||
long count = ebikeComponentEnterRecordsMapper.selectCountByQuery(query);
|
||||
if (count > 0) {
|
||||
ebikeComponentEnterRecords.setComponentEnterRecordId(componentEnterRecordId);
|
||||
ebikeComponentEnterRecordsMapper.update(ebikeComponentEnterRecords);
|
||||
}else{
|
||||
} else {
|
||||
ebikeComponentEnterRecordsMapper.insert(ebikeComponentEnterRecords);
|
||||
}
|
||||
}
|
||||
componentEnterRecordId=ebikeComponentEnterRecords.getComponentEnterRecordId();
|
||||
}
|
||||
|
||||
//判断数据是否存在 存在则更新 否则插入 删除这次记录的所有 重新插入
|
||||
private void deleteAndInsertEcuEnterRecords(String componentEnterRecordId, List<EbikeEcuEnterRecords> enterRecords, Integer stockInType, EbikeComponentTypeInfo ebikeComponentTypeInfo, String userId, Long orgId) {
|
||||
// 删除原有的ECU入库记录
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
ebikeEcuEnterRecordsMapper.deleteByQuery(query);
|
||||
//保存ecu入库记录
|
||||
List<EbikeEcuEnterRecords> enterRecords = params.getEbikeEcuEnterRecords();
|
||||
for(EbikeEcuEnterRecords record:enterRecords){
|
||||
// 插入新的ECU入库记录
|
||||
for (EbikeEcuEnterRecords record : enterRecords) {
|
||||
record.setComponentEnterRecordId(componentEnterRecordId);
|
||||
ebikeEcuEnterRecordsMapper.insert(record);
|
||||
//部件仓库明细的插入 只有入库的时候才写入 写入后就不可删除了 只能通过状态控制
|
||||
if (stockInType == 1) { // 仅在入库时执行
|
||||
saveComponentInventory(record.getEcuSn(),record.getEcuCode(), ebikeComponentTypeInfo, userId, orgId);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void deleteAndInsertHelmetEnterRecords(String componentEnterRecordId, List<EbikeHelmetEnterRecords> ebikeHelmetEnterRecords, Integer stockInType, EbikeComponentTypeInfo ebikeComponentTypeInfo, String userId, Long orgId) {
|
||||
// 删除原有的头盔入库记录
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
ebikeHelmetEnterRecordsMapper.deleteByQuery(query);
|
||||
// 插入新的头盔入库记录
|
||||
for (EbikeHelmetEnterRecords record : ebikeHelmetEnterRecords) {
|
||||
record.setComponentEnterRecordId(componentEnterRecordId);
|
||||
ebikeHelmetEnterRecordsMapper.insert(record);
|
||||
if (stockInType == 1) { // 仅在入库时执行
|
||||
saveComponentInventory(record.getHelmetCode(),"", ebikeComponentTypeInfo, userId, orgId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteAndInsertBatteryRecords(String componentEnterRecordId, List<EbikeBatteryEnterRecords> ebikeBatteryEnterRecords, Integer stockInType, EbikeComponentTypeInfo ebikeComponentTypeInfo, String userId, Long orgId) {
|
||||
// 删除原有的电池入库记录
|
||||
QueryWrapper query = new QueryWrapper();
|
||||
query.eq("component_enter_record_id", componentEnterRecordId);
|
||||
ebikeBatteryEnterRecordsMapper.deleteByQuery(query);
|
||||
// 插入新的电池入库记录
|
||||
for (EbikeBatteryEnterRecords record : ebikeBatteryEnterRecords) {
|
||||
record.setComponentEnterRecordId(componentEnterRecordId);
|
||||
ebikeBatteryEnterRecordsMapper.insert(record);
|
||||
if (stockInType == 1) { // 仅在入库时执行
|
||||
saveComponentInventory(record.getBatteryCode(),"", ebikeComponentTypeInfo, userId, orgId);
|
||||
}
|
||||
}
|
||||
}
|
||||
private void saveComponentInventory(String ItemCode,String SerialNumber, EbikeComponentTypeInfo ebikeComponentTypeInfo, String userId, Long orgId) {
|
||||
EbikeComponentInventory ebikeComponentInventory = new EbikeComponentInventory();
|
||||
ebikeComponentInventory.setItemCode(record.getEcuCode());
|
||||
ebikeComponentInventory.setSerialNumber(record.getEcuCode());
|
||||
ebikeComponentInventory.setItemCode(ItemCode);
|
||||
ebikeComponentInventory.setSerialNumber(SerialNumber);
|
||||
ebikeComponentInventory.setComponentType(ebikeComponentTypeInfo.getId());
|
||||
ebikeComponentInventory.setComponentName(ebikeComponentTypeInfo.getName());
|
||||
ebikeComponentInventory.setComponentPrice(ebikeComponentTypeInfo.getPrice());
|
||||
@ -118,31 +208,32 @@ public class EbikeComponentServiceImpl implements EbikeComponentService {
|
||||
ebikeComponentInventory.setBrand(ebikeComponentTypeInfo.getBrand());
|
||||
ebikeComponentInventory.setLastUpdatedAt(LocalDateTime.now());
|
||||
ebikeComponentInventory.setLastUpdatedUser(userId);
|
||||
ebikeComponentInventory.setState(1);//已入库
|
||||
ebikeComponentInventory.setState(1); // 已入库
|
||||
ebikeComponentInventoryMapper.insert(ebikeComponentInventory);
|
||||
}
|
||||
int size = enterRecords.size();
|
||||
// 根据部件类型编号查询部件类型 新增或更新 统计表
|
||||
|
||||
private void updateInventoryCount(EbikeComponentTypeInfo ebikeComponentTypeInfo, Long orgId, int size) {
|
||||
QueryWrapper query1 = new QueryWrapper();
|
||||
query1.eq("code", ebikeComponentTypeInfo.getId());
|
||||
EbikeComponentInventorycount ebikeComponentInventorycount = ebikeComponentInventorycountMapper.selectOneByQuery(query1);
|
||||
if (ebikeComponentInventorycount == null) {
|
||||
ebikeComponentInventorycount = new EbikeComponentInventorycount();
|
||||
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());
|
||||
} else {
|
||||
ebikeComponentInventorycount.setCount(ebikeComponentInventorycount.getCount() + size);
|
||||
ebikeComponentInventorycountMapper.update(ebikeComponentInventorycount);
|
||||
}
|
||||
return JsonResult.success("入库成功");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 设备部件作废接口 (通用
|
||||
* @param componentEnterRecordId
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user