This commit is contained in:
hongchao 2024-12-27 09:02:36 +08:00
commit 8e6d9f754e
19 changed files with 197 additions and 71 deletions

View File

@ -53,6 +53,21 @@ public class RepairInputDetails extends BaseEntity {
@ApiModelProperty(value = "规格ID") @ApiModelProperty(value = "规格ID")
private Long typeId; private Long typeId;
@ApiModelProperty(value = "物资名称")
private String typeName;
@ApiModelProperty(value = "规格型号")
private String typeModelName;
@ApiModelProperty(value = "机具状态")
private String maStatus;
@ApiModelProperty(value = "机具状态名称")
private String inputType;
@ApiModelProperty(value = "二维码code")
private String qrCode;
/** /**
* 退料单位名称 * 退料单位名称
*/ */

View File

@ -1,6 +1,9 @@
package com.bonus.material.basic.controller; package com.bonus.material.basic.controller;
import cn.hutool.core.convert.Convert;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.config.ListPagingUtil;
import com.bonus.common.core.utils.ServletUtils;
import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.utils.poi.ExcelUtil;
import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
@ -293,9 +296,10 @@ public class ComplexQueryController extends BaseController {
@ApiOperation(value = "综合查询--机具入库查询列表") @ApiOperation(value = "综合查询--机具入库查询列表")
@GetMapping("/getInputRecordList") @GetMapping("/getInputRecordList")
public AjaxResult getInputRecordList(InputRecordInfo bean) { public AjaxResult getInputRecordList(InputRecordInfo bean) {
startPage(); Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<InputRecordInfo> list = complexQueryService.getInputRecordList(bean); List<InputRecordInfo> list = complexQueryService.getInputRecordList(bean);
return AjaxResult.success(getDataTable(list)); return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
} }
/** /**
@ -320,9 +324,10 @@ public class ComplexQueryController extends BaseController {
@ApiOperation(value = "综合查询--机具出库查询列表") @ApiOperation(value = "综合查询--机具出库查询列表")
@GetMapping("/getOutRecordList") @GetMapping("/getOutRecordList")
public AjaxResult getOutRecordList(OutRecordInfo bean) { public AjaxResult getOutRecordList(OutRecordInfo bean) {
startPage(); Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10);
List<OutRecordInfo> list = complexQueryService.getOutRecordList(bean); List<OutRecordInfo> list = complexQueryService.getOutRecordList(bean);
return AjaxResult.success(getDataTable(list)); return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list));
} }
@ApiOperation("导出综合查询机具出库查询") @ApiOperation("导出综合查询机具出库查询")

View File

@ -168,8 +168,6 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService {
if ((record.getManageType().equals(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId())) && record.getInputNum() != null) { if ((record.getManageType().equals(MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId())) && record.getInputNum() != null) {
record.setOutNum(record.getInputNum()); record.setOutNum(record.getInputNum());
record.setOutType(InputOutEnum.NUMBER_DEVICE.getTypeId()); record.setOutType(InputOutEnum.NUMBER_DEVICE.getTypeId());
} else if (record.getManageType().equals(MaTypeManageTypeEnum.CODE_DEVICE.getTypeId())) {
record.setOutType(InputOutEnum.CODE_DEVICE.getTypeId());
} }
res = checkStorageNum(record); res = checkStorageNum(record);

View File

@ -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

View File

@ -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 {
// 抛出异常 执行回滚 // 抛出异常 执行回滚

View File

@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;
import com.bonus.common.biz.annotation.StoreLog; import com.bonus.common.biz.annotation.StoreLog;
import com.bonus.common.log.enums.OperaType; import com.bonus.common.log.enums.OperaType;
import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.back.domain.vo.MaCodeVo;
import com.bonus.material.basic.domain.BmQrcodeInfo;
import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.common.annotation.PreventRepeatSubmit;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -134,6 +135,16 @@ public class RepairInputDetailsController extends BaseController {
return repairInputDetailsService.warehouse(repairInputDetails); return repairInputDetailsService.warehouse(repairInputDetails);
} }
/**
* 二维码出库根据qrcode查询在库机具信息
* @param bmQrcodeInfo
* @return
*/
@GetMapping("/getInfoByQrcode")
public AjaxResult getInfoByQrcode(BmQrcodeInfo bmQrcodeInfo) {
return repairInputDetailsService.getInfoByQrcode(bmQrcodeInfo);
}
/** /**
* 查询修试待入库机具编码 * 查询修试待入库机具编码
* @param mdCodeVo * @param mdCodeVo

View File

@ -20,6 +20,9 @@ public class RepairTask {
@ApiModelProperty(value = "任务id") @ApiModelProperty(value = "任务id")
private Long taskId; private Long taskId;
@ApiModelProperty(value = "前置任务id")
private Long preTaskId;
@ApiModelProperty(value = "任务状态") @ApiModelProperty(value = "任务状态")
private Integer taskStatus; private Integer taskStatus;

View File

@ -24,6 +24,9 @@ public class ScrapApplyDetailsVO {
@Excel(name = "报废审核单号",sort = 1) @Excel(name = "报废审核单号",sort = 1)
private String scrapNum; private String scrapNum;
@ApiModelProperty(value = "维修任务单号")
private String repairTaskCode;
/** /**
* 单位名称 * 单位名称
*/ */

View File

@ -4,6 +4,7 @@ import java.util.List;
import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.back.domain.vo.MaCodeVo;
import com.bonus.common.biz.domain.repair.RepairInputDetails; import com.bonus.common.biz.domain.repair.RepairInputDetails;
import com.bonus.material.basic.domain.BmQrcodeInfo;
import com.bonus.material.repair.domain.RepairInputInfo; import com.bonus.material.repair.domain.RepairInputInfo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -122,4 +123,11 @@ public interface RepairInputDetailsMapper {
* @return * @return
*/ */
List<RepairInputDetails> selectRepairDetails(@Param("list") List<Long> taskIdList); List<RepairInputDetails> selectRepairDetails(@Param("list") List<Long> taskIdList);
/**
* 根据二维码查询详情
* @param bmQrcodeInfo
* @return
*/
List<RepairInputDetails> getInfoByQrcode(BmQrcodeInfo bmQrcodeInfo);
} }

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.back.domain.vo.MaCodeVo;
import com.bonus.common.biz.domain.repair.RepairInputDetails; import com.bonus.common.biz.domain.repair.RepairInputDetails;
import com.bonus.material.basic.domain.BmQrcodeInfo;
import com.bonus.material.repair.domain.RepairInputInfo; import com.bonus.material.repair.domain.RepairInputInfo;
/** /**
@ -82,4 +83,11 @@ public interface IRepairInputDetailsService {
* @return * @return
*/ */
AjaxResult reject(RepairInputDetails repairInputDetails); AjaxResult reject(RepairInputDetails repairInputDetails);
/**
* 根据二维码查询机具信息
* @param bmQrcodeInfo
* @return
*/
AjaxResult getInfoByQrcode(BmQrcodeInfo bmQrcodeInfo);
} }

