标准箱入库逻辑修改、维修逻辑修改、QRCODE新查询接口开发

This commit is contained in:
syruan 2024-12-25 18:19:23 +08:00
parent 6ced630d20
commit 53b3d571db
18 changed files with 196 additions and 156 deletions

View File

@ -111,6 +111,15 @@ public class BmQrBoxController extends BaseController {
return qrBoxService.updateBmQrcodeInfoByCode(bmQrBoxInfo);
}
/**
* 二维码管理 -- 扫码获取绑定物资信息
*/
@ApiOperation(value = "二维码管理 -- 扫码获取绑定物资信息")
@GetMapping("/get_ma_info_by_qrcode")
public AjaxResult appCreateByCode(@RequestParam(value = "qrCode") String qrCode) {
return qrBoxService.getMaInfoByQrCode(qrCode);
}
/**
* APP -- 新购入库扫码 -- BoxCode查询标准箱信息
*/

View File

@ -37,6 +37,11 @@ public interface BmQrBoxMapper {
*/
int updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo);
/**
* 根据二维码QR编码查询绑定的物资信息
*/
BmQrBoxInfo getMaInfoByQrCode(String qrCode);
/**
* 修改标准箱状态 -- 增加绑定编码时调用
*/

View File

@ -66,6 +66,12 @@ public interface BmQrBoxService {
*/
AjaxResult updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo);
/**
* 通过QR_CODE 查询物资信息
* @param qrCode 二维码编码
*/
AjaxResult getMaInfoByQrCode(String qrCode);
/**
* APP - 扫码绑定物资
*/

View File

