From 5754e50bd2df35ddc2dd3d32d94e2739dfdfe6f9 Mon Sep 17 00:00:00 2001 From: mashuai Date: Wed, 2 Jul 2025 16:39:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/biz/enums/MaMachineStatusEnum.java | 4 +- .../basic/controller/BmQrBoxController.java | 28 +++++- .../basic/service/BmQrBoxService.java | 15 ++++ .../service/impl/BmQrBoxServiceImpl.java | 88 ++++++++++++++++++- .../ma/controller/TypeController.java | 2 - .../com/bonus/material/ma/domain/Machine.java | 3 + .../material/ma/mapper/MachineMapper.java | 12 ++- .../ma/service/impl/TypeServiceImpl.java | 1 - .../mapper/material/ma/MachineMapper.xml | 27 +++++- 9 files changed, 170 insertions(+), 10 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaMachineStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaMachineStatusEnum.java index 7e77f4e4..4fd91e4a 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaMachineStatusEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/MaMachineStatusEnum.java @@ -28,7 +28,9 @@ public enum MaMachineStatusEnum { SCRAP_AUDIT(8, "已报废审核"), BACK_TO_STORE(9, "退料待入库"), SCRAP_TO_AUDIT(10, "报废待审核"), - RETURNED_MATERIAL(11, "退料暂存"); + RETURNED_MATERIAL(11, "退料暂存"), + // 信息采集 + INFORMATION_COLLECTION(-1, "信息采集待入库"); private final Integer status; private final String statusName; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrBoxController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrBoxController.java index 184f81ec..fe8b19d1 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrBoxController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmQrBoxController.java @@ -5,11 +5,11 @@ import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; -import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.material.basic.domain.BmQrBoxInfo; import com.bonus.material.basic.domain.dto.BoxBindWarehouseDto; import com.bonus.material.basic.service.BmQrBoxService; import com.bonus.material.common.annotation.PreventRepeatSubmit; +import com.bonus.material.ma.domain.Machine; import com.bonus.material.ma.domain.TypeKeeper; import com.bonus.material.ma.service.ITypeKeeperService; import io.swagger.annotations.Api; @@ -290,4 +290,30 @@ public class BmQrBoxController extends BaseController { return AjaxResult.error("查询失败,请联系管理员"); } } + + /** + * 根据编码查询信息 + * @param info + * @return + */ + @ApiOperation(value = "根据编码查询信息") + @GetMapping("/getMaCodeList") + public AjaxResult getMaCodeList(BmQrBoxInfo info) { + try { + return qrBoxService.getMaCodeList(info); + } catch (Exception e) { + return AjaxResult.error("查询失败,请联系管理员"); + } + } + + /** + * APP -- 编码绑定标准箱 + * @param machine + * @return + */ + @ApiOperation(value = "APP -- 编码绑定标准箱") + @PostMapping("/app_code_bind") + public AjaxResult addMaCodeBoxBind(@RequestBody @NotNull(message = "参数不能为空") Machine machine) { + return qrBoxService.addMaCodeBoxBind(machine); + } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmQrBoxService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmQrBoxService.java index 6b6606a4..f9de6c98 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmQrBoxService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/BmQrBoxService.java @@ -3,6 +3,7 @@ package com.bonus.material.basic.service; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.basic.domain.BmQrBoxInfo; import com.bonus.material.basic.domain.dto.BoxBindWarehouseDto; +import com.bonus.material.ma.domain.Machine; import javax.servlet.http.HttpServletResponse; import java.util.List; @@ -126,4 +127,18 @@ public interface BmQrBoxService { * @return */ AjaxResult getBoxDetails(BoxBindWarehouseDto info); + + /** + * 根据编码查询信息 + * @param info + * @return + */ + AjaxResult getMaCodeList(BmQrBoxInfo info); + + /** + * APP -- 编码绑定标准箱 + * @param machine + * @return + */ + AjaxResult addMaCodeBoxBind(Machine machine); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java index 3a4f0a41..9400787f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmQrBoxServiceImpl.java @@ -19,6 +19,7 @@ import com.bonus.material.basic.domain.dto.BoxBindWarehouseDto; import com.bonus.material.basic.domain.vo.BoxInfoBindVo; import com.bonus.material.basic.mapper.BmQrBoxMapper; import com.bonus.material.basic.service.BmQrBoxService; +import com.bonus.material.ma.domain.Machine; import com.bonus.material.ma.domain.vo.MachineVo; import com.bonus.material.ma.mapper.MachineMapper; import com.bonus.material.purchase.config.RemoteConfig; @@ -418,7 +419,7 @@ public class BmQrBoxServiceImpl implements BmQrBoxService { try { // 物资状态要求是待入库、在库状态 - final MachineVo machineVo = machineMapper.selectMachineByMaCode(bmQrBoxInfo.getQrCode()); + final MachineVo machineVo = machineMapper.selectMachineByMaCode(bmQrBoxInfo); if (null == machineVo || null == machineVo.getMaId()) { return AjaxResult.error("物资信息不存在!"); } @@ -648,6 +649,91 @@ public class BmQrBoxServiceImpl implements BmQrBoxService { return AjaxResult.success(list); } + /** + * 根据编码查询信息 + * @param info + * @return + */ + @Override + public AjaxResult getMaCodeList(BmQrBoxInfo info) { + // 先根据编码查询ma_machine + MachineVo machineVo = machineMapper.selectMachineByMaCode(info); + if (machineVo != null) { + if (!Objects.equals(machineVo.getMaStatus(), MaMachineStatusEnum.INFORMATION_COLLECTION.getStatus().toString())) { + return AjaxResult.error("物资状态非信息采集待入库状态,无法操作!"); + } + } + // 先根据编码查询ws_ma_info + MachineVo wsMaInfo = machineMapper.selectMaInfoByMaCode(info); + return AjaxResult.success(wsMaInfo); + } + + /** + * 添加标准箱绑定物资信息 + * @param machine + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult addMaCodeBoxBind(Machine machine) { + if (null == machine.getBoxId()) {return AjaxResult.error("标准箱ID为空,请完善后重试!");} + if (null == machine.getMaCode()) {return AjaxResult.error("编码为空,请完善后重试!");} + + try { + // 先查询数据是否存在 + BmQrBoxInfo bmQrBoxInfo = new BmQrBoxInfo(); + bmQrBoxInfo.setMaCode(machine.getMaCode()); + MachineVo vo = machineMapper.selectMachineByMaCode(bmQrBoxInfo); + machine.setMaStatus(MaMachineStatusEnum.INFORMATION_COLLECTION.getStatus().toString()); + if (vo != null) { + machine.setMaId(vo.getMaId()); + machine.setUpdateTime(DateUtils.getNowDate()); + int i = machineMapper.updateMachine(machine); + if (0 == i) { + return AjaxResult.error("更新绑定机具失败"); + } + } else { + // 先走新增获取maId,状态为待在库 + machine.setCreateTime(DateUtils.getNowDate()); + int result = machineMapper.insertMachine(machine); + if (0 == result) { + return AjaxResult.error("新增绑定机具失败"); + } + } + // 此物资未在其他标准型入过库,才可以绑定 + if (0 < bmQrBoxMapper.existsMaId(machine.getMaId())) { + return AjaxResult.error("该物资已绑定其他标准箱,无法再次绑定!"); + } + + // 一个标准型只有1种类型 + final List boxMaTypeList = bmQrBoxMapper.getBoxMaTypeList(machine.getBoxId()); + if (!boxMaTypeList.isEmpty()) { + if (1 < boxMaTypeList.size()) { + return AjaxResult.error("该标准箱已绑定多种物资,无法进行操作,请联系运维人员处理!"); + } + if (!Objects.equals(boxMaTypeList.get(0), machine.getTypeId())) { + return AjaxResult.error("该标准箱已绑定其他类型物资,无法绑定此类型!"); + } + } + + // 验证通过,进行数据处理 + bmQrBoxInfo.setMaId(machine.getMaId()); + bmQrBoxInfo.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); + bmQrBoxInfo.setCreateTime(DateUtils.getNowDate()); + bmQrBoxInfo.setBoxId(machine.getBoxId()); + if (0 < bmQrBoxMapper.addQrcodeBoxBind(bmQrBoxInfo)) { + // 修改标准箱状态为已完成 + bmQrBoxInfo.setStatus(QrBoxStatusEnum.QR_BOX_STATUS_WAIT_TRANSFER.getStatus().toString()); + bmQrBoxMapper.updateBmQrcodeStatus(bmQrBoxInfo); + return AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()); + } + return AjaxResult.error("绑定失败:成功绑定0条"); + } catch (final Exception e) { + System.err.println("绑定失败,SQL执行异常:" + e.getMessage()); + return AjaxResult.error("绑定失败,SQL执行异常:" + e.getMessage()); + } + } + private int updateBoxStatus(BoxBindWarehouseDto boxMa) { int result = 0; result = bmQrBoxMapper.updateBoxStatus(boxMa); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/TypeController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/TypeController.java index 391e5d0c..7e14902e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/TypeController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/controller/TypeController.java @@ -2,13 +2,11 @@ package com.bonus.material.ma.controller; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.NotNull; import cn.hutool.core.convert.Convert; -import com.bonus.common.biz.annotation.StoreLog; import com.bonus.common.biz.config.ListPagingUtil; import com.bonus.common.core.utils.ServletUtils; import com.bonus.common.log.enums.OperaType; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java index e42e7d66..e196e35e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Machine.java @@ -243,4 +243,7 @@ public class Machine extends BaseEntity @ApiModelProperty(value = "入库时间") private String inputTime; + + @ApiModelProperty(value = "标准箱ID") + private Long boxId; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java index d415f459..94e712a0 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/MachineMapper.java @@ -4,6 +4,7 @@ import java.util.List; import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.common.biz.domain.lease.LeaseOutDetails; +import com.bonus.material.basic.domain.BmQrBoxInfo; import com.bonus.material.ma.domain.Machine; import com.bonus.material.ma.domain.Type; import com.bonus.material.ma.domain.vo.MachineVo; @@ -29,10 +30,10 @@ public interface MachineMapper /** * 查询机具设备编码信息 * - * @param qrCode QR编码 + * @param bmQrBoxInfo * @return 机具设备管理 */ - MachineVo selectMachineByMaCode(String qrCode); + MachineVo selectMachineByMaCode(BmQrBoxInfo bmQrBoxInfo); /** * 查询机具设备管理列表 @@ -173,4 +174,11 @@ public interface MachineMapper * @return */ List getInfoByMaCode(Machine machine); + + /** + * 先根据编码查询ws_ma_info + * @param info + * @return + */ + MachineVo selectMaInfoByMaCode(BmQrBoxInfo info); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java index 8ba45df2..d208fff6 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java @@ -26,7 +26,6 @@ import com.bonus.material.settlement.mapper.SltAgreementInfoMapper; import com.bonus.material.warehouse.domain.WhHouseSet; import com.bonus.material.warehouse.service.IWhHouseSetService; import org.apache.commons.collections4.CollectionUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bonus.material.ma.mapper.TypeMapper; import com.bonus.material.ma.domain.Type; diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml index 16a4733c..ecdc8e54 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/MachineMapper.xml @@ -396,8 +396,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ma_type_repair mtr on ma.type_id = mtr.type_id LEFT JOIN bm_asset_attributes baa on ma.assets_id = baa.id - where - ma.qr_code = #{qrCode} + where 1 = 1 + + and ma.ma_code = #{maCode} + + + and ma.qr_code = #{qrCode} + group by ma.ma_id limit 1 @@ -722,4 +727,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and ma.qr_code = #{qrCode} + +