From 3fa849fa983fa3f18f1e7d3a42097f46dde6b33d Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Tue, 24 Dec 2024 19:30:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E9=AA=8C=E6=94=B6=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/enums/PurchaseTaskStatusEnum.java | 43 ++++++---- .../material/ma/mapper/MachineMapper.java | 7 ++ .../controller/PurchaseBindController.java | 3 +- .../PurchaseCheckInfoController.java | 2 +- .../PurchaseMacodeInfoController.java | 15 +--- .../PurchaseNoticePersonController.java | 4 +- .../purchase/domain/PurchaseCheckDetails.java | 2 + .../purchase/domain/PurchaseMacodeInfo.java | 5 +- .../mapper/PurchaseMacodeInfoMapper.java | 4 +- .../service/IPurchaseMacodeInfoService.java | 2 +- .../service/impl/PurchaseBindServiceImpl.java | 19 ++--- .../impl/PurchaseCheckInfoServiceImpl.java | 83 ++++++++++++------- .../impl/PurchaseMacodeInfoServiceImpl.java | 44 +++++++++- .../impl/PurchaseNoticePersonServiceImpl.java | 17 +--- .../mapper/material/ma/MachineMapper.xml | 6 ++ .../material/purchase/PurchaseBindMapper.xml | 2 +- .../purchase/PurchaseCheckDetailsMapper.xml | 20 +++-- .../purchase/PurchaseMacodeInfoMapper.xml | 16 +++- 18 files changed, 188 insertions(+), 106 deletions(-) diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/PurchaseTaskStatusEnum.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/PurchaseTaskStatusEnum.java index edc094f2..9073ae7e 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/PurchaseTaskStatusEnum.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/enums/PurchaseTaskStatusEnum.java @@ -15,10 +15,11 @@ public enum PurchaseTaskStatusEnum { TO_CHECK(2, "待验收", PurchaseTaskStageEnum.CHECK.getCode()), TO_BIND(3, "待绑定", PurchaseTaskStageEnum.BIND.getCode()), TO_STORE(4, "待入库", PurchaseTaskStageEnum.STORE.getCode()), - TO_CHECK_AFTER_REJECT(12, "待验收(驳回后)", PurchaseTaskStageEnum.CHECK.getCode()), - TO_BIND_AFTER_REJECT(13, "待绑定(驳回后)", PurchaseTaskStageEnum.BIND.getCode()), - TO_STORE_AFTER_REJECT(14, "待入库(驳回后)", PurchaseTaskStageEnum.STORE.getCode()), + TO_CHECK_AFTER_REJECT(12, "验收(被驳回)", PurchaseTaskStageEnum.MANAGE.getCode()), + TO_BIND_AFTER_REJECT(13, "绑定(被驳回)", PurchaseTaskStageEnum.CHECK.getCode()), + TO_STORE_AFTER_REJECT(14, "入库(被驳回)", PurchaseTaskStageEnum.BIND.getCode()), IN_STORE(19, "已入库", PurchaseTaskStageEnum.STORE.getCode()), + TASK_IN_PROGRESS(21, "入库进行中", PurchaseTaskStageEnum.STORE.getCode()), TASK_FINISHED(22, "入库已完成", PurchaseTaskStageEnum.STORE.getCode()); @@ -34,24 +35,30 @@ public enum PurchaseTaskStatusEnum { } // 判断任务状态是否为此阶段所属状态 - public static boolean isStatusOfStage(Integer status, PurchaseTaskStageEnum stageEnum) { - PurchaseTaskStatusEnum findEnum = null; - for (PurchaseTaskStatusEnum statusEnum : values()) { - if (statusEnum.status.equals(status)) { - findEnum = statusEnum; - break; + public static boolean isStatusOfStage(Integer status, PurchaseTaskStageEnum stageEnum, Integer manageType) { + if (status == null || stageEnum == null || manageType == null) { + return true; + } + + PurchaseTaskStatusEnum findEnum = PurchaseTaskStatusEnum.getByStatus(status); + + if (findEnum == null) { + return true; + } + + // 如果是最后的入库完成状态,那么说明流程已走完,不需要再对比状态了 + if (Objects.equals(findEnum.getStatus(), TASK_FINISHED.getStatus()) || Objects.equals(findEnum.getStatus(), IN_STORE.getStatus())) { + return false; + } + + // 如果是验收阶段, 并且是数量管理的物资,那么入库被驳回的也要判断为未完成,因为计数管理不需要绑定,直接从验收到入库 + if (stageEnum == PurchaseTaskStageEnum.CHECK) { + if (Objects.equals(findEnum, PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT) && Objects.equals(manageType, 1)) { + return true; } } - if (findEnum == null || stageEnum == null) { - return true; - } else { - // 如果是最后的入库完成状态,那么说明流程已走完,不需要再对比状态了 - if (Objects.equals(findEnum.getStatus(), TASK_FINISHED.getStatus()) || Objects.equals(findEnum.getStatus(), IN_STORE.getStatus())) { - return false; - } - return findEnum.getStage().equals(stageEnum.getCode()); - } + return findEnum.getStage().equals(stageEnum.getCode()); } public static PurchaseTaskStatusEnum getByStatus(Integer status) { 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 7804f902..e7ce14b4 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 @@ -64,6 +64,13 @@ public interface MachineMapper */ int deleteMachineByMaId(Long maId); + /** + * 根据maCode,typeId 删除机具设备 + * + * @return 结果 + */ + int deleteMachineByMaCodeAndTypeId(@Param("maCode") String maCode, @Param("typeId") Long typeId); + /** * 批量删除机具设备管理 * 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 34a7d5ce..5c8222f9 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 @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -77,7 +78,7 @@ public class PurchaseBindController extends BaseController { @PreventRepeatSubmit @RequiresPermissions("purchase:bind:reject") @PostMapping("/reject") - public AjaxResult reject(@RequestBody PurchaseDto dto) { + public AjaxResult reject(@RequestBody @NotNull(message = "参数不能为空") PurchaseDto dto) { return purchaseBindService.reject(dto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java index b0b0e3f0..9685253a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java @@ -89,7 +89,7 @@ public class PurchaseCheckInfoController extends BaseController { //@RequiresPermissions("purchase:info:edit") @SysLog(title = "新购验收任务", businessType = OperaType.UPDATE, module = "物资新购->修改新购验收任务") @PutMapping - public AjaxResult edit(@RequestBody PurchaseCheckDto purchaseCheckDto) { + public AjaxResult edit(@RequestBody @NotNull(message = "请求参数不能为空") @Valid PurchaseCheckDto purchaseCheckDto) { try { return toAjax(purchaseCheckInfoService.updatePurchaseCheckInfo(purchaseCheckDto)); } catch (Exception e) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseMacodeInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseMacodeInfoController.java index 447cd849..b0e4529f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseMacodeInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseMacodeInfoController.java @@ -8,14 +8,7 @@ import com.bonus.material.common.annotation.PreventRepeatSubmit; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.bonus.common.log.annotation.SysLog; import com.bonus.material.purchase.domain.PurchaseMacodeInfo; import com.bonus.material.purchase.service.IPurchaseMacodeInfoService; @@ -111,10 +104,10 @@ public class PurchaseMacodeInfoController extends BaseController { */ @ApiOperation(value = "删除新购验收编号管理") @PreventRepeatSubmit - @RequiresPermissions("purchase:info:remove") +// @RequiresPermissions("purchase:info:remove") @SysLog(title = "新购验收编号管理", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除新购验收编号管理") - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) { + @PostMapping("/un_bind") + public AjaxResult unBind(@RequestBody List ids) { return toAjax(purchaseMacodeInfoService.deletePurchaseMacodeInfoByIds(ids)); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseNoticePersonController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseNoticePersonController.java index 04f4c1da..210be041 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseNoticePersonController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseNoticePersonController.java @@ -69,7 +69,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "导出新购短信通知人员列表") @PreventRepeatSubmit @RequiresPermissions("purchase:person:notice") - @SysLog(title = "新购短信通知人员", businessType = OperaType.EXPORT, module = "物资新购->导出新购短信通知人员") + @SysLog(title = "新购短信管理", businessType = OperaType.EXPORT, module = "物资新购->导出新购短信通知人员") @PostMapping("/export") public void export(HttpServletResponse response, PurchaseNoticePerson purchaseNoticePerson) { List list = purchaseNoticePersonService.selectPurchaseNoticePersonList(purchaseNoticePerson); @@ -137,7 +137,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "修改新购短信通知人员") @PreventRepeatSubmit @RequiresPermissions("purchase:person:notice") - @SysLog(title = "新购短信通知人员", businessType = OperaType.UPDATE, module = "物资新购->修改新购短信通知人员") + @SysLog(title = "新购短信管理", businessType = OperaType.UPDATE, module = "物资新购->修改新购短信通知人员") @PutMapping public AjaxResult edit(@RequestBody PurchaseNoticePerson purchaseNoticePerson) { try { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java index 7fbf5bc4..6c8010a5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckDetails.java @@ -12,6 +12,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import com.bonus.common.core.web.domain.BaseEntity; +import lombok.experimental.Accessors; /** * 新购验收任务详细对象 purchase_check_details @@ -20,6 +21,7 @@ import com.bonus.common.core.web.domain.BaseEntity; @EqualsAndHashCode(callSuper = false) @Data @ToString +@Accessors(chain = true) public class PurchaseCheckDetails extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseMacodeInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseMacodeInfo.java index a5f7f6a6..68289948 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseMacodeInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseMacodeInfo.java @@ -15,11 +15,10 @@ import java.util.Date; * @author xsheng * @date 2024-10-16 */ - - @Data @ToString public class PurchaseMacodeInfo extends BaseEntity { + private static final long serialVersionUID = 1L; /** 主键id */ @@ -59,6 +58,8 @@ public class PurchaseMacodeInfo extends BaseEntity { @Excel(name = "状态", readConverterExp = "0=,待入库,1=,已入库") private String status; + private String keyWord; + /** 数据所属组织 */ @Excel(name = "数据所属组织") @ApiModelProperty(value = "数据所属组织") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseMacodeInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseMacodeInfoMapper.java index da4b527a..acbf41bb 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseMacodeInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseMacodeInfoMapper.java @@ -57,7 +57,9 @@ public interface PurchaseMacodeInfoMapper { * @param ids 需要删除的数据主键集合 * @return 结果 */ - public int deletePurchaseMacodeInfoByIds(Long[] ids); + public int deletePurchaseMacodeInfoByIds(@Param("ids") List ids); + + public int updatePurchaseMacodeInfoByIds(@Param("ids") List ids); public int getPurchaseMaCodeCount(@Param("taskId") Long taskId, @Param("typeId") Long typeId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseMacodeInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseMacodeInfoService.java index 47c11a87..5f18782b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseMacodeInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseMacodeInfoService.java @@ -48,7 +48,7 @@ public interface IPurchaseMacodeInfoService { * @param ids 需要删除的新购验收编号管理主键集合 * @return 结果 */ - public int deletePurchaseMacodeInfoByIds(Long[] ids); + public int deletePurchaseMacodeInfoByIds(List ids); /** * 删除新购验收编号管理信息 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 1c3cea75..4c02fe43 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 @@ -232,34 +232,31 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService { @Override @Transactional(rollbackFor = Exception.class) public AjaxResult reject(PurchaseDto dto) { - //一级页面驳回 int result = 0; if (dto.getTaskId() != null) { + //一级页面驳回 //根据任务id查询详细信息 List list = purchaseBindMapper.getDetails(dto); if (CollectionUtils.isNotEmpty(list)) { for (PurchaseVo purchaseVo : list) { //更新状态为已驳回 - if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || - purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())) { - purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseVo.getPurchaseId()); + if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND.getStatus()) || purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus())) { + result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseVo.getPurchaseId()); } } } - //result += tmTaskMapper.updateStatusById(MaterialConstants.TEN_CONSTANT, dto.getTaskId()); - } - //二级页面驳回 - if (dto.getPurchaseId() != null) { - List idList = Arrays.asList(dto.getPurchaseId().split(",")); + } else if (dto.getPurchaseId() != null) { + // 二级页面驳回 + String[] idList = dto.getPurchaseId().split(","); for (String purchaseId : idList) { result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseId); } - } if (result > 0) { return AjaxResult.success("操作成功"); + } else { + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); } - return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java index bc614773..c7107cc5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java @@ -7,7 +7,6 @@ import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import cn.hutool.core.map.MapUtil; import com.bonus.common.biz.constant.BmConfigItems; import com.bonus.common.biz.enums.MaTypeManageTypeEnum; import com.bonus.common.biz.enums.PurchaseTaskStageEnum; @@ -30,7 +29,6 @@ import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper; import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.mapper.TmTaskMapper; import org.apache.commons.lang3.BooleanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper; @@ -50,7 +48,7 @@ import static com.bonus.common.biz.constant.MaterialConstants.PURCHASE_TASK_TYPE @Service public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { - @Autowired + @Resource private IBmConfigService bmConfigService; @Resource @@ -59,7 +57,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { @Resource private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper; - @Autowired + @Resource private PurchaseMacodeInfoMapper purchaseMacodeInfoMapper; @Resource @@ -87,20 +85,35 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId()); if (purchaseCheckInfo != null) { purchaseCheckDtoResult.setPurchaseCheckInfo(purchaseCheckInfo); - boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER); - List purchaseCheckDetailsList; - if (isAllowPartTransfer) { - purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); - if (purchaseQueryDto.getStatusList().contains(PurchaseTaskStatusEnum.TO_STORE.getStatus())) { - purchaseCheckDetailsList = purchaseCheckDetailsList.stream() - .filter(o -> MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType()) || - MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(o.getManageType()) && getPurchaseMaCodeCount(o.getTaskId(), o.getTypeId()) > 0) - .collect(Collectors.toList()); +// boolean isAllowPartTransfer = bmConfigService.isBmConfigEnabledWithDefaultFalse(BmConfigItems.BOOLEAN_ALLOW_PURCHASE_PART_TRANSFER); + List purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); + if (purchaseQueryDto.getTaskStage() != null) { + // 根据阶段来过滤详情数据 + switch (purchaseQueryDto.getTaskStage()) { + case PURCHASE_TASK_STAGE_MANAGE: + // 新购管理阶段展示全部任务、不进行过滤 + break; + case PURCHASE_TASK_STAGE_CHECK: + purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus())).collect(Collectors.toList()); + purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus())).collect(Collectors.toList()); + break; + case PURCHASE_TASK_STAGE_BIND: + purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> + !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) && + !PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus()) + ).collect(Collectors.toList()); + break; + case PURCHASE_TASK_STAGE_STORE: + purchaseCheckDetailsList = purchaseCheckDetailsList.stream().filter(o -> PurchaseTaskStatusEnum.IN_STORE.getStatus().equals(o.getStatus()) || + PurchaseTaskStatusEnum.TO_STORE.getStatus().equals(o.getStatus()) || PurchaseTaskStatusEnum.TASK_FINISHED.getStatus().equals(o.getStatus()) + ).collect(Collectors.toList()); + break; + default: + System.err.println("未知的新购任务阶段:" + purchaseQueryDto.getTaskStage()); } - } else { - purchaseQueryDto.setStatusList(null); - purchaseCheckDetailsList = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); } + + //针对于app查询可能存在的验收图片 extractedFile(purchaseCheckDetailsList); purchaseCheckDtoResult.setPurchaseCheckDetailsList(purchaseCheckDetailsList); @@ -110,7 +123,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 提取app新购验收文件信息 - * @param purchaseCheckDetailsList + * @param purchaseCheckDetailsList 新购验收明细列表 */ private void extractedFile(List purchaseCheckDetailsList) { if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) { @@ -169,19 +182,19 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { break; case PURCHASE_TASK_STAGE_CHECK: purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus())).collect(Collectors.toList()); + purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus())).collect(Collectors.toList()); break; case PURCHASE_TASK_STAGE_BIND: purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) && + !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) && - !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) + !PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus()) ).collect(Collectors.toList()); break; case PURCHASE_TASK_STAGE_STORE: - purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> - !PurchaseTaskStatusEnum.TO_NOTICE.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_CHECK.getStatus().equals(o.getStatus()) && - !PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus().equals(o.getStatus()) && !PurchaseTaskStatusEnum.TO_BIND.getStatus().equals(o.getStatus()) && - !PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus().equals(o.getStatus()) + purchaseCheckDetails = purchaseCheckDetails.stream().filter(o -> PurchaseTaskStatusEnum.IN_STORE.getStatus().equals(o.getStatus()) || + PurchaseTaskStatusEnum.TO_STORE.getStatus().equals(o.getStatus()) || PurchaseTaskStatusEnum.TASK_FINISHED.getStatus().equals(o.getStatus()) ).collect(Collectors.toList()); break; default: @@ -203,7 +216,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { throw new IllegalArgumentException("采购数量和价格必须为非负数"); } if (!isIncludeStage) { - isIncludeStage = PurchaseTaskStatusEnum.isStatusOfStage(detail.getStatus(), PurchaseTaskStageEnum.getByCode(purchaseQueryDto.getTaskStage())); + isIncludeStage = PurchaseTaskStatusEnum.isStatusOfStage(detail.getStatus(), PurchaseTaskStageEnum.getByCode(purchaseQueryDto.getTaskStage()), detail.getManageType()); } // 更新 purchaseMaTotalNumber @@ -309,11 +322,13 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) { for (PurchaseCheckDetails details : purchaseCheckDetailsList) { details.setTaskId(taskId); - details.setStatus(PurchaseTaskStatusEnum.TO_NOTICE.getStatus()); + details.setStatus(Objects.equals(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus(), details.getStatus()) ? + PurchaseTaskStatusEnum.TO_CHECK.getStatus() : + PurchaseTaskStatusEnum.TO_NOTICE.getStatus()); details.setInputStatus("0"); List bmFileInfos = details.getBmFileInfos(); if (!CollectionUtils.isEmpty(bmFileInfos)) { - bmFileInfos.stream().forEach(o -> o.setTaskId(taskId)); + bmFileInfos.forEach(o -> o.setTaskId(taskId)); bmFileInfoMapper.insertBmFileInfos(bmFileInfos); } } @@ -341,13 +356,13 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { List purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByQueryDto(purchaseQueryDto); List codeList = purchaseCheckDetails.stream().filter(o -> MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(o.getManageType())).collect(Collectors.toList()); List numList = purchaseCheckDetails.stream().filter(o -> MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(o.getManageType())).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(codeList) && codeList.size() > 0) { + if (!CollectionUtils.isEmpty(codeList)) { for (PurchaseCheckDetails details : codeList) { details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus()); updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details); } } - if (!CollectionUtils.isEmpty(numList) && numList.size() > 0) { + if (!CollectionUtils.isEmpty(numList)) { for (PurchaseCheckDetails details : numList) { details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus()); updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details); @@ -367,6 +382,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { AjaxResult result = new AjaxResult(); if (!CollectionUtils.isEmpty(purchaseVerifyVo.getPurchaseCheckDetailsList())) { if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) { + // 验收通过处理流程 for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) { if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(details.getManageType())) { details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus()); @@ -377,8 +393,9 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { extractedFile(details); } } else { + // 验收驳回处理流程 for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) { - details.setStatus(PurchaseTaskStatusEnum.TO_NOTICE.getStatus()); + details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus()); result = purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) > 0 ? AjaxResult.success("detail验证驳回成功") : AjaxResult.error("details无验证信息"); tmTaskMapper.updateTmTask(new TmTask() .setTaskId(details.getTaskId()) @@ -396,7 +413,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * app新购验收图片上传方法抽取 - * @param details + * @param details 详情 */ private void extractedFile(PurchaseCheckDetails details) { if (!CollectionUtils.isEmpty(details.getBmFileInfos())) { @@ -458,6 +475,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) { purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate()); purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername()); + if (!CollectionUtils.isEmpty(purchaseCheckDto.getPurchaseCheckDetailsList())) { + purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(Objects::isNull); + purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> Objects.isNull(o.getStatus())); + purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> + !Objects.equals(o.getStatus(), PurchaseTaskStatusEnum.TO_NOTICE.getStatus()) && + !Objects.equals(o.getStatus(), PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus()) + ); + } try { Long[] ids = new Long[]{purchaseCheckDto.getPurchaseCheckInfo().getId()}; purchaseCheckDetailsMapper.deletePurchaseCheckDetailsByParentIds(ids); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseMacodeInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseMacodeInfoServiceImpl.java index cafc194c..3e93712b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseMacodeInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseMacodeInfoServiceImpl.java @@ -1,13 +1,20 @@ package com.bonus.material.purchase.service.impl; +import java.math.BigDecimal; import java.util.List; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; +import com.bonus.material.ma.mapper.MachineMapper; +import com.bonus.material.purchase.domain.PurchaseCheckDetails; +import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper; import com.bonus.material.purchase.domain.PurchaseMacodeInfo; import com.bonus.material.purchase.service.IPurchaseMacodeInfoService; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; /** * 新购验收编号管理Service业务层处理 @@ -17,9 +24,16 @@ import com.bonus.material.purchase.service.IPurchaseMacodeInfoService; */ @Service public class PurchaseMacodeInfoServiceImpl implements IPurchaseMacodeInfoService { + @Autowired private PurchaseMacodeInfoMapper purchaseMacodeInfoMapper; + @Resource + private MachineMapper machineMapper; + + @Resource + private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper; + /** * 查询新购验收编号管理 * @@ -81,8 +95,34 @@ public class PurchaseMacodeInfoServiceImpl implements IPurchaseMacodeInfoService * @return 结果 */ @Override - public int deletePurchaseMacodeInfoByIds(Long[] ids) { - return purchaseMacodeInfoMapper.deletePurchaseMacodeInfoByIds(ids); + @Transactional(rollbackFor = Exception.class) + public int deletePurchaseMacodeInfoByIds(List ids) { + for (Integer id : ids) { + PurchaseMacodeInfo purchaseMacodeInfo = purchaseMacodeInfoMapper.selectPurchaseMacodeInfoById(Long.valueOf(id)); + List purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsList(new PurchaseCheckDetails() + .setTaskId(purchaseMacodeInfo.getTaskId()).setTypeId(purchaseMacodeInfo.getTypeId())); + + if (!purchaseCheckDetails.isEmpty()) { + purchaseCheckDetailsMapper.updatePurchaseCheckDetails(new PurchaseCheckDetails() + .setId(purchaseCheckDetails.get(0).getId()) + .setBindNum(purchaseCheckDetails.get(0).getBindNum().subtract(BigDecimal.ONE)) + ); + } else { + throw new ServiceException("未找到对应验收详情数据,请检查数据是否正确"); + } + + int delSize = machineMapper.deleteMachineByMaCodeAndTypeId(purchaseMacodeInfo.getMaCode(), purchaseMacodeInfo.getTypeId()); + if (delSize != 1) { + throw new ServiceException("机具物资表删除失败,物资清除:" + delSize + "条,数据已回滚"); + } + } + int delTotal = purchaseMacodeInfoMapper.updatePurchaseMacodeInfoByIds(ids); + if (delTotal != ids.size()) { + throw new ServiceException("删除失败,解绑:" + (ids.size() - delTotal) + "条,数据已回滚"); + } + + + return delTotal; } /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java index 06e45324..87fbec5d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java @@ -72,13 +72,6 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer @Override @Transactional public AjaxResult batchSendSms(PurchaseNoticePersonDto purchaseNoticePersonDto) { - -// for (String phoneNumber : purchaseNoticePersonDto.getPhoneNumbers()) { -// if (phoneNumber != null && phoneNumber.length() != 11) { -// String decrypted = Sm4Utils.decrypt(phoneNumber); -// } -// } - for (int i = 0; i < purchaseNoticePersonDto.getPhoneNumbers().size(); i++) { String phoneNumber = purchaseNoticePersonDto.getPhoneNumbers().get(i); if (phoneNumber != null && phoneNumber.length() != 11) { @@ -86,9 +79,6 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer purchaseNoticePersonDto.getPhoneNumbers().set(i, decrypted); } } - - - String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers()); try { String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),""); @@ -99,13 +89,8 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer .setTaskType(TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId()) .setTaskStatus(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus()) ); - // 修改采购明细的任务状态 - purchaseCheckDetailsService.batchUpdateDetailsTaskStatus( - purchaseNoticePersonDto.getTaskId(), - PurchaseTaskStatusEnum.TO_CHECK.getStatus(), "" - ); - + purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), ""); return AjaxResult.success("短信发送成功:" + sendResult); } else { return AjaxResult.error("短信发送失败,发送结果为空"); 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 8c9d8472..83966aa5 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 @@ -297,6 +297,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from ma_machine where ma_id = #{maId} + delete from ma_machine where ma_id in @@ -370,4 +371,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ma.ma_id limit 1 + + + delete from ma_machine where ma_code = #{maCode} and type_id = #{typeId} + and ma_status = '0' + \ 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 a454db13..65d44c9f 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 @@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" UPDATE purchase_check_details SET `status` = #{updatedStatus} WHERE - id = #{id} + id = #{id} and status = '3' or status = '14' 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 f6dabdd6..b3799bf7 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 @@ -38,7 +38,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, task_id, type_id, purchase_price, purchase_tax_price, purchase_num, check_num, bind_num, check_result, supplier_id, status, create_by, production_time, create_time, update_by, update_time, remark, check_url_name, check_url, input_num, input_status, input_time, file_name, file_url, company_id, fix_code from purchase_check_details + select id, task_id, type_id, purchase_price, purchase_tax_price, purchase_num, check_num, bind_num, check_result, + supplier_id, status, create_by, production_time, create_time, update_by, update_time, remark, check_url_name, + check_url, input_num, input_status, input_time, file_name, file_url, company_id, fix_code + from purchase_check_details @@ -224,6 +227,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from purchase_check_details where id = #{id} + delete from purchase_check_details where task_id in ( select task_id @@ -233,7 +237,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} - ) + ) and status = 1 or status = 12 @@ -312,6 +316,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + update purchase_check_details @@ -319,6 +324,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" `status` = #{newTaskStatus}, check_result = #{checkResult} where task_id = #{taskId} + and + `status` = 1 or `status` = 12 @@ -340,10 +347,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update purchase_check_details - `status` = #{status}, - check_result = #{checkResult}, - check_num = purchase_num, - check_time = NOW(), + `status` = #{status},check_result = #{checkResult},check_num = purchase_num,check_time = NOW(), warn_documents = #{warnDocuments}, @@ -351,14 +355,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" reason = #{reason} - where - 1=1 + and task_id = #{taskId} and type_id = #{typeId} + @@ -47,6 +48,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and pmi.code_type = #{codeType} and pmi.status = #{status} and pmi.company_id = #{companyId} + + and (pmi.ma_code like concat('%', #{keyWord}, '%') or pmi.qr_code like concat('%', #{keyWord}, '%')) + + and pmi.ma_code is not null @@ -118,11 +123,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from bm_qrcode_info where id in - + #{id} + + update bm_qrcode_info set ma_code = null where id in + + #{id} + + +