This commit is contained in:
mashuai 2025-07-02 16:39:27 +08:00
parent ce9c84fb93
commit 5754e50bd2
9 changed files with 170 additions and 10 deletions

View File

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

View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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<Long> 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);

View File

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

View File

@ -243,4 +243,7 @@ public class Machine extends BaseEntity
@ApiModelProperty(value = "入库时间")
private String inputTime;
@ApiModelProperty(value = "标准箱ID")
private Long boxId;
}

View File

@ -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<Machine> getInfoByMaCode(Machine machine);
/**
* 先根据编码查询ws_ma_info
* @param info
* @return
*/
MachineVo selectMaInfoByMaCode(BmQrBoxInfo info);
}

View File

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

View File

@ -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
<if test="maCode != null and maCode != ''">
and ma.ma_code = #{maCode}
</if>
<if test="qrCode != null and qrCode != ''">
and ma.qr_code = #{qrCode}
</if>
group by
ma.ma_id
limit 1
@ -722,4 +727,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and ma.qr_code = #{qrCode}
</if>
</select>
<select id="selectMaInfoByMaCode" resultType="com.bonus.material.ma.domain.vo.MachineVo">
SELECT
ma_name as materialName,
ma_model as materialModel,
ma_code as maCode,
supplier as maVender,
this_check_time as thisCheckTime,
next_check_time as nextCheckTime,
repair_man as inspectMan,
check_man as checkMan,
model_id as typeId,
result as inspectStatus,
phone as phone
FROM
ws_ma_info
where ma_code = #{maCode}
</select>
</mapper>