新购验收绑定逻辑优化
This commit is contained in:
parent
660c43592b
commit
4493caf705
|
|
@ -41,6 +41,12 @@ public interface PurchaseBindMapper {
|
|||
*/
|
||||
List<PurchaseDto> selectByCode(PurchaseDto purchaseDto);
|
||||
|
||||
/**
|
||||
* 判断QrCode二维码是否绑定
|
||||
* @return true 已绑定 false 未绑定
|
||||
*/
|
||||
boolean checkQrCodeIsBind(String qrCode);
|
||||
|
||||
/**
|
||||
* 新增绑定信息
|
||||
* @param purchaseDto
|
||||
|
|
|
|||
|
|
@ -107,15 +107,14 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
|
|||
*/
|
||||
@Override
|
||||
public List<PurchaseVo> getDetails(PurchaseDto dto) {
|
||||
List<PurchaseVo> list = purchaseBindMapper.getDetails(dto);
|
||||
Map<String, String> labelMap = remoteConfig.getDictValue("purchase_task_status");
|
||||
final List<PurchaseVo> list = purchaseBindMapper.getDetails(dto);
|
||||
final Map<String, String> labelMap = remoteConfig.getDictValue("purchase_task_status");
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
for (PurchaseVo purchaseVo : list) {
|
||||
for (final PurchaseVo purchaseVo : list) {
|
||||
// 更新状态名称
|
||||
Integer status = purchaseVo.getStatus();
|
||||
if (status != null) {
|
||||
String dictValue = labelMap.get(status.toString());
|
||||
purchaseVo.setStatusName(dictValue);
|
||||
final Integer status = purchaseVo.getStatus();
|
||||
if (null != status) {
|
||||
purchaseVo.setStatusName(labelMap.get(status.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -131,48 +130,51 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult bind(PurchaseDto dto) {
|
||||
//先查询提交的编码中是否存在重复提交
|
||||
long distinctCodes = dto.getDtoList().stream().map(PurchaseDto::getMaCode).distinct().count();
|
||||
final long distinctCodes = dto.getDtoList().stream().map(PurchaseDto::getMaCode).distinct().count();
|
||||
if (distinctCodes < dto.getDtoList().size()) {
|
||||
return AjaxResult.error(1113,"提交的数据中设备编码存在重复,请勿重复添加");
|
||||
}
|
||||
for (PurchaseDto purchaseDto : dto.getDtoList()) {
|
||||
for (final PurchaseDto purchaseDto : dto.getDtoList()) {
|
||||
//根据设备编码唯一校验
|
||||
List<PurchaseDto> tbBdDeviceRecord = purchaseBindMapper.selectByCode(purchaseDto);
|
||||
final List<PurchaseDto> tbBdDeviceRecord = purchaseBindMapper.selectByCode(purchaseDto);
|
||||
if (purchaseBindMapper.checkQrCodeIsBind(purchaseDto.getQrCode())) {
|
||||
return AjaxResult.error(1114,"二维码已绑定物资,请勿重复绑定");
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(tbBdDeviceRecord)) {
|
||||
return AjaxResult.error(1114,"设备编码与库中重复,请勿重复添加");
|
||||
}
|
||||
}
|
||||
for (PurchaseDto purchaseDto : dto.getDtoList()) {
|
||||
for (final PurchaseDto purchaseDto : dto.getDtoList()) {
|
||||
purchaseDto.setCreateBy(SecurityUtils.getUserId().toString()).setCreateTime(DateUtils.getNowDate());
|
||||
purchaseDto.setTaskId(dto.getTaskId()).setTypeId(dto.getTypeId()).setStatus(0);
|
||||
if (purchaseDto.getQrCode() != null) {
|
||||
if (purchaseBindMapper.bindMaCodeByQrCode(purchaseDto) != 1) {
|
||||
if (null != purchaseDto.getQrCode()) {
|
||||
if (1 != purchaseBindMapper.bindMaCodeByQrCode(purchaseDto)) {
|
||||
return AjaxResult.error(1115,"绑定maCode时SQL执行失败!");
|
||||
}
|
||||
} else {
|
||||
if (dto.getTypeId() != null) {
|
||||
if (null != dto.getTypeId()) {
|
||||
purchaseDto.setTypeId(dto.getTypeId());
|
||||
}
|
||||
purchaseBindMapper.insert(purchaseDto);
|
||||
}
|
||||
if (purchaseStorageMapper.insertMachine(purchaseDto) != 1) {
|
||||
if (1 != purchaseStorageMapper.insertMachine(purchaseDto)) {
|
||||
return AjaxResult.error(1116,"插入maMachine时SQL执行失败!");
|
||||
}
|
||||
}
|
||||
// 更新绑定数量,并刷新状态
|
||||
if (purchaseBindMapper.updateNum(dto, dto.getDtoList().size()) < 1) {
|
||||
if (1 > purchaseBindMapper.updateNum(dto, dto.getDtoList().size())) {
|
||||
return AjaxResult.error(1117,"更新绑定数量时SQL执行失败!");
|
||||
} else {
|
||||
purchaseBindMapper.updateStatusWhereNum(dto);
|
||||
}
|
||||
|
||||
//根据任务id和类型id查询状态
|
||||
List<PurchaseVo> voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto);
|
||||
final List<PurchaseVo> voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto);
|
||||
if (CollectionUtils.isNotEmpty(voList)) {
|
||||
for (PurchaseVo purchaseVo : voList) {
|
||||
if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) == 0) {
|
||||
for (final PurchaseVo purchaseVo : voList) {
|
||||
if (0 == purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum())) {
|
||||
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), purchaseVo.getPurchaseId());
|
||||
} else if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) < 0) {
|
||||
} else if (0 > purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum())) {
|
||||
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND.getStatus(), purchaseVo.getPurchaseId());
|
||||
} else {
|
||||
// 抛出异常 执行回滚
|
||||
|
|
|
|||
|
|
@ -469,7 +469,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
*/
|
||||
@Override
|
||||
public int outerAudit(@NotNull List<RepairAuditDetails> repairAuditDetails) {
|
||||
List<Long> taskIds = repairAuditDetails.stream()
|
||||
final List<Long> taskIds = repairAuditDetails.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(RepairAuditDetails::getTaskId)
|
||||
.filter(Objects::nonNull)
|
||||
|
|
@ -477,20 +477,21 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
if (taskIds.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
List<RepairAuditDetails> repairAuditDetailsByQuery = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(taskIds);
|
||||
final List<RepairAuditDetails> repairAuditDetailsByQuery = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(taskIds);
|
||||
if (CollectionUtils.isEmpty(repairAuditDetailsByQuery)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
String status = repairAuditDetails.get(0).getStatus(); // 1通过 2驳回
|
||||
// 1:通过 2:驳回 0:未处理
|
||||
final String status = repairAuditDetails.get(0).getStatus();
|
||||
if ("1".equals(status)) {
|
||||
for (RepairAuditDetails repairAuditDetail : repairAuditDetails) {
|
||||
for (final RepairAuditDetails repairAuditDetail : repairAuditDetails) {
|
||||
// 删除repair_input_details 维修入库明细?
|
||||
repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId());
|
||||
// 查询协议ID
|
||||
Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId());
|
||||
// 查询维修审核明细
|
||||
List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId()));
|
||||
final List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId()));
|
||||
batchInsertRepairInputDetails(repairAuditDetailList, agreementId);
|
||||
taskMapper.updateTaskStatus(String.valueOf(repairAuditDetail.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_REVIEW.getStatus());
|
||||
}
|
||||
|
|
@ -503,15 +504,14 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
List<Long> ids = repairAuditDetailsByQuery.stream()
|
||||
final List<Long> ids = repairAuditDetailsByQuery.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(RepairAuditDetails::getId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
return repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, String.valueOf(status));
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
throw new ServiceException("错误信息描述");
|
||||
}
|
||||
}
|
||||
|
|
@ -532,13 +532,14 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
if (ids.isEmpty()) {
|
||||
return 0;
|
||||
}
|
||||
String status = repairAuditDetails.get(0).getStatus(); // 1通过 2驳回
|
||||
final RepairAuditDetails auditDetails1 = repairAuditDetails.get(0);
|
||||
final String status = auditDetails1.getStatus(); // 1通过 2驳回
|
||||
if ("1".equals(status)) {
|
||||
//根据任务id查询协议id
|
||||
Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetails.get(0).getTaskId());
|
||||
final Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(auditDetails1.getTaskId());
|
||||
batchInsertRepairInputDetails(repairAuditDetails, agreementId);
|
||||
} else if ("2".equals(status)) {
|
||||
for (RepairAuditDetails auditDetails : repairAuditDetails) {
|
||||
for (final RepairAuditDetails auditDetails : repairAuditDetails) {
|
||||
repairApplyDetailsMapper.updateRepairApplyDetailsAfterReject(
|
||||
ObjectUtils.defaultIfNull(auditDetails.getRepairedNum(),0).longValue(),
|
||||
ObjectUtils.defaultIfNull(auditDetails.getScrapNum(),0).longValue(), auditDetails.getRepairId());
|
||||
|
|
@ -547,7 +548,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
|
||||
try {
|
||||
return repairAuditDetailsMapper.updateRepairAuditDetailsBatch(ids, status);
|
||||
} catch (Exception e) {
|
||||
} catch (final Exception e) {
|
||||
throw new ServiceException("错误信息描述");
|
||||
}
|
||||
}
|
||||
|
|
@ -560,21 +561,21 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
|
||||
private void batchInsertRepairInputDetails(List<RepairAuditDetails> repairAuditDetailsByQuery, Long agreementId) {
|
||||
//插入任务表
|
||||
Long newTaskId = insertTt();
|
||||
final Long newTaskId = insertTt();
|
||||
insertTta(newTaskId, agreementId);
|
||||
List<RepairInputDetails> inputList = new ArrayList<>();
|
||||
for (RepairAuditDetails details : repairAuditDetailsByQuery) {
|
||||
final List<RepairInputDetails> inputList = new ArrayList<>();
|
||||
for (final RepairAuditDetails details : repairAuditDetailsByQuery) {
|
||||
//修改机具状态
|
||||
if (details.getMaId() != null) {
|
||||
if (null != details.getMaId()) {
|
||||
repairAuditDetailsMapper.updateMachine(details);
|
||||
}
|
||||
RepairInputDetails inputVo = new RepairInputDetails();
|
||||
final RepairInputDetails inputVo = new RepairInputDetails();
|
||||
BeanUtils.copyProperties(details, inputVo);
|
||||
inputVo.setRepairNum(details.getRepairedNum());
|
||||
inputVo.setAuditId(details.getId());
|
||||
inputVo.setStatus("0");
|
||||
inputVo.setTaskId(newTaskId);
|
||||
inputVo.setCreateBy(SecurityUtils.getUserId().toString());
|
||||
inputVo.setCreateBy(String.valueOf(SecurityUtils.getUserId()));
|
||||
inputList.add(inputVo);
|
||||
}
|
||||
// 插入维修入库明细
|
||||
|
|
@ -587,7 +588,7 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
|
|||
* @param agreementId
|
||||
*/
|
||||
private void insertTta(Long newTaskId, Long agreementId) {
|
||||
TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(newTaskId, agreementId);
|
||||
final TmTaskAgreement tmTaskAgreement = new TmTaskAgreement(newTaskId, agreementId);
|
||||
tmTaskAgreement.setCreateTime(DateUtils.getNowDate());
|
||||
tmTaskAgreement.setCreateBy(SecurityUtils.getUsername());
|
||||
taskAgreementMapper.insertTmTaskAgreement(tmTaskAgreement);
|
||||
|
|
|
|||
|
|
@ -382,4 +382,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
and ma_code is null
|
||||
and del_flag = '0'
|
||||
</update>
|
||||
|
||||
<select id="checkQrCodeIsBind" resultType="boolean">
|
||||
select count(1) > 0 from bm_qrcode_info where qr_code = #{qrCode} and is_bind = '1' and del_flag = '0'
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
Loading…
Reference in New Issue