View File

@ -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,38 +477,41 @@ 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 维修入库明细
repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId()); repairInputDetailsMapper.deleteRepairInputDetailsByTaskId(repairAuditDetail.getTaskId());
// 查询协议ID
Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId()); Long agreementId = taskAgreementMapper.selectAgreementIdByTaskId(repairAuditDetail.getTaskId());
List<Long> taskIdList = new ArrayList<>(); // 查询维修审核明细
taskIdList.add(repairAuditDetail.getTaskId()); final List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(Collections.singletonList(repairAuditDetail.getTaskId()));
List<RepairAuditDetails> repairAuditDetailList = repairAuditDetailsMapper.selectRepairAuditDetailsByTaskIds(taskIdList);
batchInsertRepairInputDetails(repairAuditDetailList, agreementId); batchInsertRepairInputDetails(repairAuditDetailList, agreementId);
taskMapper.updateTaskStatus(String.valueOf(repairAuditDetail.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_REVIEW.getStatus());
} }
} else if ("2".equals(status)) { } else if ("2".equals(status)) {
for (RepairAuditDetails auditDetails : repairAuditDetails) { for (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());
taskMapper.updateTaskStatus(String.valueOf(auditDetails.getTaskId()), RepairTaskStatusEnum.TASK_STATUS_NO_REVIEW.getStatus());
} }
} }
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("错误信息描述");
} }
} }
@ -529,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());
@ -544,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("错误信息描述");
} }
} }
@ -557,23 +561,24 @@ 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);
} }
// 插入维修入库明细
repairInputDetailsMapper.batchInsertRepairInputDetails(inputList); repairInputDetailsMapper.batchInsertRepairInputDetails(inputList);
} }
@ -583,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);

View File

