From 59842231f8d8f79322b6d46b325c6a3e91c0442c Mon Sep 17 00:00:00 2001 From: hayu <1604366271@qq.com> Date: Sat, 30 Aug 2025 22:44:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/LeaseApplyInfoController.java | 10 ++ .../lease/controller/LeaseTaskController.java | 29 +++++ .../lease/domain/LeaseApplyDetails.java | 3 + .../lease/mapper/LeaseApplyInfoMapper.java | 14 ++ .../lease/mapper/LeaseTaskMapper.java | 83 +++++++++++- .../lease/service/ILeaseApplyInfoService.java | 7 + .../lease/service/ILeaseTaskService.java | 21 +++ .../impl/LeaseApplyInfoServiceImpl.java | 32 +++++ .../service/impl/LeaseTaskServiceImpl.java | 122 +++++++++++++++++- .../material/task/mapper/TmTaskMapper.java | 7 + .../lease/LeaseApplyDetailsMapper.xml | 4 + .../material/lease/LeaseApplyInfoMapper.xml | 19 +++ .../mapper/material/lease/LeaseTaskMapper.xml | 109 ++++++++++++++++ .../mapper/material/task/TmTaskMapper.xml | 8 ++ 14 files changed, 460 insertions(+), 8 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java index fdd62644..632192ec 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseApplyInfoController.java @@ -418,4 +418,14 @@ public class LeaseApplyInfoController extends BaseController { } return success("审核完成"); } + + /** + * 修改预出库数量 + */ + @ApiOperation(value = "修改预出库数量") + @SysLog(title = "修改预出库数量", businessType = OperaType.UPDATE, logType = 1,module = "领料出库->修改预出库数量") + @PostMapping("/updateLeaseNum") + public AjaxResult updateLeaseNum(@RequestBody LeaseApplyDetails leaseApplyDetails) { + return leaseApplyInfoService.updateLeaseNum(leaseApplyDetails); + } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java index a53cc148..62a760e8 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/controller/LeaseTaskController.java @@ -186,6 +186,17 @@ public class LeaseTaskController extends BaseController { return success(service.getDetailsById(leaseApplyInfo)); } + /** + * 根据typeId查询待出库数量 + * @param typeId + * @return + */ + @ApiOperation(value = "根据typeId查询待出库数量") + @GetMapping(value ="/getPendingOutNumByTypeId/{typeId}") + public AjaxResult getPendingOutNumByTypeId(@PathVariable("typeId") Long typeId) { + return service.getPendingOutNumByTypeId(typeId); + } + /** * 导出领料发布详情 * @param response @@ -220,6 +231,24 @@ public class LeaseTaskController extends BaseController { return service.leasePublishReject(leaseApplyDetails); } + /** + * 领料详情删除 + */ + @ApiOperation(value = "领料详情删除") + @PostMapping("/delLeaseDetails") + public AjaxResult delLeaseDetails(@RequestBody LeaseApplyDetails leaseApplyDetails) { + return service.delLeaseDetails(leaseApplyDetails); + } + + /** + * 领用/领料---退回 + */ + @ApiOperation(value = "领料出库退回") + @PostMapping("/leaseOutReject") + public AjaxResult leaseOutReject(@RequestBody LeaseApplyDetails leaseApplyDetails) { + return service.leaseOutReject(leaseApplyDetails); + } + /** * 领用发布终结 * @param leaseApplyInfo diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java index 66b7647b..547ec91f 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/LeaseApplyDetails.java @@ -200,6 +200,9 @@ public class LeaseApplyDetails extends BaseEntity { @ApiModelProperty(value = "是否检验(0不检验,1检验)") private String isCheck; + @ApiModelProperty(value = "待出库数量") + private BigDecimal pendingOutNum; + @ApiModelProperty(value = "领料物资名称汇总") private String maTypeNames; public LeaseApplyDetails(Long id, Long parentId, Long typeId, BigDecimal preNum, BigDecimal auditNum, BigDecimal alNum, String status, Long companyId) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java index c54e07a9..c0e9b748 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyInfoMapper.java @@ -223,4 +223,18 @@ public interface LeaseApplyInfoMapper { * @return */ List selectInfo(Long id); + + /** + * 修改领用单的领用单出库数量 + * @param leaseApplyDetails + * @return + */ + int updateLeaseNum(LeaseApplyDetails leaseApplyDetails); + + /** + * 修改领用单的领用单出库数量 + * @param leaseApplyDetails + * @return + */ + int updateLeaseNumTwo(LeaseApplyDetails leaseApplyDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java index 8589782e..35a32120 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseTaskMapper.java @@ -1,10 +1,8 @@ package com.bonus.material.lease.mapper; -import com.bonus.common.biz.domain.lease.LeaseApplyInfo; -import com.bonus.common.biz.domain.lease.LeasePublishInfo; -import com.bonus.common.biz.domain.lease.WorkApplyInfo; -import com.bonus.common.biz.domain.lease.WorkPeopleInfo; +import com.bonus.common.biz.domain.lease.*; +import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.basic.domain.BmProject; import com.bonus.material.lease.domain.LeaseApplyDetails; import com.bonus.material.lease.domain.LeasePublishDetails; @@ -216,4 +214,81 @@ public interface LeaseTaskMapper { * @return */ LeaseApplyDetails selectTypeByNewType(LeaseApplyDetails leaseApplyDetails); + + /** + * 领用申请发布详情查询 + * @param detail + * @return + */ + LeaseApplyDetails selectPendingOutNum(LeaseApplyDetails detail); + + /** + * 更改设备状态为在库 + * @param maCodeVo + * @return + */ + int updateMaStatus(MaCodeVo maCodeVo); + + /** + * 修改库存 + * @param bean1 + * @return + */ + int updateInventory(LeaseApplyDetails bean1); + + /** + * 根据typeId删除领用申请详情 + * @param leaseApplyDetails + * @return + */ + int delApplyDetailsByTypeId(LeaseApplyDetails leaseApplyDetails); + + /** + * 根据parentId查询领用申请详情数量 + * @param parentId + * @return + */ + int selectLeaseApplyDetailsCountByParentId(Long parentId); + + /** + * 删除领用申请详情 + * @param parentId + * @return + */ + int deleteLeaseApplyInfo(Long parentId); + + /** + * 删除领用申请详情 + * @param leaseApplyDetails + * @return + */ + int delLeaseDetails(LeaseApplyDetails leaseApplyDetails); + + /** + * 领用申请详情修改 -- 减少领用数量 + * @param leaseApplyDetails + * @return + */ + int updateLeaseOutNum(LeaseApplyDetails leaseApplyDetails); + + /** + * 领用申请详情修改 -- 减少领用数量 + * @param leaseApplyDetails + * @return + */ + int deleteLeaseOutDetails(LeaseApplyDetails leaseApplyDetails); + + /** + * 领用申请详情修改 -- 减少领用数量 + * @param leaseApplyDetails + * @return + */ + int deleteSltInfo(LeaseApplyDetails leaseApplyDetails); + + /** + * 领用申请详情修改 -- 减少领用数量 + * @param leaseApplyDetails + * @return + */ + int updateLeaseOutNumNew(LeaseApplyDetails leaseApplyDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java index 13f362b2..8c888480 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseApplyInfoService.java @@ -185,4 +185,11 @@ public interface ILeaseApplyInfoService { * @return */ LeaseApplyInfo getOutNum(LeaseApplyInfo leaseApplyInfo); + + /** + * 修改领料任务数量 + * @param leaseApplyDetails + * @return + */ + AjaxResult updateLeaseNum(LeaseApplyDetails leaseApplyDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java index 4daabae9..3924a4aa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/ILeaseTaskService.java @@ -143,5 +143,26 @@ public interface ILeaseTaskService { * @return */ List getLeaseRecordList(LeaseApplyInfo leaseApplyInfo); + + /** + * 领用申请发布详情查询 + * @param typeId + * @return + */ + AjaxResult getPendingOutNumByTypeId(Long typeId); + + /** + * 领用出库驳回 + * @param leaseApplyDetails + * @return + */ + AjaxResult leaseOutReject(LeaseApplyDetails leaseApplyDetails); + + /** + * 领料详情删除 + * @param leaseApplyDetails + * @return + */ + AjaxResult delLeaseDetails(LeaseApplyDetails leaseApplyDetails); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java index f2c0df85..964b6fea 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseApplyInfoServiceImpl.java @@ -48,6 +48,7 @@ import org.springframework.stereotype.Service; import com.bonus.material.lease.mapper.LeaseApplyInfoMapper; import com.bonus.material.lease.service.ILeaseApplyInfoService; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -219,6 +220,14 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { } } } + if (details.size()>0){ + for (LeaseApplyDetails detail : details){ + //查询类型的库存和总待出库数量 + LeaseApplyDetails pendingOutNum = mapper.selectPendingOutNum(detail); + detail.setPendingOutNum(pendingOutNum.getPendingOutNum()); + detail.setStorageNum(pendingOutNum.getStorageNum()); + } + } stepTimes.put("领用发布查询", System.currentTimeMillis() - step81Start); if (!CollectionUtils.isEmpty(details)) { @@ -749,6 +758,29 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { return leaseApplyInfoMapper.getOutNum(leaseApplyInfo); } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult updateLeaseNum(LeaseApplyDetails leaseApplyDetails) { + try { + if (leaseApplyDetails.getNewTypeId()!= null){ + int res = leaseApplyInfoMapper.updateLeaseNum(leaseApplyDetails); + if (res<=0){ + return AjaxResult.error("修改失败"); + } + } else { + int res = leaseApplyInfoMapper.updateLeaseNumTwo(leaseApplyDetails); + if (res<=0){ + return AjaxResult.error("修改失败"); + } + } + return AjaxResult.success("修改成功"); + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error(e.getMessage()); + return AjaxResult.error("修改失败"); + } + } + /** * 关键字搜索 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java index f9976fbc..685978a9 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseTaskServiceImpl.java @@ -1,13 +1,11 @@ package com.bonus.material.lease.service.impl; import cn.hutool.core.collection.CollectionUtil; +import com.bonus.common.biz.constant.GlobalConstants; import com.bonus.common.biz.constant.MaterialConstants; import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.common.biz.domain.LeaseRecordInfo; -import com.bonus.common.biz.domain.lease.LeaseApplyInfo; -import com.bonus.common.biz.domain.lease.LeasePublishInfo; -import com.bonus.common.biz.domain.lease.WorkApplyInfo; -import com.bonus.common.biz.domain.lease.WorkPeopleInfo; +import com.bonus.common.biz.domain.lease.*; import com.bonus.common.biz.enums.HttpCodeEnum; import com.bonus.common.biz.enums.LeaseTaskStatusEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum; @@ -52,6 +50,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.util.CollectionUtils; import org.springframework.web.util.UriComponentsBuilder; @@ -933,6 +932,11 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { // 获取领料单详情 List details = mapper.selectPublishDetails(leaseApplyInfo); if (!CollectionUtils.isEmpty(details)) { + for (LeaseApplyDetails detail : details) { + //查询类型的待出库数量 + LeaseApplyDetails pendingOutNum = mapper.selectPendingOutNum(detail); + detail.setPendingOutNum(pendingOutNum.getPendingOutNum()); + } leaseApplyRequestVo.setLeaseApplyDetailsList(details); } }); @@ -1131,6 +1135,116 @@ public class LeaseTaskServiceImpl implements ILeaseTaskService { return leaseRecordInfos; } + @Override + public AjaxResult getPendingOutNumByTypeId(Long typeId) { + try { + LeaseApplyDetails leaseApplyDetails = new LeaseApplyDetails(); + leaseApplyDetails.setTypeId(typeId); + LeaseApplyDetails pendingOutNum = mapper.selectPendingOutNum(leaseApplyDetails); + return AjaxResult.success(pendingOutNum); + } catch (Exception e) { + log.error(e.getMessage()); + return AjaxResult.error("待出库数量查询失败"); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult leaseOutReject(LeaseApplyDetails leaseApplyDetails) { + try { + //1、查询整个单子是否已完成,根据taskId + TmTask tmTask = tmTaskMapper.selectStatusByTaskId(leaseApplyDetails.getTaskId()); + if (tmTask.getTaskStatus() == 4) { + return AjaxResult.error("该领料任务已出库完成,不可退回"); + } + //判断是编码还是数量 + if (leaseApplyDetails.getMaCodeVoList()!=null){ + //编码 + for (MaCodeVo maCodeVo : leaseApplyDetails.getMaCodeVoList()) { + //更改设备状态为在库 + int res = mapper.updateMaStatus(maCodeVo); + if (res == 0) { + throw new ServiceException("设备状态修改失败,请联系管理员"); + } + } + } + //判断是领用任务还是领料任务,根据newType + LeaseApplyDetails bean1 = new LeaseApplyDetails(); + if (leaseApplyDetails.getNewTypeId()!=null){ + //清除已领设备 + //把数量清除 + int res1 = mapper.updateLeaseOutNum(leaseApplyDetails); + //修改库存 + bean1.setTypeId(leaseApplyDetails.getNewTypeId()); + bean1.setAlNum(leaseApplyDetails.getAlNum()); + } else { + //清除已领设备 + //把数量清除 + int res1 = mapper.updateLeaseOutNumNew(leaseApplyDetails); + //修改库存 + bean1.setTypeId(leaseApplyDetails.getTypeId()); + bean1.setAlNum(leaseApplyDetails.getAlNum()); + } + int res = mapper.updateInventory(bean1); + if (res == 0) { + throw new ServiceException("库存修改失败,请联系管理员"); + } + // 3、修改任务状态(tm_task) + if (leaseApplyDetails.getTaskId()!= null) { + LeaseOutDetails leaseOutDetails = new LeaseOutDetails(); + leaseOutDetails.setTaskId(leaseApplyDetails.getTaskId()+""); + res = editTaskStatus(leaseOutDetails); + if (res == GlobalConstants.INT_0) { + throw new RuntimeException("出库退回失败,修改任务状态失败"); + } + } + // 删除领料出库明细表(lease_out_details) + int res2 = mapper.deleteLeaseOutDetails(leaseApplyDetails); + // 4、删除结算记录 + res = deleteSltInfo(leaseApplyDetails); + if (res == GlobalConstants.INT_0) { + throw new RuntimeException("出库失败,插入结算记录失败"); + } + return AjaxResult.success("领用出库驳回成功"); + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.error("领用出库驳回失败:",e.getMessage()); + return AjaxResult.error("领用出库驳回失败"); + } + } + + /** + * 删除结算记录 + * @param leaseApplyDetails + * @return + */ + private int deleteSltInfo(LeaseApplyDetails leaseApplyDetails) { + return mapper.deleteSltInfo(leaseApplyDetails); + } + + /** + * 修改任务状态(tm_task) + * @param leaseOutDetails + * @return + */ + private int editTaskStatus(LeaseOutDetails leaseOutDetails) { + return tmTaskMapper.updateTaskStatus(leaseOutDetails.getTaskId(), LeaseTaskStatusEnum.LEASE_TASK_IN_PROGRESS.getStatus()); + } + + @Override + public AjaxResult delLeaseDetails(LeaseApplyDetails leaseApplyDetails) { + try { + int res = mapper.delLeaseDetails(leaseApplyDetails); + if (res == 0) { + return AjaxResult.error("领料详情删除失败"); + } + return AjaxResult.success("删除成功"); + } catch (Exception e) { + log.error("领料详情删除失败:",e.getMessage()); + return AjaxResult.error("领料详情删除失败"); + } + } + /** * 生成发布批次任务 * @param thisMonthMaxOrder diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/mapper/TmTaskMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/mapper/TmTaskMapper.java index a2bd61d3..47965009 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/mapper/TmTaskMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/mapper/TmTaskMapper.java @@ -159,4 +159,11 @@ public interface TmTaskMapper { * @return */ int deleteAgreementId(@Param("taskIds") List taskIds); + + /** + * 根据任务id查询任务状态 + * @param taskId + * @return + */ + TmTask selectStatusByTaskId(Long taskId); } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyDetailsMapper.xml index 9836bf3c..f9970eb9 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseApplyDetailsMapper.xml @@ -131,6 +131,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + order by + mt.type_id desc SELECT diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml index f42f0265..112fcaf2 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lease/LeaseTaskMapper.xml @@ -1012,6 +1012,33 @@ WHERE information_id = #{informationId} + + UPDATE ma_machine + SET ma_status = '1', + update_time = now() + WHERE ma_id = #{maId} + + + update ma_type + SET storage_num = IFNULL(storage_num, 0 ) + #{alNum} + WHERE type_id = #{typeId} + + + update lease_apply_details + set al_num = al_num - #{outNum}, + update_time = now(), + status = '1' + where parent_id = #{parentId} + and new_type = #{newTypeId} + + + update lease_apply_details + set al_num = al_num - #{outNum}, + update_time = now(), + status = '1' + where parent_id = #{parentId} + and type_id = #{typeId} + select @@ -1076,4 +1141,48 @@ lpd.parent_id=#{parentId} and new_type=#{newTypeId} + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml index c87a25ba..332809f3 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/task/TmTaskMapper.xml @@ -239,4 +239,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE code = #{code} + \ No newline at end of file