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 026b0d24..eca3bf2e 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 @@ -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查询标准箱信息 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmQrBoxMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmQrBoxMapper.java index abc645ad..da8b136a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmQrBoxMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmQrBoxMapper.java @@ -37,6 +37,11 @@ public interface BmQrBoxMapper { */ int updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo); + /** + * 根据二维码QR编码查询绑定的物资信息 + */ + BmQrBoxInfo getMaInfoByQrCode(String qrCode); + /** * 修改标准箱状态 -- 增加绑定编码时调用 */ 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 e4618cfa..8c0b6a75 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 @@ -66,6 +66,12 @@ public interface BmQrBoxService { */ AjaxResult updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo); + /** + * 通过QR_CODE 查询物资信息 + * @param qrCode 二维码编码 + */ + AjaxResult getMaInfoByQrCode(String qrCode); + /** * APP - 扫码绑定物资 */ 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 839697aa..064c8313 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 @@ -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 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 { // 物资状态要求是待入库、在库状态 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java index 5c8222f9..68cb0307 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseBindController.java @@ -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); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java index fb3b5098..ff0e8e27 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java @@ -47,7 +47,6 @@ public class PurchaseStorageController extends BaseController { @ApiOperation(value = "查询待绑定编号机具详情") - @PreventRepeatSubmit // @RequiresPermissions("purchase:storage:query") @PostMapping("/getMachineById") public AjaxResult getMachineById(@RequestBody PurchaseDto dto) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java index b336dab0..46902392 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/vo/PurchaseVo.java @@ -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; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java index f45f73b9..51b3ebf9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseBindMapper.java @@ -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 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java index f20fb1a8..290538d7 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java @@ -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 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java index 4c02fe43..fa6d16a5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseBindServiceImpl.java @@ -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,45 +142,40 @@ 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执行失败!"); + } + } + if (purchaseStorageMapper.insertMachine(purchaseDto) != 1) { + return AjaxResult.error(1116,"插入maMachine时SQL执行失败!"); + } } - //根据前端传参更新绑定数量 - result += purchaseBindMapper.updateNum(dto, dto.getDtoList().size()); + // 更新绑定数量,并刷新状态 + if (purchaseBindMapper.updateNum(dto, dto.getDtoList().size()) < 1) { + return AjaxResult.error(1117,"更新绑定数量时SQL执行失败!"); + } else { + purchaseBindMapper.updateStatusWhereNum(dto); + } + //根据任务id和类型id查询状态 List 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 list = purchaseBindMapper.getDetails(purchaseDto); -// Map> 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()); + return AjaxResult.success("绑定成功"); } /** @@ -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) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java index 846da9ed..75438efa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseStorageServiceImpl.java @@ -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 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 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 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); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index d6645e06..d01565a1 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -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: { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmQrBoxMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmQrBoxMapper.xml index 2b8f1595..f4fe6597 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmQrBoxMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmQrBoxMapper.xml @@ -128,22 +128,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete - from bm_qrcode_box - where box_id = #{boxId} + delete from bm_qrcode_box where box_id = #{boxId} - delete - from bm_qrcode_box_bind - where id = #{id} + delete from bm_qrcode_box_bind where id = #{id} - 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} @@ -218,4 +211,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bqb.box_code = #{boxCode} AND mt.type_id = #{maTypeId} + + \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml index 65d44c9f..79cd87b3 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseBindMapper.xml @@ -88,10 +88,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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 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} @@ -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 ma_type mt ON pcd.type_id = mt.type_id - LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.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 AND pm.task_id = #{taskId} @@ -313,24 +316,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT - pm.task_id AS taskId, - pcd.id AS purchaseId, - mt1.type_name AS materialName, - mt.type_name AS materialModel, - pm.ma_code AS maCode, - pm.create_by AS createBy, - pm.create_time AS createTime, - pm.type_id AS typeId, - pm.out_fac_code AS outFacCode, - pcd.production_time AS productDate, - pm.qr_code AS qrCode, - pm.qr_url AS qrUrl, - pcd.check_num AS purchaseNum, - pcd.check_num AS checkNum, - pcd.bind_num AS bindNum, - pcd.status AS status + pm.task_id AS taskId, + pcd.id AS purchaseId, + mt1.type_name AS materialName, + mt.type_name AS materialModel, + pm.ma_code AS maCode, + pm.create_by AS createBy, + pm.create_time AS createTime, + pm.type_id AS typeId, + pm.out_fac_code AS outFacCode, + pcd.production_time AS productDate, + pm.qr_code AS qrCode, + pm.qr_url AS qrUrl, + pcd.check_num AS purchaseNum, + pcd.check_num AS checkNum, + pcd.bind_num AS bindNum, + 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 + 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 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 - - AND pcd.id = #{purchaseId} - + pm.qr_code IS NOT NULL + + AND pcd.id = #{purchaseId} + + + + 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' + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml index b3799bf7..605e4c4e 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckDetailsMapper.xml @@ -203,7 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bind_num = #{bindNum}, check_result = #{checkResult}, supplier_id = #{supplierId}, - status = #{status}, + `status` = #{status}, create_by = #{createBy}, production_time = #{productionTime}, create_time = #{createTime}, diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml index 74e76281..63913410 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml @@ -28,32 +28,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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 purchase_check_details - SET `status` = #{updatedStatus} - WHERE - id = #{id} + SET `status` = #{updatedStatus} + WHERE id = #{id} + + + + UPDATE purchase_check_details SET `status` = if(bind_num = input_num, #{updatedStatus}, `status`) WHERE id = #{id} - 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 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} diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index 60e75274..db272a64 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -62,29 +62,25 @@ 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}) <= repair_num 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}) <= repair_num 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}) <= repair_num