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 1bccc4c2..2162a1b9 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 @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.bonus.common.log.enums.OperaType; import com.bonus.material.common.annotation.PreventRepeatSubmit; +import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -81,9 +82,9 @@ public class LeaseApplyInfoController extends BaseController { @RequiresPermissions("lease:info:add") @SysLog(title = "领料任务", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增领料任务") @PostMapping - public AjaxResult add(@RequestBody LeaseApplyInfo leaseApplyInfo) { + public AjaxResult add(@RequestBody LeaseApplyRequestVo leaseApplyRequestVo) { try { - return toAjax(leaseApplyInfoService.insertLeaseApplyInfo(leaseApplyInfo)); + return leaseApplyInfoService.insertLeaseApplyInfo(leaseApplyRequestVo); } catch (Exception e) { return error("系统错误, " + e.getMessage()); } @@ -97,9 +98,9 @@ public class LeaseApplyInfoController extends BaseController { @RequiresPermissions("lease:info:edit") @SysLog(title = "领料任务", businessType = OperaType.UPDATE, logType = 1,module = "仓储管理->修改领料任务") @PutMapping - public AjaxResult edit(@RequestBody LeaseApplyInfo leaseApplyInfo) { + public AjaxResult edit(@RequestBody LeaseApplyRequestVo leaseApplyRequestVo) { try { - return toAjax(leaseApplyInfoService.updateLeaseApplyInfo(leaseApplyInfo)); + return toAjax(leaseApplyInfoService.updateLeaseApplyInfo(leaseApplyRequestVo)); } catch (Exception e) { return error("系统错误, " + e.getMessage()); } 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 d08ff553..43f84651 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 @@ -25,7 +25,7 @@ public class LeaseApplyDetails extends BaseEntity { /** 任务ID */ @Excel(name = "任务ID") @ApiModelProperty(value = "任务ID") - private Long parenntId; + private Long parentId; /** 规格ID */ @Excel(name = "规格ID") diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java new file mode 100644 index 00000000..0c26e5d3 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/domain/vo/LeaseApplyRequestVo.java @@ -0,0 +1,31 @@ +package com.bonus.material.lease.domain.vo; + +import com.bonus.common.core.annotation.Excel; +import com.bonus.common.core.web.domain.BaseEntity; +import com.bonus.material.lease.domain.LeaseApplyDetails; +import com.bonus.material.lease.domain.LeaseApplyInfo; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; +import java.util.List; + +/** + * 领料任务对象 lease_apply_info + * + * @author xsheng + * @date 2024-10-16 + */ + + +@Data +@ToString +public class LeaseApplyRequestVo extends BaseEntity { + + private LeaseApplyInfo leaseApplyInfo; + + private List leaseApplyDetailsList; + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java index 6203589e..31fd19b2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/mapper/LeaseApplyDetailsMapper.java @@ -34,6 +34,8 @@ public interface LeaseApplyDetailsMapper { */ public int insertLeaseApplyDetails(LeaseApplyDetails leaseApplyDetails); + public int insertLeaseApplyDetailsList(List leaseApplyDetails); + /** * 修改领料任务详细 * @@ -57,4 +59,6 @@ public interface LeaseApplyDetailsMapper { * @return 结果 */ public int deleteLeaseApplyDetailsByIds(Long[] ids); + + public int deleteLeaseApplyDetailsByParentIds(Long[] ids); } 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 860d6bae..995f49b1 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 @@ -1,7 +1,10 @@ package com.bonus.material.lease.service; import java.util.List; + +import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.lease.domain.LeaseApplyInfo; +import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; /** * 领料任务Service接口 @@ -29,18 +32,18 @@ public interface ILeaseApplyInfoService { /** * 新增领料任务 * - * @param leaseApplyInfo 领料任务 + * @param leaseApplyRequestVo 领料任务 * @return 结果 */ - public int insertLeaseApplyInfo(LeaseApplyInfo leaseApplyInfo); + public AjaxResult insertLeaseApplyInfo(LeaseApplyRequestVo leaseApplyRequestVo); /** * 修改领料任务 * - * @param leaseApplyInfo 领料任务 + * @param leaseApplyRequestVo 领料任务 * @return 结果 */ - public int updateLeaseApplyInfo(LeaseApplyInfo leaseApplyInfo); + public boolean updateLeaseApplyInfo(LeaseApplyRequestVo leaseApplyRequestVo); /** * 批量删除领料任务 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 727976b3..dfc84735 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 @@ -1,13 +1,30 @@ package com.bonus.material.lease.service.impl; import java.util.List; + +import com.bonus.common.biz.enums.PurchaseTaskStatusEnum; +import com.bonus.common.biz.enums.TmTaskTypeEnum; 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.common.security.utils.SecurityUtils; +import com.bonus.material.basic.domain.BmFileInfo; +import com.bonus.material.lease.domain.LeaseApplyDetails; +import com.bonus.material.lease.domain.vo.LeaseApplyRequestVo; +import com.bonus.material.lease.mapper.LeaseApplyDetailsMapper; +import com.bonus.material.purchase.domain.PurchaseCheckDetails; +import com.bonus.material.purchase.domain.dto.PurchaseCheckDto; +import com.bonus.material.task.domain.TmTask; +import com.bonus.material.task.mapper.TmTaskMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import com.bonus.material.lease.mapper.LeaseApplyInfoMapper; import com.bonus.material.lease.domain.LeaseApplyInfo; import com.bonus.material.lease.service.ILeaseApplyInfoService; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; /** * 领料任务Service业务层处理 @@ -20,6 +37,14 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { @Autowired private LeaseApplyInfoMapper leaseApplyInfoMapper; + @Autowired + private LeaseApplyDetailsMapper leaseApplyDetailsMapper; + + @Resource + private TmTaskMapper tmTaskMapper; + + public static final String LEASE_TASK_TYPE_LABEL = "L"; + /** * 查询领料任务 * @@ -45,30 +70,79 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService { /** * 新增领料任务 * - * @param leaseApplyInfo 领料任务 + * @param leaseApplyRequestVo 领料任务 * @return 结果 */ @Override - public int insertLeaseApplyInfo(LeaseApplyInfo leaseApplyInfo) { - leaseApplyInfo.setCreateTime(DateUtils.getNowDate()); + public AjaxResult insertLeaseApplyInfo(LeaseApplyRequestVo leaseApplyRequestVo) { + leaseApplyRequestVo.getLeaseApplyInfo().setCreateTime(DateUtils.getNowDate()); + leaseApplyRequestVo.getLeaseApplyInfo().setCreateBy(SecurityUtils.getUsername()); try { - return leaseApplyInfoMapper.insertLeaseApplyInfo(leaseApplyInfo); + int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId()); + String taskCode = genderTaskCode(thisMonthMaxOrder); + TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_LEASE.getTaskTypeId(), + PurchaseTaskStatusEnum.TO_NOTICE.getStatus(), + leaseApplyRequestVo.getLeaseApplyInfo().getCompanyId(), "1", thisMonthMaxOrder + 1, taskCode); + tmTask.setCreateTime(DateUtils.getNowDate()); + tmTaskMapper.insertTmTask(tmTask); + Long taskId = tmTask.getTaskId(); + leaseApplyRequestVo.getLeaseApplyInfo().setTaskId(taskId); + int count = leaseApplyInfoMapper.insertLeaseApplyInfo(leaseApplyRequestVo.getLeaseApplyInfo()); + if (count > 0) { + return insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), taskId); + } else { + return AjaxResult.error("新增任务失败,lease_apply_info表插入0条"); + } + } catch (DataAccessException e) { + return AjaxResult.error("数据库操作失败:" + e.getMessage()); } catch (Exception e) { - throw new ServiceException("错误信息描述"); + return AjaxResult.error("新增任务失败:" + e.getMessage()); } } + private AjaxResult insertPurchaseCheckDetails(List leaseApplyDetailsList, Long taskId) { + if (!CollectionUtils.isEmpty(leaseApplyDetailsList)) { + for (LeaseApplyDetails details : leaseApplyDetailsList) { + details.setParentId(taskId); // 设置领料taskId + //details.setStatus(PurchaseTaskStatusEnum.TO_NOTICE.getStatus()); + } + // 批量插入详情数据 + int count = leaseApplyDetailsMapper.insertLeaseApplyDetailsList(leaseApplyDetailsList); + if (count > 0) { + return AjaxResult.success("新增任务成功"); + } else { + return AjaxResult.error("新增任务失败,lease_apply_detail详情表插入0条"); + } + } else { + return AjaxResult.success("新增任务成功"); + } + } + + /** + * 生成任务编号并构造Tm_Task任务对象 + * @param thisMonthMaxOrder 当月最大单号 + * @return 任务对象 + */ + private static String genderTaskCode(Integer thisMonthMaxOrder) { + return LEASE_TASK_TYPE_LABEL + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder + 1); + } + /** * 修改领料任务 * - * @param leaseApplyInfo 领料任务 + * @param leaseApplyRequestVo 领料任务 * @return 结果 */ @Override - public int updateLeaseApplyInfo(LeaseApplyInfo leaseApplyInfo) { - leaseApplyInfo.setUpdateTime(DateUtils.getNowDate()); + public boolean updateLeaseApplyInfo(LeaseApplyRequestVo leaseApplyRequestVo) { + leaseApplyRequestVo.getLeaseApplyInfo().setUpdateTime(DateUtils.getNowDate()); + leaseApplyRequestVo.getLeaseApplyInfo().setUpdateBy(SecurityUtils.getUsername()); try { - return leaseApplyInfoMapper.updateLeaseApplyInfo(leaseApplyInfo); + Long[] ids = new Long[]{leaseApplyRequestVo.getLeaseApplyInfo().getId()}; + leaseApplyDetailsMapper.deleteLeaseApplyDetailsByParentIds(ids); + insertPurchaseCheckDetails(leaseApplyRequestVo.getLeaseApplyDetailsList(), leaseApplyRequestVo.getLeaseApplyInfo().getTaskId()); + leaseApplyInfoMapper.updateLeaseApplyInfo(leaseApplyRequestVo.getLeaseApplyInfo()); + return true; } catch (Exception e) { throw new ServiceException("错误信息描述"); } 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 11fcf411..2557f67c 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 @@ -42,7 +42,7 @@ import javax.annotation.Resource; @Service public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { - public static final String TASK_TYPE_LABEL = "XG"; + public static final String PURCHASE_TASK_TYPE_LABEL = "XG"; @Autowired private IBmConfigService bmConfigService; @@ -178,7 +178,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername()); try { int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId()); - String taskCode = genderTaskCode(purchaseCheckInfo, thisMonthMaxOrder); + String taskCode = genderTaskCode(thisMonthMaxOrder); TmTask tmTask = new TmTask(null, TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId(), PurchaseTaskStatusEnum.TO_NOTICE.getStatus(), purchaseCheckInfo.getPurchaseCheckInfo().getCompanyId(), "1", thisMonthMaxOrder + 1, taskCode); @@ -296,12 +296,11 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { /** * 生成任务编号并构造Tm_Task任务对象 - * @param purchaseCheckInfo 新购验收任务数据 * @param thisMonthMaxOrder 当月最大单号 * @return 任务对象 */ - private static String genderTaskCode(PurchaseCheckDto purchaseCheckInfo, Integer thisMonthMaxOrder) { - return TASK_TYPE_LABEL + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder + 1); + private static String genderTaskCode(Integer thisMonthMaxOrder) { + return PURCHASE_TASK_TYPE_LABEL + DateUtils.getCurrentYear() + DateUtils.getCurrentMonth() + String.format("%06d", thisMonthMaxOrder + 1); } /** 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 66d6ca8b..3f1cdf14 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 @@ -5,7 +5,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -20,13 +20,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, parennt_id, type_id, pre_num, audit_num, al_num, status, create_by, create_time, update_by, update_time, remark, company_id from lease_apply_details + select id, parent_id, type_id, pre_num, audit_num, al_num, status, create_by, create_time, update_by, update_time, remark, company_id from lease_apply_details