diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 352c9db..0a5a5fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -29,6 +29,7 @@ import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.SerializationUtils; import org.flowable.engine.runtime.ProcessInstance; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -185,16 +186,19 @@ } @Transactional public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { + EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); - saveTurnoverLog(info, approvalForm.getCreateUserId()); + saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, Long createUserId) { - EquipmentInfo oldObj = equipmentInfoService.getById(newObj.getId()); + private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + if(ObjectUtil.isEmpty(oldObj)){ + oldObj = equipmentInfoService.getById(newObj.getId()); + } turnoverLogService.saveLog(newObj, oldObj, createUserId); } @@ -241,7 +245,7 @@ EquipmentInfo newObj = new EquipmentInfo(); BeanUtil.copyProperties(approvalInfo, newObj); newObj.setId(approvalInfo.getEquipmentId()); - saveTurnoverLog(newObj, approvalInfo.getCreateUserId()); + saveTurnoverLog(newObj, null, approvalInfo.getCreateUserId()); equipmentInfoService.saveOrUpdate(newObj); break; case DELETE: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 352c9db..0a5a5fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -29,6 +29,7 @@ import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.SerializationUtils; import org.flowable.engine.runtime.ProcessInstance; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -185,16 +186,19 @@ } @Transactional public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { + EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); - saveTurnoverLog(info, approvalForm.getCreateUserId()); + saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, Long createUserId) { - EquipmentInfo oldObj = equipmentInfoService.getById(newObj.getId()); + private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + if(ObjectUtil.isEmpty(oldObj)){ + oldObj = equipmentInfoService.getById(newObj.getId()); + } turnoverLogService.saveLog(newObj, oldObj, createUserId); } @@ -241,7 +245,7 @@ EquipmentInfo newObj = new EquipmentInfo(); BeanUtil.copyProperties(approvalInfo, newObj); newObj.setId(approvalInfo.getEquipmentId()); - saveTurnoverLog(newObj, approvalInfo.getCreateUserId()); + saveTurnoverLog(newObj, null, approvalInfo.getCreateUserId()); equipmentInfoService.saveOrUpdate(newObj); break; case DELETE: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java index c053371..b2586a8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java @@ -18,6 +18,7 @@ import com.casic.missiles.dto.certificate.SubcontractCertificateImportDTO; import com.casic.missiles.dto.equipment.EquipmentCertificateDTO; import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.listeners.CommonExcelListener; @@ -145,8 +146,26 @@ if(CollectionUtils.isEmpty(list)){ throw new BusinessException(BusinessExceptionEnum.IMPORT_NO_DATA); } - List subcontractorList = subcontractorService.list(); - List equipmentInfoList = equipmentInfoService.list(); + + List subcontractorList = new ArrayList<>(); + List subcontractorNos = list.stream().map(SubcontractCertificateImportDTO::getSubcontractorNo).filter(ObjectUtil::isNotEmpty).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(subcontractorNos)){ + QueryWrapper subcontractorQueryWrapper = new QueryWrapper<>(); + subcontractorQueryWrapper.in("subcontractor_no",subcontractorNos); + subcontractorQueryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + subcontractorList = subcontractorService.list(subcontractorQueryWrapper); + } + + + List equipmentInfoList = new ArrayList<>(); + List equipmentNos = list.stream().map(SubcontractCertificateImportDTO::getEquipmentNo).filter(ObjectUtil::isNotEmpty).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(equipmentNos)){ + QueryWrapper equipmentInfoQueryWrapper = new QueryWrapper<>(); + equipmentInfoQueryWrapper.in("equipment_no",equipmentNos); + equipmentInfoQueryWrapper.eq("is_del",0); + equipmentInfoList = equipmentInfoService.list(equipmentInfoQueryWrapper); + } + List meterIdentityDicts = dictService.findInDictByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY); String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 352c9db..0a5a5fe 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -29,6 +29,7 @@ import com.casic.missiles.utils.DictCodeUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.SerializationUtils; import org.flowable.engine.runtime.ProcessInstance; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -185,16 +186,19 @@ } @Transactional public void simpleUpdate(EquipmentApprovalForm approvalForm, EquipmentInfo info) { + EquipmentInfo oldObj = SerializationUtils.clone(info); CasicBeanUtil.copySpecifyProperties(approvalForm, info, "checkOrganization", "checkDate", "certificateValid", "meterIdentify", "usePosition", "directorName", "rfid", "useSign", "installLocation", "installLocationExt", "testTask", "remarkExt"); - saveTurnoverLog(info, approvalForm.getCreateUserId()); + saveTurnoverLog(info, oldObj, approvalForm.getCreateUserId()); equipmentInfoService.updateById(info); } - private void saveTurnoverLog(EquipmentInfo newObj, Long createUserId) { - EquipmentInfo oldObj = equipmentInfoService.getById(newObj.getId()); + private void saveTurnoverLog(EquipmentInfo newObj, EquipmentInfo oldObj, Long createUserId) { + if(ObjectUtil.isEmpty(oldObj)){ + oldObj = equipmentInfoService.getById(newObj.getId()); + } turnoverLogService.saveLog(newObj, oldObj, createUserId); } @@ -241,7 +245,7 @@ EquipmentInfo newObj = new EquipmentInfo(); BeanUtil.copyProperties(approvalInfo, newObj); newObj.setId(approvalInfo.getEquipmentId()); - saveTurnoverLog(newObj, approvalInfo.getCreateUserId()); + saveTurnoverLog(newObj, null, approvalInfo.getCreateUserId()); equipmentInfoService.saveOrUpdate(newObj); break; case DELETE: diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java index c053371..b2586a8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractCertificateServiceImpl.java @@ -18,6 +18,7 @@ import com.casic.missiles.dto.certificate.SubcontractCertificateImportDTO; import com.casic.missiles.dto.equipment.EquipmentCertificateDTO; import com.casic.missiles.dto.equipment.EquipmentImportDTO; +import com.casic.missiles.enums.ApprovalStatusEnum; import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.listeners.CommonExcelListener; @@ -145,8 +146,26 @@ if(CollectionUtils.isEmpty(list)){ throw new BusinessException(BusinessExceptionEnum.IMPORT_NO_DATA); } - List subcontractorList = subcontractorService.list(); - List equipmentInfoList = equipmentInfoService.list(); + + List subcontractorList = new ArrayList<>(); + List subcontractorNos = list.stream().map(SubcontractCertificateImportDTO::getSubcontractorNo).filter(ObjectUtil::isNotEmpty).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(subcontractorNos)){ + QueryWrapper subcontractorQueryWrapper = new QueryWrapper<>(); + subcontractorQueryWrapper.in("subcontractor_no",subcontractorNos); + subcontractorQueryWrapper.eq("approval_status", ApprovalStatusEnum.PASSED); + subcontractorList = subcontractorService.list(subcontractorQueryWrapper); + } + + + List equipmentInfoList = new ArrayList<>(); + List equipmentNos = list.stream().map(SubcontractCertificateImportDTO::getEquipmentNo).filter(ObjectUtil::isNotEmpty).distinct().collect(Collectors.toList()); + if(CollUtil.isNotEmpty(equipmentNos)){ + QueryWrapper equipmentInfoQueryWrapper = new QueryWrapper<>(); + equipmentInfoQueryWrapper.in("equipment_no",equipmentNos); + equipmentInfoQueryWrapper.eq("is_del",0); + equipmentInfoList = equipmentInfoService.list(equipmentInfoQueryWrapper); + } + List meterIdentityDicts = dictService.findInDictByCode(MeterDictCode.EQUIPMENT_METER_IDENTITY); String validMsg = "第%d行数据校验失败:%s"; for (int i = 0; i < list.size(); i++) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemSignServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemSignServiceImpl.java index 288dcff..5c841ed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemSignServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/system/SystemSignServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; import java.util.*; /** @@ -63,6 +64,13 @@ } @Override + public List listByIds(Collection idList) { + List list = super.listByIds(idList); + list.forEach(this::wrapper); + return list; + } + + @Override public List list(SignListRequest request) { QueryWrapper wrapper = getWrapper(request); List list = signMapper.selectList(wrapper);