diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java index 5e82349d..684ae8d9 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/constant/MaterialConstants.java @@ -61,5 +61,25 @@ public class MaterialConstants { public static final String FOUR_CONSTANT = "4"; + /** + * 已全部入库 + */ + public static final Integer INVENTORY = 4; + + /** + * 部分已入库 + */ + public static final Integer PARTIALLY_WAREHOUSED = 9; + + /** + * 入库审核中 + */ + public static final Integer INBOUND_AUDIT = 5; + + /** + * 入库审核未通过 + */ + public static final Integer PURCHASE_STORAGE_NO_PASSED = 7; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java new file mode 100644 index 00000000..fe177cd1 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseStorageController.java @@ -0,0 +1,110 @@ +package com.bonus.material.purchase.controller; + +import com.bonus.common.core.utils.poi.ExcelUtil; +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.common.log.annotation.SysLog; +import com.bonus.common.log.enums.OperaType; +import com.bonus.common.security.annotation.RequiresPermissions; +import com.bonus.material.common.annotation.PreventRepeatSubmit; +import com.bonus.material.purchase.dto.PurchaseDto; +import com.bonus.material.purchase.service.IPurchaseStorageService; +import com.bonus.material.purchase.vo.PurchaseVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/10/21 13:51 + */ +@Api(tags = "新购验收入库接口") +@RestController +@RequestMapping("/purchase/storage") +public class PurchaseStorageController extends BaseController { + + @Resource + private IPurchaseStorageService purchaseStorageService; + + + /** + * 一级分页查询 + */ + @ApiOperation(value = "查询新购验收入库详细列表") + @RequiresPermissions("purchase:storage:list") + @GetMapping(value = "/list") + public TableDataInfo getList(PurchaseDto dto) { + startPage(); + List list = purchaseStorageService.selectAll(dto); + return getDataTable(list); + } + + /** + * 获取新购验收入库详细信息 + */ + @ApiOperation(value = "获取新购验收入库详细信息") + @RequiresPermissions("purchase:storage:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return AjaxResult.success(purchaseStorageService.selectPurchaseCheckInfoById(id)); + } + + /** + * 获取新购入库二级明细列表 + * @param + * @return + */ + @ApiOperation(value = "获取新购入库二级明细列表") + @RequiresPermissions("purchase:storage:details") + @GetMapping("/details") + public TableDataInfo getDetails(PurchaseDto dto) { + startPage(); + List list = purchaseStorageService.getDetails(dto); + return getDataTable(list); + } + + /** + * 入库或批量入库 + * @param dto + * @return + */ + @ApiOperation(value = "入库或批量入库操作") + @PreventRepeatSubmit + @RequiresPermissions("purchase:storage:warehouse") + @PostMapping + public AjaxResult warehouse(@RequestBody PurchaseDto dto) { + return purchaseStorageService.warehouse(dto); + } + + /** + * 驳回或批量驳回 + * @param dto + * @return + */ + @ApiOperation(value = "入库或批量入库操作") + @PreventRepeatSubmit + @RequiresPermissions("purchase:storage:reject") + @PostMapping + public AjaxResult reject(@RequestBody PurchaseDto dto) { + return purchaseStorageService.reject(dto); + } + + /** + * 导出新购验收入库详细列表 + */ + @ApiOperation(value = "导出新购验收入库详细列表") + @PreventRepeatSubmit + @RequiresPermissions("purchase:storage:export") + @SysLog(title = "新购验收入库任务", businessType = OperaType.EXPORT, module = "仓储管理->导出新购验收入库任务") + @PostMapping("/export") + public void export(HttpServletResponse response, PurchaseDto dto) { + List list = purchaseStorageService.selectAll(dto); + ExcelUtil util = new ExcelUtil(PurchaseVo.class); + util.exportExcel(response, list, "新购验收入库任务数据"); + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseDto.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseDto.java new file mode 100644 index 00000000..a0c36bd4 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/dto/PurchaseDto.java @@ -0,0 +1,47 @@ +package com.bonus.material.purchase.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author ma_sh + * @create 2024/10/21 13:58 + */ +@Data +public class PurchaseDto { + + @ApiModelProperty(value = "id") + private String id; + + @ApiModelProperty(value = "类型id") + private Integer typeId; + + @ApiModelProperty(value="供应商id") + private Integer supplierId; + + @ApiModelProperty(value="入库数量") + private Integer inputNum; + + @ApiModelProperty(value = "开始时间") + private String startTime; + + @ApiModelProperty(value = "结束时间") + private String endTime; + + @ApiModelProperty(value = "关键字") + private String keyWord; + + @ApiModelProperty(value = "状态") + private Integer status; + + @ApiModelProperty(value = "出厂日期") + private String productDate; + + @ApiModelProperty(value = "二级明细id") + private String purchaseId; + + @ApiModelProperty(value = "id列表") + private List taskIds; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java new file mode 100644 index 00000000..d46a7e07 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/mapper/PurchaseStorageMapper.java @@ -0,0 +1,74 @@ +package com.bonus.material.purchase.mapper; + +import com.bonus.material.purchase.dto.PurchaseDto; +import com.bonus.material.purchase.vo.PurchaseVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 新购验收入库Mapper接口 + * @Author ma_sh + * @create 2024/10/21 13:55 + */ +public interface PurchaseStorageMapper { + + /** + * 查询新购验收入库列表 + * @param dto + * @return + */ + List selectAll(PurchaseDto dto); + + /** + * 根据id查询详情 + * @param id + * @return + */ + List selectPurchaseCheckInfoById(Long id); + + /** + * 查询详情 + * @param dto + * @return + */ + List getDetails(PurchaseDto dto); + + /** + * 更新入库数量 + * @param purchaseId + * @param bindNum + * @return + */ + int updateNum(@Param("id") String purchaseId, @Param("purchaseNum") Integer bindNum); + + /** + * 更新状态 + * @param updatedStatus + * @param id + * @return + */ + int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id); + + /** + * 新增机具入库记录 + * @param detail + * @return + */ + int insertMachine(PurchaseVo detail); + + /** + * 更新库存数量 + * @param inputNum + * @param typeId + * @return + */ + int updateStorageNum(@Param("inputNum") Integer inputNum, @Param("typeId") Integer typeId); + + /** + * 查询详情单子状态 + * @param taskId + * @return + */ + List select(String taskId); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java new file mode 100644 index 00000000..74e70c14 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseStorageService.java @@ -0,0 +1,50 @@ +package com.bonus.material.purchase.service; + +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.purchase.dto.PurchaseDto; +import com.bonus.material.purchase.vo.PurchaseVo; + +import java.util.List; + +/** + * 新购入库服务层 + * @Author ma_sh + * @create 2024/10/21 13:53 + */ +public interface IPurchaseStorageService { + + /** + * 查询所有 + * @param dto + * @return + */ + List selectAll(PurchaseDto dto); + + /** + * 根据id查询 + * @param id + * @return + */ + List selectPurchaseCheckInfoById(Long id); + + /** + * 查询二级明细 + * @param dto + * @return + */ + List getDetails(PurchaseDto dto); + + /** + * 入库或批量入库 + * @param dto + * @return + */ + AjaxResult warehouse(PurchaseDto dto); + + /** + * 驳回或批量驳回 + * @param dto + * @return + */ + AjaxResult reject(PurchaseDto dto); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/IPurchaseStorageServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/IPurchaseStorageServiceImpl.java new file mode 100644 index 00000000..dc883ee0 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/IPurchaseStorageServiceImpl.java @@ -0,0 +1,288 @@ +package com.bonus.material.purchase.service.impl; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.common.biz.constant.MaterialConstants; +import com.bonus.common.biz.enums.HttpCodeEnum; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.ma.mapper.MachineMapper; +import com.bonus.material.purchase.dto.PurchaseDto; +import com.bonus.material.purchase.mapper.PurchaseStorageMapper; +import com.bonus.material.purchase.service.IPurchaseStorageService; +import com.bonus.material.purchase.vo.PurchaseVo; +import com.bonus.material.task.mapper.TmTaskMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.bonus.common.biz.constant.MaterialConstants.ONE_CONSTANT; +import static com.bonus.common.biz.constant.MaterialConstants.ZERO_CONSTANT; + +/** + * 新购入库实现层 + * @Author ma_sh + * @create 2024/10/21 13:53 + */ +@Service +public class IPurchaseStorageServiceImpl implements IPurchaseStorageService { + + @Resource + private PurchaseStorageMapper purchaseStorageMapper; + + @Resource + private MachineMapper machineMapper; + + @Resource + private TmTaskMapper tmTaskMapper; + + /** + * 查询所有 + * @param dto + * @return + */ + @Override + public List selectAll(PurchaseDto dto) { + List list = purchaseStorageMapper.selectAll(dto); + return list; + } + + /** + * 根据id查询详情 + * @param id + * @return + */ + @Override + public List selectPurchaseCheckInfoById(Long id) { + return purchaseStorageMapper.selectPurchaseCheckInfoById(id); + } + + /** + * 查询二级明细详情 + * @param dto + * @return + */ + @Override + public List getDetails(PurchaseDto dto) { + return purchaseStorageMapper.getDetails(dto); + } + + /** + * 入库或批量入库 + * @param dto + * @return + */ + @Override + public AjaxResult warehouse(PurchaseDto dto) { + if (dto.getId() != null) { + //外层入库 + return processByTaskIds(dto); + } else if (dto.getPurchaseId() != null) { + //内层入库 + return processByPurchaseIds(dto); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + /** + * 驳回或批量驳回 + * @param dto + * @return + */ + @Override + public AjaxResult reject(PurchaseDto dto) { + if (dto.getId() != null) { + //外层驳回 + return rejectByTaskIds(dto); + } else if (dto.getPurchaseId() != null) { + //内层驳回 + return rejectByPurchaseIds(dto); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + /** + * 内层驳回 + * @param purchaseDto + * @return + */ + private AjaxResult rejectByPurchaseIds(PurchaseDto purchaseDto) { + purchaseDto.setStatus(MaterialConstants.PURCHASE_STORAGE_NO_PASSED); + int result = 0; + try { + List details = purchaseStorageMapper.getDetails(purchaseDto); + if (CollectionUtils.isNotEmpty(details)) { + result += updateRejectAndStatus(Integer.parseInt(purchaseDto.getPurchaseId())); + List statusList = purchaseStorageMapper.select(details.get(0).getId().toString()); + result += updateTaskStatus(statusList); + } + if (result > 0) { + return AjaxResult.success("驳回成功"); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + /** + * 更新驳回状态和状态 + * @param purchaseId + * @return + */ + private int updateRejectAndStatus(int purchaseId) { + return purchaseStorageMapper.updateStatusById(MaterialConstants.PURCHASE_STORAGE_NO_PASSED, purchaseId); + } + + /** + * 外层驳回 + * @param dto + * @return + */ + private AjaxResult rejectByTaskIds(PurchaseDto dto) { + List taskIdList = parseIds(dto.getId()); + int result = 0; + try { + for (Integer taskId : taskIdList) { + dto.setId(String.valueOf(taskId)); + List details; + details = purchaseStorageMapper.getDetails(dto); + result += updateDetailsAndStatus(details); + details = purchaseStorageMapper.getDetails(dto); + result += updateTaskStatus(details); + } + if (result > 0) { + return AjaxResult.success("驳回成功"); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + /** + * 内层入库 + * @param purchaseDto + * @return + */ + private AjaxResult processByPurchaseIds(PurchaseDto purchaseDto) { + purchaseDto.setStatus(MaterialConstants.INVENTORY); + int result = 0; + try { + List details = purchaseStorageMapper.getDetails(purchaseDto); + if (CollectionUtils.isNotEmpty(details)) { + result += updatePurchaseInfoAndDetails(details.get(0), Integer.parseInt(purchaseDto.getPurchaseId())); + List statusList = purchaseStorageMapper.select(details.get(0).getId().toString()); + result += updateTaskStatus(statusList); + } + if (result > 0) { + return AjaxResult.success("入库成功"); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + /** + * 更新采购单和采购明细 + * @param detail + * @param purchaseId + * @return + */ + private int updatePurchaseInfoAndDetails(PurchaseVo detail, int purchaseId) { + int result = purchaseStorageMapper.updateStatusById(MaterialConstants.INVENTORY, purchaseId); + if (ZERO_CONSTANT.equals(detail.getManageType())) { + result += purchaseStorageMapper.insertMachine(detail); + } else if (ONE_CONSTANT.equals(detail.getManageType())) { + result += purchaseStorageMapper.updateStorageNum(detail.getBindNum(), detail.getTypeId()); + } + return result + purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum()); + } + + /** + * 外层入库 + * @param dto + * @return + */ + private AjaxResult processByTaskIds(PurchaseDto dto) { + List taskIdList = parseIds(dto.getId()); + int result = 0; + try { + for (Integer taskId : taskIdList) { + dto.setId(String.valueOf(taskId)); + List details; + details = purchaseStorageMapper.getDetails(dto); + for (PurchaseVo purchaseVo : details) { + result += purchaseStorageMapper.updateStatusById(MaterialConstants.PURCHASE_STORAGE_NO_PASSED, Integer.parseInt(purchaseVo.getPurchaseId())); + } + details = purchaseStorageMapper.getDetails(dto); + result += updateTaskStatus(details); + } + if (result > 0) { + return AjaxResult.success("入库成功"); + } + } catch (Exception e) { + throw new RuntimeException(e); + } + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); + } + + /** + * 更新采购单和采购明细状态 + * @param details + * @return + */ + private int updateDetailsAndStatus(List details) { + return details.stream() + .mapToInt(detail -> { + int result = purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum()); + result += purchaseStorageMapper.updateStatusById(MaterialConstants.INVENTORY, Integer.parseInt(detail.getPurchaseId())); + if (ZERO_CONSTANT.equals(detail.getManageType())) { + result += purchaseStorageMapper.insertMachine(detail); + } else if (ONE_CONSTANT.equals(detail.getManageType())) { + result += purchaseStorageMapper.updateStorageNum(detail.getBindNum(), detail.getTypeId()); + } + return result; + }).sum(); + } + + /** + * 更新任务状态 + * @param details + * @return + */ + private int updateTaskStatus(List details) { + Map> groupedByIdStatus = details.stream() + .collect(Collectors.groupingBy( + PurchaseVo::getId, + Collectors.mapping(PurchaseVo::getStatus, Collectors.toList()) + )); + + return groupedByIdStatus.entrySet().stream() + .mapToInt(entry -> { + Integer id = entry.getKey(); + List statusList = entry.getValue(); + if (statusList.contains(MaterialConstants.INBOUND_AUDIT) || statusList.contains(MaterialConstants.PURCHASE_STORAGE_NO_PASSED)) { + return tmTaskMapper.updateStatusById(MaterialConstants.PARTIALLY_WAREHOUSED, id); + } else if (!statusList.contains(MaterialConstants.INBOUND_AUDIT) && !statusList.contains(MaterialConstants.PURCHASE_STORAGE_NO_PASSED) + && !statusList.contains(MaterialConstants.PARTIALLY_WAREHOUSED) && statusList.contains(MaterialConstants.INVENTORY)) { + return tmTaskMapper.updateStatusById(MaterialConstants.INVENTORY, id); + } + return 0; + }).sum(); + } + + /** + * 将字符串转换为Integer集合 + * @param ids + * @return + */ + private List parseIds(String ids) { + return Arrays.stream(ids.split(",")) + .map(Integer::parseInt) + .collect(Collectors.toList()); + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/vo/PurchaseVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/vo/PurchaseVo.java new file mode 100644 index 00000000..c7eb4d19 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/vo/PurchaseVo.java @@ -0,0 +1,98 @@ +package com.bonus.material.purchase.vo; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author ma_sh + * @create 2024/10/21 13:47 + */ +@Data +public class PurchaseVo { + + @ApiModelProperty(value="任务id") + private Integer id; + + @ApiModelProperty(value = "二级明细id") + private String purchaseId; + + @ApiModelProperty(value="typeId") + private Integer typeId; + + @ApiModelProperty("物资名称") + private String materialName; + + @ApiModelProperty("规格型号") + private String materialModel; + + @ApiModelProperty(value="单位") + private String unitName; + + @ApiModelProperty(value="供应商名称") + private String supplierName; + + @ApiModelProperty(value="出厂日期") + @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") + private Date productDate; + + @ApiModelProperty(value="到货时间") + @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") + @Excel(name = "到货时间") + private Date arrivalTime; + + @ApiModelProperty(value="采购单号") + @Excel(name = "采购单号") + private String purchaseCode; + + @ApiModelProperty(value="采购物资") + @Excel(name = "采购物资") + private String purchaseMaterial; + + @ApiModelProperty(value="采购数量") + @Excel(name = "采购数量") + private Integer purchaseNum; + + @ApiModelProperty(value="验收数量") + private Integer checkNum; + + @ApiModelProperty(value="绑定数量") + private Integer bindNum; + + @ApiModelProperty(value="采购价格(元含税)") + private Integer purchasePrice; + + @ApiModelProperty(value="采购价格(元不含税)") + private Integer notaxPrice; + + @ApiModelProperty(value="税率") + private Integer taxRate; + + @ApiModelProperty(value="创建人") + @Excel(name = "创建人") + private String createBy; + + @ApiModelProperty(value="创建时间") + @Excel(name = "创建时间") + private String createTime; + + @ApiModelProperty(value="状态") + private Integer status; + + @ApiModelProperty(value="状态名称") + @Excel(name = "状态") + private String statusName; + + @ApiModelProperty(value="备注") + @Excel(name = "备注") + private String remark; + + @ApiModelProperty(value = "管理类型0是编码1计数") + private String manageType; + + @ApiModelProperty(value = "采购人") + private String purchaserName; +} 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..92d6ee85 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 @@ -66,4 +66,12 @@ public interface TmTaskMapper { * @return 结果 */ int deleteTmTaskByTaskIds(Long[] taskIds); + + /** + * 更新任务状态 + * @param updatedStatus + * @param id + * @return + */ + int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id); } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml new file mode 100644 index 00000000..da1a6f11 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/purchase/PurchaseStorageMapper.xml @@ -0,0 +1,141 @@ + + + + + + + + + + UPDATE purchase_check_details + SET input_num = #{purchaseNum} + WHERE + id = #{id} + + + + UPDATE purchase_check_details + SET `status` = #{updatedStatus} + WHERE + id = #{id} + + + + UPDATE ma_type + SET storage_num = #{inputNum} + IFNULL(storage_num, 0) + WHERE + type_id = #{typeId} + + + + + + + + + + + \ No newline at end of file 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 f6ded252..9a61a07c 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 @@ -85,6 +85,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where task_id = #{taskId} + + update tm_task set status = #{updatedStatus} where id = #{id} + + delete from tm_task where task_id = #{taskId}