Compare commits
2 Commits
162120ec31
...
7e885a5eb1
Author | SHA1 | Date | |
---|---|---|---|
7e885a5eb1 | |||
9ca04150f4 |
@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.common.sse.core.SseEmitterManager;
|
||||
import org.dromara.common.sse.dto.SseMessageDto;
|
||||
|
@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
import org.dromara.bidding.service.IBusBiddingLimitListService;
|
||||
import org.dromara.cailiaoshebei.domain.BusTotalsupplyplan;
|
||||
import org.dromara.cailiaoshebei.domain.BusTotalsupplyplanAudit;
|
||||
import org.dromara.cailiaoshebei.service.IBusTotalsupplyplanAuditService;
|
||||
@ -37,6 +39,8 @@ import org.dromara.design.service.IBusBillofquantitiesService;
|
||||
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -64,6 +68,8 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
|
||||
private final IBusBillofquantitiesService busBillofquantitiesService;
|
||||
private final IBusTotalsupplyplanService busTotalsupplyplanService;
|
||||
private final IBusTotalsupplyplanAuditService busTotalsupplyplanAuditService;
|
||||
private final IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService;
|
||||
private final IBusBiddingLimitListService busBiddingLimitListService;
|
||||
|
||||
@Autowired
|
||||
private ISysOssService ossService;
|
||||
@ -474,6 +480,86 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('bidEquipmentList')")
|
||||
public void processPlansHandlerBid(ProcessEvent processEvent) {
|
||||
log.info("投标清单审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
LambdaQueryWrapper<BusBillofquantitiesVersions> eq = new LambdaQueryWrapper<BusBillofquantitiesVersions>()
|
||||
.eq(BusBillofquantitiesVersions::getVersions, id);
|
||||
BusBillofquantitiesVersions busBillofquantitiesVersions = new BusBillofquantitiesVersions();
|
||||
busBillofquantitiesVersions.setStatus(processEvent.getStatus());
|
||||
boolean update = this.update(busBillofquantitiesVersions, eq);
|
||||
//往成本部的投标清单表中新增数据
|
||||
if (update && BusinessStatusEnum.FINISH.getStatus().equals(processEvent.getStatus())) {
|
||||
//根据版本号查询数据
|
||||
BusBillofquantitiesVersions versions = this.getOne(eq);
|
||||
//1、根据查询数据
|
||||
LambdaQueryWrapper<BusBillofquantities> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(BusBillofquantities::getVersions, id);
|
||||
List<BusBillofquantities> list = busBillofquantitiesService.list(lqw);
|
||||
List<BusBiddingLimitList> busTotalsupplyplans = BeanUtil.copyToList(list, BusBiddingLimitList.class);
|
||||
for (BusBiddingLimitList busTotalsupplyplan : busTotalsupplyplans) {
|
||||
busTotalsupplyplan.setProjectId(versions.getProjectId());
|
||||
busTotalsupplyplan.setId(null);
|
||||
}
|
||||
boolean b = busBiddingLimitListService.saveBatch(busTotalsupplyplans);
|
||||
if (!b) {
|
||||
log.info("新增失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventListener(condition = "#processTaskEvent.flowCode.endsWith('bidEquipmentList')")
|
||||
public void processTaskPlansHandlerBid(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("投标清单审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('bidEquipmentList')")
|
||||
public void processDeletePlansHandlerBid(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("投标清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
|
||||
@org.springframework.context.event.EventListener(condition = "#processEvent.flowCode.endsWith('priceEquipmentList')")
|
||||
public void processPlansHandlerPrice(ProcessEvent processEvent) {
|
||||
log.info("限价清单审核任务执行了{}", processEvent.toString());
|
||||
String id = processEvent.getBusinessId();
|
||||
LambdaQueryWrapper<BusBillofquantitiesVersions> eq = new LambdaQueryWrapper<BusBillofquantitiesVersions>()
|
||||
.eq(BusBillofquantitiesVersions::getVersions, id);
|
||||
BusBillofquantitiesVersions busBillofquantitiesVersions = new BusBillofquantitiesVersions();
|
||||
busBillofquantitiesVersions.setStatus(processEvent.getStatus());
|
||||
boolean update = this.update(busBillofquantitiesVersions, eq);
|
||||
//往成本部的限价清单表中新增数据
|
||||
if (update && BusinessStatusEnum.FINISH.getStatus().equals(processEvent.getStatus())) {
|
||||
//根据版本号查询数据
|
||||
BusBillofquantitiesVersions versions = this.getOne(eq);
|
||||
//1、根据查询数据
|
||||
LambdaQueryWrapper<BusBillofquantities> lqw = new LambdaQueryWrapper<>();
|
||||
lqw.eq(BusBillofquantities::getVersions, id);
|
||||
List<BusBillofquantities> list = busBillofquantitiesService.list(lqw);
|
||||
List<BusBillofquantitiesLimitList> busTotalsupplyplans = BeanUtil.copyToList(list, BusBillofquantitiesLimitList.class);
|
||||
for (BusBillofquantitiesLimitList busTotalsupplyplan : busTotalsupplyplans) {
|
||||
busTotalsupplyplan.setProjectId(versions.getProjectId());
|
||||
busTotalsupplyplan.setId(null);
|
||||
}
|
||||
boolean b = busBillofquantitiesLimitListService.saveBatch(busTotalsupplyplans);
|
||||
if (!b) {
|
||||
log.info("新增失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@EventListener(condition = "#processTaskEvent.flowCode.endsWith('priceEquipmentList')")
|
||||
public void processTaskPlansHandlerPrice(ProcessTaskEvent processTaskEvent) {
|
||||
log.info("限价清单审核任务创建了{}", processTaskEvent.toString());
|
||||
}
|
||||
|
||||
|
||||
@EventListener(condition = "#processDeleteEvent.flowCode.endsWith('priceEquipmentList')")
|
||||
public void processDeletePlansHandlerPrice(ProcessDeleteEvent processDeleteEvent) {
|
||||
log.info("限价清单计划删除流程事件,技术标准文件审核任务执行了{}", processDeleteEvent.toString());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||
|
@ -0,0 +1,154 @@
|
||||
package org.dromara.patch.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.patch.domain.vo.PdMasterProgressVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.patch.domain.vo.PdMasterVo;
|
||||
import org.dromara.patch.domain.bo.PdMasterBo;
|
||||
import org.dromara.patch.service.IPdMasterService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 派单
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/patch")
|
||||
public class PdMasterController extends BaseController {
|
||||
|
||||
private final IPdMasterService pdMasterService;
|
||||
/**
|
||||
* 新增进度详情
|
||||
*/
|
||||
@SaCheckPermission("patch:master:edit")
|
||||
@PostMapping("/progress")
|
||||
public R<Void> addProgress(@Validated @RequestBody PdMasterProgressVo progress) {
|
||||
if (progress.getSlaveId() == null) {
|
||||
throw new ServiceException("slaveId不能为空,无法更新进度");
|
||||
}
|
||||
// 将slaveId的值赋给updateBy
|
||||
progress.setUpdateBy(progress.getSlaveId());
|
||||
// 如果需要,也可以将slaveName赋给updateByName
|
||||
progress.setUpdateByName(progress.getSlaveName());
|
||||
return toAjax(pdMasterService.addProgress(progress));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改进度详情
|
||||
*/
|
||||
@SaCheckPermission("patch:master:edit")
|
||||
@PutMapping("/progress")
|
||||
public R<Void> editProgress(@Validated @RequestBody PdMasterProgressVo progress) {
|
||||
return toAjax(pdMasterService.editProgress(progress));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除进度详情
|
||||
*/
|
||||
@SaCheckPermission("patch:master:remove")
|
||||
@DeleteMapping("/progress/{id}")
|
||||
public R<Void> removeProgress(@PathVariable Long id) {
|
||||
return toAjax(pdMasterService.removeProgress(id));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询派单进度详情列表
|
||||
* @param masterId 派单主表ID
|
||||
* @return 进度详情列表
|
||||
*/
|
||||
@SaCheckPermission("patch:master:query")
|
||||
@GetMapping("/progress/{masterId}")
|
||||
public R<List<PdMasterProgressVo>> getProgressList(
|
||||
@NotNull(message = "主表ID不能为空")
|
||||
@PathVariable Long masterId) {
|
||||
return R.ok(pdMasterService.queryProgressList(masterId));
|
||||
}
|
||||
/**
|
||||
* 查询派单列表
|
||||
*/
|
||||
@SaCheckPermission("patch:master:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PdMasterVo> list(PdMasterBo bo, PageQuery pageQuery) {
|
||||
return pdMasterService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出派单列表
|
||||
*/
|
||||
@SaCheckPermission("patch:master:export")
|
||||
@Log(title = "派单", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(PdMasterBo bo, HttpServletResponse response) {
|
||||
List<PdMasterVo> list = pdMasterService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "派单", PdMasterVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取派单详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("patch:master:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<PdMasterVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(pdMasterService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增派单
|
||||
*/
|
||||
@SaCheckPermission("patch:master:add")
|
||||
@Log(title = "派单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PdMasterBo bo) {
|
||||
return toAjax(pdMasterService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改派单
|
||||
*/
|
||||
@SaCheckPermission("patch:master:edit")
|
||||
@Log(title = "派单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PdMasterBo bo) {
|
||||
return toAjax(pdMasterService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除派单
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("patch:master:remove")
|
||||
@Log(title = "派单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(pdMasterService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.patch.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.patch.domain.vo.PdMasterSonVo;
|
||||
import org.dromara.patch.domain.bo.PdMasterSonBo;
|
||||
import org.dromara.patch.service.IPdMasterSonService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 派单-进度
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/patch/masterSon")
|
||||
public class PdMasterSonController extends BaseController {
|
||||
|
||||
private final IPdMasterSonService pdMasterSonService;
|
||||
|
||||
/**
|
||||
* 查询派单-进度列表
|
||||
*/
|
||||
@SaCheckPermission("patch:masterSon:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PdMasterSonVo> list(PdMasterSonBo bo, PageQuery pageQuery) {
|
||||
return pdMasterSonService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出派单-进度列表
|
||||
*/
|
||||
@SaCheckPermission("patch:masterSon:export")
|
||||
@Log(title = "派单-进度", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(PdMasterSonBo bo, HttpServletResponse response) {
|
||||
List<PdMasterSonVo> list = pdMasterSonService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "派单-进度", PdMasterSonVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取派单-进度详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("patch:masterSon:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<PdMasterSonVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(pdMasterSonService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增派单-进度
|
||||
*/
|
||||
@SaCheckPermission("patch:masterSon:add")
|
||||
@Log(title = "派单-进度", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PdMasterSonBo bo) {
|
||||
return toAjax(pdMasterSonService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改派单-进度
|
||||
*/
|
||||
@SaCheckPermission("patch:masterSon:edit")
|
||||
@Log(title = "派单-进度", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PdMasterSonBo bo) {
|
||||
return toAjax(pdMasterSonService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除派单-进度
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("patch:masterSon:remove")
|
||||
@Log(title = "派单-进度", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(pdMasterSonService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,105 @@
|
||||
package org.dromara.patch.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.patch.domain.vo.PdMasterUserVo;
|
||||
import org.dromara.patch.domain.bo.PdMasterUserBo;
|
||||
import org.dromara.patch.service.IPdMasterUserService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 派单-用户
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/patch/masterUser")
|
||||
public class PdMasterUserController extends BaseController {
|
||||
|
||||
private final IPdMasterUserService pdMasterUserService;
|
||||
|
||||
/**
|
||||
* 查询派单-用户列表
|
||||
*/
|
||||
@SaCheckPermission("patch:masterUser:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PdMasterUserVo> list(PdMasterUserBo bo, PageQuery pageQuery) {
|
||||
return pdMasterUserService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出派单-用户列表
|
||||
*/
|
||||
@SaCheckPermission("patch:masterUser:export")
|
||||
@Log(title = "派单-用户", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(PdMasterUserBo bo, HttpServletResponse response) {
|
||||
List<PdMasterUserVo> list = pdMasterUserService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "派单-用户", PdMasterUserVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取派单-用户详细信息
|
||||
*
|
||||
* @param ordersid 主键
|
||||
*/
|
||||
@SaCheckPermission("patch:masterUser:query")
|
||||
@GetMapping("/{ordersid}")
|
||||
public R<PdMasterUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long ordersid) {
|
||||
return R.ok(pdMasterUserService.queryById(ordersid));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增派单-用户
|
||||
*/
|
||||
@SaCheckPermission("patch:masterUser:add")
|
||||
@Log(title = "派单-用户", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PdMasterUserBo bo) {
|
||||
return toAjax(pdMasterUserService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改派单-用户
|
||||
*/
|
||||
@SaCheckPermission("patch:masterUser:edit")
|
||||
@Log(title = "派单-用户", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody PdMasterUserBo bo) {
|
||||
return toAjax(pdMasterUserService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除派单-用户
|
||||
*
|
||||
* @param ordersids 主键串
|
||||
*/
|
||||
@SaCheckPermission("patch:masterUser:remove")
|
||||
@Log(title = "派单-用户", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ordersids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ordersids) {
|
||||
return toAjax(pdMasterUserService.deleteWithValidByIds(List.of(ordersids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package org.dromara.patch.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 派单对象 pd_master
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pd_master")
|
||||
public class PdMaster extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String taskName;
|
||||
|
||||
/**
|
||||
* 任务描述
|
||||
*/
|
||||
@TableField("`describe`")
|
||||
private String describe;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
private Date pcd;
|
||||
|
||||
/**
|
||||
* 实际完成时间
|
||||
*/
|
||||
private Date act;
|
||||
|
||||
/**
|
||||
* 完成进度
|
||||
*/
|
||||
private String completionProgress = "0.00%"; // 设置默认值
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private String taskStatus="0";
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package org.dromara.patch.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 派单-进度对象 pd_master_son
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pd_master_son")
|
||||
public class PdMasterSon extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表任务ID'
|
||||
*/
|
||||
private Long ordersId;
|
||||
|
||||
/**
|
||||
* 进度
|
||||
*/
|
||||
private String progress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
private Long updateBy;
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package org.dromara.patch.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 派单-用户对象 pd_master_user
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("pd_master_user")
|
||||
public class PdMasterUser extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@TableId(type = IdType.INPUT)
|
||||
private Long ordersid;
|
||||
|
||||
/**
|
||||
* 执行人id
|
||||
*/
|
||||
private Long slaveid;
|
||||
|
||||
/**
|
||||
* 执行人名字
|
||||
*/
|
||||
private String slaveName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
package org.dromara.patch.domain.bo;
|
||||
|
||||
import org.dromara.patch.domain.PdMaster;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 派单业务对象 pd_master
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = PdMaster.class, reverseConvertGenerate = false)
|
||||
public class PdMasterBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String taskName;
|
||||
|
||||
/**
|
||||
* 任务描述
|
||||
*/
|
||||
private String describe;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
private Date pcd;
|
||||
|
||||
/**
|
||||
* 实际完成时间
|
||||
*/
|
||||
private Date act;
|
||||
|
||||
/**
|
||||
* 完成进度
|
||||
*/
|
||||
private String completionProgress;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package org.dromara.patch.domain.bo;
|
||||
|
||||
import org.dromara.patch.domain.PdMasterSon;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 派单-进度业务对象 pd_master_son
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = PdMasterSon.class, reverseConvertGenerate = false)
|
||||
public class PdMasterSonBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表任务ID'
|
||||
*/
|
||||
private Long ordersId;
|
||||
|
||||
/**
|
||||
* 进度
|
||||
*/
|
||||
private Long progress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package org.dromara.patch.domain.bo;
|
||||
|
||||
import org.dromara.patch.domain.PdMasterUser;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 派单-用户业务对象 pd_master_user
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = PdMasterUser.class, reverseConvertGenerate = false)
|
||||
public class PdMasterUserBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long ordersid;
|
||||
|
||||
/**
|
||||
* 执行人id
|
||||
*/
|
||||
@NotNull(message = "执行人id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long slaveid;
|
||||
|
||||
/**
|
||||
* 执行人名字
|
||||
*/
|
||||
private String slaveName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package org.dromara.patch.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class ProgressDetailDto {
|
||||
private Long id;
|
||||
private Long ordersId;
|
||||
private String progress;
|
||||
private String remark;
|
||||
private Date updateTime;
|
||||
private Long slaveId;
|
||||
private String slaveName;
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package org.dromara.patch.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 派单进度详情VO
|
||||
*
|
||||
* @author Your Name
|
||||
* @date 2025-08-20
|
||||
*/
|
||||
@Data
|
||||
public class PdMasterProgressVo {
|
||||
/**
|
||||
* 进度ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表任务ID
|
||||
*/
|
||||
private Long ordersId;
|
||||
|
||||
/**
|
||||
* 进度
|
||||
*/
|
||||
private String progress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
/**
|
||||
* 执行人ID
|
||||
*/
|
||||
private Long slaveId;
|
||||
|
||||
/**
|
||||
* 执行人名字
|
||||
*/
|
||||
private String slaveName;
|
||||
private Long updateBy; // 新增字段
|
||||
private String updateByName; // 新增字段
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package org.dromara.patch.domain.vo;
|
||||
|
||||
import org.dromara.patch.domain.PdMasterSon;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 派单-进度视图对象 pd_master_son
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PdMasterSon.class)
|
||||
public class PdMasterSonVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@ExcelProperty(value = "")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主表任务ID'
|
||||
*/
|
||||
@ExcelProperty(value = "主表任务ID'")
|
||||
private Long ordersId;
|
||||
|
||||
/**
|
||||
* 进度
|
||||
*/
|
||||
@ExcelProperty(value = "进度")
|
||||
private String progress;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package org.dromara.patch.domain.vo;
|
||||
|
||||
import org.dromara.patch.domain.PdMasterUser;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 派单-用户视图对象 pd_master_user
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PdMasterUser.class)
|
||||
public class PdMasterUserVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
@ExcelProperty(value = "订单id")
|
||||
private Long ordersid;
|
||||
|
||||
/**
|
||||
* 执行人id
|
||||
*/
|
||||
@ExcelProperty(value = "执行人id")
|
||||
private Long slaveid;
|
||||
|
||||
/**
|
||||
* 执行人名字
|
||||
*/
|
||||
@ExcelProperty(value = "执行人名字")
|
||||
private String slaveName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,88 @@
|
||||
package org.dromara.patch.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.patch.domain.PdMaster;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 派单视图对象 pd_master
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PdMaster.class)
|
||||
public class PdMasterVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
@ExcelProperty(value = "项目ID")
|
||||
private Long projectId;
|
||||
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
@ExcelProperty(value = "任务名称")
|
||||
private String taskName;
|
||||
|
||||
/**
|
||||
* 任务描述
|
||||
*/
|
||||
@ExcelProperty(value = "任务描述")
|
||||
private String describe;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
@ExcelProperty(value = "计划完成时间")
|
||||
private Date pcd;
|
||||
|
||||
/**
|
||||
* 实际完成时间
|
||||
*/
|
||||
@ExcelProperty(value = "实际完成时间")
|
||||
private Date act;
|
||||
|
||||
/**
|
||||
* 完成进度
|
||||
*/
|
||||
@ExcelProperty(value = "完成进度")
|
||||
private String completionProgress;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
@ExcelProperty(value = "任务状态")
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package org.dromara.patch.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 任务状态枚举
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@Getter
|
||||
public enum TaskStatusEnum {
|
||||
UNFINISHED("0", "未完成"),
|
||||
FINISHED("1", "完成");
|
||||
|
||||
private final String value; // 字典值
|
||||
private final String label; // 字典标签
|
||||
|
||||
/**
|
||||
* 根据值获取标签
|
||||
*/
|
||||
public static String getLabelByValue(String value) {
|
||||
for (TaskStatusEnum status : values()) {
|
||||
if (status.value.equals(value)) {
|
||||
return status.label;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
@ -0,0 +1,41 @@
|
||||
package org.dromara.patch.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.patch.domain.PdMaster;
|
||||
import org.dromara.patch.domain.dto.ProgressDetailDto;
|
||||
import org.dromara.patch.domain.vo.PdMasterProgressVo;
|
||||
import org.dromara.patch.domain.vo.PdMasterVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 派单Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
public interface PdMasterMapper extends BaseMapperPlus<PdMaster, PdMasterVo> {
|
||||
List<PdMasterProgressVo> selectProgressByMasterId(@Param("masterId") Long masterId);
|
||||
|
||||
// 新增进度详情
|
||||
int insertProgress(@Param("progress") PdMasterProgressVo progress);
|
||||
|
||||
// 修改进度详情
|
||||
int updateProgress(@Param("progress") PdMasterProgressVo progress);
|
||||
|
||||
// 删除进度详情
|
||||
int deleteProgressById(@Param("id") Long id);
|
||||
Double selectTotalProgressByMasterId(Long masterId);
|
||||
PdMasterProgressVo selectProgressById(Long id);
|
||||
int countMasterUser(@Param("ordersId") Long ordersId, @Param("slaveId") Long slaveId);
|
||||
|
||||
int insertMasterUser(@Param("ordersId") Long ordersId,
|
||||
@Param("slaveId") Long slaveId,
|
||||
@Param("slaveName") String slaveName);
|
||||
}
|
||||
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.patch.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.patch.domain.PdMasterSon;
|
||||
import org.dromara.patch.domain.vo.PdMasterSonVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 派单-进度Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
|
||||
public interface PdMasterSonMapper extends BaseMapperPlus<PdMasterSon, PdMasterSonVo> {
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package org.dromara.patch.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.patch.domain.PdMasterUser;
|
||||
import org.dromara.patch.domain.vo.PdMasterUserVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 派单-用户Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
|
||||
public interface PdMasterUserMapper extends BaseMapperPlus<PdMasterUser, PdMasterUserVo> {
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package org.dromara.patch.service;
|
||||
|
||||
import org.dromara.patch.domain.vo.PdMasterProgressVo;
|
||||
import org.dromara.patch.domain.vo.PdMasterVo;
|
||||
import org.dromara.patch.domain.bo.PdMasterBo;
|
||||
import org.dromara.patch.domain.PdMaster;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 派单Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
public interface IPdMasterService extends IService<PdMaster>{
|
||||
List<PdMasterProgressVo> queryProgressList(Long masterId);
|
||||
void validEntityBeforeSave(PdMaster entity);
|
||||
|
||||
// 新增进度
|
||||
Boolean addProgress(PdMasterProgressVo progress);
|
||||
|
||||
// 修改进度
|
||||
Boolean editProgress(PdMasterProgressVo progress);
|
||||
|
||||
// 删除进度
|
||||
Boolean removeProgress(Long id);
|
||||
/**
|
||||
* 查询派单
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 派单
|
||||
*/
|
||||
PdMasterVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询派单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 派单分页列表
|
||||
*/
|
||||
TableDataInfo<PdMasterVo> queryPageList(PdMasterBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的派单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 派单列表
|
||||
*/
|
||||
List<PdMasterVo> queryList(PdMasterBo bo);
|
||||
|
||||
/**
|
||||
* 新增派单
|
||||
*
|
||||
* @param bo 派单
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(PdMasterBo bo);
|
||||
|
||||
/**
|
||||
* 修改派单
|
||||
*
|
||||
* @param bo 派单
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(PdMasterBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除派单信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.patch.service;
|
||||
|
||||
import org.dromara.patch.domain.vo.PdMasterSonVo;
|
||||
import org.dromara.patch.domain.bo.PdMasterSonBo;
|
||||
import org.dromara.patch.domain.PdMasterSon;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 派单-进度Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
public interface IPdMasterSonService extends IService<PdMasterSon>{
|
||||
|
||||
/**
|
||||
* 查询派单-进度
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 派单-进度
|
||||
*/
|
||||
PdMasterSonVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询派单-进度列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 派单-进度分页列表
|
||||
*/
|
||||
TableDataInfo<PdMasterSonVo> queryPageList(PdMasterSonBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的派单-进度列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 派单-进度列表
|
||||
*/
|
||||
List<PdMasterSonVo> queryList(PdMasterSonBo bo);
|
||||
|
||||
/**
|
||||
* 新增派单-进度
|
||||
*
|
||||
* @param bo 派单-进度
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(PdMasterSonBo bo);
|
||||
|
||||
/**
|
||||
* 修改派单-进度
|
||||
*
|
||||
* @param bo 派单-进度
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(PdMasterSonBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除派单-进度信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.dromara.patch.service;
|
||||
|
||||
import org.dromara.patch.domain.vo.PdMasterUserVo;
|
||||
import org.dromara.patch.domain.bo.PdMasterUserBo;
|
||||
import org.dromara.patch.domain.PdMasterUser;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 派单-用户Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
public interface IPdMasterUserService extends IService<PdMasterUser>{
|
||||
|
||||
/**
|
||||
* 查询派单-用户
|
||||
*
|
||||
* @param ordersid 主键
|
||||
* @return 派单-用户
|
||||
*/
|
||||
PdMasterUserVo queryById(Long ordersid);
|
||||
|
||||
/**
|
||||
* 分页查询派单-用户列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 派单-用户分页列表
|
||||
*/
|
||||
TableDataInfo<PdMasterUserVo> queryPageList(PdMasterUserBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的派单-用户列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 派单-用户列表
|
||||
*/
|
||||
List<PdMasterUserVo> queryList(PdMasterUserBo bo);
|
||||
|
||||
/**
|
||||
* 新增派单-用户
|
||||
*
|
||||
* @param bo 派单-用户
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(PdMasterUserBo bo);
|
||||
|
||||
/**
|
||||
* 修改派单-用户
|
||||
*
|
||||
* @param bo 派单-用户
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(PdMasterUserBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除派单-用户信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,249 @@
|
||||
package org.dromara.patch.service.impl;
|
||||
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.patch.domain.vo.PdMasterProgressVo;
|
||||
import org.dromara.patch.enums.TaskStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.patch.domain.bo.PdMasterBo;
|
||||
import org.dromara.patch.domain.vo.PdMasterVo;
|
||||
import org.dromara.patch.domain.PdMaster;
|
||||
import org.dromara.patch.mapper.PdMasterMapper;
|
||||
import org.dromara.patch.service.IPdMasterService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 派单Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PdMasterServiceImpl extends ServiceImpl<PdMasterMapper, PdMaster> implements IPdMasterService {
|
||||
|
||||
private final PdMasterMapper baseMapper;
|
||||
|
||||
@Override
|
||||
public void validEntityBeforeSave(PdMaster entity) {
|
||||
// 如果有ID(更新操作),计算总进度
|
||||
if (entity.getId() != null) {
|
||||
Double totalProgress = baseMapper.selectTotalProgressByMasterId(entity.getId());
|
||||
entity.setCompletionProgress(String.format("%.2f%%", totalProgress));
|
||||
}
|
||||
|
||||
// 根据完成进度更新任务状态
|
||||
String progress = entity.getCompletionProgress();
|
||||
if ("100.00%".equals(progress)) {
|
||||
entity.setTaskStatus(TaskStatusEnum.FINISHED.getValue());
|
||||
if (entity.getAct() == null) {
|
||||
entity.setAct(new Date());
|
||||
}
|
||||
} else {
|
||||
entity.setTaskStatus(TaskStatusEnum.UNFINISHED.getValue());
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(entity.getTaskName())) {
|
||||
throw new ServiceException("任务名称不能为空");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addProgress(PdMasterProgressVo progress) {
|
||||
if (progress.getOrdersId() == null) {
|
||||
throw new ServiceException("主表ID不能为空");
|
||||
}
|
||||
if (baseMapper.selectById(progress.getOrdersId()) == null) {
|
||||
throw new ServiceException("派单主表不存在");
|
||||
}
|
||||
|
||||
// 新增进度到pd_master_son表
|
||||
boolean success = baseMapper.insertProgress(progress) > 0;
|
||||
|
||||
if (success) {
|
||||
// 同时向pd_master_user表插入数据
|
||||
// 这里假设progress对象中有updateBy字段,如果没有需要从其他地方获取
|
||||
Long updateBy = progress.getUpdateBy(); // 需要确保PdMasterProgressVo有这个字段
|
||||
String updateByName = progress.getUpdateByName(); // 需要确保PdMasterProgressVo有这个字段
|
||||
|
||||
if (updateBy != null) {
|
||||
// 检查是否已存在关联记录
|
||||
int count = baseMapper.countMasterUser(progress.getOrdersId(), updateBy);
|
||||
if (count == 0) {
|
||||
// 不存在则插入
|
||||
baseMapper.insertMasterUser(progress.getOrdersId(), updateBy, updateByName);
|
||||
}
|
||||
}
|
||||
|
||||
updateMasterCompletionProgress(progress.getOrdersId());
|
||||
}
|
||||
return success;
|
||||
}
|
||||
@Override
|
||||
public Boolean editProgress(PdMasterProgressVo progress) {
|
||||
if (progress.getOrdersId() == null) {
|
||||
throw new ServiceException("主表ID不能为空");
|
||||
}
|
||||
// 检查进度记录是否存在
|
||||
PdMasterProgressVo existingProgress = baseMapper.selectProgressById(progress.getId());
|
||||
if (existingProgress == null) {
|
||||
throw new ServiceException("进度记录不存在");
|
||||
}
|
||||
boolean success = baseMapper.updateProgress(progress) > 0;
|
||||
if (success) {
|
||||
updateMasterCompletionProgress(progress.getOrdersId());
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean removeProgress(Long id) {
|
||||
// 先查询进度记录获取主表ID
|
||||
PdMasterProgressVo progress = baseMapper.selectProgressById(id);
|
||||
if (progress == null) {
|
||||
throw new ServiceException("进度记录不存在");
|
||||
}
|
||||
boolean success = baseMapper.deleteProgressById(id) > 0;
|
||||
if (success) {
|
||||
updateMasterCompletionProgress(progress.getOrdersId());
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
private void updateMasterCompletionProgress(Long masterId) {
|
||||
PdMaster master = baseMapper.selectById(masterId);
|
||||
if (master != null) {
|
||||
// 重新计算总进度
|
||||
Double totalProgress = baseMapper.selectTotalProgressByMasterId(masterId);
|
||||
master.setCompletionProgress(String.format("%.2f%%", totalProgress));
|
||||
// 触发校验和状态更新
|
||||
validEntityBeforeSave(master);
|
||||
baseMapper.updateById(master);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 根据主表ID查询进度详情列表
|
||||
* @param masterId 主表ID
|
||||
* @return 进度详情列表
|
||||
*/
|
||||
@Override
|
||||
public List<PdMasterProgressVo> queryProgressList(Long masterId) {
|
||||
if (masterId == null) {
|
||||
return List.of();
|
||||
}
|
||||
return baseMapper.selectProgressByMasterId(masterId);
|
||||
}
|
||||
/**
|
||||
* 查询派单
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 派单
|
||||
*/
|
||||
@Override
|
||||
public PdMasterVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询派单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 派单分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<PdMasterVo> queryPageList(PdMasterBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PdMaster> lqw = buildQueryWrapper(bo);
|
||||
Page<PdMasterVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的派单列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 派单列表
|
||||
*/
|
||||
@Override
|
||||
public List<PdMasterVo> queryList(PdMasterBo bo) {
|
||||
LambdaQueryWrapper<PdMaster> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PdMaster> buildQueryWrapper(PdMasterBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<PdMaster> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(PdMaster::getId);
|
||||
lqw.eq(bo.getProjectId() != null, PdMaster::getProjectId, bo.getProjectId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getTaskName()), PdMaster::getTaskName, bo.getTaskName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDescribe()), PdMaster::getDescribe, bo.getDescribe());
|
||||
lqw.eq(bo.getPcd() != null, PdMaster::getPcd, bo.getPcd());
|
||||
lqw.eq(bo.getAct() != null, PdMaster::getAct, bo.getAct());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCompletionProgress()), PdMaster::getCompletionProgress, bo.getCompletionProgress());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), PdMaster::getTaskStatus, bo.getTaskStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增派单
|
||||
*
|
||||
* @param bo 派单
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(PdMasterBo bo) {
|
||||
PdMaster add = MapstructUtils.convert(bo, PdMaster.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改派单
|
||||
*
|
||||
* @param bo 派单
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(PdMasterBo bo) {
|
||||
PdMaster update = MapstructUtils.convert(bo, PdMaster.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 校验并批量删除派单信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,131 @@
|
||||
package org.dromara.patch.service.impl;
|
||||
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.patch.domain.bo.PdMasterSonBo;
|
||||
import org.dromara.patch.domain.vo.PdMasterSonVo;
|
||||
import org.dromara.patch.domain.PdMasterSon;
|
||||
import org.dromara.patch.mapper.PdMasterSonMapper;
|
||||
import org.dromara.patch.service.IPdMasterSonService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 派单-进度Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PdMasterSonServiceImpl extends ServiceImpl<PdMasterSonMapper, PdMasterSon> implements IPdMasterSonService {
|
||||
|
||||
private final PdMasterSonMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询派单-进度
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 派单-进度
|
||||
*/
|
||||
@Override
|
||||
public PdMasterSonVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询派单-进度列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 派单-进度分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<PdMasterSonVo> queryPageList(PdMasterSonBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PdMasterSon> lqw = buildQueryWrapper(bo);
|
||||
Page<PdMasterSonVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的派单-进度列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 派单-进度列表
|
||||
*/
|
||||
@Override
|
||||
public List<PdMasterSonVo> queryList(PdMasterSonBo bo) {
|
||||
LambdaQueryWrapper<PdMasterSon> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PdMasterSon> buildQueryWrapper(PdMasterSonBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<PdMasterSon> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(PdMasterSon::getId);
|
||||
lqw.eq(bo.getOrdersId() != null, PdMasterSon::getOrdersId, bo.getOrdersId());
|
||||
lqw.eq(bo.getProgress() != null, PdMasterSon::getProgress, bo.getProgress());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增派单-进度
|
||||
*
|
||||
* @param bo 派单-进度
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(PdMasterSonBo bo) {
|
||||
PdMasterSon add = MapstructUtils.convert(bo, PdMasterSon.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改派单-进度
|
||||
*
|
||||
* @param bo 派单-进度
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(PdMasterSonBo bo) {
|
||||
PdMasterSon update = MapstructUtils.convert(bo, PdMasterSon.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(PdMasterSon entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除派单-进度信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,131 @@
|
||||
package org.dromara.patch.service.impl;
|
||||
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.patch.domain.bo.PdMasterUserBo;
|
||||
import org.dromara.patch.domain.vo.PdMasterUserVo;
|
||||
import org.dromara.patch.domain.PdMasterUser;
|
||||
import org.dromara.patch.mapper.PdMasterUserMapper;
|
||||
import org.dromara.patch.service.IPdMasterUserService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 派单-用户Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-08-19
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PdMasterUserServiceImpl extends ServiceImpl<PdMasterUserMapper, PdMasterUser> implements IPdMasterUserService {
|
||||
|
||||
private final PdMasterUserMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询派单-用户
|
||||
*
|
||||
* @param ordersid 主键
|
||||
* @return 派单-用户
|
||||
*/
|
||||
@Override
|
||||
public PdMasterUserVo queryById(Long ordersid){
|
||||
return baseMapper.selectVoById(ordersid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询派单-用户列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 派单-用户分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<PdMasterUserVo> queryPageList(PdMasterUserBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<PdMasterUser> lqw = buildQueryWrapper(bo);
|
||||
Page<PdMasterUserVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的派单-用户列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 派单-用户列表
|
||||
*/
|
||||
@Override
|
||||
public List<PdMasterUserVo> queryList(PdMasterUserBo bo) {
|
||||
LambdaQueryWrapper<PdMasterUser> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PdMasterUser> buildQueryWrapper(PdMasterUserBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<PdMasterUser> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getOrdersid() != null, PdMasterUser::getOrdersid, bo.getOrdersid());
|
||||
lqw.eq(bo.getSlaveid() != null, PdMasterUser::getSlaveid, bo.getSlaveid());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getSlaveName()), PdMasterUser::getSlaveName, bo.getSlaveName());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增派单-用户
|
||||
*
|
||||
* @param bo 派单-用户
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(PdMasterUserBo bo) {
|
||||
PdMasterUser add = MapstructUtils.convert(bo, PdMasterUser.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setOrdersid(add.getOrdersid());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改派单-用户
|
||||
*
|
||||
* @param bo 派单-用户
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(PdMasterUserBo bo) {
|
||||
PdMasterUser update = MapstructUtils.convert(bo, PdMasterUser.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(PdMasterUser entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除派单-用户信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
@ -0,0 +1,166 @@
|
||||
package org.dromara.patch.util;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 统一API响应结果封装
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class AjaxResult implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 状态码
|
||||
*/
|
||||
private int code;
|
||||
|
||||
/**
|
||||
* 返回内容
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 数据对象
|
||||
*/
|
||||
private Object data;
|
||||
|
||||
/**
|
||||
* 初始化一个新创建的 AjaxResult 对象
|
||||
*
|
||||
* @param code 状态码
|
||||
* @param msg 返回内容
|
||||
*/
|
||||
public AjaxResult(int code, String msg) {
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化一个新创建的 AjaxResult 对象
|
||||
*
|
||||
* @param code 状态码
|
||||
* @param msg 返回内容
|
||||
* @param data 数据对象
|
||||
*/
|
||||
public AjaxResult(int code, String msg, Object data) {
|
||||
this.code = code;
|
||||
this.msg = msg;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功消息
|
||||
*
|
||||
* @return 成功消息
|
||||
*/
|
||||
public static AjaxResult success() {
|
||||
return AjaxResult.success("操作成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功数据
|
||||
*
|
||||
* @return 成功消息
|
||||
*/
|
||||
public static AjaxResult success(Object data) {
|
||||
return AjaxResult.success("操作成功", data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功消息
|
||||
*
|
||||
* @param msg 返回内容
|
||||
* @return 成功消息
|
||||
*/
|
||||
public static AjaxResult success(String msg) {
|
||||
return AjaxResult.success(msg, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回成功消息
|
||||
*
|
||||
* @param msg 返回内容
|
||||
* @param data 数据对象
|
||||
* @return 成功消息
|
||||
*/
|
||||
public static AjaxResult success(String msg, Object data) {
|
||||
return new AjaxResult(200, msg, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回错误消息
|
||||
*
|
||||
* @return 错误消息
|
||||
*/
|
||||
public static AjaxResult error() {
|
||||
return AjaxResult.error("操作失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回错误消息
|
||||
*
|
||||
* @param msg 返回内容
|
||||
* @return 错误消息
|
||||
*/
|
||||
public static AjaxResult error(String msg) {
|
||||
return AjaxResult.error(msg, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回错误消息
|
||||
*
|
||||
* @param msg 返回内容
|
||||
* @param data 数据对象
|
||||
* @return 错误消息
|
||||
*/
|
||||
public static AjaxResult error(String msg, Object data) {
|
||||
return new AjaxResult(500, msg, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回错误消息
|
||||
*
|
||||
* @param code 状态码
|
||||
* @param msg 返回内容
|
||||
* @return 错误消息
|
||||
*/
|
||||
public static AjaxResult error(int code, String msg) {
|
||||
return new AjaxResult(code, msg, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否为成功响应
|
||||
*
|
||||
* @return 结果
|
||||
*/
|
||||
public boolean isSuccess() {
|
||||
return this.code == 200;
|
||||
}
|
||||
|
||||
/**
|
||||
* 方便链式调用
|
||||
*
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @return 数据对象
|
||||
*/
|
||||
public AjaxResult put(String key, Object value) {
|
||||
if (this.data == null) {
|
||||
this.data = new HashMap<String, Object>();
|
||||
}
|
||||
|
||||
if (this.data instanceof Map) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> map = (Map<String, Object>) this.data;
|
||||
map.put(key, value);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
}
|
@ -120,4 +120,6 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
|
||||
})
|
||||
int updateById(@Param(Constants.ENTITY) SysUser user);
|
||||
|
||||
List<Long> thisAlldepIds(@Param("depId") Long deptId);
|
||||
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package org.dromara.system.service;
|
||||
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.domain.bo.SysUserBo;
|
||||
import org.dromara.system.domain.vo.SysUserExportVo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
@ -236,5 +237,9 @@ public interface ISysUserService {
|
||||
*/
|
||||
List<SysUserVo> selectUserListByPostList(List<Long> postIds);
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前用户所在部门的所有用户
|
||||
* @return 结果
|
||||
*/
|
||||
List<SysUser> findThis();
|
||||
}
|
||||
|
@ -686,6 +686,20 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前用户所在部门的所有用户
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SysUser> findThis() {
|
||||
//1、获取当前用户部门
|
||||
Long deptId = LoginHelper.getDeptId();
|
||||
//2、查询当前用户所在部门
|
||||
List<Long> longs = baseMapper.thisAlldepIds(deptId);
|
||||
//3、查询当前用户所在部门所有用户
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<SysUser>().in(SysUser::getDeptId, longs));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户账户
|
||||
*
|
||||
|
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.patch.mapper.PdMasterMapper">
|
||||
<select id="selectProgressByMasterId" resultType="org.dromara.patch.domain.vo.PdMasterProgressVo">
|
||||
SELECT
|
||||
s.id,
|
||||
s.orders_id as ordersId,
|
||||
s.progress,
|
||||
s.remark,
|
||||
s.update_time as updateTime,
|
||||
u.slaveid as slaveId,
|
||||
u.slave_name as slaveName
|
||||
FROM
|
||||
pd_master m
|
||||
INNER JOIN pd_master_user u ON m.id = u.ordersid
|
||||
INNER JOIN pd_master_son s ON m.id = s.orders_id
|
||||
WHERE
|
||||
m.id = #{masterId}
|
||||
ORDER BY
|
||||
s.update_time DESC
|
||||
</select>
|
||||
|
||||
<!-- 新增进度详情 -->
|
||||
<insert id="insertProgress">
|
||||
INSERT INTO pd_master_son (orders_id, progress, remark, update_time, update_by)
|
||||
VALUES (#{progress.ordersId}, #{progress.progress}, #{progress.remark}, NOW(), #{progress.updateBy})
|
||||
</insert>
|
||||
|
||||
<!-- 修改进度详情 -->
|
||||
<update id="updateProgress">
|
||||
UPDATE pd_master_son
|
||||
SET progress = #{progress.progress},
|
||||
remark = #{progress.remark},
|
||||
update_time = NOW()
|
||||
WHERE id = #{progress.id}
|
||||
</update>
|
||||
|
||||
<!-- 删除进度详情 -->
|
||||
<delete id="deleteProgressById">
|
||||
DELETE FROM pd_master_son WHERE id = #{id}
|
||||
</delete>
|
||||
<select id="selectTotalProgressByMasterId" resultType="java.lang.Double">
|
||||
SELECT COALESCE(SUM(CAST(REPLACE(progress, '%', '') AS DECIMAL(5,2))), 0)
|
||||
FROM pd_master_son
|
||||
WHERE orders_id = #{masterId}
|
||||
</select>
|
||||
<select id="selectProgressById" resultType="org.dromara.patch.domain.vo.PdMasterProgressVo">
|
||||
SELECT id, orders_id as ordersId, progress, remark, update_time as updateTime, update_by as updateBy
|
||||
FROM pd_master_son
|
||||
WHERE id = #{id}
|
||||
</select>
|
||||
<!-- 检查pd_master_user表中是否存在关联记录 -->
|
||||
<select id="countMasterUser" resultType="int">
|
||||
SELECT COUNT(*) FROM pd_master_user
|
||||
WHERE ordersid = #{ordersId} AND slaveid = #{slaveId}
|
||||
</select>
|
||||
<!-- 向pd_master_user表插入数据 -->
|
||||
<insert id="insertMasterUser">
|
||||
INSERT INTO pd_master_user (ordersid, slaveid, slave_name)
|
||||
VALUES (#{ordersId}, #{slaveId}, #{slaveName})
|
||||
</insert>
|
||||
</mapper>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.patch.mapper.PdMasterSonMapper">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.patch.mapper.PdMasterUserMapper">
|
||||
|
||||
</mapper>
|
@ -69,5 +69,44 @@
|
||||
select count(*) from sys_user where del_flag = '0' and user_id = #{userId}
|
||||
</select>
|
||||
|
||||
<select id="thisAlldepIds" resultType="Long">
|
||||
WITH RECURSIVE dept_tree AS (
|
||||
SELECT
|
||||
dept_id,
|
||||
parent_id,
|
||||
dept_name,
|
||||
dept_category,
|
||||
order_num,
|
||||
status,
|
||||
is_show,
|
||||
1 as level
|
||||
FROM sys_dept
|
||||
WHERE parent_id = #{depId}
|
||||
AND del_flag = '0'
|
||||
AND status = '0'
|
||||
|
||||
UNION ALL
|
||||
|
||||
SELECT
|
||||
d.dept_id,
|
||||
d.parent_id,
|
||||
d.dept_name,
|
||||
d.dept_category,
|
||||
d.order_num,
|
||||
d.status,
|
||||
d.is_show,
|
||||
dt.level + 1
|
||||
FROM sys_dept d
|
||||
INNER JOIN dept_tree dt ON d.parent_id = dt.dept_id
|
||||
WHERE d.del_flag = '0'
|
||||
AND d.status = '0'
|
||||
)
|
||||
SELECT
|
||||
dept_id
|
||||
FROM dept_tree
|
||||
WHERE is_show = '1'
|
||||
ORDER BY level, order_num;
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
|
Reference in New Issue
Block a user