From d9e2109ddbd6b41b7d771a240259ea725e297d07 Mon Sep 17 00:00:00 2001 From: bns_han <1604366271@qq.com> Date: Wed, 17 Jan 2024 18:28:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E9=85=8D=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BackApplyController.java | 11 + .../PurchaseAccessoryController.java | 76 ++++++- .../PurchaseMacodeInfoController.java | 10 + .../mapper/PurchaseAccessoryMapper.java | 40 ++++ .../service/IPurchaseAccessoryService.java | 41 ++++ .../impl/PurchaseAccessoryServiceImpl.java | 206 +++++++++++++++--- .../material/PurchaseAccessoryMapper.xml | 185 ++++++++++++++++ 7 files changed, 532 insertions(+), 37 deletions(-) diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java index 604a5b24..8f683557 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java @@ -72,6 +72,17 @@ public class BackApplyController extends BaseController { return getDataTable(list); } + /** + * 退料申请详情--用于退料单,不带分页 + */ + @ApiOperation(value = "退料单") + @GetMapping("/materialReturnNote") + public AjaxResult materialReturnNote(BackApplyInfo bean) + { + List list = backApplyService.getView(bean); + return success(list); + } + /** * 退料申请详情修改 */ diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseAccessoryController.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseAccessoryController.java index cead3540..7530827e 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseAccessoryController.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseAccessoryController.java @@ -1,23 +1,19 @@ package com.bonus.sgzb.material.controller; -import com.bonus.sgzb.common.core.utils.poi.ExcelUtil; import com.bonus.sgzb.common.core.web.controller.BaseController; import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.page.TableDataInfo; import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.enums.BusinessType; +import com.bonus.sgzb.material.domain.PurchaseCheckDetails; import com.bonus.sgzb.material.domain.PurchaseCheckInfo; -import com.bonus.sgzb.material.domain.PurchaseInput; +import com.bonus.sgzb.material.domain.PurchasePartDetails; import com.bonus.sgzb.material.domain.PurchasePartInfo; import com.bonus.sgzb.material.service.IPurchaseAccessoryService; -import com.bonus.sgzb.material.service.IPurchaseCheckInfoService; -import com.bonus.sgzb.material.vo.NoticeInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; - -import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -33,6 +29,29 @@ public class PurchaseAccessoryController extends BaseController @Autowired private IPurchaseAccessoryService purchaseAccessoryService; + /** + * 查询新购配件任务验收列表 + */ + @ApiOperation("查询新购配件任务验收列表") + @GetMapping("/list") + public TableDataInfo list(PurchasePartInfo purchasePartInfo) + { + startPage(); + List list = purchaseAccessoryService.selectPurchasePartInfoList(purchasePartInfo); + return getDataTable(list); + } + + /** + * 获取新购配件任务验收详细信息 + */ + @ApiOperation("获取新购配件任务验收详细信息") + @GetMapping(value = "/getDetails") + public AjaxResult getInfo(@RequestParam(required = false) Long taskId, + @RequestParam(required = false) String keyWord) + { + return success(purchaseAccessoryService.selectPurchasePartInfoByTaskId(taskId,keyWord)); + } + /** * 新增新购配件任务 */ @@ -44,4 +63,49 @@ public class PurchaseAccessoryController extends BaseController return toAjax(purchaseAccessoryService.insertPurchaseAccessory(purchasePartInfo)); } + /** + * 修改新购配件任务 + */ + @ApiOperation("修改新购配件任务") + @Log(title = "修改新购配件任务", businessType = BusinessType.UPDATE) + @PostMapping(value = "/edit") + public AjaxResult edit(@RequestBody PurchasePartInfo purchasePartInfo){ + return toAjax(purchaseAccessoryService.updatePurchaseCheckInfo(purchasePartInfo)); + } + + /** + * 删除新购配件任务 + */ + @ApiOperation("删除新购配件任务") + @Log(title = "删除新购配件任务", businessType = BusinessType.DELETE) + @DeleteMapping("/{taskIds}") + public AjaxResult remove(@PathVariable Long[] taskIds) + { + return purchaseAccessoryService.deletePurchasePartInfoByTaskIds(taskIds); + } + + /** + * 新购配件验收 + */ + @ApiOperation(value = "新购配件验收") + @Log(title = "新购配件验收", businessType = BusinessType.UPDATE) + @PostMapping(value = "/check") + public AjaxResult check(@RequestBody List purchasePartDetailsList) + { + return toAjax(purchaseAccessoryService.updatePurchaseCheckDetails(purchasePartDetailsList)); + } + + + + /** + * 查询新购配件入库任务列表 + */ + @ApiOperation("查询新购配件入库任务列表") + @GetMapping("/putInList") + public TableDataInfo putInList(PurchasePartInfo purchasePartInfo) + { + startPage(); + List list = purchaseAccessoryService.selectPutInListList(purchasePartInfo); + return getDataTable(list); + } } diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java index 6a1e9c37..b29bca26 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/PurchaseMacodeInfoController.java @@ -77,6 +77,16 @@ public class PurchaseMacodeInfoController extends BaseController return getDataTable(purchaseMacodeInfoService.selectPutinDetails(purchaseMacodeInfo)); } + /** + * 获取新购验收编号管理详细信息--用于入库单,不带分页 + */ + @ApiOperation(value = "入库单") + @GetMapping(value = "/warehousingEntry") + public AjaxResult warehousingEntry(PurchaseMacodeInfo purchaseMacodeInfo) + { + return success(purchaseMacodeInfoService.selectPutinDetails(purchaseMacodeInfo)); + } + /** * 新增新购验收编号管理 */ diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/PurchaseAccessoryMapper.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/PurchaseAccessoryMapper.java index edec0deb..c7d7c168 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/PurchaseAccessoryMapper.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/PurchaseAccessoryMapper.java @@ -32,4 +32,44 @@ public interface PurchaseAccessoryMapper * @date 2024/1/16 14:05 */ int insertPurchasePartDetailsList(@Param("purchasePartDetailsList") List purchasePartDetailsList); + + List selectPurchasePartInfoList(PurchasePartInfo purchasePartInfo); + + String selectTypeNameByTaskId(Long taskId); + + PurchasePartInfo selectPurchasePartInfoByTaskId(Long taskId); + + List selectPurchasePartDetailsList(PurchasePartDetails purchasePartDetails); + + /** + * 先删除全部的任务详情信息 + * @param taskId + * @return int + */ + int deletePartDetailsByTaskId(Long taskId); + + /** + * 修改新购配件任务purchase_part_info + * @param purchasePartInfo + * @return int + */ + int updatePurchasePartInfo(PurchasePartInfo purchasePartInfo); + + /** + * 删除新购配件任务 + * @param taskIds + * @return int + */ + int deletePurchasePartInfoByTaskIds(Long[] taskIds); + + /** + * 新购配件入库列表 + * @param purchasePartInfo + * @return List + */ + List selectPutInListList(PurchasePartInfo purchasePartInfo); + + int updatePurchasePartDetails(PurchasePartDetails purchasePartDetails); + + int selectPurchasePartDetailsStatus(Long taskId); } diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/IPurchaseAccessoryService.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/IPurchaseAccessoryService.java index 0f01f94e..7de0f5ca 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/IPurchaseAccessoryService.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/IPurchaseAccessoryService.java @@ -1,7 +1,9 @@ package com.bonus.sgzb.material.service; +import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.material.domain.PurchaseCheckInfo; import com.bonus.sgzb.material.domain.PurchaseInput; +import com.bonus.sgzb.material.domain.PurchasePartDetails; import com.bonus.sgzb.material.domain.PurchasePartInfo; import com.bonus.sgzb.material.vo.NoticeInfoVO; @@ -21,4 +23,43 @@ public interface IPurchaseAccessoryService */ public int insertPurchaseAccessory(PurchasePartInfo purchasePartInfo); + /** + * 查询新购配件任务purchase_part_info列表 + * + * @param purchasePartInfo 新购配件任务purchase_part_info + * @return 新购配件任务purchase_part_info集合 + */ + List selectPurchasePartInfoList(PurchasePartInfo purchasePartInfo); + + /** + * 查询新购配件任务purchase_part_info + * + * @param taskId 新购配件任务purchase_part_info主键 + * @return 新购配件任务purchase_part_info + */ + PurchasePartInfo selectPurchasePartInfoByTaskId(Long taskId, String keyWord); + + /** + * 修改新购配件任务purchase_part_info + * + * @param purchasePartInfo 新购配件任务purchase_part_info + * @return 结果 + */ + int updatePurchaseCheckInfo(PurchasePartInfo purchasePartInfo); + + /** + * 删除新购配件任务 + * @param taskIds + * @return int + */ + AjaxResult deletePurchasePartInfoByTaskIds(Long[] taskIds); + + /** + * 新购配件入库列表 + * @param purchasePartInfo + * @return List + */ + List selectPutInListList(PurchasePartInfo purchasePartInfo); + + int updatePurchaseCheckDetails(List purchasePartDetailsList); } diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseAccessoryServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseAccessoryServiceImpl.java index 8373a563..21710b9c 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseAccessoryServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/PurchaseAccessoryServiceImpl.java @@ -1,6 +1,7 @@ package com.bonus.sgzb.material.service.impl; import com.bonus.sgzb.common.core.utils.DateUtils; +import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.material.domain.*; import com.bonus.sgzb.material.mapper.PurchaseAccessoryMapper; @@ -20,11 +21,10 @@ import java.util.Date; import java.util.List; /** - * 新购验收任务Service业务层处理 - * - * @author bonus - * @date 2023-12-10 - */ +* @description 新购配件任务Service业务层处理 +* @author hay +* @date 2024/1/17 16:42 +*/ @Service public class PurchaseAccessoryServiceImpl implements IPurchaseAccessoryService { @@ -40,34 +40,178 @@ public class PurchaseAccessoryServiceImpl implements IPurchaseAccessoryService * @return 结果 */ @Override - @Transactional - public int insertPurchaseAccessory(PurchasePartInfo purchasePartInfo) - { - TmTask task = new TmTask(); - // 暂定的状态字典表 - task.setTaskType(67); - task.setTaskStatus(68); - // 采购单号 - task.setCode(purchaseCodeRule()); - task.setCreateTime(DateUtils.getNowDate()); - task.setCompanyId(purchasePartInfo.getCompanyId()); - task.setCreateBy(String.valueOf(SecurityUtils.getUserId())); - // 创建任务信息 - taskMapper.insertTmTask(task); - purchasePartInfo.setTaskId(task.getTaskId()); - purchasePartInfo.setCreateTime(DateUtils.getNowDate()); - - // 批量新增新购任务详情信息 - List partDetailsList = purchasePartInfo.getPartDetailsList(); - if (partDetailsList != null) { - for (PurchasePartDetails purchasePartDetails : partDetailsList) { - purchasePartDetails.setTaskId(task.getTaskId()); -// purchaseCheckDetails.setStatus(2); + @Transactional(rollbackFor = Exception.class) + public int insertPurchaseAccessory(PurchasePartInfo purchasePartInfo) { + int res = 0; + try { + TmTask task = new TmTask(); + // 暂定的状态字典表 + task.setTaskType(67); + task.setTaskStatus(68); + // 采购单号 + task.setCode(purchaseCodeRule()); + task.setCreateTime(DateUtils.getNowDate()); + task.setCompanyId(purchasePartInfo.getCompanyId()); + task.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + // 创建任务信息 + res = taskMapper.insertTmTask(task); + if (res == 0) { + throw new RuntimeException("新增失败,创建任务未成功"); } - purchaseAccessoryMapper.insertPurchasePartDetailsList(partDetailsList); + purchasePartInfo.setTaskId(task.getTaskId()); + purchasePartInfo.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + purchasePartInfo.setCreateTime(DateUtils.getNowDate()); + // 批量新增新购任务详情信息 + List partDetailsList = purchasePartInfo.getPartDetailsList(); + if (partDetailsList != null) { + for (PurchasePartDetails purchasePartDetails : partDetailsList) { + purchasePartDetails.setTaskId(task.getTaskId()); + purchasePartDetails.setCreateBy(String.valueOf(SecurityUtils.getUserId())); + purchasePartDetails.setCreateTime(DateUtils.getNowDate()); + } + res = purchaseAccessoryMapper.insertPurchasePartDetailsList(partDetailsList); + if (res == 0) { + throw new RuntimeException("新增失败,新增详情未成功"); + } + } + // 新增任务信息 + res = purchaseAccessoryMapper.insertPurchasePartInfo(purchasePartInfo); + if (res == 0) { + throw new RuntimeException("新增失败,新增新购配件未成功"); + } + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); } - // 新增任务信息 - return purchaseAccessoryMapper.insertPurchasePartInfo(purchasePartInfo); + return res; + } + + @Override + public List selectPurchasePartInfoList(PurchasePartInfo purchasePartInfo) { + List purchasePartInfos = purchaseAccessoryMapper.selectPurchasePartInfoList(purchasePartInfo); + for (PurchasePartInfo partInfo : purchasePartInfos) { + String typeName = purchaseAccessoryMapper.selectTypeNameByTaskId(partInfo.getTaskId()); + partInfo.setPurchasingTypeName(typeName); + } + return purchasePartInfos; + } + + @Override + public PurchasePartInfo selectPurchasePartInfoByTaskId(Long taskId, String keyWord) { + PurchasePartInfo purchasePartInfo = purchaseAccessoryMapper.selectPurchasePartInfoByTaskId(taskId); + PurchasePartDetails purchasePartDetails = new PurchasePartDetails(); + purchasePartDetails.setTaskId(purchasePartInfo.getTaskId()); + purchasePartDetails.setKeyWord(keyWord); + List purchasePartDetailsList = purchaseAccessoryMapper.selectPurchasePartDetailsList(purchasePartDetails); + purchasePartInfo.setPartDetailsList(purchasePartDetailsList); + return purchasePartInfo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int updatePurchaseCheckInfo(PurchasePartInfo purchasePartInfo){ + int res = 0; + try { + Long taskId = purchasePartInfo.getTaskId(); + TmTask task = taskMapper.selectTmTaskByTaskId(taskId); + // 判断当前任务是否为待通知状态 + if (task == null || task.getTaskStatus() != 68) { + throw new RuntimeException("当前任务不可修改!!!"); + } + // 批量新增新购任务详情信息 + List partDetailsList = purchasePartInfo.getPartDetailsList(); + if (partDetailsList != null) { + // 先删除全部的任务详情信息 + res = purchaseAccessoryMapper.deletePartDetailsByTaskId(taskId); + if (res == 0) { + throw new RuntimeException("修改失败,删除未成功"); + } + for (PurchasePartDetails purchasePartDetails : partDetailsList) { + purchasePartDetails.setTaskId(taskId); + purchasePartDetails.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + purchasePartDetails.setUpdateTime(DateUtils.getNowDate()); + } + // 添加任务详情信息 + res = purchaseAccessoryMapper.insertPurchasePartDetailsList(partDetailsList); + if (res == 0) { + throw new RuntimeException("修改失败,添加详情信息未成功"); + } + } + purchasePartInfo.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + purchasePartInfo.setUpdateTime(DateUtils.getNowDate()); + res = purchaseAccessoryMapper.updatePurchasePartInfo(purchasePartInfo); + if (res == 0) { + throw new RuntimeException("修改失败,修改基本信息未成功"); + } + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + return res; + } + + @Override + public AjaxResult deletePurchasePartInfoByTaskIds(Long[] taskIds) { + for (Long taskId : taskIds){ + TmTask task = taskMapper.selectTmTaskByTaskId(taskId); + // 判断当前任务是否为待通知状态 + if (task == null || task.getTaskStatus() >= 69) { + return AjaxResult.error("当前任务已验收,不可删除!"); + } + } + int res = purchaseAccessoryMapper.deletePurchasePartInfoByTaskIds(taskIds); + if (res>0){ + return AjaxResult.success("删除成功"); + }else { + return AjaxResult.error("删除失败"); + } + } + + @Override + public List selectPutInListList(PurchasePartInfo purchasePartInfo) { + List purchasePartInfos = purchaseAccessoryMapper.selectPutInListList(purchasePartInfo); + for (PurchasePartInfo partInfo : purchasePartInfos) { + String typeName = purchaseAccessoryMapper.selectTypeNameByTaskId(partInfo.getTaskId()); + partInfo.setPurchasingTypeName(typeName); + } + return purchasePartInfos; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int updatePurchaseCheckDetails(List purchasePartDetailsList) { + int res = 0; + try { + Long taskId = 0L; + for (PurchasePartDetails purchasePartDetails : purchasePartDetailsList) { + taskId = purchasePartDetails.getTaskId(); + if ("通过".equals(purchasePartDetails.getCheckResult())) { + purchasePartDetails.setStatus(1); + } else if ("不通过".equals(purchasePartDetails.getCheckResult())) { + purchasePartDetails.setStatus(2); + } else { + purchasePartDetails.setStatus(0); + } + purchasePartDetails.setUpdateTime(DateUtils.getNowDate()); + res = purchaseAccessoryMapper.updatePurchasePartDetails(purchasePartDetails); + if (res == 0) { + throw new RuntimeException("验收失败,修改状态未成功"); + } + } + // 当全部为已验收,修改任务验收状态 + int count = purchaseAccessoryMapper.selectPurchasePartDetailsStatus(taskId); + if (count <= 0) { + TmTask task = new TmTask(); + task.setTaskId(taskId); + task.setTaskStatus(69); + res = taskMapper.updateTmTask(task); + if (res == 0) { + throw new RuntimeException("验收失败,修改任务状态未成功"); + } + } + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + + return res; } /** diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseAccessoryMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseAccessoryMapper.xml index 70094399..e5a77083 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseAccessoryMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/PurchaseAccessoryMapper.xml @@ -4,6 +4,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into purchase_part_details @@ -73,4 +111,151 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{companyId}, + + + update purchase_part_info + + purchase_time = #{purchaseTime}, + arrival_time = #{arrivalTime}, + purchaser = #{purchaser}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + company_id = #{companyId}, + + where task_id = #{taskId} + + + update purchase_part_details + + part_id = #{partId}, + purchase_price = #{purchasePrice}, + purchase_num = #{purchaseNum}, + check_num = #{checkNum}, + check_result = #{checkResult}, + supplier_id = #{supplierId}, + status = #{status}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + file_name = #{fileName}, + file_url = #{fileUrl}, + + where task_id = #{taskId} + + + + delete from purchase_part_details where task_id = #{taskId} + + + + delete from purchase_part_info where task_id in + + #{taskId} + ; + + delete from tm_task where task_id in + + #{taskId} + ; + + delete from purchase_part_details where task_id in + + #{taskId} + + + + + + + + + + \ No newline at end of file