From d23f2765ae865c1d0810ab19a5a9b72733b06b1e Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Tue, 22 Oct 2024 14:02:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E9=AA=8C=E6=94=B6--?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E6=9E=9A=E4=B8=BE=E3=80=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=8B=E5=8A=A1=E3=80=81=E5=8E=BB=E9=99=A4TODO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/config/PurchaseTaskEnum.java | 40 ++++++++++++ .../PurchaseCheckDetailsController.java | 4 +- .../PurchaseCheckInfoController.java | 11 ++-- .../impl/PurchaseCheckInfoServiceImpl.java | 65 +++++++++++++------ .../bonus/material/task/domain/TmTask.java | 10 +-- 5 files changed, 98 insertions(+), 32 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java new file mode 100644 index 00000000..4367dcce --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java @@ -0,0 +1,40 @@ +package com.bonus.material.purchase.config; + +import lombok.Getter; + +/** + * @author : 阮世耀 + * @version : 1.0 + * @PackagePath: com.bonus.material.purchase.config + * @CreateTime: 2024-10-22 13:08 + * @Description: 新购任务信息枚举 + */ +@Getter +public enum PurchaseTaskEnum { + + PURCHASE_TASK_STATUS_NOTICE(55, 0, "待通知", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_WAIT_CHECK(56, 1,"待验收", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_CHECKED_OK(57, 2,"验收合格", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_CHECK_NO(58, 3,"验收未通过", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_ALL_IN(59, 4,"已全部入库", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_IN_CHECK(60, 5,"入库审核中", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_SERVICE_CENTRE_NO(61, 6,"综合服务中心未通过", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_IN_NO(62, 7,"入库审核未通过", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_SERVICE_CENTRE_CHECK(63, 8,"综合服务中心审核中", "purchase_task_status", 16), + PURCHASE_TASK_STATUS_PART_IN(64, 9,"部分已入库", "purchase_task_status", 16); + + + private final Integer taskStatusCode; + private final Integer taskStatusValue; + private final String taskStatusName; + private final String taskTypeValue; + private final Integer taskTypeId; + + PurchaseTaskEnum(Integer taskStatusCode, Integer taskStatusValue, String taskStatusName, String taskTypeValue, Integer taskTypeId) { + this.taskStatusCode = taskStatusCode; + this.taskStatusValue = taskStatusValue; + this.taskStatusName = taskStatusName; + this.taskTypeValue = taskTypeValue; + this.taskTypeId = taskTypeId; + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java index 9847e567..f29bf1a2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java @@ -132,10 +132,10 @@ public class PurchaseCheckDetailsController extends BaseController { } - @ApiOperation(value = "上传文件") + @ApiOperation(value = "上传报告附件") @PreventRepeatSubmit @RequiresPermissions("purchase:details:add") - @SysLog(title = "上传文件", businessType = OperaType.INSERT, logType = 1,module = "物资新购->上传物资报告附件") + @SysLog(title = "上传报告附件", businessType = OperaType.INSERT, logType = 1,module = "物资新购->上传物资报告附件") @PostMapping("/uploadFile") public AjaxResult uploadFile(@RequestBody @NotNull @Valid PurchaseCheckFileDto purchaseCheckFileDto) { return purchaseCheckDetailsService.insertPurchaseCheckFile(purchaseCheckFileDto); 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 9f4195a4..4d47d633 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 @@ -32,8 +32,7 @@ import com.bonus.common.core.web.page.TableDataInfo; /** * 新购验收任务Controller * - * @author xsheng - * @date 2024-10-16 + * @author syruan */ @Api(tags = "新购验收任务接口") @RestController @@ -72,7 +71,7 @@ public class PurchaseCheckInfoController extends BaseController { @ApiOperation(value = "新增新购验收任务") @PreventRepeatSubmit @RequiresPermissions("purchase:info:add") - @SysLog(title = "新购验收任务", businessType = OperaType.INSERT, module = "仓储管理->新增新购验收任务") + @SysLog(title = "新购验收任务", businessType = OperaType.INSERT, module = "物资新购->新增新购验收任务") @PostMapping public AjaxResult add(@Valid @NotNull @RequestBody PurchaseCheckDto purchaseCheckDto) { try { @@ -88,7 +87,7 @@ public class PurchaseCheckInfoController extends BaseController { @ApiOperation(value = "修改新购验收任务") @PreventRepeatSubmit @RequiresPermissions("purchase:info:edit") - @SysLog(title = "新购验收任务", businessType = OperaType.UPDATE, module = "仓储管理->修改新购验收任务") + @SysLog(title = "新购验收任务", businessType = OperaType.UPDATE, module = "物资新购->修改新购验收任务") @PutMapping public AjaxResult edit(@RequestBody PurchaseCheckInfo purchaseCheckInfo) { try { @@ -104,7 +103,7 @@ public class PurchaseCheckInfoController extends BaseController { @ApiOperation(value = "删除新购验收任务") @PreventRepeatSubmit @RequiresPermissions("purchase:info:remove") - @SysLog(title = "新购验收任务", businessType = OperaType.DELETE, module = "仓储管理->删除新购验收任务") + @SysLog(title = "新购验收任务", businessType = OperaType.DELETE, module = "物资新购->删除新购验收任务") @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(purchaseCheckInfoService.deletePurchaseCheckInfoByIds(ids)); @@ -118,7 +117,7 @@ public class PurchaseCheckInfoController extends BaseController { @ApiOperation(value = "导出新购验收任务列表") @PreventRepeatSubmit @RequiresPermissions("purchase:info:export") - @SysLog(title = "新购验收任务", businessType = OperaType.EXPORT, module = "仓储管理->导出新购验收任务") + @SysLog(title = "新购验收任务", businessType = OperaType.EXPORT, module = "物资新购->导出新购验收任务") @PostMapping("/export") public void export(HttpServletResponse response, PurchaseCheckInfo purchaseCheckInfo) { List list = purchaseCheckInfoService.selectPurchaseCheckInfoList(purchaseCheckInfo); 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 ac931442..e2633f6f 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 @@ -2,7 +2,6 @@ package com.bonus.material.purchase.service.impl; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.HashMap; import java.util.List; import java.util.Objects; import java.util.Optional; @@ -10,24 +9,27 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import cn.hutool.core.map.MapUtil; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.purchase.config.PurchaseTaskEnum; import com.bonus.material.purchase.domain.PurchaseCheckDetails; import com.bonus.material.purchase.dto.PurchaseCheckDto; import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper; import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.mapper.TmTaskMapper; -import org.apache.ibatis.reflection.ArrayUtil; +import com.mysql.cj.exceptions.DataTruncationException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import com.bonus.material.purchase.mapper.PurchaseCheckInfoMapper; import com.bonus.material.purchase.domain.PurchaseCheckInfo; import com.bonus.material.purchase.service.IPurchaseCheckInfoService; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.DefaultTransactionDefinition; import javax.annotation.Resource; -import javax.validation.constraints.NotNull; /** * 新购验收任务Service业务层处理 @@ -37,6 +39,11 @@ import javax.validation.constraints.NotNull; @Service public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { + public static final String TASK_TYPE_LABEL = "XG"; + + @Autowired + private PlatformTransactionManager transactionManager; + @Resource private PurchaseCheckInfoMapper purchaseCheckInfoMapper; @@ -153,48 +160,68 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { // 赋值创建时间 purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate()); try { - // TODO: 任务类型、XG 待完善,先定义死,后期修改至配置中心 + // 开启事务 + TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); // 查询新购任务当月最大单号 - Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), 16L); + Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_NOTICE.getTaskTypeId())); // 查询出的单号值,进行必要性校正 - if (thisMonthMaxOrder == null || thisMonthMaxOrder == 0) { - thisMonthMaxOrder = 1; - } else { - thisMonthMaxOrder = thisMonthMaxOrder + 1; - } + thisMonthMaxOrder = Optional.ofNullable(thisMonthMaxOrder).orElse(0); // 生成单号 - String taskCode = "XG" + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder); - - // 先往tm_task任务表中创建任务 - TmTask tmTask = new TmTask(null, 16L, 55L, taskCode, purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), "1", thisMonthMaxOrder + 1); - Long taskId = 0L; + TmTask tmTask = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder); + Long taskId; if (tmTaskMapper.insertTmTask(tmTask) > 0) { taskId = tmTask.getTaskId(); } else { + transactionManager.rollback(transactionStatus); return AjaxResult.error("新增任务失败_task表插入0条"); } // tm_task 插入成功后,再往新购验收info表中插入数据 purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId); if (purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo()) > 0) { - Long finalTaskId = taskId; purchaseCheckInfo.getPurchaseCheckDetailsList().forEach( details -> { - details.setTaskId(finalTaskId); + details.setTaskId(taskId); details.setInputStatus("0"); }); // 批量插入详情数据 boolean purchaseCheckDetailsListAddResult = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckInfo.getPurchaseCheckDetailsList()) > 0; - return purchaseCheckDetailsListAddResult ? AjaxResult.success("新增任务成功") : AjaxResult.error("新增任务失败,详情表插入0条"); + if (purchaseCheckDetailsListAddResult) { + transactionManager.commit(transactionStatus); + return AjaxResult.success("新增任务成功"); + } else { + transactionManager.rollback(transactionStatus); + return AjaxResult.error("新增任务失败,详情表插入0条"); + } } else { + transactionManager.rollback(transactionStatus); return AjaxResult.error("新增任务失败,info表插入0条"); } + } catch (DataAccessException e) { + return AjaxResult.error("数据库操作失败:" + e.getMessage()); } catch (Exception e) { return AjaxResult.error("新增任务失败:" + e.getMessage()); } } + /** + * 生成任务编号并构造Tm_Task任务对象 + * @param purchaseCheckInfo 新购验收任务数据 + * @param thisMonthMaxOrder 当月最大单号 + * @return 任务对象 + */ + private static TmTask genderTaskCode(PurchaseCheckDto purchaseCheckInfo, Integer thisMonthMaxOrder) { + String taskCode = TASK_TYPE_LABEL + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder + 1); + + // 构造函数创建任务对象 + return new TmTask(null, + PurchaseTaskEnum.PURCHASE_TASK_STATUS_NOTICE.getTaskTypeId(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_NOTICE.getTaskStatusCode(), + taskCode, purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), "1", thisMonthMaxOrder + 1 + ); + } + /** * 修改新购验收任务 * diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java index dc021f41..a7977470 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java @@ -24,12 +24,12 @@ public class TmTask extends BaseEntity { /** 任务类型(定义数据字典) */ @Excel(name = "任务类型(定义数据字典)") @ApiModelProperty(value = "任务类型(定义数据字典)") - private Long taskType; + private Integer taskType; /** 任务状态(定义数据字典) */ @Excel(name = "任务状态(定义数据字典)") @ApiModelProperty(value = "任务状态(定义数据字典)") - private Long taskStatus; + private Integer taskStatus; /** 编号 */ @Excel(name = "编号") @@ -49,10 +49,10 @@ public class TmTask extends BaseEntity { @ApiModelProperty(value = "任务当月序号 例如:1 插入及查询时请携带任务类型") private Integer monthOrder; - public TmTask(Long taskId, Long taskType, Long taskStatus, String code, Long companyId, String status, Integer monthOrder) { + public TmTask(Long taskId, Integer taskType, Integer taskStatus, String code, Long companyId, String status, Integer monthOrder) { this.taskId = taskId; - this.taskType = taskType; - this.taskStatus = taskStatus; + this.taskType = Math.toIntExact(taskType); + this.taskStatus = Math.toIntExact(taskStatus); this.code = code; this.companyId = companyId; this.status = status; From 55aad8548083254e8f0dcc5ed2869cf412f9999d Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Wed, 23 Oct 2024 13:46:01 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=9E=9A=E4=B8=BE=E6=9B=B4=E6=96=B0=E3=80=81=E6=96=B0=E8=B4=AD?= =?UTF-8?q?=E9=AA=8C=E6=94=B6=E6=8E=A5=E5=8F=A3=E3=80=81=E4=BA=8B=E5=8A=A1?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../purchase/config/PurchaseTaskEnum.java | 20 ++++---- .../PurchaseCheckInfoController.java | 24 ++++++---- .../PurchaseNoticePersonController.java | 12 ++--- .../purchase/dto/PurchaseAcceptDto.java | 22 +++++++++ .../purchase/dto/PurchaseNoticePersonDto.java | 8 ++++ .../mapper/PurchaseCheckDetailsMapper.java | 8 ++++ .../service/IPurchaseCheckDetailsService.java | 9 ++++ .../service/IPurchaseCheckInfoService.java | 6 +++ .../impl/PurchaseCheckDetailsServiceImpl.java | 12 +++++ .../impl/PurchaseCheckInfoServiceImpl.java | 48 ++++++++++++++++--- .../impl/PurchaseNoticePersonServiceImpl.java | 34 ++++++++++++- .../bonus/material/task/domain/TmTask.java | 6 ++- .../material/task/mapper/TmTaskMapper.java | 9 ++++ .../purchase/PurchaseCheckDetailsMapper.xml | 11 +++++ .../purchase/PurchaseMacodeInfoMapper.xml | 4 +- .../mapper/material/task/TmTaskMapper.xml | 5 ++ 16 files changed, 202 insertions(+), 36 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseAcceptDto.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java index 4367dcce..e2c14627 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/config/PurchaseTaskEnum.java @@ -12,16 +12,16 @@ import lombok.Getter; @Getter public enum PurchaseTaskEnum { - PURCHASE_TASK_STATUS_NOTICE(55, 0, "待通知", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_WAIT_CHECK(56, 1,"待验收", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_CHECKED_OK(57, 2,"验收合格", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_CHECK_NO(58, 3,"验收未通过", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_ALL_IN(59, 4,"已全部入库", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_IN_CHECK(60, 5,"入库审核中", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_SERVICE_CENTRE_NO(61, 6,"综合服务中心未通过", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_IN_NO(62, 7,"入库审核未通过", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_SERVICE_CENTRE_CHECK(63, 8,"综合服务中心审核中", "purchase_task_status", 16), - PURCHASE_TASK_STATUS_PART_IN(64, 9,"部分已入库", "purchase_task_status", 16); + PURCHASE_TASK_STATUS_WAIT_SUBMIT(122, 0, "待提交", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_WAIT_NOTICE(123, 1, "待通知", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_WAIT_CHECK(124, 2,"待验收", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_WAIT_BIND(125, 3,"待绑定", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_WAIT_IN(126, 4,"待入库", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_FINISH_OK(127, 5,"已完成", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_CHECK_NO(128, 6,"待验收(驳回后)", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_BIND_NO(129, 7,"待绑定(驳回后)", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_IN_NO(130, 8,"待入库(驳回后)", "purchase_task_status", 0), + PURCHASE_TASK_STATUS_PART_IN(131, 9,"入库进行中", "purchase_task_status", 0); private final Integer taskStatusCode; 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 4d47d633..c452f4db 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 @@ -4,6 +4,7 @@ import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import com.bonus.common.log.enums.OperaType; @@ -12,14 +13,7 @@ import com.bonus.material.purchase.dto.PurchaseCheckDto; 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.common.security.annotation.RequiresPermissions; import com.bonus.material.purchase.domain.PurchaseCheckInfo; @@ -97,6 +91,20 @@ public class PurchaseCheckInfoController extends BaseController { } } + /** + * 验收合格API + */ + @ApiOperation(value = "外层批量验收合格API") + @PreventRepeatSubmit + @RequiresPermissions("purchase:info:edit") + @SysLog(title = "新购验收任务", businessType = OperaType.UPDATE, module = "物资新购->外层批量验收合格API") + @PutMapping("/acceptance") + public AjaxResult acceptance(@RequestBody @NotEmpty(message = "任务id集合不能为空") List taskIds) { + return purchaseCheckInfoService.acceptance(taskIds); + } + + + /** * 删除新购验收任务 */ 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 a4dd2342..adf61651 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 @@ -59,7 +59,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "导出新购短信通知人员列表") @PreventRepeatSubmit @RequiresPermissions("purchase:person:export") - @SysLog(title = "新购短信通知人员", businessType = OperaType.EXPORT, logType = 1,module = "仓储管理->导出新购短信通知人员") + @SysLog(title = "新购短信通知人员", businessType = OperaType.EXPORT, module = "物资新购->导出新购短信通知人员") @PostMapping("/export") public void export(HttpServletResponse response, PurchaseNoticePerson purchaseNoticePerson) { List list = purchaseNoticePersonService.selectPurchaseNoticePersonList(purchaseNoticePerson); @@ -83,7 +83,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "新增新购短信通知人员") @PreventRepeatSubmit @RequiresPermissions("purchase:person:add") - @SysLog(title = "新购短信通知人员", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增新购短信通知人员") + @SysLog(title = "新购短信通知人员", businessType = OperaType.INSERT, module = "物资新购->新增新购短信通知人员") @PostMapping public AjaxResult add(@RequestBody PurchaseNoticePerson purchaseNoticePerson) { try { @@ -99,7 +99,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "批量新增新购短信通知人员") @PreventRepeatSubmit @RequiresPermissions("purchase:person:add") - @SysLog(title = "批量新增新购短信通知人员", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->批量新增新购短信通知人员") + @SysLog(title = "批量新增新购短信通知人员", businessType = OperaType.INSERT, module = "物资新购->批量新增新购短信通知人员") @PostMapping("/batchAddNoticePerson") public AjaxResult batchAddNoticePerson(@RequestBody List purchaseNoticePersonList) { try { @@ -115,7 +115,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "批量发送短信") @PreventRepeatSubmit @RequiresPermissions("purchase:person:edit") - @SysLog(title = "批量发送短信", businessType = OperaType.UPDATE, module = "仓储管理->批量发送短信") + @SysLog(title = "批量发送短信", businessType = OperaType.UPDATE, module = "物资新购->批量发送短信") @PutMapping("/batchSendSms") public AjaxResult batchSendSms(@NotNull @Valid @RequestBody PurchaseNoticePersonDto purchaseNoticePersonDto) { return purchaseNoticePersonService.batchSendSms(purchaseNoticePersonDto); @@ -127,7 +127,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "修改新购短信通知人员") @PreventRepeatSubmit @RequiresPermissions("purchase:person:edit") - @SysLog(title = "新购短信通知人员", businessType = OperaType.UPDATE, module = "仓储管理->修改新购短信通知人员") + @SysLog(title = "新购短信通知人员", businessType = OperaType.UPDATE, module = "物资新购->修改新购短信通知人员") @PutMapping public AjaxResult edit(@RequestBody PurchaseNoticePerson purchaseNoticePerson) { try { @@ -143,7 +143,7 @@ public class PurchaseNoticePersonController extends BaseController { @ApiOperation(value = "删除新购短信通知人员") @PreventRepeatSubmit @RequiresPermissions("purchase:person:remove") - @SysLog(title = "新购短信通知人员", businessType = OperaType.DELETE, logType = 1,module = "仓储管理->删除新购短信通知人员") + @SysLog(title = "新购短信通知人员", businessType = OperaType.DELETE, module = "物资新购->删除新购短信通知人员") @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(purchaseNoticePersonService.deletePurchaseNoticePersonByIds(ids)); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseAcceptDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseAcceptDto.java new file mode 100644 index 00000000..58f5066f --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseAcceptDto.java @@ -0,0 +1,22 @@ +package com.bonus.material.purchase.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author : 阮世耀 + * @version : 1.0 + * @PackagePath: com.bonus.material.purchase.dto + * @CreateTime: 2024-10-22 17:43 + * @Description: 物资新购验收任务Dto + */ +@Data +public class PurchaseAcceptDto { + + @ApiModelProperty(value = "任务id") + private Long taskId; + + @ApiModelProperty(value = "任务状态") + private Integer taskStatus; + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseNoticePersonDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseNoticePersonDto.java index a7eb1dbd..1e1bcccf 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseNoticePersonDto.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseNoticePersonDto.java @@ -1,6 +1,7 @@ package com.bonus.material.purchase.dto; import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; import lombok.Data; import lombok.ToString; @@ -32,4 +33,11 @@ public class PurchaseNoticePersonDto { @NotNull(message = "短信内容不能为空") @ApiModelProperty(value = "短信内容") private String content; + + /** + * 任务id + */ + @NotNull(message = "任务id不能为空") + @ApiModelProperty(value = "任务id") + private Long taskId; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java index 3eebe2de..8cb45065 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckDetailsMapper.java @@ -65,6 +65,14 @@ public interface PurchaseCheckDetailsMapper { */ int updatePurchaseCheckDetails(PurchaseCheckDetails purchaseCheckDetails); + /** + * 批量修改新购验收任务详细状态 -- 批量、限制状态 + * @param taskId 任务id + * @param oldTaskStatus 旧状态 + * @param newTaskStatus 新状态 + */ + int batchUpdateDetailsTaskStatus(@Param("taskId") Long taskId, @Param("oldTaskStatus") Integer oldTaskStatus, @Param("newTaskStatus") Integer newTaskStatus); + /** * 删除新购验收任务详细 * diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java index c305d11a..1362eaa5 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java @@ -5,6 +5,7 @@ import java.util.List; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.purchase.domain.PurchaseCheckDetails; import com.bonus.material.purchase.dto.PurchaseCheckFileDto; +import org.apache.ibatis.annotations.Param; /** * 新购验收任务详细Service接口 @@ -57,6 +58,14 @@ public interface IPurchaseCheckDetailsService { */ int updatePurchaseCheckDetails(PurchaseCheckDetails purchaseCheckDetails); + /** + * 批量修改新购验收任务详细状态 -- 批量、限制状态 + * @param taskId 任务id + * @param oldTaskStatus 旧状态 + * @param newTaskStatus 新状态 + */ + int batchUpdateDetailsTaskStatus(@Param("taskId") Long taskId, @Param("oldTaskStatus") Integer oldTaskStatus, @Param("newTaskStatus") Integer newTaskStatus); + /** * 批量删除新购验收任务详细 * diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java index 1648944e..b08c2b97 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java @@ -36,6 +36,12 @@ public interface IPurchaseCheckInfoService { */ AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto); + /** + * 验收通过 + * @param taskId 新购验收任务id + */ + AjaxResult acceptance(List taskId); + /** * 修改新购验收任务 * diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java index f5129fad..d6310b77 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java @@ -118,6 +118,18 @@ public class PurchaseCheckDetailsServiceImpl implements IPurchaseCheckDetailsSer } } + /** + * 批量修改新购验收任务详细状态 -- 批量、限制状态 + * + * @param taskId 任务id + * @param oldTaskStatus 旧状态 + * @param newTaskStatus 新状态 + */ + @Override + public int batchUpdateDetailsTaskStatus(Long taskId, Integer oldTaskStatus, Integer newTaskStatus) { + return purchaseCheckDetailsMapper.batchUpdateDetailsTaskStatus(taskId, oldTaskStatus, newTaskStatus); + } + /** * 批量删除新购验收任务详细 * 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 e2633f6f..7a017622 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 @@ -18,7 +18,6 @@ import com.bonus.material.purchase.dto.PurchaseCheckDto; import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper; import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.mapper.TmTaskMapper; -import com.mysql.cj.exceptions.DataTruncationException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; @@ -160,16 +159,16 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { // 赋值创建时间 purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate()); try { - // 开启事务 - TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); - // 查询新购任务当月最大单号 - Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_NOTICE.getTaskTypeId())); + Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId())); // 查询出的单号值,进行必要性校正 thisMonthMaxOrder = Optional.ofNullable(thisMonthMaxOrder).orElse(0); // 生成单号 TmTask tmTask = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder); Long taskId; + + // 开启事务 + TransactionStatus transactionStatus = transactionManager.getTransaction(new DefaultTransactionDefinition()); if (tmTaskMapper.insertTmTask(tmTask) > 0) { taskId = tmTask.getTaskId(); } else { @@ -205,6 +204,41 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { } } + /** + * 验收通过 + * + * @param taskIds 新购验收任务id + */ + @Override + public AjaxResult acceptance(List taskIds) { + try { + // 定义返回对象 + AjaxResult result = new AjaxResult(); + // 数据过滤 + taskIds.removeIf(Objects::isNull); + // 执行业务逻辑 + for (Long taskId : taskIds) { + // 修改tm_task任务状态 + boolean updateResult = tmTaskMapper.updateTmTaskStatusByTaskId(taskId, + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskStatusValue(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_BIND.getTaskStatusValue() + ) > 0; + + if (updateResult) { + result = purchaseCheckDetailsMapper.batchUpdateDetailsTaskStatus(taskId, + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskStatusValue(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_BIND.getTaskStatusValue() + ) > 0 ? AjaxResult.success("验收通过,修改任务状态成功") : AjaxResult.error("修改任务明细失败"); + } else { + result = AjaxResult.error("SQL未报错,但修改任务0条"); + } + } + return result; + } catch (Exception e) { + return AjaxResult.error("修改任务失败,SQL异常报错:" + e.getMessage()); + } + } + /** * 生成任务编号并构造Tm_Task任务对象 * @param purchaseCheckInfo 新购验收任务数据 @@ -216,8 +250,8 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { // 构造函数创建任务对象 return new TmTask(null, - PurchaseTaskEnum.PURCHASE_TASK_STATUS_NOTICE.getTaskTypeId(), - PurchaseTaskEnum.PURCHASE_TASK_STATUS_NOTICE.getTaskStatusCode(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskStatusValue(), taskCode, purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), "1", thisMonthMaxOrder + 1 ); } 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 58758346..f11233cb 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 @@ -1,16 +1,20 @@ package com.bonus.material.purchase.service.impl; import java.util.List; + import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.sms.SmsUtils; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.purchase.config.PurchaseTaskEnum; import com.bonus.material.purchase.dto.PurchaseNoticePersonDto; -import org.springframework.beans.factory.annotation.Autowired; +import com.bonus.material.task.domain.TmTask; +import com.bonus.material.task.mapper.TmTaskMapper; import org.springframework.stereotype.Service; import com.bonus.material.purchase.mapper.PurchaseNoticePersonMapper; import com.bonus.material.purchase.domain.PurchaseNoticePerson; import com.bonus.material.purchase.service.IPurchaseNoticePersonService; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @@ -26,6 +30,12 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer @Resource private PurchaseNoticePersonMapper purchaseNoticePersonMapper; + @Resource + private TmTaskMapper tmTaskMapper; + + @Resource + private PurchaseCheckDetailsServiceImpl purchaseCheckDetailsService; + /** * 查询新购短信通知人员 * @@ -49,12 +59,32 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer } @Override + @Transactional public AjaxResult batchSendSms(PurchaseNoticePersonDto purchaseNoticePersonDto) { String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers()); try { String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(), null); - return AjaxResult.success(sendResult); + if (sendResult != null) { + // 发送短信后修改任务状态 + tmTaskMapper.updateTmTask(new TmTask() + .setTaskId(purchaseNoticePersonDto.getTaskId()) + .setTaskType(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskTypeId()) + .setTaskStatus(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskStatusCode()) + ); + + // 修改采购明细的任务状态 + purchaseCheckDetailsService.batchUpdateDetailsTaskStatus( + purchaseNoticePersonDto.getTaskId(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskStatusCode(), + PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_CHECK.getTaskStatusCode() + ); + + return AjaxResult.success("短信发送成功:" + sendResult); + } else { + return AjaxResult.error("短信发送失败,发送结果为空"); + } } catch (Exception e) { + // 抛出异常,执行事务回滚 throw new RuntimeException("短信发送异常:" + e.getMessage()); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java index a7977470..5fd646bf 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/task/domain/TmTask.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import com.bonus.common.core.web.domain.BaseEntity; +import lombok.experimental.Accessors; /** * 任务对象 tm_task @@ -14,6 +15,7 @@ import com.bonus.common.core.web.domain.BaseEntity; @EqualsAndHashCode(callSuper = true) @Data @ToString +@Accessors(chain = true) public class TmTask extends BaseEntity { private static final long serialVersionUID = 1L; @@ -51,8 +53,8 @@ public class TmTask extends BaseEntity { public TmTask(Long taskId, Integer taskType, Integer taskStatus, String code, Long companyId, String status, Integer monthOrder) { this.taskId = taskId; - this.taskType = Math.toIntExact(taskType); - this.taskStatus = Math.toIntExact(taskStatus); + this.taskType = taskType; + this.taskStatus = taskStatus; this.code = code; this.companyId = companyId; this.status = status; 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 73aa4615..8a5e324b 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 @@ -51,6 +51,15 @@ public interface TmTaskMapper { */ int updateTmTask(TmTask tmTask); + + /** + * 根据任务id更新任务状态 -- 批量、限制状态 + * @param taskId 任务id 必传 + * @param oldTaskStatus 旧状态:限制条件、限制影响边界 + * @param newTaskStatus 新状态 + */ + int updateTmTaskStatusByTaskId(@Param("taskId") Long taskId, @Param("oldTaskStatus") Integer oldTaskStatus, @Param("newTaskStatus") Integer newTaskStatus); + /** * 删除任务 * 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 4478f52b..d207cdbe 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 @@ -201,4 +201,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" values(#{item.taskId},#{item.typeId},#{item.purchasePrice},#{item.purchaseNum},#{item.checkNum},#{item.bindNum},#{item.checkResult},#{item.supplierId},#{item.status},#{item.productionTime},#{item.createBy},#{item.createTime},#{item.updateBy},#{item.updateTime},#{item.remark},#{item.checkUrlName},#{item.checkUrl},#{item.inputNum},#{item.inputStatus},#{item.inputTime},#{item.fileName},#{item.fileUrl},#{item.companyId}) + + \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseMacodeInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseMacodeInfoMapper.xml index b60cd870..3ecd52d7 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseMacodeInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseMacodeInfoMapper.xml @@ -21,7 +21,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, task_id, type_id, ma_code, qr_code, fix_code, code_type, status, create_by, create_time, update_by, update_time, remark, company_id from purchase_macode_info + select id, task_id, type_id, ma_code, qr_code, fix_code, code_type, status, + create_by, create_time, update_by, update_time, remark, company_id + from purchase_macode_info + + + update tm_task set task_status = #{newTaskStatus} + where task_id = #{taskId} and task_status = #{oldTaskStatus} + \ No newline at end of file From 4cf98d924939642ecd21d2259d44c26697a0db8d Mon Sep 17 00:00:00 2001 From: syruan <321359594@qq.com> Date: Wed, 23 Oct 2024 14:05:56 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E3=80=81=E6=9F=A5=E7=9C=8B=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PurchaseCheckDetailsController.java | 15 ++++----------- .../purchase/dto/PurchaseCheckFileDto.java | 4 ++++ .../purchase/mapper/PurchaseCheckFileMapper.java | 4 +++- .../service/IPurchaseCheckDetailsService.java | 2 +- .../impl/PurchaseCheckDetailsServiceImpl.java | 6 ++---- .../material/purchase/PurchaseCheckFileMapper.xml | 3 ++- 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java index f29bf1a2..6ac69069 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckDetailsController.java @@ -11,14 +11,7 @@ import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.purchase.dto.PurchaseCheckFileDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -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.common.security.annotation.RequiresPermissions; import com.bonus.material.purchase.domain.PurchaseCheckDetails; @@ -125,10 +118,10 @@ public class PurchaseCheckDetailsController extends BaseController { */ @ApiOperation(value = "根据任务id查询报告附件") @RequiresPermissions("purchase:details:query") - @GetMapping("/fileList/{taskId}") + @GetMapping("/fileList") @SysLog(title = "新购验收任务明细报告查询", businessType = OperaType.QUERY, module = "物资新购->根据任务id查询物资报告附件") - public AjaxResult getFileList(@PathVariable("taskId") Long taskId) { - return success(purchaseCheckDetailsService.selectPurchaseCheckFileListByTaskId(taskId)); + public AjaxResult getFileList(@RequestParam("taskId") Long taskId, @RequestParam("typeId") Long typeId) { + return success(purchaseCheckDetailsService.selectPurchaseCheckFileListByTaskId(taskId, typeId)); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseCheckFileDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseCheckFileDto.java index 19c642bf..f1b2ed92 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseCheckFileDto.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseCheckFileDto.java @@ -30,6 +30,10 @@ public class PurchaseCheckFileDto { @NotBlank(message = "任务ID不能为空") private String taskId; + @ApiModelProperty(value = "物资类型ID") + @NotBlank(message = "物资类型ID不能为空") + private Long typeId; + @ApiModelProperty(value = "字典编码") @NotEmpty(message = "字典编码不能为空") private Integer dictCode; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckFileMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckFileMapper.java index 35a3c404..1ad2f10c 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckFileMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseCheckFileMapper.java @@ -2,6 +2,7 @@ package com.bonus.material.purchase.mapper; import com.bonus.material.purchase.domain.PurchaseCheckDetails; import com.bonus.material.purchase.dto.PurchaseCheckFileDto; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -16,8 +17,9 @@ public interface PurchaseCheckFileMapper { /** * 根据任务id查询新购验收任务详细报告列表--Join查询 * @param taskId 任务id + * @param typeId 规格id */ - List selectPurchaseCheckFileListByTaskId(Long taskId); + List selectPurchaseCheckFileListByTaskId(@Param("taskId") Long taskId, @Param("typeId") Long typeId); /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java index 1362eaa5..e56515d4 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckDetailsService.java @@ -34,7 +34,7 @@ public interface IPurchaseCheckDetailsService { * 根据任务ID查询报告附件列表 * @param taskId 任务id */ - List selectPurchaseCheckFileListByTaskId(Long taskId); + List selectPurchaseCheckFileListByTaskId(Long taskId, Long typeId); /** * 新增报告附件 diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java index d6310b77..7b99f508 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckDetailsServiceImpl.java @@ -59,9 +59,9 @@ public class PurchaseCheckDetailsServiceImpl implements IPurchaseCheckDetailsSer * @param taskId 任务id */ @Override - public List selectPurchaseCheckFileListByTaskId(Long taskId) { + public List selectPurchaseCheckFileListByTaskId(Long taskId, Long typeId) { try { - return purchaseCheckFileMapper.selectPurchaseCheckFileListByTaskId(taskId); + return purchaseCheckFileMapper.selectPurchaseCheckFileListByTaskId(taskId, typeId); } catch (Exception e) { throw new RuntimeException("SQL执行错误:" + e.getMessage()); } @@ -76,8 +76,6 @@ public class PurchaseCheckDetailsServiceImpl implements IPurchaseCheckDetailsSer public AjaxResult insertPurchaseCheckFile(PurchaseCheckFileDto purchaseCheckFileDto) { try { if (purchaseCheckFileDto != null) { - // TODO: 暂定魔法值,字典表为26,后续抽出定义为常量 - purchaseCheckFileDto.setModelId(26); purchaseCheckFileDto.setCreateBy(SecurityUtils.getLoginUser().getUsername()); } return purchaseCheckFileMapper.insertPurchaseCheckFiles(purchaseCheckFileDto) > 0 ? AjaxResult.success() : AjaxResult.error("SQL插入0条"); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckFileMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckFileMapper.xml index f107bff6..2511f0ae 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckFileMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseCheckFileMapper.xml @@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" FROM sys_dict_data sdd LEFT JOIN - bm_file_info bfi ON bfi.dic_id = sdd.dict_code + bm_file_info bfi ON bfi.dic_id = sdd.dict_code WHERE sdd.dict_type = 'purchase_check_report_type' @@ -28,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"