@ -10,6 +10,7 @@ import com.bonus.common.biz.enums.MaMachineStatusEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.biz.enums.QrBoxStatusEnum;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.basic.domain.BmQrBoxInfo;
@ -149,7 +150,11 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxBindWarehouseDto.getBoxId());
boxBindList.removeIf(Objects::isNull);
boxBindList.removeIf(item -> item.getMaStatus() == null);
boxBindList.removeIf(item -> !item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName()));
boxBindList.removeIf(item ->
!item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName()) &&
!item.getMaStatus().equals(MaMachineStatusEnum.REPAIR_TO_STORE.getStatusName()) &&
!item.getMaStatus().equals(MaMachineStatusEnum.BACK_TO_STORE.getStatusName())
);
boxBindList.removeIf(item -> item.getMaTypeId() == null || !Objects.equals(item.getMaTypeId(), boxBindWarehouseDto.getMaTypeId()));
@ -159,19 +164,16 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "新购任务不存在此物资类型,请确认录入是否正确");
}
// 更新入库数量
purchaseStorageMapper.updateNum(String.valueOf(purchaseDetailId), BigDecimal.valueOf(boxBindList.size()));
purchaseStorageMapper.updateNum(purchaseDetailId, BigDecimal.valueOf(boxBindList.size()));
// 更新物资类型库存数量
purchaseStorageMapper.updateStorageNum(BigDecimal.valueOf(boxBindList.size()), Math.toIntExact(boxBindWarehouseDto.getMaTypeId()));
// 更新物资设备状态
boxBindList.forEach(item -> {
item.setMaStatus(MaMachineStatusEnum.IN_STORE.getStatus().toString());
purchaseStorageMapper.updateMachineByCode(new PurchaseDto()
.setMaCode(item.getMaCode())
.setTypeId(Math.toIntExact(boxBindWarehouseDto.getMaTypeId()))
);
purchaseStorageMapper.updateMachineByCode(new PurchaseDto().setMaCode(item.getMaCode()).setTypeId(Math.toIntExact(boxBindWarehouseDto.getMaTypeId())));
});
// 更新新购验收明细状态
purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Math.toIntExact(purchaseDetailId));
purchaseStorageMapper.updateInputStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Math.toIntExact(purchaseDetailId));
// TODO 缺少修改TmTask表状态
// ---------------- 返回前端 -------------------------------------
@ -318,6 +320,19 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
}
/**
* 通过QR_CODE 查询物资信息
*
* @param qrCode 二维码编码
*/
@Override
public AjaxResult getMaInfoByQrCode(String qrCode) {
if (StringUtils.isBlank(qrCode)) {
return AjaxResult.error("二维码编码为空,请完善后重试!");
}
return AjaxResult.success(bmQrBoxMapper.getMaInfoByQrCode(qrCode));
}
/**
* APP - 扫码绑定物资
*
@ -325,9 +340,8 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
*/
@Override
public AjaxResult addQrcodeBoxBind(BmQrBoxInfo bmQrBoxInfo) {
if (bmQrBoxInfo.getBoxId() == null || bmQrBoxInfo.getQrCode() == null) {
return AjaxResult.error("标准箱ID或QR编码为空请完善后重试!");
}
if (bmQrBoxInfo.getBoxId() == null) {return AjaxResult.error("标准箱ID为空请完善后重试!");}
if (bmQrBoxInfo.getQrCode() == null) {return AjaxResult.error("QR编码为空请完善后重试!");}
try {
// 物资状态要求是待入库在库状态

View File

@ -42,7 +42,7 @@ public class PurchaseBindController extends BaseController {
@PreventRepeatSubmit
@RequiresPermissions("purchase:bind:add")
@PostMapping("/bind")
public AjaxResult bind(@RequestBody PurchaseDto dto) {
public AjaxResult bind(@RequestBody @NotNull(message = "参数不能为空") PurchaseDto dto) {
return purchaseBindService.bind(dto);
}

View File

@ -47,7 +47,6 @@ public class PurchaseStorageController extends BaseController {
@ApiOperation(value = "查询待绑定编号机具详情")
@PreventRepeatSubmit
// @RequiresPermissions("purchase:storage:query")
@PostMapping("/getMachineById")
public AjaxResult getMachineById(@RequestBody PurchaseDto dto) {

View File

@ -1,5 +1,6 @@
package com.bonus.material.purchase.domain.vo;
import com.alibaba.druid.sql.visitor.functions.Char;
import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
@ -19,7 +20,7 @@ public class PurchaseVo {
private Integer taskId;
@ApiModelProperty(value = "二级明细id")
private String purchaseId;
private Long purchaseId;
@ApiModelProperty(value="typeId")
private Integer typeId;
@ -112,6 +113,9 @@ public class PurchaseVo {
@ApiModelProperty(value = "二维码路径")
private String qrUrl;
@ApiModelProperty(value = "是否绑定")
private Char isBind;
@ApiModelProperty(value = "异常数量")
private BigDecimal exceptionNum;
}

View File

@ -48,6 +48,8 @@ public interface PurchaseBindMapper {
*/
int add(PurchaseDto purchaseDto);
int bindMaCodeByQrCode(PurchaseDto purchaseDto);
/**
* 查询二维码code
* @param genMonth
@ -80,7 +82,7 @@ public interface PurchaseBindMapper {
* @param updatedStatus
* @param purchaseId
*/
int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") String purchaseId);
int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Long purchaseId);
/**
* 更新数量
@ -90,6 +92,8 @@ public interface PurchaseBindMapper {
*/
int updateNum(@Param("dto") PurchaseDto dto, @Param("num") int num);
int updateStatusWhereNum(@Param("dto") PurchaseDto dto);
/**
* 根据id查询详情
* @param purchaseDto

View File

@ -34,7 +34,7 @@ public interface PurchaseStorageMapper {
* @param bindNum
* @return
*/
int updateNum(@Param("id") String purchaseId, @Param("bindNum") BigDecimal bindNum);
int updateNum(@Param("id") Long purchaseId, @Param("bindNum") BigDecimal bindNum);
/**
* 更新状态
@ -44,6 +44,14 @@ public interface PurchaseStorageMapper {
*/
int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id);
/**
* 更新入库状态
* @param updatedStatus 要修改的状态
* @param id 要修改的details表id
* @return 修改条数
*/
int updateInputStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id);
/**
* 新增机具入库记录
* @param dto

View File

@ -12,7 +12,9 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.purchase.config.RemoteConfig;
import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
import com.bonus.material.purchase.mapper.PurchaseBindMapper;
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
import com.bonus.material.purchase.mapper.PurchaseStorageMapper;
import com.bonus.material.purchase.service.IPurchaseBindService;
import com.bonus.material.purchase.domain.vo.PurchaseVo;
@ -48,6 +50,9 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
@Resource
private PurchaseStorageMapper purchaseStorageMapper;
@Resource
private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper;
/**
* 查询所有绑定信息
@ -119,7 +124,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
/**
* 绑定
* @param dto
* @param dto 绑定物资信息
* @return
*/
@Override
@ -137,46 +142,41 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
return AjaxResult.error(1114,"设备编码与库中重复,请勿重复添加");
}
}
int result = 0;
for (PurchaseDto purchaseDto : dto.getDtoList()) {
purchaseDto.setCreateBy(SecurityUtils.getUserId().toString());
purchaseDto.setCreateTime(DateUtils.getNowDate());
purchaseDto.setTaskId(dto.getTaskId());
purchaseDto.setTypeId(dto.getTypeId());
purchaseDto.setStatus(0);
result += purchaseBindMapper.add(purchaseDto);
result += purchaseStorageMapper.insertMachine(purchaseDto);
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) {
return AjaxResult.error(1115,"绑定maCode时SQL执行失败!");
}
//根据前端传参更新绑定数量
result += purchaseBindMapper.updateNum(dto, dto.getDtoList().size());
}
if (purchaseStorageMapper.insertMachine(purchaseDto) != 1) {
return AjaxResult.error(1116,"插入maMachine时SQL执行失败!");
}
}
// 更新绑定数量并刷新状态
if (purchaseBindMapper.updateNum(dto, dto.getDtoList().size()) < 1) {
return AjaxResult.error(1117,"更新绑定数量时SQL执行失败!");
} else {
purchaseBindMapper.updateStatusWhereNum(dto);
}
//根据任务id和类型id查询状态
List<PurchaseVo> voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto);
if (CollectionUtils.isNotEmpty(voList)) {
for (PurchaseVo purchaseVo : voList) {
if (purchaseVo.getBindNum().equals(purchaseVo.getCheckNum())) {
if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) == 0) {
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), purchaseVo.getPurchaseId());
}
if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) <0 ) {
} else if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) < 0) {
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND.getStatus(), purchaseVo.getPurchaseId());
} else {
// 抛出异常 执行回滚
throw new RuntimeException("绑定数量大于验收数量,请重新绑定!");
}
}
}
// PurchaseDto purchaseDto = new PurchaseDto();
// purchaseDto.setTaskId(dto.getTaskId());
// List<PurchaseVo> list = purchaseBindMapper.getDetails(purchaseDto);
// Map<Integer, List<Integer>> groupedByIdStatus = list.stream()
// .collect(Collectors.groupingBy(
// PurchaseVo::getTaskId,
// Collectors.mapping(PurchaseVo::getStatus, Collectors.toList())
// ));
// result += groupedByIdStatus.entrySet().stream()
// .mapToInt(entry -> updateTaskStatus(entry.getKey(), entry.getValue()))
// .sum();
if (result > 0) {
return AjaxResult.success("绑定成功");
}
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
}
/**
* 提取状态更新逻辑到一个方法
@ -249,7 +249,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
// 二级页面驳回
String[] idList = dto.getPurchaseId().split(",");
for (String purchaseId : idList) {
result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseId);
result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), Long.valueOf(purchaseId));
}
}
if (result > 0) {

View File

@ -23,10 +23,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -100,10 +97,6 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
public AjaxResult warehouse(PurchaseDto dto) {
//内层入库
return processByPurchaseIds(dto);
/*if (dto.getTaskId() != null) {
//外层入库
return processByTaskIds(dto);
}*/
}
/**
@ -187,7 +180,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
details = purchaseBindMapper.getDetails(dto);
for (PurchaseVo purchaseVo : details) {
if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus()) || purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE.getStatus())) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus(), Integer.parseInt(purchaseVo.getPurchaseId()));
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus(), Math.toIntExact(purchaseVo.getPurchaseId()));
}
}
details = purchaseBindMapper.getDetails(dto);
@ -222,7 +215,10 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
} else {
//编码入库
List<PurchaseVo> purchaseVoList = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto);
result += purchaseStorageMapper.updateNum(purchaseDto.getPurchaseId(), BigDecimal.valueOf(purchaseDto.getInPutList().size()));
if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) {
purchaseDto.setInPutList(new ArrayList<>());
}
result += purchaseStorageMapper.updateNum(Long.valueOf(purchaseDto.getPurchaseId()), BigDecimal.valueOf(purchaseDto.getInPutList().size()));
for (PurchaseDto dto : purchaseDto.getInPutList()) {
if (CollectionUtils.isNotEmpty(purchaseVoList)) {
for (PurchaseVo purchaseVo : purchaseVoList) {
@ -233,13 +229,13 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
}
}
dto.setTypeId(purchaseDto.getTypeId());
result += purchaseStorageMapper.updateMachineByCode(dto);
purchaseStorageMapper.updateStorageNum(BigDecimal.ONE, dto.getTypeId());
List<PurchaseCheckDetails> list = purchaseBindMapper.getMachineById(purchaseDto);
if (CollectionUtils.isNotEmpty(list)) {
if (purchaseStorageMapper.updateMachineByCode(dto) < 1) {throw new RuntimeException("入库失败,更新物资入库状态0条");}
if (purchaseStorageMapper.updateStorageNum(BigDecimal.ONE, dto.getTypeId()) < 1) {throw new RuntimeException("入库失败,库存增加0");}
List<PurchaseCheckDetails> bindMaList = purchaseBindMapper.getMachineById(purchaseDto);
if (CollectionUtils.isNotEmpty(bindMaList)) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));
} else {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));
result += purchaseStorageMapper.updateInputStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));
}
}
}
@ -325,7 +321,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
return details.stream()
.mapToInt(detail -> {
int result = purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum());
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(detail.getPurchaseId()));
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Math.toIntExact(detail.getPurchaseId()));
if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) {
//根据类型id获取设备详情信息
//result += purchaseStorageMapper.insertMachine(detail);

View File

@ -427,14 +427,10 @@ public class RepairServiceImpl implements RepairService {
repairDeviceVOList.removeIf(Objects::isNull);
for (RepairDeviceVO bean : repairDeviceVOList) {
if (bean.getManageType() == null) {
throw new ServiceException("请选择物资管理方式");
}
if (bean.getManageType() == null) {throw new ServiceException("请选择物资管理方式");}
if (Objects.equals(MaTypeManageTypeEnum.CODE_DEVICE.getTypeId(), bean.getManageType())) {
// 物资管理方式--编码管理
if (bean.getRepairType() == null) {
continue;
}
if (bean.getRepairType() == null) {continue;}
// 根据维修方式更新维修数量报废数量
switch (bean.getRepairType()) {
case INNER_REPAIR: {

View File

@ -128,22 +128,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<delete id="deleteById">
delete
from bm_qrcode_box
where box_id = #{boxId}
delete from bm_qrcode_box where box_id = #{boxId}
</delete>
<delete id="unBindQrcodeBox">
delete
from bm_qrcode_box_bind
where id = #{id}
delete from bm_qrcode_box_bind where id = #{id}
</delete>
<delete id="deleteBoxBind">
delete
from bm_qrcode_box_bind
where box_id = #{boxId}
and ma_id = #{maId}
delete from bm_qrcode_box_bind where box_id = #{boxId} and ma_id = #{maId}
</delete>
<insert id="addQrcodeBoxBind">
@ -218,4 +211,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bqb.box_code = #{boxCode} AND
mt.type_id = #{maTypeId}
</select>
<select id="getMaInfoByQrCode" resultType="com.bonus.material.basic.domain.BmQrBoxInfo">
select
bqi.id, bqi.qr_code, bqi.type_id as maTypeId, bqi.ma_code , mm.ma_id
from
bm_qrcode_info bqi
left join
ma_machine mm on bqi.type_id = mm.type_id and bqi.ma_code = mm.ma_code
where
bqi.del_flag is null or bqi.del_flag = '0'
group by
bqi.id limit 1
</select>
</mapper>

View File

@ -88,10 +88,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateNum">
UPDATE purchase_check_details
SET bind_num = COALESCE(bind_num, 0) + COALESCE(#{num}, 0)
WHERE task_id = #{dto.taskId}
AND type_id = #{dto.typeId}
AND #{num} IS NOT NULL
SET bind_num = IFNULL(bind_num, 0) + IFNULL(#{num}, 0)
WHERE task_id = #{dto.taskId} AND type_id = #{dto.typeId} AND #{num} IS NOT NULL
</update>
<update id="updateStatusWhereNum">
UPDATE purchase_check_details
SET `status` = IF(IFNULL(check_num, 0) = IFNULL(bind_num, 0), '4', `status`)
WHERE task_id = #{dto.taskId} AND type_id = #{dto.typeId}
</update>
<update id="updateStatusById">
@ -175,12 +179,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pcd.status AS status
FROM
bm_qrcode_info pm
LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id
AND pm.type_id = pcd.type_id
LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id AND pm.type_id = pcd.type_id
LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
WHERE
1=1 and pm.qr_code IS NULL
pm.qr_code IS NULL
<if test="taskId != null">
AND pm.task_id = #{taskId}
</if>
@ -313,24 +316,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getMachineById" resultType="com.bonus.material.purchase.domain.PurchaseCheckDetails">
SELECT
pmi.id as id,
pmi.task_id as taskId,
pmi.type_id as typeId,
pmi.ma_code as maCode
pmi.id as id,pmi.task_id as taskId,pmi.type_id as typeId,pmi.ma_code as maCode
FROM
bm_qrcode_info pmi
LEFT JOIN ma_machine mm ON pmi.ma_code = mm.ma_code AND mm.type_id = #{typeId}
LEFT JOIN
ma_machine mm ON pmi.ma_code = mm.ma_code AND mm.type_id = #{typeId}
WHERE
pmi.task_id = #{taskId}
AND pmi.type_id = #{typeId}
AND mm.ma_status = '0'
pmi.task_id = #{taskId} AND pmi.type_id = #{typeId} AND (mm.ma_status = '0' or mm.ma_status = '5' or mm.ma_status = '9' )
AND pmi.ma_code IS NOT NULL
group by
pmi.id
</select>
<select id="getTypeByQrcode" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo">
SELECT
bqi.qr_code as qrCode,
bqi.type_id as typeId
bqi.qr_code as qrCode, bqi.type_id as typeId, bqi.ma_code as maCode, bqi.task_id as taskId, bqi.is_bind as isBind
FROM
bm_qrcode_info bqi
WHERE
@ -357,14 +357,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pcd.status AS status
FROM
bm_qrcode_info pm
LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id
AND pm.type_id = pcd.type_id
LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id AND pm.type_id = pcd.type_id
LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
WHERE
1=1 and pm.qr_code IS NOT NULL
pm.qr_code IS NOT NULL
<if test="purchaseId != null">
AND pcd.id = #{purchaseId}
</if>
</select>
<update id="bindMaCodeByQrCode">
update bm_qrcode_info set ma_code = #{maCode}, is_bind = 1
where
qr_code = #{qrCode}
and status != '1'
and is_bind != '1'
and ma_code is null
and del_flag = '0'
</update>
</mapper>

View File

@ -203,7 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="bindNum != null">bind_num = #{bindNum},</if>
<if test="checkResult != null">check_result = #{checkResult},</if>
<if test="supplierId != null">supplier_id = #{supplierId},</if>
<if test="status != null">status = #{status},</if>
<if test="status != null">`status` = #{status},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="productionTime != null">production_time = #{productionTime},</if>
<if test="createTime != null">create_time = #{createTime},</if>

View File

@ -28,32 +28,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateNum">
UPDATE purchase_check_details
SET input_num = COALESCE(input_num, 0) + #{bindNum},
input_time = now()
WHERE
id = #{id}
SET input_num = ifnull(input_num, 0) + ifnull(#{bindNum},0),input_time = now()
WHERE id = #{id}
</update>
<update id="updateStatusById">
UPDATE purchase_check_details
SET `status` = #{updatedStatus}
WHERE
id = #{id}
WHERE id = #{id}
</update>
<update id="updateInputStatusById">
UPDATE purchase_check_details SET `status` = if(bind_num = input_num, #{updatedStatus}, `status`) WHERE id = #{id}
</update>
<update id="updateStorageNum">
UPDATE ma_type
SET storage_num = #{inputNum} + IFNULL(storage_num, 0)
WHERE
type_id = #{typeId}
UPDATE ma_type SET storage_num = ifnull(#{inputNum},0) + ifnull(storage_num, 0) WHERE type_id = #{typeId}
</update>
<update id="updateMachineByCode">
UPDATE ma_machine
SET ma_status = 1
WHERE
ma_code = #{maCode}
and type_id = #{typeId}
UPDATE ma_machine SET ma_status = 1 WHERE ma_code = #{maCode} and type_id = #{typeId}
</update>
<select id="selectAll" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo">

View File

@ -510,13 +510,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<update id="updateMachine">
UPDATE ma_machine
SET ma_status = '5'
WHERE
1 = 1
<if test="maId != null">
and ma_id = #{maId}
</if>
UPDATE ma_machine SET ma_status = '5' WHERE ma_id = #{maId}
</update>
<select id="getPartDetailsByTaskId" resultType="com.bonus.material.repair.domain.RepairPart">

View File

@ -62,29 +62,25 @@
<update id="updateRepairedNumAndStatus">
update repair_apply_details
set repaired_num = #{repairNum},
status = #{status},
repairer = #{repairer},
update_by = #{userId},
update_time = now()
where id = #{id}
set repaired_num = ifnull(repaired_num,0) + #{repairNum},
status = #{status},repairer = #{repairer},update_by = #{userId},update_time = now()
where
id = #{id}
and (ifnull(repaired_num,0) + #{repairNum}) &lt;= repair_num
</update>
<update id="updateRepairedNumTwo">
update repair_apply_details
set repaired_num = #{repairNum},
update_by = #{userId},
update_time = now()
set repaired_num = ifnull(repaired_num,0) + #{repairNum},update_by = #{userId},update_time = now()
where id = #{id}
and (ifnull(repaired_num,0) + #{repairNum}) &lt;= repair_num
</update>
<update id="updateRepairedNumTwoAndStatus">
update repair_apply_details
set repaired_num = #{repairNum},
status = #{status},
update_by = #{userId},
update_time = now()
set repaired_num = #{repairNum},status = #{status},update_by = #{userId},update_time = now()
where id = #{id}
and (ifnull(repaired_num,0) + #{repairNum}) &lt;= repair_num
</update>
<update id="updateScrapNum">