diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/controller/BpmPurchaseInfoController.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/controller/BpmPurchaseInfoController.java index b0833a1..dafe301 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/controller/BpmPurchaseInfoController.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/controller/BpmPurchaseInfoController.java @@ -1,5 +1,6 @@ package com.bonus.purchase.controller; import com.bonus.common.core.domain.ResultBean; +import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.page.TableDataInfo; import com.bonus.common.security.annotation.RequiresPermissions; @@ -14,13 +15,17 @@ import org.springframework.web.bind.annotation.*; import org.springframework.beans.factory.annotation.Autowired; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import javax.validation.constraints.Positive; +import java.util.Arrays; import java.util.List; import java.util.Map; +import static com.bonus.purchase.utils.Constants.*; + /** * 新购到货管理(bpm_purchase_info) * @author 阮世耀 @@ -39,7 +44,7 @@ public class BpmPurchaseInfoController extends BaseController { private BpmTaskService bpmTaskService; /** - * 分页查询--新购任务列表 + * 分页查询--新购任务一级列表 */ @GetMapping(value = "/list") @RequiresPermissions("purchase:bpmPurchaseInfo:query") @@ -50,16 +55,41 @@ public class BpmPurchaseInfoController extends BaseController { } /** - * 分页查询---新购任务详情列表 + * 分页查询---新购任务详情列表--内层 */ @GetMapping(value = "/detailsList") @RequiresPermissions("purchase:bpmPurchaseInfo:query") - public TableDataInfo getDetailsList(PurchaseDto record) { + public TableDataInfo getDetailsList(@Valid PurchaseDto record) { startPage(); List list = this.bpmPurchaseInfoService.getDetailsList(record); return getDataTable(list); } + /** + * 导出新购任务一级列表 + */ + @PostMapping(value = "/export") + @RequiresPermissions("purchase:bpmPurchaseInfo:export") + public void export(HttpServletResponse response,@NotEmpty(message = "任务数组不能为空") Integer[] taskArray) { + List list = this.bpmPurchaseInfoService.selectMangerListInId(Arrays.asList(taskArray)); + ExcelUtil util = new ExcelUtil<>(PurchaseVo.class); + util.exportExcel(response, list, "新购任务列表"); + } + + /** + * 导出新购任务设备列表 + * @param response 响应--导出操作 + * @param deviceArray 领用详情表ID数组 + */ + @PostMapping(value = "/exportDevices") + @RequiresPermissions("purchase:bpmPurchaseInfo:export") + public void exportDevices(HttpServletResponse response,@NotEmpty(message = "设备数组不能为空") Integer[] deviceArray) { + List list = this.bpmPurchaseInfoService.getDetailsListInId(Arrays.asList(deviceArray)); + ExcelUtil util = new ExcelUtil<>(PurchaseAcceptVo.class); + util.exportExcel(response, list, "新购任务设备列表"); + } + + /** * ElementPlus级联选择器数据接口--获取设备类型 */ @@ -84,11 +114,10 @@ public class BpmPurchaseInfoController extends BaseController { */ @PutMapping(value = "/commit") @RequiresPermissions("purchase:bpmPurchaseInfo:edit") - public ResultBean commit(@RequestBody @NotEmpty Integer[] taskArray) { + public ResultBean commit(@RequestBody @NotEmpty(message = "请求参数不能为空") Integer[] taskArray) { int result = 0; - for (Integer taskId : taskArray) { - result += this.bpmTaskService.updateStatusById(48, taskId); - } + result += this.bpmTaskService.updateStatusById(PENDING_CONFIRMATION, Arrays.asList(taskArray)); + result += this.bpmPurchaseInfoService.updateStatusByTaskId(PENDING_CONFIRMATION_BYTE, Arrays.asList(taskArray)); return ResultBean.toIsSuccess(result); } @@ -98,11 +127,10 @@ public class BpmPurchaseInfoController extends BaseController { */ @PutMapping(value = "/confirm") @RequiresPermissions("purchase:bpmPurchaseInfo:edit") - public ResultBean confirm(@RequestBody @NotEmpty Integer[] taskArray) { + public ResultBean confirm(@RequestBody @NotEmpty(message = "请求参数不能为空") Integer[] taskArray) { int result = 0; - for (Integer taskId : taskArray) { - result += this.bpmTaskService.updateStatusById(49, taskId); - } + result += this.bpmTaskService.updateStatusById(PENDING_NOTIFICATION, Arrays.asList(taskArray)); + result += this.bpmPurchaseInfoService.updateStatusByTaskId(PENDING_NOTIFICATION_BYTE, Arrays.asList(taskArray)); return ResultBean.toIsSuccess(result); } @@ -161,6 +189,6 @@ public class BpmPurchaseInfoController extends BaseController { @DeleteMapping(value = "/deleteDetails/{id}") @RequiresPermissions("purchase:bpmPurchaseInfo:remove") public ResultBean< Boolean> deleteDetailsById(@PathVariable("id") Integer id) { - return ResultBean.toIsSuccess(this.bpmPurchaseInfoService.deleteByPrimaryKey(id)); + return ResultBean.toIsSuccess(this.bpmPurchaseInfoService.updateIsActiveById(id)); } } diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/dto/PurchaseDto.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/dto/PurchaseDto.java index 1b052dd..a6a0102 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/dto/PurchaseDto.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/dto/PurchaseDto.java @@ -3,6 +3,7 @@ package com.bonus.purchase.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -41,6 +42,7 @@ public class PurchaseDto { private List taskIds; @ApiModelProperty(value = "任务id") + @NotNull(message = "查询详情任务id不能为空") private String taskId; @ApiModelProperty(value = "二级明细id") diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/mapper/BpmPurchaseInfoMapper.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/mapper/BpmPurchaseInfoMapper.java index 92fb4fe..23363ec 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/mapper/BpmPurchaseInfoMapper.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/mapper/BpmPurchaseInfoMapper.java @@ -1,4 +1,5 @@ package com.bonus.purchase.mapper; +import java.util.Collection; import com.bonus.base.api.domain.MaType; import com.bonus.purchase.dto.PurchaseDto; import com.bonus.purchase.vo.PurchaseAcceptVo; @@ -28,7 +29,9 @@ public interface BpmPurchaseInfoMapper { */ List selectMangerList(PurchaseDto purchaseDto); - int insertList(@Param("list")List list); + List selectMangerListInId(@Param("idCollection") Collection idCollection); + + int insertList(@Param("list") List list); /** * 查询所有设备类型 @@ -44,6 +47,13 @@ public interface BpmPurchaseInfoMapper { */ List getDetailsList(PurchaseDto record); + + /** + * 根据ID查询领用明细 + * @param idCollection 领用详情表ID集合 + */ + List getDetailsListInId(@Param("idCollection") Collection idCollection); + MaType selectMaTypeById(@Param("id") Integer id); /** @@ -53,6 +63,12 @@ public interface BpmPurchaseInfoMapper { */ int deleteByPrimaryKey(Integer id); + /** + * 删除领用明细--逻辑删除 + */ + int updateIsActiveById(@Param("id")Integer id); + + /** * insert record to table * @param record the record @@ -85,6 +101,13 @@ public interface BpmPurchaseInfoMapper { */ int updateByPrimaryKeySelective(BpmPurchaseInfo record); + + int updateStatusByTaskId(@Param("updatedStatus")Byte updatedStatus,@Param("taskId")Integer taskId); + + int updateStatusByTaskIdIn(@Param("updatedStatus")Byte updatedStatus,@Param("taskIdCollection")Collection taskIdCollection); + + + /** * update record * @param record the updated record diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/service/impl/BpmPurchaseInfoService.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/service/impl/BpmPurchaseInfoService.java index 60a8247..29afc48 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/service/impl/BpmPurchaseInfoService.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/service/impl/BpmPurchaseInfoService.java @@ -1,8 +1,6 @@ package com.bonus.purchase.service.impl; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; +import java.util.*; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.RandomUtil; @@ -23,6 +21,9 @@ import com.bonus.purchase.domain.BpmPurchaseInfo; import javax.annotation.Resource; +import static com.bonus.purchase.utils.Constants.PENDING_SUBMISSION; +import static com.bonus.purchase.utils.Constants.PENDING_SUBMISSION_BYTE; + /** *@PackagePath: com.bonus.purchase *@author : 阮世耀 @@ -92,6 +93,17 @@ public class BpmPurchaseInfoService{ return bpmPurchaseInfoMapper.getDetailsList(record); } + /** + * 查询--根据ID集合查设备列表 + */ + public List getDetailsListInId(Collection idCollection) { + return bpmPurchaseInfoMapper.getDetailsListInId(idCollection); + } + + /** + * 新购设备任务创建 + * @param purchaseTaskDto 任务数据、设备数据集合 + */ public int insertList(PurchaseTaskDto purchaseTaskDto) { // 映射Dto至Pojo对象 BpmTask task = new BpmTask(); @@ -107,7 +119,7 @@ public class BpmPurchaseInfoService{ String code = "XG" + DateTimeHelper.getNowMonthFomart() + "-" + formatTaskNumber; task.setCode(code); // 赋值任务状态 - task.setStatus(47); + task.setStatus(PENDING_SUBMISSION); String creator = String.valueOf(SecurityUtils.getLoginUser().getUserid()); task.setCreator(creator); // 处理任务表数据 ---------------- end ------ @@ -122,7 +134,7 @@ public class BpmPurchaseInfoService{ // 给集合中所有对象赋值任务ID list.replaceAll(obj -> { obj.setTaskId(task.getId()); - obj.setStatus((byte)47); + obj.setStatus(PENDING_SUBMISSION_BYTE); obj.setUpdater(creator); return obj; }); @@ -139,6 +151,10 @@ public class BpmPurchaseInfoService{ return bpmPurchaseInfoMapper.selectMangerList(purchaseDto); } + public List selectMangerListInId(Collection idCollection) { + return bpmPurchaseInfoMapper.selectMangerListInId(idCollection); + } + public MaType selectMaTypeById(Integer id) { return bpmPurchaseInfoMapper.selectMaTypeById(id); } @@ -193,6 +209,22 @@ public class BpmPurchaseInfoService{ return itemNode; } + public int updateStatusByTaskId(Byte updatedStatus,Integer taskId){ + return bpmPurchaseInfoMapper.updateStatusByTaskId(updatedStatus,taskId); + } + + public int updateStatusByTaskId(Byte updatedStatus, Collection taskIdCollection){ + return bpmPurchaseInfoMapper.updateStatusByTaskIdIn(updatedStatus,taskIdCollection); + } + + public int updateIsActiveById(Integer id){ + return bpmPurchaseInfoMapper.updateIsActiveById(id); + } + + + + + diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/utils/Constants.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/utils/Constants.java index 0ef4cc9..a5c405e 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/utils/Constants.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/utils/Constants.java @@ -12,16 +12,31 @@ public class Constants { */ public static final Integer PENDING_SUBMISSION = 47; + /** + * 待提交--byte类型 + */ + public static final Byte PENDING_SUBMISSION_BYTE = 47; + /** * 待确认 */ public static final Integer PENDING_CONFIRMATION = 48; + /** + * 待确认 + */ + public static final Byte PENDING_CONFIRMATION_BYTE = 48; + /** * 待通知 */ public static final Integer PENDING_NOTIFICATION = 49; + /** + * 待通知--byte类型 + */ + public static final Byte PENDING_NOTIFICATION_BYTE = 49; + /** * 待验收 */ diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseAcceptVo.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseAcceptVo.java index 525af27..2335c5f 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseAcceptVo.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseAcceptVo.java @@ -22,9 +22,9 @@ public class PurchaseAcceptVo { private String materialName; @ApiModelProperty("规格型号") - private String specificationCode; + private String materialModel; - @ApiModelProperty(value="单位") + @ApiModelProperty(value="单位名称") private String unitName; @ApiModelProperty(value="供应商名称") diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseVo.java b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseVo.java index 817b959..2df2866 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseVo.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/purchase/vo/PurchaseVo.java @@ -22,7 +22,7 @@ public class PurchaseVo { private String materialName; @ApiModelProperty("规格型号") - private String specificationCode; + private String materialModel; @ApiModelProperty(value="单位") private String unitName; diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/task/mapper/BpmTaskMapper.java b/bonus-modules/bonus-task/src/main/java/com/bonus/task/mapper/BpmTaskMapper.java index 2599ef7..1f3b115 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/task/mapper/BpmTaskMapper.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/task/mapper/BpmTaskMapper.java @@ -1,4 +1,5 @@ package com.bonus.task.mapper; +import java.util.Collection; import org.apache.ibatis.annotations.Param; import com.bonus.task.domain.BpmTask; @@ -63,4 +64,8 @@ public interface BpmTaskMapper { int updateStatusById(@Param("updatedStatus")Integer updatedStatus,@Param("id")Integer id); + int updateStatusByIdIn(@Param("updatedStatus")Integer updatedStatus,@Param("idCollection")Collection idCollection); + + + } \ No newline at end of file diff --git a/bonus-modules/bonus-task/src/main/java/com/bonus/task/service/BpmTaskService.java b/bonus-modules/bonus-task/src/main/java/com/bonus/task/service/BpmTaskService.java index 5dda62f..956d613 100644 --- a/bonus-modules/bonus-task/src/main/java/com/bonus/task/service/BpmTaskService.java +++ b/bonus-modules/bonus-task/src/main/java/com/bonus/task/service/BpmTaskService.java @@ -1,4 +1,5 @@ package com.bonus.task.service; +import java.util.Collection; import java.util.List; import com.bonus.task.mapper.BpmTaskMapper; @@ -75,6 +76,13 @@ public class BpmTaskService{ return bpmTaskMapper.updateStatusById(updatedStatus,id); } + public int updateStatusById(Integer updatedStatus, Collection idCollection){ + return bpmTaskMapper.updateStatusByIdIn(updatedStatus,idCollection); + } + + + + } diff --git a/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseAcceptMapper.xml b/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseAcceptMapper.xml index 15953a4..667c797 100644 --- a/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseAcceptMapper.xml +++ b/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseAcceptMapper.xml @@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT bp.id AS purchaseId, mt1.`name` AS materialName, - mt.`name` AS specificationCode, + mt.`name` AS materialModel, sda.dict_label AS unitName, bp.purchase_price AS purchasePrice, bp.notax_price AS notaxPrice, diff --git a/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseInfoMapper.xml b/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseInfoMapper.xml index 7b1ffb3..c32233e 100644 --- a/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseInfoMapper.xml +++ b/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseInfoMapper.xml @@ -675,7 +675,7 @@ SELECT bp.id, mt1.`name` AS materialName, - mt.`name` AS specificationCode, + mt.`name` AS materialModel, sda.dict_label AS unitName, bp.purchase_price AS purchasePrice, bp.notax_price AS notaxPrice, @@ -696,4 +696,87 @@ bp.is_active = '1' AND bp.task_id = #{taskId,jdbcType=INTEGER} + + + + update bpm_purchase_info + set `status`=#{updatedStatus,jdbcType=TINYINT} + where task_id=#{taskId,jdbcType=INTEGER} + + + + + update bpm_purchase_info + set `status`=#{updatedStatus,jdbcType=TINYINT} + where task_id in + + #{item,jdbcType=INTEGER} + + + + + + update bpm_purchase_info + set is_active = 0 + where id=#{id,jdbcType=INTEGER} + + + + + \ No newline at end of file diff --git a/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseStorageMapper.xml b/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseStorageMapper.xml index e720546..3b6af0c 100644 --- a/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseStorageMapper.xml +++ b/bonus-modules/bonus-task/src/main/resources/mapper/BpmPurchaseStorageMapper.xml @@ -50,7 +50,7 @@ SELECT bp.id AS id, mt1.`name` AS materialName, - mt.`name` AS specificationCode, + mt.`name` AS materialModel, sda.dict_label AS unitName, bp.purchase_price AS purchasePrice, bp.notax_price AS notaxPrice, diff --git a/bonus-modules/bonus-task/src/main/resources/mapper/BpmTaskMapper.xml b/bonus-modules/bonus-task/src/main/resources/mapper/BpmTaskMapper.xml index 40138de..a32f424 100644 --- a/bonus-modules/bonus-task/src/main/resources/mapper/BpmTaskMapper.xml +++ b/bonus-modules/bonus-task/src/main/resources/mapper/BpmTaskMapper.xml @@ -405,4 +405,13 @@ where id=#{id,jdbcType=INTEGER} + + + update bpm_task + set `status`=#{updatedStatus,jdbcType=INTEGER} + where id in + + #{item,jdbcType=INTEGER} + + \ No newline at end of file