package com.qianwen.smartman.modules.tool.service.impl;
|
|
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
|
import java.lang.invoke.SerializedLambda;
|
import java.lang.reflect.Field;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.smartman.common.constant.ExcelConstant;
|
import com.qianwen.smartman.common.utils.MessageUtils;
|
import com.qianwen.core.log.exception.ServiceException;
|
import com.qianwen.core.mp.base.BaseServiceImpl;
|
import com.qianwen.core.mp.support.Condition;
|
import com.qianwen.core.mp.support.Query;
|
import com.qianwen.core.oss.model.BladeFile;
|
import com.qianwen.core.tool.utils.DateUtil;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.cps.entity.Employee;
|
import com.qianwen.smartman.modules.cps.service.IEmployeeService;
|
import com.qianwen.smartman.modules.mdc.utils.ExcelStrategyUtil;
|
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
|
import com.qianwen.smartman.modules.tool.convert.ToolChangeRecordConvert;
|
import com.qianwen.smartman.modules.tool.entity.Tool;
|
import com.qianwen.smartman.modules.tool.entity.ToolChangeRecord;
|
import com.qianwen.smartman.modules.tool.entity.ToolParameter;
|
import com.qianwen.smartman.modules.tool.enums.ToolLifeCountMethodEnum;
|
import com.qianwen.smartman.modules.tool.enums.ToolOperationTypeEnum;
|
import com.qianwen.smartman.modules.tool.excel.ToolChangeRecordExcel;
|
import com.qianwen.smartman.modules.tool.mapper.ToolChangeRecordMapper;
|
import com.qianwen.smartman.modules.tool.service.IToolCategoryService;
|
import com.qianwen.smartman.modules.tool.service.IToolChangeRecordService;
|
import com.qianwen.smartman.modules.tool.service.IToolModelService;
|
import com.qianwen.smartman.modules.tool.service.IToolParameterService;
|
import com.qianwen.smartman.modules.tool.vo.ToolChangeRecordQueryVO;
|
import com.qianwen.smartman.modules.tool.vo.ToolChangeRecordVO;
|
import org.springframework.stereotype.Service;
|
import org.springframework.web.multipart.MultipartFile;
|
|
@Service
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/tool/service/impl/ToolChangeRecordServiceImpl.class */
|
public class ToolChangeRecordServiceImpl extends BaseServiceImpl<ToolChangeRecordMapper, ToolChangeRecord> implements IToolChangeRecordService {
|
private static final Logger log = LoggerFactory.getLogger(ToolChangeRecordServiceImpl.class);
|
private final IToolParameterService toolParameterService;
|
private final OssBuilder ossBuilder;
|
private final IEmployeeService employeeService;
|
private final IToolModelService toolModelService;
|
private final IToolCategoryService toolCategoryService;
|
|
private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
|
String implMethodName = lambda.getImplMethodName();
|
boolean z = true;
|
switch (implMethodName.hashCode()) {
|
case -1669172377:
|
if (implMethodName.equals("getToolCategoryId")) {
|
z = true;
|
break;
|
}
|
break;
|
case 98245393:
|
if (implMethodName.equals("getId")) {
|
z = true;
|
break;
|
}
|
break;
|
case 119176648:
|
if (implMethodName.equals("getToolParameterCode")) {
|
z = true;
|
break;
|
}
|
break;
|
case 1071464927:
|
if (implMethodName.equals("getCreateTime")) {
|
z = false;
|
break;
|
}
|
break;
|
case 1093811483:
|
if (implMethodName.equals("getToolCode")) {
|
z = true;
|
break;
|
}
|
break;
|
}
|
switch (z) {
|
case false:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) {
|
return (v0) -> {
|
return v0.getCreateTime();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) {
|
return (v0) -> {
|
return v0.getCreateTime();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) {
|
return (v0) -> {
|
return v0.getCreateTime();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/util/Date;")) {
|
return (v0) -> {
|
return v0.getCreateTime();
|
};
|
}
|
break;
|
case true:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/tool/entity/ToolParameter") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getToolParameterCode();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/tool/entity/ToolParameter") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getToolParameterCode();
|
};
|
}
|
break;
|
case true:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/tool/entity/ToolChangeRecord") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
|
return (v0) -> {
|
return v0.getToolCategoryId();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/tool/entity/ToolChangeRecord") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
|
return (v0) -> {
|
return v0.getToolCategoryId();
|
};
|
}
|
break;
|
case true:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/tool/entity/ToolChangeRecord") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getToolCode();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/tool/entity/ToolChangeRecord") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
|
return (v0) -> {
|
return v0.getToolCode();
|
};
|
}
|
break;
|
case true:
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
|
return (v0) -> {
|
return v0.getId();
|
};
|
}
|
if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
|
return (v0) -> {
|
return v0.getId();
|
};
|
}
|
break;
|
}
|
throw new IllegalArgumentException("Invalid lambda deserialization");
|
}
|
|
public ToolChangeRecordServiceImpl(final IToolParameterService toolParameterService, final OssBuilder ossBuilder, final IEmployeeService employeeService, final IToolModelService toolModelService, final IToolCategoryService toolCategoryService) {
|
this.toolParameterService = toolParameterService;
|
this.ossBuilder = ossBuilder;
|
this.employeeService = employeeService;
|
this.toolModelService = toolModelService;
|
this.toolCategoryService = toolCategoryService;
|
}
|
|
@Override // org.springblade.modules.tool.service.IToolChangeRecordService
|
public IPage<ToolChangeRecordVO> pageToolChangeRecord(ToolChangeRecordQueryVO toolChangeRecordQueryVO, Query query) {
|
IPage<ToolChangeRecord> toolChangeRecordIPage = page(Condition.getPage(query), (Wrapper) Wrappers.lambdaQuery().eq(Func.isNotEmpty(toolChangeRecordQueryVO.getToolCategoryId()) && !Objects.equals(toolChangeRecordQueryVO.getToolCategoryId(), "1"), (v0) -> {
|
return v0.getToolCategoryId();
|
}, toolChangeRecordQueryVO.getToolCategoryId()).likeRight(Func.isNotEmpty(toolChangeRecordQueryVO.getCode()), (v0) -> {
|
return v0.getToolCode();
|
}, toolChangeRecordQueryVO.getCode()).between(Func.isNotEmpty(toolChangeRecordQueryVO.getStartTime()) && Func.isNotEmpty(toolChangeRecordQueryVO.getEndTime()), (v0) -> {
|
return v0.getCreateTime();
|
}, toolChangeRecordQueryVO.getStartTime(), toolChangeRecordQueryVO.getEndTime()).orderByDesc((v0) -> {
|
return v0.getCreateTime();
|
}, new SFunction[]{(v0) -> {
|
return v0.getId();
|
}}));
|
IPage<ToolChangeRecordVO> toolChangeRecordVOIPage = ToolChangeRecordConvert.INSTANCE.convert(toolChangeRecordIPage);
|
toolChangeRecordVOIPage.getRecords().forEach(toolChangeRecordVO -> {
|
toolChangeRecordVO.setOperationType(Func.isNotEmpty(toolChangeRecordVO.getOperationType()) ? ToolOperationTypeEnum.findByCode(Integer.valueOf(toolChangeRecordVO.getOperationType())).getDesc() : null);
|
});
|
return toolChangeRecordVOIPage;
|
}
|
|
@Override // org.springblade.modules.tool.service.IToolChangeRecordService
|
public BladeFile exportToolChangeRecord(ToolChangeRecordQueryVO toolChangeRecordQueryVO) throws Exception {
|
List<List<String>> head = getHead();
|
List<List<Object>> data = getData(toolChangeRecordQueryVO);
|
String fileName = String.format("%s-%s.xlsx", "装卸刀记录表", DateUtil.time());
|
MultipartFile multipartFile = ExcelStrategyUtil.customerStyleExport(fileName, ExcelConstant.SHEET, head, data);
|
return this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
|
}
|
|
public List<List<String>> getHead() {
|
List<List<String>> list = new ArrayList<>();
|
ToolChangeRecordExcel toolChangeRecordExcel = new ToolChangeRecordExcel();
|
Field[] fields = toolChangeRecordExcel.getClass().getDeclaredFields();
|
for (Field field : fields) {
|
field.setAccessible(true);
|
ExcelProperty annotation = field.getAnnotation(ExcelProperty.class);
|
List<String> head = new ArrayList<>();
|
head.add(annotation.value()[0]);
|
list.add(head);
|
}
|
List<ToolParameter> toolParameterList = this.toolParameterService.list((Wrapper) Wrappers.lambdaQuery().orderByAsc((v0) -> {
|
return v0.getToolParameterCode();
|
}));
|
List<String> toolParameterNameList = (List) toolParameterList.stream().map((v0) -> {
|
return v0.getToolParameterName();
|
}).collect(Collectors.toList());
|
Map<String, String> nameUnitMap = (Map) toolParameterList.stream().filter(item -> {
|
return Func.isNotEmpty(item.getToolParameterUnit());
|
}).collect(Collectors.toMap((v0) -> {
|
return v0.getToolParameterName();
|
}, (v0) -> {
|
return v0.getToolParameterUnit();
|
}));
|
for (String name : toolParameterNameList) {
|
List<String> head2 = new ArrayList<>();
|
head2.add(nameUnitMap.containsKey(name) ? name + "(" + nameUnitMap.get(name) + ")" : name);
|
list.add(head2);
|
}
|
return list;
|
}
|
|
public List<List<Object>> getData(ToolChangeRecordQueryVO toolChangeRecordQueryVO) throws IllegalAccessException, NoSuchFieldException {
|
List<ToolChangeRecord> toolChangeRecords = list((Wrapper) Wrappers.lambdaQuery().eq(Func.isNotEmpty(toolChangeRecordQueryVO.getToolCategoryId()) && !Objects.equals(toolChangeRecordQueryVO.getToolCategoryId(), "1"), (v0) -> {
|
return v0.getToolCategoryId();
|
}, toolChangeRecordQueryVO.getToolCategoryId()).likeRight(Func.isNotEmpty(toolChangeRecordQueryVO.getCode()), (v0) -> {
|
return v0.getToolCode();
|
}, toolChangeRecordQueryVO.getCode()).between(Func.isNotEmpty(toolChangeRecordQueryVO.getStartTime()) && Func.isNotEmpty(toolChangeRecordQueryVO.getEndTime()), (v0) -> {
|
return v0.getCreateTime();
|
}, toolChangeRecordQueryVO.getStartTime(), toolChangeRecordQueryVO.getEndTime()).orderByDesc((v0) -> {
|
return v0.getCreateTime();
|
}, new SFunction[]{(v0) -> {
|
return v0.getId();
|
}}));
|
List<String> toolParameterCodeList = (List) this.toolParameterService.list((Wrapper) Wrappers.lambdaQuery().orderByAsc((v0) -> {
|
return v0.getToolParameterCode();
|
})).stream().map((v0) -> {
|
return v0.getToolParameterCode();
|
}).collect(Collectors.toList());
|
List<List<Object>> list = new ArrayList<>();
|
for (ToolChangeRecord toolChangeRecord : toolChangeRecords) {
|
ToolChangeRecordExcel toolChangeRecordExcel = ToolChangeRecordConvert.INSTANCE.convertToExcel(toolChangeRecord);
|
toolChangeRecordExcel.setLifeCountMethod(Func.isNotEmpty(toolChangeRecord.getLifeCountMethod()) ? ToolLifeCountMethodEnum.findByCode(toolChangeRecord.getLifeCountMethod()).getDesc() : null);
|
toolChangeRecordExcel.setOperationType(Func.isNotEmpty(toolChangeRecord.getOperationType()) ? ToolOperationTypeEnum.findByCode(toolChangeRecord.getOperationType()).getDesc() : null);
|
List<Object> objectList = new ArrayList<>();
|
Field[] fields = toolChangeRecordExcel.getClass().getDeclaredFields();
|
for (Field field : fields) {
|
field.setAccessible(true);
|
objectList.add(field.get(toolChangeRecordExcel));
|
}
|
for (String code : toolParameterCodeList) {
|
Field field2 = ToolChangeRecord.class.getDeclaredField(code);
|
field2.setAccessible(true);
|
Object codeValue = field2.get(toolChangeRecord);
|
objectList.add(codeValue);
|
}
|
list.add(objectList);
|
}
|
return list;
|
}
|
|
@Override // org.springblade.modules.tool.service.IToolChangeRecordService
|
public void dischargeToolChangeRecord(List<Tool> toolManageList, Long employeeId) {
|
List<ToolChangeRecord> toolChangeRecords = ToolChangeRecordConvert.INSTANCE.toolToConvert(toolManageList);
|
Employee employee = (Employee) this.employeeService.getById(employeeId);
|
Map<Long, String> modelNameMap = (Map) this.toolModelService.list().stream().collect(Collectors.toMap((v0) -> {
|
return v0.getId();
|
}, (v0) -> {
|
return v0.getModel();
|
}));
|
Map<Long, String> categoryNameMap = (Map) this.toolCategoryService.list().stream().collect(Collectors.toMap((v0) -> {
|
return v0.getId();
|
}, (v0) -> {
|
return v0.getName();
|
}));
|
if (Func.isEmpty(employee)) {
|
throw new ServiceException(MessageUtils.message("sys.outer.user.not.bind.employee", new Object[0]));
|
}
|
toolChangeRecords.forEach(toolChangeRecord -> {
|
toolChangeRecord.setToolModel((String) modelNameMap.get(toolChangeRecord.getToolModelId()));
|
toolChangeRecord.setToolCategory((String) categoryNameMap.get(toolChangeRecord.getToolCategoryId()));
|
toolChangeRecord.setEmployeeId(employeeId);
|
toolChangeRecord.setEmployeeName(employee.getName());
|
toolChangeRecord.setOperationType(ToolOperationTypeEnum.DISCHARGE.getCode());
|
});
|
saveBatch(toolChangeRecords);
|
}
|
|
@Override // org.springblade.modules.tool.service.IToolChangeRecordService
|
public void equipmentToolChangeRecord(Tool toolManage, Long employeeId) {
|
Employee employee = (Employee) this.employeeService.getById(employeeId);
|
Map<Long, String> modelNameMap = (Map) this.toolModelService.list().stream().collect(Collectors.toMap((v0) -> {
|
return v0.getId();
|
}, (v0) -> {
|
return v0.getModel();
|
}));
|
Map<Long, String> categoryNameMap = (Map) this.toolCategoryService.list().stream().collect(Collectors.toMap((v0) -> {
|
return v0.getId();
|
}, (v0) -> {
|
return v0.getName();
|
}));
|
if (Func.isEmpty(employee)) {
|
throw new ServiceException(MessageUtils.message("sys.outer.user.not.bind.employee", new Object[0]));
|
}
|
ToolChangeRecord toolChangeRecord = ToolChangeRecordConvert.INSTANCE.toolToConvert(toolManage);
|
toolChangeRecord.setEmployeeName(employee.getName()).setEmployeeId(employee.getId()).setOperationType(ToolOperationTypeEnum.EQUIP.getCode());
|
toolChangeRecord.setToolModel(modelNameMap.get(toolChangeRecord.getToolModelId()));
|
toolChangeRecord.setToolCategory(categoryNameMap.get(toolChangeRecord.getToolCategoryId()));
|
save(toolChangeRecord);
|
}
|
}
|