From 1bc0b04d83b8f2c47f0f26733429e6fe32d8ed7d Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Thu, 7 Nov 2024 17:08:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=B4=AD=E6=8E=A5=E5=8F=A3=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PurchaseCheckInfoServiceImpl.java | 83 ++++++++----------- 1 file changed, 34 insertions(+), 49 deletions(-) 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 1d58d730..a8786736 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 @@ -30,9 +30,7 @@ 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.annotation.Transactional; -import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -165,12 +163,10 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { * @return 结果 */ @Override + @Transactional public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) { - // 赋值创建时间 purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate()); - purchaseCheckInfo.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate()); purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername()); - purchaseCheckInfo.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername()); try { // 查询新购任务当月最大单号 Integer thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), Long.valueOf(PurchaseTaskEnum.PURCHASE_TASK_STATUS_WAIT_NOTICE.getTaskTypeId())); @@ -178,48 +174,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { 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 { - transactionManager.rollback(transactionStatus); - return AjaxResult.error("新增任务失败_task表插入0条"); - } - - // tm_task 插入成功后,再往新购验收info表中插入数据 + tmTaskMapper.insertTmTask(tmTask); + Long taskId = tmTask.getTaskId(); purchaseCheckInfo.getPurchaseCheckInfo().setTaskId(taskId); - if (purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo()) > 0) { - purchaseCheckInfo.getPurchaseCheckDetailsList().forEach( - details -> { - details.setTaskId(taskId); - details.setInputStatus("0"); - }); - // 批量插入详情数据 - boolean purchaseCheckDetailsListAddResult = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckInfo.getPurchaseCheckDetailsList()) > 0; - - // 批量插入附件列表 - List purchaseCheckDetailsList = purchaseCheckInfo.getPurchaseCheckDetailsList(); - for (PurchaseCheckDetails purchaseCheckDetails : purchaseCheckDetailsList) { - List bmFileInfos = purchaseCheckDetails.getBmFileInfos(); - if (!CollectionUtils.isEmpty(bmFileInfos)) { - bmFileInfos.stream().forEach(o -> o.setTaskId(taskId)); - bmFileInfoMapper.insertBmFileInfos(bmFileInfos); - } - } - - if (purchaseCheckDetailsListAddResult) { - transactionManager.commit(transactionStatus); - return AjaxResult.success("新增任务成功"); - } else { - transactionManager.rollback(transactionStatus); - return AjaxResult.error("新增任务失败,详情表插入0条"); - } + int count = purchaseCheckInfoMapper.insertPurchaseCheckInfo(purchaseCheckInfo.getPurchaseCheckInfo()); + if (count > 0) { + return insertPurchaseCheckDetails(purchaseCheckInfo.getPurchaseCheckDetailsList(), taskId); } else { - transactionManager.rollback(transactionStatus); - return AjaxResult.error("新增任务失败,info表插入0条"); + return AjaxResult.error("新增任务失败,purchase_check_info表插入0条"); } } catch (DataAccessException e) { return AjaxResult.error("数据库操作失败:" + e.getMessage()); @@ -228,6 +190,29 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { } } + private AjaxResult insertPurchaseCheckDetails(List purchaseCheckDetailsList, Long taskId) { + if (!CollectionUtils.isEmpty(purchaseCheckDetailsList)) { + for (PurchaseCheckDetails details : purchaseCheckDetailsList) { + details.setTaskId(taskId); + details.setInputStatus("0"); + List bmFileInfos = details.getBmFileInfos(); + if (!CollectionUtils.isEmpty(bmFileInfos)) { + bmFileInfos.stream().forEach(o -> o.setTaskId(taskId)); + bmFileInfoMapper.insertBmFileInfos(bmFileInfos); + } + } + // 批量插入详情数据 + int count = purchaseCheckDetailsMapper.insertPurchaseCheckDetailsList(purchaseCheckDetailsList); + if (count > 0) { + return AjaxResult.success("新增任务成功"); + } else { + return AjaxResult.error("新增任务失败,purchase_check_detail详情表插入0条"); + } + } else { + return AjaxResult.success("新增任务成功"); + } + } + /** * 验收通过 * @@ -309,14 +294,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { * @return 结果 */ @Override + @Transactional public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) { purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate()); purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername()); try { - List purchaseCheckDetailsList = purchaseCheckDto.getPurchaseCheckDetailsList(); - for (PurchaseCheckDetails purchaseCheckDetails : purchaseCheckDetailsList) { - purchaseCheckDetailsMapper.updatePurchaseCheckDetails(purchaseCheckDetails); - } + Long[] ids = new Long[]{purchaseCheckDto.getPurchaseCheckInfo().getId()}; + deletePurchaseCheckInfoByIds(ids); + insertPurchaseCheckDetails(purchaseCheckDto.getPurchaseCheckDetailsList(), purchaseCheckDto.getPurchaseCheckInfo().getTaskId()); purchaseCheckInfoMapper.updatePurchaseCheckInfo(purchaseCheckDto.getPurchaseCheckInfo()); return true; } catch (Exception e) {