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