@ -6,6 +6,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.constant.MaterialConstants;
import com.bonus.common.biz.domain.lease.LeaseOutDetails; import com.bonus.common.biz.domain.lease.LeaseOutDetails;
@ -17,6 +18,7 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.back.domain.vo.MaCodeVo;
import com.bonus.common.biz.domain.repair.RePairDto; import com.bonus.common.biz.domain.repair.RePairDto;
import com.bonus.material.basic.domain.BmQrcodeInfo;
import com.bonus.material.lease.mapper.LeaseOutDetailsMapper; import com.bonus.material.lease.mapper.LeaseOutDetailsMapper;
import com.bonus.material.ma.domain.Type; import com.bonus.material.ma.domain.Type;
import com.bonus.material.repair.domain.RepairInputInfo; import com.bonus.material.repair.domain.RepairInputInfo;
@ -246,6 +248,23 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
} }
/**
* 获取二维码信息
* @param bmQrcodeInfo
* @return
*/
@Override
public AjaxResult getInfoByQrcode(BmQrcodeInfo bmQrcodeInfo) {
if (bmQrcodeInfo.getQrCode() == null) {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "二维码code不能为空");
}
List<RepairInputDetails> recordList = repairInputDetailsMapper.getInfoByQrcode(bmQrcodeInfo);
if (CollectionUtil.isNotEmpty(recordList)) {
return AjaxResult.success(recordList);
}
return AjaxResult.error(HttpCodeEnum.SYSTEM_ERROR.getCode(), "该二维码处于非修试待入库状态");
}
/** /**
* 外部驳回 * 外部驳回
* @param repairInputDetails * @param repairInputDetails

View File

@ -817,9 +817,9 @@ public class RepairServiceImpl implements RepairService {
// 查询维修任务的详情表 // 查询维修任务的详情表
Long oldWxTaskId = task.getTaskId(); Long oldWxTaskId = task.getTaskId();
List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(oldWxTaskId); List<RepairTaskDetails> detailsList = repairApplyDetailsMapper.getRepairDetailsWhichNotSent(oldWxTaskId);
BigDecimal thisRepairedNum = detailsList.stream().map(RepairTaskDetails::getThisRepairedNum).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal thisRepairedNum = detailsList.stream().map(RepairTaskDetails::getRepairedNum).reduce(BigDecimal.ZERO, BigDecimal::add);
BigDecimal thisScrapNum = detailsList.stream().map(RepairTaskDetails::getThisScrapNum).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal thisScrapNum = detailsList.stream().map(RepairTaskDetails::getScrapNum).reduce(BigDecimal.ZERO, BigDecimal::add);
if (!CollectionUtils.isEmpty(detailsList) && (thisRepairedNum.add(thisScrapNum)).compareTo(BigDecimal.valueOf(0)) > 0) { if (!CollectionUtils.isEmpty(detailsList) && (thisRepairedNum.add(thisScrapNum)).compareTo(BigDecimal.ZERO) > 0) {
task.setCreateBy(loginUser.getUserid()); task.setCreateBy(loginUser.getUserid());
Long agreementId = repairMapper.getAgreementId(task); Long agreementId = repairMapper.getAgreementId(task);
// 新增tm_task表数据修饰审核任务状态是待审核 // 新增tm_task表数据修饰审核任务状态是待审核
@ -829,6 +829,8 @@ public class RepairServiceImpl implements RepairService {
// 生成维修单号 // 生成维修单号
String code = genderWxTaskCode(thisMonthMaxOrder); String code = genderWxTaskCode(thisMonthMaxOrder);
task.setRepairCode(code); task.setRepairCode(code);
// 插入之前的维修任务id标记前置任务
task.setPreTaskId(task.getTaskId());
// 注意此处将会生成新的 taskId 审核入库用的 // 注意此处将会生成新的 taskId 审核入库用的
repairMapper.addTask(task); repairMapper.addTask(task);
// 新增协议任务表tm_task_agreement--关联修饰任务与协议 // 新增协议任务表tm_task_agreement--关联修饰任务与协议
@ -837,23 +839,28 @@ public class RepairServiceImpl implements RepairService {
// 新增审计记录 // 新增审计记录
for (RepairTaskDetails details : detailsList) { for (RepairTaskDetails details : detailsList) {
RepairApplyDetails repairApplyDetails = new RepairApplyDetails(); RepairApplyDetails repairApplyDetails = createRepairDetailsCope(details);
repairApplyDetails.setId(details.getId());
repairApplyDetails.setRepairedNum( (details.getRepairedNum().add(details.getThisRepairedNum()) ));
repairApplyDetails.setThisRepairedNum(BigDecimal.valueOf(0));
repairApplyDetails.setScrapNum( (details.getScrapNum().add( details.getThisScrapNum())));
repairApplyDetails.setThisScrapNum(BigDecimal.valueOf(0));
repairApplyDetailsMapper.updateRepairApplyDetails(repairApplyDetails); repairApplyDetailsMapper.updateRepairApplyDetails(repairApplyDetails);
details.setCreateBy(String.valueOf(loginUser.getUserid())); details.setCreateBy(String.valueOf(loginUser.getUserid()));
details.setTaskId(task.getTaskId()); details.setTaskId(task.getTaskId());
details.setRepairNum(details.getThisRepairedNum().add(details.getThisScrapNum()) ); details.setRepairNum(details.getRepairNum());
details.setRepairedNum(details.getThisRepairedNum()); details.setRepairedNum(details.getRepairedNum());
details.setScrapNum(details.getThisScrapNum()); details.setScrapNum(details.getScrapNum());
repairMapper.addAuditDetails(details); repairMapper.addAuditDetails(details);
} }
} }
} }
return AjaxResult.success(); return AjaxResult.success("执行完毕");
}
private static RepairApplyDetails createRepairDetailsCope(RepairTaskDetails details) {
RepairApplyDetails repairApplyDetails = new RepairApplyDetails();
repairApplyDetails.setId(details.getId());
repairApplyDetails.setRepairedNum( (details.getRepairedNum().add(details.getThisRepairedNum()) ));
repairApplyDetails.setThisRepairedNum(BigDecimal.valueOf(0));
repairApplyDetails.setScrapNum( (details.getScrapNum().add( details.getThisScrapNum())));
repairApplyDetails.setThisScrapNum(BigDecimal.valueOf(0));
return repairApplyDetails;
} }
/** /**

View File

@ -242,7 +242,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tt.`code` as inputCode, tt.`code` as inputCode,
CASE CASE
WHEN tt.`code` LIKE 'XG%' THEN '新购入库' WHEN tt.`code` LIKE 'XG%' THEN '新购入库'
WHEN tt.`code` LIKE 'R%' THEN '修入库' WHEN tt.`code` LIKE 'R%' THEN '修入库'
WHEN tt.`code` LIKE 'PD%' THEN '盘点入库' WHEN tt.`code` LIKE 'PD%' THEN '盘点入库'
ELSE '未知入库类型' ELSE '未知入库类型'
END AS inputType, END AS inputType,
@ -265,7 +265,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and ( and (
CASE CASE
WHEN tt.`code` LIKE 'XG%' THEN '新购入库' WHEN tt.`code` LIKE 'XG%' THEN '新购入库'
WHEN tt.`code` LIKE 'R%' THEN '修入库' WHEN tt.`code` LIKE 'R%' THEN '修入库'
WHEN tt.`code` LIKE 'PD%' THEN '盘点入库' WHEN tt.`code` LIKE 'PD%' THEN '盘点入库'
ELSE '未知入库类型' ELSE '未知入库类型'
END = #{inputType} END = #{inputType}

View File

@ -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>

View File

@ -296,7 +296,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectRepairQuestList" resultType="com.bonus.material.repair.domain.vo.ScrapApplyDetailsVO"> <select id="selectRepairQuestList" resultType="com.bonus.material.repair.domain.vo.ScrapApplyDetailsVO">
SELECT DISTINCT SELECT DISTINCT
tk.task_id taskId, tk.task_id taskId,
tk.CODE scrapNum, tk.CODE scrapNum,tt.code as repairTaskCode,
tk.task_status taskStatus, tk.task_status taskStatus,
bui.unit_name unitName, bui.unit_name unitName,
bpl.pro_name projectName, bpl.pro_name projectName,
@ -304,9 +304,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tk.create_time createTime, tk.create_time createTime,
tk.remark, tk.remark,
tk.CODE repairNum tk.CODE repairNum
-- su1.user_name as teamName
FROM FROM
tm_task tk tm_task tk
LEFT JOIN tm_task tt on tk.pre_task_id = tt.task_id
LEFT JOIN tm_task_agreement tta ON tk.task_id = tta.task_id LEFT JOIN tm_task_agreement tta ON tk.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
LEFT JOIN bm_project bpl ON bai.project_id = bpl.pro_id LEFT JOIN bm_project bpl ON bai.project_id = bpl.pro_id
@ -316,7 +316,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN sys_user su ON su.user_id = tk.create_by LEFT JOIN sys_user su ON su.user_id = tk.create_by
LEFT JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id LEFT JOIN ma_type_repair mtr ON mtr.type_id = rad.type_id
-- LEFT JOIN sys_user su1 ON su1.user_id = mtr.user_id
WHERE WHERE
tk.task_type = #{taskType} tk.task_type = #{taskType}
<if test="keyword != null and keyword != ''"> <if test="keyword != null and keyword != ''">
@ -510,7 +509,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update> </update>
<update id="updateMachine"> <update id="updateMachine">
UPDATE ma_machine SET ma_status = '5' WHERE ma_id = #{maId} UPDATE ma_machine SET ma_status = 5 WHERE ma_id = #{maId}
</update> </update>
<select id="getPartDetailsByTaskId" resultType="com.bonus.material.repair.domain.RepairPart"> <select id="getPartDetailsByTaskId" resultType="com.bonus.material.repair.domain.RepairPart">

View File

@ -190,6 +190,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN repair_apply_details rad ON rid.repair_id = rad.id LEFT JOIN repair_apply_details rad ON rid.repair_id = rad.id
WHERE WHERE
rid.task_id = #{taskId} rid.task_id = #{taskId}
LIMIT 1
</select> </select>
<select id="selectRepairDetails" resultType="com.bonus.common.biz.domain.repair.RepairInputDetails"> <select id="selectRepairDetails" resultType="com.bonus.common.biz.domain.repair.RepairInputDetails">
@ -221,6 +222,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.type_id mt.type_id
</select> </select>
<select id="getInfoByQrcode" resultType="com.bonus.common.biz.domain.repair.RepairInputDetails">
SELECT
mt1.type_name as typeName,
mt.type_name as typeModelName,
mm.ma_id as maId,
mm.ma_code as maCode,
mm.type_id as typeId,
mm.ma_status as maStatus,
mm.qr_code as qrCode,
case when mm.ma_status = '5' then '修试后待入库'
else ''
end as statusName,
mt.manage_type as manageType,
rid.task_id as taskId,
bp.pro_name as backPro,
bu.unit_name as backUnit,
tt.CODE AS inputCode,
tt1.CODE AS repairCode,
bai.agreement_id as agreementId
FROM ma_machine mm
LEFT JOIN ma_type mt ON mm.type_id = mt.type_id AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id AND mt1.del_flag = '0'
LEFT JOIN repair_input_details rid ON mm.ma_id = rid.ma_id
LEFT JOIN tm_task_agreement tta ON rid.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai ON tta.agreement_id = bai.agreement_id
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
LEFT JOIN bm_unit bu ON bai.unit_id = bu.unit_id
LEFT JOIN tm_task tt on rid.task_id = tt.task_id
LEFT JOIN repair_apply_details rad ON rad.id = rid.repair_id
LEFT JOIN tm_task tt1 on rad.task_id = tt1.task_id
WHERE
mm.ma_status = '5' and mm.qr_code = #{qrCode}
</select>
<insert id="batchInsertRepairInputDetails" parameterType="com.bonus.common.biz.domain.repair.RepairInputDetails"> <insert id="batchInsertRepairInputDetails" parameterType="com.bonus.common.biz.domain.repair.RepairInputDetails">
insert into repair_input_details insert into repair_input_details
(task_id, audit_id, repair_id, ma_id, type_id, repair_num, input_num, create_by, create_time, (task_id, audit_id, repair_id, ma_id, type_id, repair_num, input_num, create_by, create_time,

View File

@ -12,8 +12,8 @@
</insert> </insert>
<insert id="addTask" useGeneratedKeys="true" keyProperty="taskId"> <insert id="addTask" useGeneratedKeys="true" keyProperty="taskId">
insert into tm_task (task_status,task_type,code,create_by,create_time,company_id) insert into tm_task (pre_task_id,task_status,task_type,code,create_by,create_time,company_id)
values (#{taskStatus},#{taskType},#{repairCode},#{createBy},now(),#{companyId}); values (#{preTaskId},#{taskStatus},#{taskType},#{repairCode},#{createBy},now(),#{companyId});
</insert> </insert>
<insert id="createAgreementTask"> <insert id="createAgreementTask">

View File

@ -102,8 +102,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectAgreementIdByTaskId" resultType="java.lang.Long"> <select id="selectAgreementIdByTaskId" resultType="java.lang.Long">
select agreement_id select agreement_id from tm_task_agreement where task_id = #{taskId}
from tm_task_agreement
where task_id = #{taskId}
</select> </select>
</mapper> </mapper>