任务
This commit is contained in:
parent
f89752942f
commit
cb62db6484
@ -3,6 +3,8 @@ package com.pusong.business.controller;
|
||||
import java.util.List;
|
||||
|
||||
import com.pusong.business.domain.bo.PsContractInfoQueryBo;
|
||||
import com.pusong.business.domain.vo.PsContractBusinessVo;
|
||||
import com.pusong.business.service.IPsContractBusinessService;
|
||||
import com.pusong.common.core.validate.QueryGroup;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
@ -39,6 +41,7 @@ import javax.management.Query;
|
||||
public class PsContractInfoController extends BaseController {
|
||||
|
||||
private final IPsContractInfoService psContractInfoService;
|
||||
private final IPsContractBusinessService businessService;
|
||||
|
||||
|
||||
/**
|
||||
@ -85,7 +88,7 @@ public class PsContractInfoController extends BaseController {
|
||||
/**
|
||||
* 根据合同编码查询合同信息
|
||||
*/
|
||||
@SaCheckPermission("business:contractInfo:add")
|
||||
@SaCheckPermission("business:contractInfo:list")
|
||||
@Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@GetMapping("/queryContractByCode")
|
||||
@ -125,6 +128,17 @@ public class PsContractInfoController extends BaseController {
|
||||
public R<Boolean> restart(@NotBlank String contractCode) {
|
||||
return R.ok(psContractInfoService.restart(contractCode));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据合同编码查询服务信息
|
||||
*/
|
||||
@SaCheckPermission("business:contractInfo:list")
|
||||
@Log(title = "根据合同编码查询合同信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@GetMapping("/queryServiceByCode")
|
||||
public R<List<PsContractBusinessVo>> queryServiceByCode(@NotBlank String contractCode) {
|
||||
return R.ok(businessService.selectBusinessList(contractCode));
|
||||
}
|
||||
//
|
||||
// /**
|
||||
// * 获取合同基本信息详细信息
|
||||
|
@ -0,0 +1,108 @@
|
||||
package com.pusong.business.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.pusong.business.domain.bo.PsContractInfoBo;
|
||||
import com.pusong.business.domain.bo.PsContractInfoQueryBo;
|
||||
import com.pusong.business.domain.bo.PsContractPayBo;
|
||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||
import com.pusong.business.service.IPsContractInfoService;
|
||||
import com.pusong.business.service.IPsContractOperateService;
|
||||
import com.pusong.business.service.IPsContractPayService;
|
||||
import com.pusong.common.core.domain.R;
|
||||
import com.pusong.common.core.validate.AddGroup;
|
||||
import com.pusong.common.core.validate.EditGroup;
|
||||
import com.pusong.common.idempotent.annotation.RepeatSubmit;
|
||||
import com.pusong.common.log.annotation.Log;
|
||||
import com.pusong.common.log.enums.BusinessType;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.common.web.core.BaseController;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 合同操作controller
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/contractOperate")
|
||||
public class PsContractOperateController extends BaseController {
|
||||
|
||||
private final IPsContractPayService payService;
|
||||
private final IPsContractOperateService operateService;
|
||||
|
||||
/**
|
||||
* 合同签章
|
||||
*
|
||||
* @param contractCode 合同编码
|
||||
*/
|
||||
@SaCheckPermission("business:contractOperate:sign")
|
||||
@GetMapping("/sign")
|
||||
public R<Void> getInfo(@NotBlank String contractCode ) {
|
||||
operateService.sign(contractCode);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 合同添加回款记录
|
||||
*/
|
||||
@SaCheckPermission("business:contractOperate:addPayRecord")
|
||||
@PostMapping(value = "/addPayRecord", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> addPayRecord(@RequestPart("files") List<MultipartFile> files,
|
||||
@Validated(AddGroup.class) PsContractPayBo psContractPayBo)throws Exception {
|
||||
payService.addPay( files, psContractPayBo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 回传合同
|
||||
*/
|
||||
@SaCheckPermission("business:contractOperate:rollBack")
|
||||
@PostMapping(value = "/rollBack", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> rollBack(@RequestPart("file") MultipartFile file,@NotBlank String contractCode )throws Exception {
|
||||
operateService.rollbackContract( file, contractCode);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
// /**
|
||||
// * 获取合同基本信息详细信息
|
||||
// *
|
||||
// * @param id 主键
|
||||
// */
|
||||
// @SaCheckPermission("business:contractInfo:query")
|
||||
// @GetMapping("/{id}")
|
||||
// public R<PsContractInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
// @PathVariable Long id) {
|
||||
// return R.ok(psContractInfoService.queryById(id));
|
||||
// }
|
||||
//
|
||||
|
||||
//
|
||||
// /**
|
||||
// * 修改合同基本信息
|
||||
// */
|
||||
// @SaCheckPermission("business:contractInfo:edit")
|
||||
// @Log(title = "合同基本信息", businessType = BusinessType.UPDATE)
|
||||
// @RepeatSubmit()
|
||||
// @PutMapping()
|
||||
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsContractInfoBo bo) {
|
||||
// return toAjax(psContractInfoService.updateByBo(bo));
|
||||
// }
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,203 @@
|
||||
package com.pusong.business.controller;
|
||||
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.pusong.business.domain.bo.AppointBo;
|
||||
import com.pusong.business.domain.bo.MediaCompanySaveBo;
|
||||
import com.pusong.business.domain.bo.PsTaskQueryBo;
|
||||
import com.pusong.business.domain.vo.PsTaskAppointVo;
|
||||
import com.pusong.common.core.domain.R;
|
||||
import com.pusong.common.core.validate.QueryGroup;
|
||||
import com.pusong.common.log.annotation.Log;
|
||||
import com.pusong.common.log.enums.BusinessType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.pusong.common.web.core.BaseController;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import com.pusong.business.domain.vo.PsTaskMainVo;
|
||||
import com.pusong.business.service.IPsTaskService;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 任务controller
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/task")
|
||||
public class PsTaskController extends BaseController {
|
||||
|
||||
private final IPsTaskService psTaskMainService;
|
||||
|
||||
/**
|
||||
* 查询主任务列表
|
||||
*/
|
||||
@Log(title = "查询主任务列表")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<PsTaskMainVo> list(PsTaskQueryBo bo, PageQuery pageQuery) {
|
||||
return psTaskMainService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询内外特任务列表
|
||||
*/
|
||||
@Log(title = "查询内外特任务列表")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/childList")
|
||||
public TableDataInfo<PsTaskMainVo> childList(@Validated(QueryGroup.class) PsTaskQueryBo bo, PageQuery pageQuery) {
|
||||
return psTaskMainService.queryChildPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据任务id查询任务的公司信息和资料信息
|
||||
*/
|
||||
@Log(title = "根据任务id查询任务的公司信息和资料信息")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/info")
|
||||
public R<PsTaskMainVo> info(@NotNull Long id) {
|
||||
return R.ok(psTaskMainService.queryInfo(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传资料和公司信息
|
||||
*/
|
||||
@Log(title = "上传资料和公司信息")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@PostMapping("/saveInfo")
|
||||
public R<Void> saveInfo( @RequestBody MediaCompanySaveBo save) {
|
||||
psTaskMainService.saveInfo(save);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 任务委派
|
||||
*/
|
||||
@Log(title = "任务委派")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@PostMapping("/appoint")
|
||||
public R<Void> appoint(@Validated @RequestBody AppointBo appointBo) {
|
||||
psTaskMainService.appoint(appointBo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 主任务完成
|
||||
* @param id 主任务id
|
||||
* @return
|
||||
*/
|
||||
@Log(title = "主任务完成")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/mainFinish")
|
||||
public R<Void> mainFinish(@NotNull Long id) {
|
||||
psTaskMainService.finishMain(id);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 子任务完成
|
||||
* @param id 子任务id
|
||||
* @param desc 特勤备注
|
||||
* @return
|
||||
*/
|
||||
@Log(title = "子任务完成")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/childFinish")
|
||||
public R<Void> childFinish(@NotNull Long id,String desc) {
|
||||
psTaskMainService.finishChild(id,desc);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取任务执行者列表
|
||||
* @param id 任务id
|
||||
* @return
|
||||
*/
|
||||
@Log(title = "获取任务执行者列表")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/executors")
|
||||
public R<Map<String, PsTaskAppointVo>> executors(@NotNull Long id) {
|
||||
return R.ok(psTaskMainService.getExecutors(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务改派
|
||||
* @param id 任务委派表id
|
||||
* @param executorId 任务新的执行者id
|
||||
* @return
|
||||
*/
|
||||
@Log(title = "任务改派")
|
||||
@SaCheckPermission("business:task:list")
|
||||
@GetMapping("/reset")
|
||||
public R<Void> taskReset(@NotNull Long id,@NotNull Long executorId) {
|
||||
psTaskMainService.taskReset(id, executorId);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 导出主任务列表
|
||||
// */
|
||||
// @SaCheckPermission("business:taskMain:export")
|
||||
// @Log(title = "主任务", businessType = BusinessType.EXPORT)
|
||||
// @PostMapping("/export")
|
||||
// public void export(PsTaskMainBo bo, HttpServletResponse response) {
|
||||
// List<PsTaskMainVo> list = psTaskMainService.queryList(bo);
|
||||
// ExcelUtil.exportExcel(list, "主任务", PsTaskMainVo.class, response);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 获取主任务详细信息
|
||||
// *
|
||||
// * @param id 主键
|
||||
// */
|
||||
// @SaCheckPermission("business:taskMain:query")
|
||||
// @GetMapping("/{id}")
|
||||
// public R<PsTaskMainVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
// @PathVariable Long id) {
|
||||
// return R.ok(psTaskMainService.queryById(id));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 新增主任务
|
||||
// */
|
||||
// @SaCheckPermission("business:taskMain:add")
|
||||
// @Log(title = "主任务", businessType = BusinessType.INSERT)
|
||||
// @RepeatSubmit()
|
||||
// @PostMapping()
|
||||
// public R<Void> add(@Validated(AddGroup.class) @RequestBody PsTaskMainBo bo) {
|
||||
// return toAjax(psTaskMainService.insertByBo(bo));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 修改主任务
|
||||
// */
|
||||
// @SaCheckPermission("business:taskMain:edit")
|
||||
// @Log(title = "主任务", businessType = BusinessType.UPDATE)
|
||||
// @RepeatSubmit()
|
||||
// @PutMapping()
|
||||
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsTaskMainBo bo) {
|
||||
// return toAjax(psTaskMainService.updateByBo(bo));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 删除主任务
|
||||
// *
|
||||
// * @param ids 主键串
|
||||
// */
|
||||
// @SaCheckPermission("business:taskMain:remove")
|
||||
// @Log(title = "主任务", businessType = BusinessType.DELETE)
|
||||
// @DeleteMapping("/{ids}")
|
||||
// public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
// @PathVariable Long[] ids) {
|
||||
// return toAjax(psTaskMainService.deleteWithValidByIds(List.of(ids), true));
|
||||
// }
|
||||
}
|
@ -0,0 +1,116 @@
|
||||
package com.pusong.business.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.pusong.common.idempotent.annotation.RepeatSubmit;
|
||||
import com.pusong.common.log.annotation.Log;
|
||||
import com.pusong.common.web.core.BaseController;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import com.pusong.common.core.domain.R;
|
||||
import com.pusong.common.core.validate.AddGroup;
|
||||
import com.pusong.common.core.validate.EditGroup;
|
||||
import com.pusong.common.log.enums.BusinessType;
|
||||
import com.pusong.common.excel.utils.ExcelUtil;
|
||||
import com.pusong.business.domain.vo.PsTaskWorkRecordVo;
|
||||
import com.pusong.business.domain.bo.PsTaskWorkRecordBo;
|
||||
import com.pusong.business.service.IPsTaskWorkRecordService;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 外勤任务记录
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/business/taskWorkRecord")
|
||||
public class PsTaskWorkRecordController extends BaseController {
|
||||
|
||||
private final IPsTaskWorkRecordService psTaskWorkRecordService;
|
||||
|
||||
/**
|
||||
* 根据任务委派id查询工作进度列表
|
||||
*/
|
||||
@Log(title = "根据任务委派id查询工作进度列表")
|
||||
@SaCheckPermission("business:taskWorkRecord:list")
|
||||
@GetMapping("/list")
|
||||
public R<List<PsTaskWorkRecordVo>> list(@NotNull Long id) {
|
||||
return R.ok(psTaskWorkRecordService.queryListByAppointId(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增外勤任务记录
|
||||
*/
|
||||
@SaCheckPermission("business:taskWorkRecord:add")
|
||||
@Log(title = "外勤任务记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody PsTaskWorkRecordBo bo) {
|
||||
return toAjax(psTaskWorkRecordService.insertByBo(bo));
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 导出外勤任务记录列表
|
||||
// */
|
||||
// @SaCheckPermission("business:taskWorkRecord:export")
|
||||
// @Log(title = "外勤任务记录", businessType = BusinessType.EXPORT)
|
||||
// @PostMapping("/export")
|
||||
// public void export(PsTaskWorkRecordBo bo, HttpServletResponse response) {
|
||||
// List<PsTaskWorkRecordVo> list = psTaskWorkRecordService.queryList(bo);
|
||||
// ExcelUtil.exportExcel(list, "外勤任务记录", PsTaskWorkRecordVo.class, response);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 获取外勤任务记录详细信息
|
||||
// *
|
||||
// * @param id 主键
|
||||
// */
|
||||
// @SaCheckPermission("business:taskWorkRecord:query")
|
||||
// @GetMapping("/{id}")
|
||||
// public R<PsTaskWorkRecordVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
// @PathVariable Long id) {
|
||||
// return R.ok(psTaskWorkRecordService.queryById(id));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 新增外勤任务记录
|
||||
// */
|
||||
// @SaCheckPermission("business:taskWorkRecord:add")
|
||||
// @Log(title = "外勤任务记录", businessType = BusinessType.INSERT)
|
||||
// @RepeatSubmit()
|
||||
// @PostMapping()
|
||||
// public R<Void> add(@Validated(AddGroup.class) @RequestBody PsTaskWorkRecordBo bo) {
|
||||
// return toAjax(psTaskWorkRecordService.insertByBo(bo));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 修改外勤任务记录
|
||||
// */
|
||||
// @SaCheckPermission("business:taskWorkRecord:edit")
|
||||
// @Log(title = "外勤任务记录", businessType = BusinessType.UPDATE)
|
||||
// @RepeatSubmit()
|
||||
// @PutMapping()
|
||||
// public R<Void> edit(@Validated(EditGroup.class) @RequestBody PsTaskWorkRecordBo bo) {
|
||||
// return toAjax(psTaskWorkRecordService.updateByBo(bo));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 删除外勤任务记录
|
||||
// *
|
||||
// * @param ids 主键串
|
||||
// */
|
||||
// @SaCheckPermission("business:taskWorkRecord:remove")
|
||||
// @Log(title = "外勤任务记录", businessType = BusinessType.DELETE)
|
||||
// @DeleteMapping("/{ids}")
|
||||
// public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
// @PathVariable Long[] ids) {
|
||||
// return toAjax(psTaskWorkRecordService.deleteWithValidByIds(List.of(ids), true));
|
||||
// }
|
||||
}
|
@ -34,7 +34,10 @@ public class PsApproverRecord extends TenantEntity {
|
||||
* 关联业务id
|
||||
*/
|
||||
private String businessId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
/**
|
||||
* 审批业务类型
|
||||
*/
|
||||
|
@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公司信息对象 ps_company_info
|
||||
@ -64,6 +65,70 @@ public class PsCompanyInfo extends TenantEntity {
|
||||
* 法人电话号
|
||||
*/
|
||||
private String legalPersonPhone;
|
||||
/**
|
||||
* 纳税人识别号
|
||||
*/
|
||||
private String customerNum;
|
||||
/**
|
||||
* 纳税人资格
|
||||
*/
|
||||
private String customerCert;
|
||||
/**
|
||||
* 个税密码
|
||||
*/
|
||||
private String companyPersonPassword;
|
||||
/**
|
||||
* 税务密码
|
||||
*/
|
||||
private String companyTaxPassword;
|
||||
/**
|
||||
* 开户行客户经理电话
|
||||
*/
|
||||
private String companyBankManagerPhone;
|
||||
/**
|
||||
* 刻章公司名称
|
||||
*/
|
||||
private String madeSignCompanyName;
|
||||
/**
|
||||
* 公司地址详情
|
||||
*/
|
||||
private String companyAdressDetail;
|
||||
/**
|
||||
* 账套号
|
||||
*/
|
||||
private String financeAccountNo;
|
||||
/**
|
||||
* 社保开户时间
|
||||
*/
|
||||
private Date socialStartDate;
|
||||
/**
|
||||
* 公积金开户时间
|
||||
*/
|
||||
private Date providentStartDate;
|
||||
/**
|
||||
* 营业执照开始时间
|
||||
*/
|
||||
private Date licenseStartDate;
|
||||
/**
|
||||
* 营业执照结束时间
|
||||
*/
|
||||
private Date licenseEndDate;
|
||||
/**
|
||||
* 经营范围
|
||||
*/
|
||||
private String companyScope;
|
||||
/**
|
||||
* 注册资金
|
||||
*/
|
||||
private BigDecimal registerAmount;
|
||||
/**
|
||||
* 注册类型
|
||||
*/
|
||||
private String registerType;
|
||||
/**
|
||||
* 发票类型
|
||||
*/
|
||||
private String billType;
|
||||
|
||||
/**
|
||||
* 2逻辑删除 0 默认有效
|
||||
@ -71,4 +136,6 @@ public class PsCompanyInfo extends TenantEntity {
|
||||
private Long delFlag;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -119,6 +119,10 @@ public class PsContractInfo extends TenantEntity {
|
||||
* 合同回传状态CommonStatusEnum
|
||||
*/
|
||||
private String rollBackStatus;
|
||||
/**
|
||||
* 回传的合同文件ossid
|
||||
*/
|
||||
private Long rollBackPdf;
|
||||
|
||||
/**
|
||||
* 合同签章状态CommonStatusEnum
|
||||
|
@ -0,0 +1,65 @@
|
||||
package com.pusong.business.domain;
|
||||
|
||||
import com.pusong.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 任务委派对象 ps_task_appoint
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ps_task_appoint")
|
||||
public class PsTaskAppoint extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主任务表id
|
||||
*/
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 任务委派类型(1内勤,2外勤,3特勤)
|
||||
*/
|
||||
private String appointType;
|
||||
|
||||
/**
|
||||
* 任务委派状态
|
||||
*/
|
||||
private String appointStatus;
|
||||
|
||||
/**
|
||||
* 任务执行者
|
||||
*/
|
||||
private Long executor;
|
||||
/**
|
||||
* 任务备注
|
||||
*/
|
||||
private String taskDesc;
|
||||
/**
|
||||
* 2逻辑删除 0 默认有效
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package com.pusong.business.domain;
|
||||
|
||||
import com.pusong.common.tenant.core.TenantEntity;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 主任务对象 ps_task_main
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ps_task_main")
|
||||
public class PsTaskMain extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 任务类型(1合同任务,2免费工单,3发票)
|
||||
*/
|
||||
private String taskType;
|
||||
|
||||
/**
|
||||
* 派单时间
|
||||
*/
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 任务状态
|
||||
*/
|
||||
private String taskStatus;
|
||||
|
||||
/**
|
||||
* 2逻辑删除 0 默认有效
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.pusong.business.domain;
|
||||
|
||||
import com.pusong.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 任务资料对象 ps_task_media
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ps_task_media")
|
||||
public class PsTaskMedia extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主任务表id
|
||||
*/
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 资料类型
|
||||
*/
|
||||
private String mediaType;
|
||||
|
||||
/**
|
||||
* 文件ossid
|
||||
*/
|
||||
private String mediaOssId;
|
||||
|
||||
/**
|
||||
* 2逻辑删除 0 默认有效
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
package com.pusong.business.domain;
|
||||
|
||||
import com.pusong.common.tenant.core.TenantEntity;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 外勤任务记录对象 ps_task_work_record
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("ps_task_work_record")
|
||||
public class PsTaskWorkRecord extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 任务委派表id
|
||||
*/
|
||||
private Long taskAppointId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 办理时间
|
||||
*/
|
||||
private Date handleDate;
|
||||
|
||||
/**
|
||||
* 办理事项
|
||||
*/
|
||||
private String handleInfo;
|
||||
|
||||
/**
|
||||
* 办理进度说明
|
||||
*/
|
||||
private String handlePlan;
|
||||
|
||||
/**
|
||||
* 下次办理类型
|
||||
*/
|
||||
private String nextType;
|
||||
|
||||
/**
|
||||
* 下次办理描述
|
||||
*/
|
||||
private String nextDesc;
|
||||
|
||||
/**
|
||||
* 下次办理时间
|
||||
*/
|
||||
private Date nextDate;
|
||||
|
||||
/**
|
||||
* 2逻辑删除 0 默认有效
|
||||
*/
|
||||
@TableLogic
|
||||
private Long delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.pusong.business.domain.bo;
|
||||
|
||||
import com.pusong.system.domain.bo.SysDictDataBo;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
public class AppointBo {
|
||||
/**
|
||||
* 任务主表id
|
||||
*/
|
||||
@NotNull
|
||||
private Long id;
|
||||
/**
|
||||
* 执行者用户id
|
||||
*/
|
||||
@NotNull
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 任务委派类型(1内勤,2外勤,3特勤)
|
||||
*/
|
||||
@NotBlank
|
||||
private String AppointType;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package com.pusong.business.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
public class MediaCompanySaveBo {
|
||||
/**
|
||||
* 主任务表id
|
||||
*/
|
||||
@NotNull
|
||||
private Long id;
|
||||
/**
|
||||
* 公司信息
|
||||
*/
|
||||
@NotNull
|
||||
private PsCompanyInfoBo psCompanyInfo;
|
||||
|
||||
/**
|
||||
* 资料信息
|
||||
*/
|
||||
private List<PsTaskMediaBo> mediaBoList;
|
||||
}
|
@ -18,9 +18,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
* @date 2024-08-05
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = PsApproverRecord.class, reverseConvertGenerate = false)
|
||||
public class PsApproverRecordBo extends BaseEntity {
|
||||
@EqualsAndHashCode
|
||||
@AutoMapper(target = PsApproverRecord.class)
|
||||
public class PsApproverRecordBo {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
@ -33,7 +33,10 @@ public class PsApproverRecordBo extends BaseEntity {
|
||||
*/
|
||||
@NotNull(message = "关联业务id不能为空")
|
||||
private Long businessId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
/**
|
||||
* 审批业务类型
|
||||
*/
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.pusong.business.domain.bo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.pusong.business.domain.PsCompanyInfo;
|
||||
import com.pusong.common.core.validate.QueryGroup;
|
||||
import com.pusong.common.mybatis.core.domain.BaseEntity;
|
||||
@ -11,6 +12,7 @@ import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公司信息业务对象 ps_company_info
|
||||
@ -69,5 +71,72 @@ public class PsCompanyInfoBo {
|
||||
*/
|
||||
private String legalPersonPhone;
|
||||
|
||||
|
||||
/**
|
||||
* 纳税人识别号
|
||||
*/
|
||||
private String customerNum;
|
||||
/**
|
||||
* 纳税人资格
|
||||
*/
|
||||
private String customerCert;
|
||||
/**
|
||||
* 个税密码
|
||||
*/
|
||||
private String companyPersonPassword;
|
||||
/**
|
||||
* 税务密码
|
||||
*/
|
||||
private String companyTaxPassword;
|
||||
/**
|
||||
* 开户行客户经理电话
|
||||
*/
|
||||
private String companyBankManagerPhone;
|
||||
/**
|
||||
* 刻章公司名称
|
||||
*/
|
||||
private String madeSignCompanyName;
|
||||
/**
|
||||
* 公司地址详情
|
||||
*/
|
||||
private String companyAdressDetail;
|
||||
/**
|
||||
* 账套号
|
||||
*/
|
||||
private String financeAccountNo;
|
||||
/**
|
||||
* 社保开户时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date socialStartDate;
|
||||
/**
|
||||
* 公积金开户时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date providentStartDate;
|
||||
/**
|
||||
* 营业执照开始时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date licenseStartDate;
|
||||
/**
|
||||
* 营业执照结束时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date licenseEndDate;
|
||||
/**
|
||||
* 经营范围
|
||||
*/
|
||||
private String companyScope;
|
||||
/**
|
||||
* 注册资金
|
||||
*/
|
||||
private BigDecimal registerAmount;
|
||||
/**
|
||||
* 注册类型
|
||||
*/
|
||||
private String registerType;
|
||||
/**
|
||||
* 发票类型
|
||||
*/
|
||||
private String billType;
|
||||
}
|
||||
|
@ -17,9 +17,9 @@ import java.math.BigDecimal;
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@EqualsAndHashCode
|
||||
@AutoMapper(target = PsContractBusinessDetail.class)
|
||||
public class PsContractBusinessDetailBo extends BaseEntity {
|
||||
public class PsContractBusinessDetailBo {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
|
@ -52,6 +52,15 @@ public class PsContractInfoQueryBo {
|
||||
*/
|
||||
private String contractStatus;
|
||||
|
||||
/**
|
||||
* 合同状态(in)
|
||||
*/
|
||||
private List<String> inContractStatus;
|
||||
/**
|
||||
* 合同状态(not in)
|
||||
*/
|
||||
private List<String> notInContractStatus;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -19,9 +19,9 @@ import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
* @date 2024-08-01
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@EqualsAndHashCode
|
||||
@AutoMapper(target = PsContractPay.class)
|
||||
public class PsContractPayBo extends BaseEntity {
|
||||
public class PsContractPayBo {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
@ -70,11 +70,11 @@ public class PsContractPayBo extends BaseEntity {
|
||||
@NotBlank(message = "收款主体不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String gathMain;
|
||||
|
||||
/**
|
||||
* 回款凭证(多个时用逗号分隔)
|
||||
*/
|
||||
@NotBlank(message = "回款凭证(多个时用逗号分隔)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String payCertification;
|
||||
// /**
|
||||
// * 回款凭证(多个时用逗号分隔)
|
||||
// */
|
||||
// @NotBlank(message = "回款凭证(多个时用逗号分隔)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// private String payCertification;
|
||||
|
||||
/**
|
||||
* 回款备注
|
||||
|
@ -18,9 +18,9 @@ import java.math.BigDecimal;
|
||||
* @date 2024-07-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@EqualsAndHashCode
|
||||
@AutoMapper(target = PsCustomCallback.class)
|
||||
public class PsCustomCallbackBo extends BaseEntity {
|
||||
public class PsCustomCallbackBo {
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -22,9 +22,9 @@ import java.math.BigDecimal;
|
||||
* @date 2024-07-25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@EqualsAndHashCode
|
||||
@AutoMapper(target = PsCustomPrice.class)
|
||||
public class PsCustomPriceBo extends BaseEntity {
|
||||
public class PsCustomPriceBo {
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -0,0 +1,51 @@
|
||||
package com.pusong.business.domain.bo;
|
||||
|
||||
import com.pusong.business.domain.PsTaskMedia;
|
||||
import com.pusong.common.core.validate.AddGroup;
|
||||
import com.pusong.common.core.validate.EditGroup;
|
||||
import com.pusong.common.mybatis.core.domain.BaseEntity;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 任务资料业务对象 ps_task_media
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
@AutoMapper(target = PsTaskMedia.class)
|
||||
public class PsTaskMediaBo {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主任务表id
|
||||
*/
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 资料类型
|
||||
*/
|
||||
@NotBlank(message = "资料类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String mediaType;
|
||||
|
||||
/**
|
||||
* 文件ossid(多个时用逗号分割,删除时传-1)
|
||||
*/
|
||||
@NotBlank(message = "文件ossid不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String mediaOssId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
package com.pusong.business.domain.bo;
|
||||
|
||||
import com.pusong.common.core.validate.AddGroup;
|
||||
import com.pusong.common.core.validate.EditGroup;
|
||||
import com.pusong.common.core.validate.QueryGroup;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 主任务业务对象 ps_task_main
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
public class PsTaskQueryBo {
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 公司名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 纳税人识别号
|
||||
*/
|
||||
private String customerNum;
|
||||
|
||||
/**
|
||||
* 纳税人资格
|
||||
*/
|
||||
private String customerCert;
|
||||
|
||||
/**
|
||||
* 销售经理姓名
|
||||
*/
|
||||
private String customManagerName;
|
||||
/**
|
||||
* 服务项目编码集合
|
||||
*/
|
||||
private List<String> serviceProjectCode;
|
||||
/**
|
||||
* 执行者姓名
|
||||
*/
|
||||
private String executor;
|
||||
/**
|
||||
* 所属区域(公司地址)
|
||||
*/
|
||||
private String companyAdress;
|
||||
/**
|
||||
* 法人手机号
|
||||
*/
|
||||
private String mobile;
|
||||
/**
|
||||
* 法人身份证号
|
||||
*/
|
||||
private String idNo;
|
||||
/**
|
||||
* 法人身份证号
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 任务委派类型(1内勤,2外勤,3特勤) 查询子任务列表时使用
|
||||
*/
|
||||
@NotBlank(message = "任务委派类型不能为空", groups = {QueryGroup.class})
|
||||
private String appointType;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
package com.pusong.business.domain.bo;
|
||||
|
||||
import com.pusong.business.domain.PsTaskWorkRecord;
|
||||
import com.pusong.common.core.validate.AddGroup;
|
||||
import com.pusong.common.core.validate.EditGroup;
|
||||
import com.pusong.common.mybatis.core.domain.BaseEntity;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 外勤任务记录业务对象 ps_task_work_record
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = PsTaskWorkRecord.class, reverseConvertGenerate = false)
|
||||
public class PsTaskWorkRecordBo extends BaseEntity {
|
||||
|
||||
// /**
|
||||
// * 主键id
|
||||
// */
|
||||
// @NotNull(message = "主键id不能为空", groups = { EditGroup.class })
|
||||
// private Long id;
|
||||
|
||||
/**
|
||||
* 任务委派表id
|
||||
*/
|
||||
@NotNull(message = "任务委派表id不能为空", groups = { AddGroup.class })
|
||||
private Long taskAppointId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 办理时间
|
||||
*/
|
||||
@NotNull(message = "办理时间不能为空", groups = { AddGroup.class })
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date handleDate;
|
||||
|
||||
/**
|
||||
* 办理事项
|
||||
*/
|
||||
@NotBlank(message = "办理事项不能为空", groups = { AddGroup.class })
|
||||
private String handleInfo;
|
||||
|
||||
/**
|
||||
* 办理进度说明
|
||||
*/
|
||||
@NotBlank(message = "办理进度说明不能为空", groups = { AddGroup.class })
|
||||
private String handlePlan;
|
||||
|
||||
/**
|
||||
* 下次办理类型
|
||||
*/
|
||||
@NotBlank(message = "下次办理类型不能为空", groups = { AddGroup.class })
|
||||
private String nextType;
|
||||
|
||||
/**
|
||||
* 下次办理描述 1指定时间,2时间待定,3无
|
||||
*/
|
||||
private String nextDesc;
|
||||
|
||||
/**
|
||||
* 下次办理时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date nextDate;
|
||||
|
||||
|
||||
}
|
@ -42,7 +42,10 @@ public class PsApproverRecordVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "关联业务id")
|
||||
private Long businessId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
/**
|
||||
* 审批业务类型
|
||||
*/
|
||||
|
@ -4,6 +4,7 @@ import java.math.BigDecimal;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.pusong.business.domain.PsCompanyInfo;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -79,6 +80,72 @@ public class PsCompanyInfoVo implements Serializable {
|
||||
*/
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 纳税人识别号
|
||||
*/
|
||||
private String customerNum;
|
||||
/**
|
||||
* 纳税人资格
|
||||
*/
|
||||
private String customerCert;
|
||||
/**
|
||||
* 个税密码
|
||||
*/
|
||||
private String companyPersonPassword;
|
||||
/**
|
||||
* 税务密码
|
||||
*/
|
||||
private String companyTaxPassword;
|
||||
/**
|
||||
* 开户行客户经理电话
|
||||
*/
|
||||
private String companyBankManagerPhone;
|
||||
/**
|
||||
* 刻章公司名称
|
||||
*/
|
||||
private String madeSignCompanyName;
|
||||
/**
|
||||
* 公司地址详情
|
||||
*/
|
||||
private String companyAdressDetail;
|
||||
/**
|
||||
* 账套号
|
||||
*/
|
||||
private String financeAccountNo;
|
||||
/**
|
||||
* 社保开户时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date socialStartDate;
|
||||
/**
|
||||
* 公积金开户时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date providentStartDate;
|
||||
/**
|
||||
* 营业执照开始时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date licenseStartDate;
|
||||
/**
|
||||
* 营业执照结束时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date licenseEndDate;
|
||||
/**
|
||||
* 经营范围
|
||||
*/
|
||||
private String companyScope;
|
||||
/**
|
||||
* 注册资金
|
||||
*/
|
||||
private BigDecimal registerAmount;
|
||||
/**
|
||||
* 注册类型
|
||||
*/
|
||||
private String registerType;
|
||||
/**
|
||||
* 发票类型
|
||||
*/
|
||||
private String billType;
|
||||
}
|
||||
|
@ -155,6 +155,11 @@ public class PsContractInfoVo implements Serializable {
|
||||
* 合同回传状态0未回传1已回传
|
||||
*/
|
||||
private String rollBackStatus;
|
||||
/**
|
||||
* 回传的合同文件ossid
|
||||
*/
|
||||
private Long rollBackPdf;
|
||||
|
||||
/**
|
||||
* 合同签章状态CommonStatusEnum
|
||||
*/
|
||||
|
@ -0,0 +1,70 @@
|
||||
package com.pusong.business.domain.vo;
|
||||
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.pusong.common.excel.annotation.ExcelDictFormat;
|
||||
import com.pusong.common.excel.convert.ExcelDictConvert;
|
||||
import com.pusong.common.translation.annotation.Translation;
|
||||
import com.pusong.common.translation.constant.TransConstant;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 任务委派视图对象 ps_task_appoint
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PsTaskAppoint.class)
|
||||
public class PsTaskAppointVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主任务表id
|
||||
*/
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 任务委派类型(1内勤,2外勤,3特勤)
|
||||
*/
|
||||
private String appointType;
|
||||
|
||||
/**
|
||||
* 任务委派状态
|
||||
*/
|
||||
private String appointStatus;
|
||||
/**
|
||||
* 任务执行者
|
||||
*/
|
||||
private Long executor;
|
||||
/**
|
||||
* 任务执行者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME,mapper = "executor")
|
||||
private String executorName;
|
||||
|
||||
/**
|
||||
* 任务备注
|
||||
*/
|
||||
private String taskDesc;
|
||||
}
|
@ -0,0 +1,97 @@
|
||||
package com.pusong.business.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.pusong.business.domain.PsTaskMain;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.pusong.common.excel.annotation.ExcelDictFormat;
|
||||
import com.pusong.common.excel.convert.ExcelDictConvert;
|
||||
import com.pusong.common.translation.annotation.Translation;
|
||||
import com.pusong.common.translation.constant.TransConstant;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 主任务视图对象 ps_task_main
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PsTaskMain.class)
|
||||
public class PsTaskMainVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
/**
|
||||
* 任务类型(1合同任务,2免费工单,3发票)
|
||||
*/
|
||||
private String taskType;
|
||||
|
||||
/**
|
||||
* 派单时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date startDate;
|
||||
/**
|
||||
* 任务进行天数
|
||||
*/
|
||||
private int numOfDat;
|
||||
|
||||
/**
|
||||
* 主任务状态
|
||||
*/
|
||||
private String taskStatus;
|
||||
/**
|
||||
* 子任务状态
|
||||
*/
|
||||
private String appointStatus;
|
||||
/**
|
||||
* 服务类别名(多个是用逗号分隔)
|
||||
*/
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type")
|
||||
private String businessTypeName;
|
||||
/**
|
||||
* 合同信息
|
||||
*/
|
||||
private TaskContractVo contractVo;
|
||||
/**
|
||||
* 公司信息
|
||||
*/
|
||||
private PsCompanyInfoVo companyInfoVo;
|
||||
/**
|
||||
* 客户信息
|
||||
*/
|
||||
private PsCustomInfoVo customInfoVo;
|
||||
|
||||
/**
|
||||
* 执行者
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME)
|
||||
private String executors;
|
||||
|
||||
/**
|
||||
* 支付状态描述(全款、半款)
|
||||
*/
|
||||
private String payStautsDesc;
|
||||
/**
|
||||
* 任务资料信息
|
||||
*/
|
||||
private List<PsTaskMediaVo> taskMediaVoList;
|
||||
}
|
@ -0,0 +1,62 @@
|
||||
package com.pusong.business.domain.vo;
|
||||
|
||||
import com.pusong.business.domain.PsTaskMedia;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.pusong.common.excel.annotation.ExcelDictFormat;
|
||||
import com.pusong.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;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 任务资料视图对象 ps_task_media
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PsTaskMedia.class)
|
||||
public class PsTaskMediaVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "主键id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 主任务表id
|
||||
*/
|
||||
@ExcelProperty(value = "主任务表id")
|
||||
private Long taskId;
|
||||
|
||||
/**
|
||||
* 合同编号
|
||||
*/
|
||||
@ExcelProperty(value = "合同编号")
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 资料类型
|
||||
*/
|
||||
@ExcelProperty(value = "资料类型")
|
||||
private String mediaType;
|
||||
|
||||
/**
|
||||
* 文件ossid
|
||||
*/
|
||||
@ExcelProperty(value = "文件ossid")
|
||||
private String mediaOssId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
package com.pusong.business.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.pusong.business.domain.PsTaskWorkRecord;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.pusong.common.excel.annotation.ExcelDictFormat;
|
||||
import com.pusong.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;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 外勤任务记录视图对象 ps_task_work_record
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PsTaskWorkRecord.class)
|
||||
public class PsTaskWorkRecordVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 任务委派表id
|
||||
*/
|
||||
private Long taskAppointId;
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 办理时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date handleDate;
|
||||
|
||||
/**
|
||||
* 办理事项
|
||||
*/
|
||||
private String handleInfo;
|
||||
|
||||
/**
|
||||
* 办理进度说明
|
||||
*/
|
||||
private String handlePlan;
|
||||
|
||||
/**
|
||||
* 下次办理类型
|
||||
*/
|
||||
private String nextType;
|
||||
|
||||
/**
|
||||
* 下次办理描述
|
||||
*/
|
||||
private String nextDesc;
|
||||
|
||||
/**
|
||||
* 下次办理时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date nextDate;
|
||||
/**
|
||||
* 创建时间(记录时间)
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private Date createTime;
|
||||
|
||||
}
|
@ -0,0 +1,171 @@
|
||||
package com.pusong.business.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.common.translation.annotation.Translation;
|
||||
import com.pusong.common.translation.constant.TransConstant;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 任务查询时使用的合同信息dto
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = PsContractInfo.class)
|
||||
public class TaskContractVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* 合同编码
|
||||
*/
|
||||
private String contractCode;
|
||||
|
||||
/**
|
||||
* 合同名称
|
||||
*/
|
||||
private String contractName;
|
||||
|
||||
/**
|
||||
* 客户id
|
||||
*/
|
||||
private Long customId;
|
||||
|
||||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Long companyId;
|
||||
|
||||
/**
|
||||
* 合同主体
|
||||
*/
|
||||
private String contractMain;
|
||||
/**
|
||||
* 合同主体
|
||||
*/
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_main",mapper="contractMain")
|
||||
private String contractMainName;
|
||||
|
||||
/**
|
||||
* 合同总金额
|
||||
*/
|
||||
private BigDecimal contractAmount;
|
||||
|
||||
/**
|
||||
* 合同状态
|
||||
*/
|
||||
private String contractStatus;
|
||||
/**
|
||||
* 合同状态名
|
||||
*/
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_status",mapper="contractStatus")
|
||||
private String contractStatusName;
|
||||
|
||||
/**
|
||||
* 签约日期
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date applyDate;
|
||||
/**
|
||||
* 服务周期开始时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date startServiceDate;
|
||||
/**
|
||||
* 服务周期结束时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
private Date endServiceDate;
|
||||
/**
|
||||
* 办理期限
|
||||
*/
|
||||
private Long timeLimit;
|
||||
|
||||
/**
|
||||
* 客户是否到达现场
|
||||
*/
|
||||
private String customScene;
|
||||
|
||||
/**
|
||||
* 是否代账
|
||||
*/
|
||||
private String isProxy;
|
||||
/**
|
||||
* 所属客户经理
|
||||
*/
|
||||
private Long customManager;
|
||||
/**
|
||||
* 所属客户经理姓名
|
||||
*/
|
||||
private String customManagerName;
|
||||
/**
|
||||
* 签约备注
|
||||
*/
|
||||
private String signDesc;
|
||||
/**
|
||||
* 付款方式描述
|
||||
*/
|
||||
private String payModeDesc;
|
||||
/**
|
||||
* 文件系统ossId
|
||||
*/
|
||||
private Long pdfId;
|
||||
/**
|
||||
* 已付金额
|
||||
*/
|
||||
private BigDecimal payMoney;
|
||||
/**
|
||||
* 退款金额
|
||||
*/
|
||||
private BigDecimal returnMoney;
|
||||
|
||||
/**
|
||||
* 未付金额
|
||||
*/
|
||||
private BigDecimal residualMoney;
|
||||
/**
|
||||
* 回款周期(天)
|
||||
*/
|
||||
private Integer period;
|
||||
/**
|
||||
* 服务类别名(多个是用逗号分隔)
|
||||
*/
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL,other = "contract_type")
|
||||
private String businessTypeName;
|
||||
/**
|
||||
* 合同回传状态0未回传1已回传
|
||||
*/
|
||||
private String rollBackStatus;
|
||||
/**
|
||||
* 回传的合同文件ossid
|
||||
*/
|
||||
private Long rollBackPdf;
|
||||
|
||||
/**
|
||||
* 合同签章状态CommonStatusEnum
|
||||
*/
|
||||
private String signStatus;
|
||||
/**
|
||||
* 是否老账新接
|
||||
*/
|
||||
private String isOld;
|
||||
|
||||
/**
|
||||
* 是否续费
|
||||
*/
|
||||
private String isDue;
|
||||
}
|
@ -10,7 +10,11 @@ import lombok.Getter;
|
||||
@AllArgsConstructor
|
||||
public enum ApproverTypeEnum {
|
||||
UPDATE("update","修改合同审批"),
|
||||
CANCELLA("cancellation","作废合同审批");
|
||||
CANCELLA("cancellation","作废合同审批"),
|
||||
PAY("pay","合同回款审批"),
|
||||
SIGN("sign","合同签章审批"),
|
||||
ROLBACK("rolback","回传合同审批"),
|
||||
TASKFINISH("taskFinish","任务完成审批");
|
||||
private String code;
|
||||
private String text;
|
||||
}
|
||||
|
@ -0,0 +1,99 @@
|
||||
package com.pusong.business.enums;
|
||||
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务状态枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum TaskStatusEnum {
|
||||
INIT("10","任务初始化(待派单)"),
|
||||
ING("20","进行中"),
|
||||
OA("25","完成审批中"),
|
||||
OAFAIL("26","完成审批失败"),
|
||||
FINISH("30","完成"),
|
||||
PAUSE("40","暂停"),
|
||||
CANCEL("50","作废");
|
||||
|
||||
private String code;
|
||||
private String text;
|
||||
/**
|
||||
* 判断能否派单
|
||||
*/
|
||||
public static Boolean canAppoint(String taskStatus){
|
||||
if(StringUtils.equals(taskStatus,INIT.getCode()) || StringUtils.equals(taskStatus,ING.getCode())){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* 判断能否上传资料
|
||||
*/
|
||||
public static Boolean canUpload(String taskStatus){
|
||||
if(StringUtils.equals(taskStatus,FINISH.getCode())
|
||||
|| StringUtils.equals(taskStatus,OA.getCode())){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 判断能否点击完成
|
||||
*/
|
||||
public static Boolean canFinish(String taskStatus){
|
||||
//不能点:作废 完成 审批中
|
||||
if(StringUtils.equals(taskStatus,CANCEL.getCode()) || StringUtils.equals(taskStatus,FINISH.getCode())
|
||||
|| StringUtils.equals(taskStatus,OA.getCode())){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 委派表状态枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum AppointStatusEnum {
|
||||
ING("20","进行中"),
|
||||
FINISH("30","完成"),
|
||||
PAUSE("40","暂停"),
|
||||
CANCEL("50","作废");
|
||||
private String code;
|
||||
private String text;
|
||||
/**
|
||||
* 判断能否完成
|
||||
*/
|
||||
public static Boolean canFinish(String taskStatus){
|
||||
//作废和完成的不能点
|
||||
if(StringUtils.equals(taskStatus,CANCEL.getCode()) || StringUtils.equals(taskStatus,FINISH.getCode())){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 判断能否改派
|
||||
*/
|
||||
public static Boolean canReset(String taskStatus){
|
||||
//作废和完成的不能点
|
||||
if(StringUtils.equals(taskStatus,CANCEL.getCode()) || StringUtils.equals(taskStatus,FINISH.getCode())){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 获取结束的状态
|
||||
*/
|
||||
public static List<String> getEndStauts(){
|
||||
return List.of(FINISH.getCode(),CANCEL.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.pusong.business.enums;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 审批类型美剧
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum TaskTypeEnum {
|
||||
CONTRACT("1","合同任务"),
|
||||
FREE("2","免费工单"),
|
||||
INVOICE("3","发票任务");
|
||||
private String code;
|
||||
private String text;
|
||||
}
|
@ -24,14 +24,14 @@ public interface PsContractInfoMapper extends BaseMapperPlus<PsContractInfo, PsC
|
||||
|
||||
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "create_dept"),
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
@DataColumn(key = "deptName", value = "info.create_dept"),
|
||||
@DataColumn(key = "userName", value = "info.create_by")
|
||||
})
|
||||
Page<PsContractInfoVo> selectPageContractList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "create_dept"),
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
@DataColumn(key = "deptName", value = "info.create_dept"),
|
||||
@DataColumn(key = "userName", value = "info.create_by")
|
||||
})
|
||||
List<PsContractInfoVo> selectContractList(@Param(Constants.WRAPPER) Wrapper<PsContractInfo> queryWrapper);
|
||||
|
||||
|
@ -28,14 +28,14 @@ public interface PsCustomInfoMapper extends BaseMapperPlus<PsCustomInfo, PsCusto
|
||||
List<PsCustomInfo> selectList(@Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
||||
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "create_dept"),
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
@DataColumn(key = "deptName", value = "info.create_dept"),
|
||||
@DataColumn(key = "userName", value = "info.create_by")
|
||||
})
|
||||
Page<PsCustomInfoVo> selectPageCustomerList(@Param("page") Page<PsCustomInfo> page, @Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
||||
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "create_dept"),
|
||||
@DataColumn(key = "userName", value = "create_by")
|
||||
@DataColumn(key = "deptName", value = "info.create_dept"),
|
||||
@DataColumn(key = "userName", value = "info.create_by")
|
||||
})
|
||||
List<PsCustomInfoVo> selectCustomerList( @Param(Constants.WRAPPER) Wrapper<PsCustomInfo> queryWrapper);
|
||||
//
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.pusong.business.mapper;
|
||||
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.pusong.business.domain.vo.PsTaskAppointVo;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 任务委派Mapper接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
public interface PsTaskAppointMapper extends BaseMapperPlus<PsTaskAppoint, PsTaskAppointVo> {
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.pusong.business.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.business.domain.PsTaskMain;
|
||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||
import com.pusong.business.domain.vo.PsTaskMainVo;
|
||||
import com.pusong.common.mybatis.annotation.DataColumn;
|
||||
import com.pusong.common.mybatis.annotation.DataPermission;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 主任务Mapper接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
public interface PsTaskMainMapper extends BaseMapper<PsTaskMain> {
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "main.create_dept"),
|
||||
@DataColumn(key = "userName", value = "main.create_by")
|
||||
})
|
||||
Page<PsTaskMainVo> queryTaskPageList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsTaskMain> queryWrapper);
|
||||
|
||||
@DataPermission({
|
||||
@DataColumn(key = "deptName", value = "appo.create_dept"),
|
||||
@DataColumn(key = "userName", value = "appo.executor")
|
||||
})
|
||||
Page<PsTaskMainVo> queryChildTaskPageList(@Param("page") Page<PsContractInfo> page, @Param(Constants.WRAPPER) Wrapper<PsTaskMain> queryWrapper);
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.pusong.business.mapper;
|
||||
|
||||
import com.pusong.business.domain.PsTaskMedia;
|
||||
import com.pusong.business.domain.vo.PsTaskMediaVo;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 任务资料Mapper接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
public interface PsTaskMediaMapper extends BaseMapperPlus<PsTaskMedia, PsTaskMediaVo> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.pusong.business.mapper;
|
||||
|
||||
import com.pusong.business.domain.PsTaskWorkRecord;
|
||||
import com.pusong.business.domain.vo.PsTaskWorkRecordVo;
|
||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 外勤任务记录Mapper接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
public interface PsTaskWorkRecordMapper extends BaseMapperPlus<PsTaskWorkRecord, PsTaskWorkRecordVo> {
|
||||
|
||||
}
|
@ -33,6 +33,12 @@ public interface IPsContractBusinessService {
|
||||
*/
|
||||
List<PsContractBusinessVo> queryList(PsContractBusinessBo bo);
|
||||
|
||||
/**
|
||||
* 根据合同编码查询服务信息
|
||||
* @param contractCode
|
||||
* @return
|
||||
*/
|
||||
List<PsContractBusinessVo> selectBusinessList(String contractCode);
|
||||
/**
|
||||
* 查询合同服务类别
|
||||
*
|
||||
|
@ -73,6 +73,12 @@ public interface IPsContractInfoService {
|
||||
* @param contractCode 合同编码
|
||||
*/
|
||||
boolean restart(String contractCode);
|
||||
/**
|
||||
* 根据合同编码修改合同
|
||||
* @param info
|
||||
* @return
|
||||
*/
|
||||
PsContractInfo updateByCode(PsContractInfo info);
|
||||
/**
|
||||
* 查询符合条件的合同基本信息列表
|
||||
*
|
||||
|
@ -0,0 +1,36 @@
|
||||
package com.pusong.business.service;
|
||||
|
||||
import com.pusong.business.domain.bo.PsContractInfoBo;
|
||||
import com.pusong.business.domain.bo.PsContractInfoQueryBo;
|
||||
import com.pusong.business.domain.bo.PsContractPayBo;
|
||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.bind.annotation.RequestPart;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 合同操作Service接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
public interface IPsContractOperateService {
|
||||
|
||||
/**
|
||||
* 合同签章
|
||||
*
|
||||
* @param contractCode 合同编码
|
||||
* @return 合同基本信息
|
||||
*/
|
||||
void sign(String contractCode);
|
||||
|
||||
/**
|
||||
* 回传合同
|
||||
* @param file 回传合同文件
|
||||
* @param contractCode 合同编码
|
||||
*/
|
||||
void rollbackContract( MultipartFile file, String contractCode);
|
||||
}
|
@ -1,10 +1,12 @@
|
||||
package com.pusong.business.service;
|
||||
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
import com.pusong.business.domain.vo.PsContractPayVo;
|
||||
import com.pusong.business.domain.bo.PsContractPayBo;
|
||||
import com.pusong.business.enums.PayStatusEnum;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -28,11 +30,29 @@ public interface IPsContractPayService {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 添加支付记录
|
||||
* @param files 支付凭证
|
||||
* @param payBo 支付信息
|
||||
*/
|
||||
void addPay(List<MultipartFile> files, PsContractPayBo payBo);
|
||||
|
||||
/**
|
||||
* 根据主键id查询回款记录
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 合同回款记录列表
|
||||
*/
|
||||
PsContractPay queryById(Long id);
|
||||
|
||||
|
||||
|
||||
/* *//**
|
||||
/**
|
||||
* 根据id修改合同回款记录
|
||||
*
|
||||
* @param pay 合同回款记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateById(PsContractPay pay);
|
||||
/* *//**
|
||||
* 查询合同回款记录
|
||||
*
|
||||
* @param id 主键
|
||||
|
@ -0,0 +1,67 @@
|
||||
package com.pusong.business.service;
|
||||
|
||||
import com.pusong.business.domain.vo.PsTaskAppointVo;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务委派Service接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
public interface IPsTaskAppointService {
|
||||
|
||||
// /**
|
||||
// * 查询任务委派
|
||||
// *
|
||||
// * @param id 主键
|
||||
// * @return 任务委派
|
||||
// */
|
||||
// PsTaskAppointVo queryById(Long id);
|
||||
//
|
||||
// /**
|
||||
// * 分页查询任务委派列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 任务委派分页列表
|
||||
// */
|
||||
// TableDataInfo<PsTaskAppointVo> queryPageList(PsTaskAppointBo bo, PageQuery pageQuery);
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的任务委派列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 任务委派列表
|
||||
// */
|
||||
// List<PsTaskAppointVo> queryList(PsTaskAppointBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 新增任务委派
|
||||
// *
|
||||
// * @param bo 任务委派
|
||||
// * @return 是否新增成功
|
||||
// */
|
||||
// Boolean insertByBo(PsTaskAppointBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 修改任务委派
|
||||
// *
|
||||
// * @param bo 任务委派
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// Boolean updateByBo(PsTaskAppointBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除任务委派信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.pusong.business.service;
|
||||
|
||||
import com.pusong.business.domain.vo.PsTaskMediaVo;
|
||||
import com.pusong.business.domain.bo.PsTaskMediaBo;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 任务资料Service接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
public interface IPsTaskMediaService {
|
||||
|
||||
/**
|
||||
* 查询任务资料
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 任务资料
|
||||
*/
|
||||
List<PsTaskMediaVo> queryByTaskId(Long id);
|
||||
|
||||
/**
|
||||
* 保存影响资料信息
|
||||
* @param voList
|
||||
*/
|
||||
void saveMediaList(List<PsTaskMediaBo> voList);
|
||||
// /**
|
||||
// * 分页查询任务资料列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 任务资料分页列表
|
||||
// */
|
||||
// TableDataInfo<PsTaskMediaVo> queryPageList(PsTaskMediaBo bo, PageQuery pageQuery);
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的任务资料列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 任务资料列表
|
||||
// */
|
||||
// List<PsTaskMediaVo> queryList(PsTaskMediaBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 新增任务资料
|
||||
// *
|
||||
// * @param bo 任务资料
|
||||
// * @return 是否新增成功
|
||||
// */
|
||||
// Boolean insertByBo(PsTaskMediaBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 修改任务资料
|
||||
// *
|
||||
// * @param bo 任务资料
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// Boolean updateByBo(PsTaskMediaBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除任务资料信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -0,0 +1,146 @@
|
||||
package com.pusong.business.service;
|
||||
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.pusong.business.domain.PsTaskMain;
|
||||
import com.pusong.business.domain.bo.AppointBo;
|
||||
import com.pusong.business.domain.bo.MediaCompanySaveBo;
|
||||
import com.pusong.business.domain.bo.PsTaskQueryBo;
|
||||
import com.pusong.business.domain.vo.PsTaskAppointVo;
|
||||
import com.pusong.business.domain.vo.PsTaskMainVo;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 主任务Service接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
public interface IPsTaskService {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 新增主任务
|
||||
*
|
||||
* @param bo 主任务
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insert(PsTaskMain bo);
|
||||
|
||||
/**
|
||||
* 分页查询主任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 主任务分页列表
|
||||
*/
|
||||
TableDataInfo<PsTaskMainVo> queryPageList(PsTaskQueryBo bo, PageQuery pageQuery);
|
||||
/**
|
||||
* 分页查询子任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 子任务分页列表
|
||||
*/
|
||||
TableDataInfo<PsTaskMainVo> queryChildPageList(PsTaskQueryBo bo, PageQuery pageQuery);
|
||||
/**
|
||||
* 分页查询主任务列表
|
||||
*
|
||||
* @param id 任务主表主键
|
||||
* @return 公司及资料信息
|
||||
*/
|
||||
PsTaskMainVo queryInfo(Long id);
|
||||
|
||||
/**
|
||||
* 上传资料和公司信息
|
||||
*
|
||||
* @param save 公司及资料信息
|
||||
* @return
|
||||
*/
|
||||
void saveInfo(MediaCompanySaveBo save);
|
||||
|
||||
/**
|
||||
* 任务委派
|
||||
*
|
||||
* @param bo 任务委派请求信息
|
||||
* @return
|
||||
*/
|
||||
void appoint(AppointBo bo);
|
||||
|
||||
/**
|
||||
* 主任务完成
|
||||
*
|
||||
* @param id 任务主键id
|
||||
* @return
|
||||
*/
|
||||
void finishMain(Long id);
|
||||
/**
|
||||
* 子任务完成
|
||||
*
|
||||
* @param id 任务主键id
|
||||
* @return
|
||||
*/
|
||||
void finishChild(Long id,String desc);
|
||||
|
||||
/**
|
||||
* 获取任务执行者列表
|
||||
*
|
||||
* @param id 主任务主键id
|
||||
* @return
|
||||
*/
|
||||
Map<String, PsTaskAppointVo> getExecutors(Long id);
|
||||
/**
|
||||
* 任务改派
|
||||
* @param id 任务委派表id
|
||||
* @param executorId 任务新的执行者id
|
||||
*/
|
||||
void taskReset(Long id,Long executorId);
|
||||
|
||||
/* *//**
|
||||
* 查询主任务
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 主任务
|
||||
*//*
|
||||
PsTaskMainVo queryById(Long id);
|
||||
|
||||
*//**
|
||||
* 分页查询主任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 主任务分页列表
|
||||
*//*
|
||||
TableDataInfo<PsTaskMainVo> queryPageList(PsTaskMainBo bo, PageQuery pageQuery);
|
||||
|
||||
*//**
|
||||
* 查询符合条件的主任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 主任务列表
|
||||
*//*
|
||||
List<PsTaskMainVo> queryList(PsTaskMainBo bo);
|
||||
|
||||
|
||||
|
||||
*//**
|
||||
* 修改主任务
|
||||
*
|
||||
* @param bo 主任务
|
||||
* @return 是否修改成功
|
||||
*//*
|
||||
Boolean updateByBo(PsTaskMainBo bo);
|
||||
|
||||
*//**
|
||||
* 校验并批量删除主任务信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*//*
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);*/
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package com.pusong.business.service;
|
||||
|
||||
import com.pusong.business.domain.vo.PsTaskWorkRecordVo;
|
||||
import com.pusong.business.domain.bo.PsTaskWorkRecordBo;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 外勤任务记录Service接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
public interface IPsTaskWorkRecordService {
|
||||
|
||||
/**
|
||||
* 查询符合条件的外勤任务记录列表
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 外勤任务记录列表
|
||||
*/
|
||||
List<PsTaskWorkRecordVo> queryListByAppointId( Long id);
|
||||
|
||||
/**
|
||||
* 新增外勤任务记录
|
||||
*
|
||||
* @param bo 外勤任务记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(PsTaskWorkRecordBo bo);
|
||||
|
||||
// /**
|
||||
// * 查询外勤任务记录
|
||||
// *
|
||||
// * @param id 主键
|
||||
// * @return 外勤任务记录
|
||||
// */
|
||||
// PsTaskWorkRecordVo queryById(Long id);
|
||||
|
||||
// /**
|
||||
// * 分页查询外勤任务记录列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 外勤任务记录分页列表
|
||||
// */
|
||||
// TableDataInfo<PsTaskWorkRecordVo> queryPageList(PsTaskWorkRecordBo bo, PageQuery pageQuery);
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的外勤任务记录列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 外勤任务记录列表
|
||||
// */
|
||||
// List<PsTaskWorkRecordVo> queryList(PsTaskWorkRecordBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 新增外勤任务记录
|
||||
// *
|
||||
// * @param bo 外勤任务记录
|
||||
// * @return 是否新增成功
|
||||
// */
|
||||
// Boolean insertByBo(PsTaskWorkRecordBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 修改外勤任务记录
|
||||
// *
|
||||
// * @param bo 外勤任务记录
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// Boolean updateByBo(PsTaskWorkRecordBo bo);
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除外勤任务记录信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
@ -1,17 +1,25 @@
|
||||
package com.pusong.business.service.approver;
|
||||
|
||||
import com.pusong.business.domain.PsApproverRecord;
|
||||
import com.pusong.business.enums.ApproverTypeEnum;
|
||||
|
||||
public interface ApproverService {
|
||||
public void apply( String bussinessId, String desc, Object src);
|
||||
/**
|
||||
* 发起审批
|
||||
* @param bussinessId 关联业务id
|
||||
* @param contractCode 合同编码
|
||||
* @param desc 审批说明
|
||||
* @param src 源数据
|
||||
*/
|
||||
public void apply( String bussinessId,String contractCode, String desc, Object src);
|
||||
/**
|
||||
* 成功
|
||||
*/
|
||||
public void success(Object tag,Object src);
|
||||
public void success(PsApproverRecord psApproverRecord);
|
||||
|
||||
/**
|
||||
* 失败
|
||||
*/
|
||||
public void fail(Object tag,Object src);
|
||||
public void fail(PsApproverRecord psApproverRecord);
|
||||
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
|
||||
* @param desc
|
||||
* @param src
|
||||
*/
|
||||
public void apply(String bussinessId, String desc, Object src){
|
||||
public void apply(String bussinessId,String contractCode, String desc, Object src){
|
||||
List<PsApproverRecord> list = approverRecordMapper.selectList(Wrappers.<PsApproverRecord>lambdaQuery().eq(PsApproverRecord::getDelFlag, "0")
|
||||
.eq(PsApproverRecord::getBusinessId, bussinessId).eq(PsApproverRecord::getBusinessType,approverType())
|
||||
.ne(PsApproverRecord::getApproverStatus, ApproverStatusEnum.INIT.getCode()));
|
||||
@ -44,6 +44,7 @@ public abstract class ApproverAbstractServiceImpl implements ApproverService {
|
||||
|
||||
PsApproverRecord record = new PsApproverRecord();
|
||||
record.setBusinessId(bussinessId);
|
||||
record.setContractCode(contractCode);
|
||||
record.setBusinessType(approverType());
|
||||
record.setApplyDesc(desc);
|
||||
record.setBeforeData(src == null?null:JSON.toJSONString(src));
|
||||
|
@ -0,0 +1,73 @@
|
||||
package com.pusong.business.service.approver.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.pusong.business.domain.PsApproverRecord;
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
import com.pusong.business.domain.PsTaskMain;
|
||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||
import com.pusong.business.domain.vo.PsContractPayVo;
|
||||
import com.pusong.business.enums.*;
|
||||
import com.pusong.business.service.IPsContractInfoService;
|
||||
import com.pusong.business.service.IPsContractPayService;
|
||||
import com.pusong.business.service.IPsTaskService;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 合同回款审批处理类
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PayContractApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
|
||||
private final IPsContractInfoService psContractInfoService;
|
||||
private final IPsContractPayService payService;
|
||||
private final IPsTaskService taskMainService;
|
||||
@Override
|
||||
public String approverType() {
|
||||
return ApproverTypeEnum.PAY.getCode();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 1 审批成功修改回款记录状态,增加主任务
|
||||
* @param psApproverRecord 审批类
|
||||
*/
|
||||
@Override
|
||||
public void success(PsApproverRecord psApproverRecord) {
|
||||
//查询合同信息
|
||||
PsContractInfoVo info = psContractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
||||
//修改回款记录状态
|
||||
PsContractPay update = new PsContractPay();
|
||||
update.setId(Long.valueOf(psApproverRecord.getBusinessId()));
|
||||
update.setPayStatus(PayStatusEnum.SUCCESS.getCode());
|
||||
payService.updateById(update);
|
||||
|
||||
List<PsContractPayVo> list = payService.queryListByContractCode(info.getContractCode(), PayBuinessStatusEnum.PAY.getCode(), PayStatusEnum.PAYING);
|
||||
//如果没有过回款记录初始化任务主表,并修改合同状态
|
||||
if(CollectionUtils.isEmpty(list) && StringUtils.equals(ContractStatusEnum.CREATE.getCode(),info.getContractStatus())){
|
||||
log.info("合同未回款过,初始化任务主表");
|
||||
PsTaskMain psTaskMain = new PsTaskMain();
|
||||
psTaskMain.setContractCode(psApproverRecord.getContractCode());
|
||||
psTaskMain.setTaskType(TaskTypeEnum.CONTRACT.getCode());
|
||||
psTaskMain.setTaskStatus(TaskStatusEnum.INIT.getCode());
|
||||
taskMainService.insert(psTaskMain);
|
||||
log.info("修改合同状态");
|
||||
PsContractInfo updateInfo = new PsContractInfo();
|
||||
updateInfo.setContractCode(info.getContractCode());
|
||||
updateInfo.setContractStatus(ContractStatusEnum.RETURN.getCode());
|
||||
psContractInfoService.updateByCode(updateInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fail(PsApproverRecord psApproverRecord) {
|
||||
|
||||
}
|
||||
}
|
@ -1,10 +1,15 @@
|
||||
package com.pusong.business.service.approver.impl;
|
||||
|
||||
import com.pusong.business.domain.PsApproverRecord;
|
||||
import com.pusong.business.enums.ApproverStatusEnum;
|
||||
import com.pusong.business.enums.ApproverTypeEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
@Slf4j
|
||||
public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceImpl {
|
||||
@Override
|
||||
public String approverType() {
|
||||
@ -13,16 +18,15 @@ public class UpdateContractApproverServiceImpl extends ApproverAbstractServiceIm
|
||||
|
||||
/**
|
||||
* 1 审批成功合同已派单:任务重置
|
||||
* @param tag
|
||||
* @param src
|
||||
* @param psApproverRecord 神瀑类
|
||||
*/
|
||||
@Override
|
||||
public void success(Object tag, Object src) {
|
||||
public void success(PsApproverRecord psApproverRecord) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fail(Object tag, Object src) {
|
||||
public void fail(PsApproverRecord psApproverRecord) {
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,97 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.pusong.business.domain.PsContractInfo;
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
import com.pusong.business.domain.bo.PsContractPayBo;
|
||||
import com.pusong.business.domain.vo.PsContractInfoVo;
|
||||
import com.pusong.business.enums.ApproverTypeEnum;
|
||||
import com.pusong.business.enums.CommonStatusEnum;
|
||||
import com.pusong.business.enums.PayBuinessStatusEnum;
|
||||
import com.pusong.business.mapper.PsContractPayMapper;
|
||||
import com.pusong.business.service.IPsContractInfoService;
|
||||
import com.pusong.business.service.IPsContractOperateService;
|
||||
import com.pusong.business.service.approver.ApproverContainer;
|
||||
import com.pusong.business.service.approver.ApproverService;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.system.domain.vo.SysOssVo;
|
||||
import com.pusong.system.service.ISysOssService;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 合同操作Service接口
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-07-29
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class IPsContractOperateServiceImpl implements IPsContractOperateService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(IPsContractOperateServiceImpl.class);
|
||||
private final IPsContractInfoService contractInfoService;
|
||||
@Resource
|
||||
private final ApproverContainer container;
|
||||
@Resource
|
||||
private final ISysOssService ossService;
|
||||
|
||||
/**
|
||||
* 合同签章
|
||||
*
|
||||
* @param contractCode 合同编码
|
||||
* @return 合同基本信息
|
||||
*/
|
||||
public void sign(String contractCode){
|
||||
PsContractInfoVo info = contractInfoService.queryContractByCode(contractCode);
|
||||
//后续添加校验可再次添加
|
||||
//合同签章:
|
||||
ApproverService service = container.getService(ApproverTypeEnum.SIGN.getCode());
|
||||
service.apply(contractCode,contractCode,null, null);
|
||||
|
||||
PsContractInfo psContractInfo = new PsContractInfo();
|
||||
psContractInfo.setContractCode(contractCode);
|
||||
psContractInfo.setSignStatus(CommonStatusEnum.ING.getCode());
|
||||
contractInfoService.updateByCode(psContractInfo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 回传合同
|
||||
* @param file 回传合同文件
|
||||
* @param contractCode 合同编码
|
||||
*/
|
||||
@Transactional
|
||||
public void rollbackContract( MultipartFile file, String contractCode){
|
||||
PsContractInfoVo info = contractInfoService.queryContractByCode(contractCode);
|
||||
//后续添加校验可再次添加
|
||||
SysOssVo vo = ossService.upload(file);
|
||||
//发起回传合同审批
|
||||
ApproverService service = container.getService(ApproverTypeEnum.ROLBACK.getCode());
|
||||
service.apply(contractCode,contractCode,null, null);
|
||||
//修改合同信息
|
||||
PsContractInfo psContractInfo = new PsContractInfo();
|
||||
psContractInfo.setContractCode(contractCode);
|
||||
psContractInfo.setRollBackStatus(CommonStatusEnum.ING.getCode());
|
||||
psContractInfo.setRollBackPdf(vo.getOssId());
|
||||
contractInfoService.updateByCode(psContractInfo);
|
||||
//若已存在回传的合同,则删除
|
||||
if(info.getRollBackPdf() != null){
|
||||
try{
|
||||
ossService.deleteWithValidByIds(List.of(info.getRollBackPdf()),null);
|
||||
}catch (Exception e){
|
||||
log.error("删除回传合同信息失败",e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
@ -69,7 +69,6 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<PsApproverRecord> buildQueryWrapper(PsApproverRecordBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<PsApproverRecord> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getBusinessId() != null, PsApproverRecord::getBusinessId, bo.getBusinessId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBusinessType()), PsApproverRecord::getBusinessType, bo.getBusinessType());
|
||||
|
@ -72,13 +72,15 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean saveBo(PsCompanyInfoBo bo) {
|
||||
//公司名称唯一
|
||||
PsCompanyInfoBo query = new PsCompanyInfoBo();
|
||||
query.setCompanyName(bo.getCompanyName());
|
||||
query.setCustomId(bo.getCustomId());
|
||||
List<PsCompanyInfoVo> list = this.queryList(bo);
|
||||
//如果存在重复名称则修改
|
||||
if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());}
|
||||
if(bo.getId() == null){
|
||||
//公司名称唯一
|
||||
PsCompanyInfoBo query = new PsCompanyInfoBo();
|
||||
query.setCompanyName(bo.getCompanyName());
|
||||
query.setCustomId(bo.getCustomId());
|
||||
List<PsCompanyInfoVo> list = this.queryList(bo);
|
||||
//如果存在重复名称则修改
|
||||
if(CollectionUtils.isNotEmpty(list)){bo.setId(list.get(0).getId());}
|
||||
}
|
||||
PsCompanyInfo add = MapstructUtils.convert(bo, PsCompanyInfo.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insertOrUpdate(add);
|
||||
|
@ -85,6 +85,15 @@ public class PsContractBusinessServiceImpl implements IPsContractBusinessService
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据合同编码查询服务信息
|
||||
* @param contractCode
|
||||
* @return
|
||||
*/
|
||||
public List<PsContractBusinessVo> selectBusinessList(String contractCode) {
|
||||
return baseMapper.selectBusinessList(contractCode);
|
||||
}
|
||||
|
||||
|
||||
/* *//**
|
||||
* 查询合同服务类别
|
||||
|
@ -35,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.io.File;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 合同基本信息Service业务层处理
|
||||
@ -48,7 +49,6 @@ import java.util.*;
|
||||
public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
|
||||
private final PsContractInfoMapper baseMapper;
|
||||
private final PsContractBusinessMapper businessMapper;
|
||||
// private final PsContractBusinessDetailMapper businessDetailMapper;
|
||||
private final IPsContractBusinessService businessService;
|
||||
private final IPsContractBusinessDetailService businessDetailService;
|
||||
@ -230,7 +230,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
if(StringUtils.isBlank(desc)){throw new ServiceException("请填写作废原因");}
|
||||
//有收款:点击【作废】填写【作废原因】后发起【作废】审批
|
||||
ApproverService service = container.getService(ApproverTypeEnum.CANCELLA.getCode());
|
||||
service.apply(contractCode,desc, null);
|
||||
service.apply(contractCode,contractCode,desc, null);
|
||||
info.setContractStatus(ContractStatusEnum.CANAPPROVER.getCode());
|
||||
|
||||
}
|
||||
@ -262,6 +262,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据合同编码修改合同
|
||||
* @param info
|
||||
* @return
|
||||
*/
|
||||
public PsContractInfo updateByCode(PsContractInfo info){
|
||||
baseMapper.update(info,Wrappers.<PsContractInfo>lambdaUpdate().eq(PsContractInfo::getContractCode,info.getContractCode()).eq(PsContractInfo::getDelFlag,0));
|
||||
return info;
|
||||
@ -307,6 +312,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
qw.eq( "info.del_flag", 0);//删除标志
|
||||
//合同表条件
|
||||
qw.eq( StringUtils.isNotBlank(bo.getContractStatus()),"contract_status", bo.getContractStatus());
|
||||
qw.in( CollectionUtils.isNotEmpty(bo.getInContractStatus()),"contract_status", bo.getInContractStatus());
|
||||
qw.notIn( CollectionUtils.isNotEmpty(bo.getNotInContractStatus()),"contract_status", bo.getNotInContractStatus());
|
||||
//客户表条件
|
||||
qw.like( StringUtils.isNotBlank(bo.getCustomName()),"cus.custom_name", bo.getCustomName());
|
||||
qw.like( StringUtils.isNotBlank(bo.getCustomMobile()),"cus.custom_mobile", bo.getCustomMobile());
|
||||
@ -318,7 +325,8 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
}
|
||||
private PsContractInfoVo fillContractInfo(PsContractInfoVo vo){
|
||||
//装填服务类型和服务项目信息
|
||||
List<PsContractBusinessVo> list = businessMapper.selectBusinessList(vo.getContractCode());
|
||||
List<PsContractBusinessVo> list = businessService.selectBusinessList(vo.getContractCode());
|
||||
vo.setBusinessTypeName(StringUtils.join(list.stream().map(PsContractBusinessVo::getBusinessType).collect(Collectors.toList()), ","));
|
||||
vo.setBusinessVoList(list);
|
||||
//装填回款记录
|
||||
List<PsContractPayVo> payList = contractPayService.queryListByContractCode(vo.getContractCode(),null,PayStatusEnum.SUCCESS);
|
||||
@ -402,7 +410,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
||||
if(ContractStatusEnum.isReturn(srcVo.getContractStatus())){
|
||||
//发起审批
|
||||
ApproverService service = container.getService(ApproverTypeEnum.UPDATE.getCode());
|
||||
service.apply(updateBo.getContractCode(),updateBo.getUpdateDesc(), JSON.toJSONString(srcVo));
|
||||
service.apply(updateBo.getContractCode(),updateBo.getContractCode(),updateBo.getUpdateDesc(), JSON.toJSONString(srcVo));
|
||||
}
|
||||
|
||||
//3.签章:合同签字盖章成功:修改合同成功,合同签字盖章变回未签章状态,需重新进行签章申请
|
||||
|
@ -1,6 +1,9 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.pusong.business.enums.ApproverTypeEnum;
|
||||
import com.pusong.business.enums.PayStatusEnum;
|
||||
import com.pusong.business.service.approver.ApproverContainer;
|
||||
import com.pusong.business.service.approver.ApproverService;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
@ -8,6 +11,9 @@ import com.pusong.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 com.pusong.system.domain.vo.SysOssVo;
|
||||
import com.pusong.system.service.ISysOssService;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.pusong.business.domain.bo.PsContractPayBo;
|
||||
@ -15,6 +21,8 @@ import com.pusong.business.domain.vo.PsContractPayVo;
|
||||
import com.pusong.business.domain.PsContractPay;
|
||||
import com.pusong.business.mapper.PsContractPayMapper;
|
||||
import com.pusong.business.service.IPsContractPayService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -32,8 +40,9 @@ import java.util.Collection;
|
||||
public class PsContractPayServiceImpl implements IPsContractPayService {
|
||||
|
||||
private final PsContractPayMapper baseMapper;
|
||||
|
||||
|
||||
private final ISysOssService ossService;
|
||||
@Resource
|
||||
private final ApproverContainer container;
|
||||
/**
|
||||
* 查询合同回款记录列表
|
||||
*
|
||||
@ -50,7 +59,50 @@ public class PsContractPayServiceImpl implements IPsContractPayService {
|
||||
return list == null?new ArrayList<>():list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加支付记录
|
||||
*
|
||||
* @param payBo 支付信息
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void addPay(List<MultipartFile> files, PsContractPayBo payBo){
|
||||
PsContractPay pay = MapstructUtils.convert(payBo, PsContractPay.class);
|
||||
List<String> payCertifications = new ArrayList<>();
|
||||
for(MultipartFile file : files){
|
||||
SysOssVo vo = ossService.upload(file);
|
||||
payCertifications.add(vo.getOssId()+"");
|
||||
}
|
||||
pay.setPayCertification(StringUtils.join(payCertifications,","));
|
||||
pay.setPayStatus(PayStatusEnum.PAYING.getCode());
|
||||
baseMapper.insert(pay);
|
||||
//发起审批
|
||||
ApproverService service = container.getService(ApproverTypeEnum.PAY.getCode());
|
||||
service.apply(pay.getId()+"",pay.getContractCode(),null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主键id查询回款记录
|
||||
*
|
||||
* @param id 查询条件
|
||||
* @return 合同回款记录列表
|
||||
*/
|
||||
@Override
|
||||
public PsContractPay queryById(Long id) {
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id修改合同回款记录
|
||||
*
|
||||
* @param pay 合同回款记录
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateById(PsContractPay pay) {
|
||||
return baseMapper.updateById(pay) > 0;
|
||||
}
|
||||
/* *//**
|
||||
* 查询合同回款记录
|
||||
*
|
||||
|
@ -0,0 +1,132 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.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 com.pusong.business.domain.vo.PsTaskAppointVo;
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.pusong.business.mapper.PsTaskAppointMapper;
|
||||
import com.pusong.business.service.IPsTaskAppointService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 任务委派Service业务层处理
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PsTaskAppointServiceImpl implements IPsTaskAppointService {
|
||||
|
||||
private final PsTaskAppointMapper baseMapper;
|
||||
|
||||
// /**
|
||||
// * 查询任务委派
|
||||
// *
|
||||
// * @param id 主键
|
||||
// * @return 任务委派
|
||||
// */
|
||||
// @Override
|
||||
// public PsTaskAppointVo queryById(Long id){
|
||||
// return baseMapper.selectVoById(id);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 分页查询任务委派列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 任务委派分页列表
|
||||
// */
|
||||
// @Override
|
||||
// public TableDataInfo<PsTaskAppointVo> queryPageList(PsTaskAppointBo bo, PageQuery pageQuery) {
|
||||
// LambdaQueryWrapper<PsTaskAppoint> lqw = buildQueryWrapper(bo);
|
||||
// Page<PsTaskAppointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// return TableDataInfo.build(result);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的任务委派列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 任务委派列表
|
||||
// */
|
||||
// @Override
|
||||
// public List<PsTaskAppointVo> queryList(PsTaskAppointBo bo) {
|
||||
// LambdaQueryWrapper<PsTaskAppoint> lqw = buildQueryWrapper(bo);
|
||||
// return baseMapper.selectVoList(lqw);
|
||||
// }
|
||||
//
|
||||
// private LambdaQueryWrapper<PsTaskAppoint> buildQueryWrapper(PsTaskAppointBo bo) {
|
||||
// Map<String, Object> params = bo.getParams();
|
||||
// LambdaQueryWrapper<PsTaskAppoint> lqw = Wrappers.lambdaQuery();
|
||||
// lqw.eq(bo.getTaskId() != null, PsTaskAppoint::getTaskId, bo.getTaskId());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskAppoint::getContractCode, bo.getContractCode());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getAppointType()), PsTaskAppoint::getAppointType, bo.getAppointType());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getAppointStatus()), PsTaskAppoint::getAppointStatus, bo.getAppointStatus());
|
||||
// lqw.eq(bo.getExecutor() != null, PsTaskAppoint::getExecutor, bo.getExecutor());
|
||||
// return lqw;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 新增任务委派
|
||||
// *
|
||||
// * @param bo 任务委派
|
||||
// * @return 是否新增成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean insertByBo(PsTaskAppointBo bo) {
|
||||
// PsTaskAppoint add = MapstructUtils.convert(bo, PsTaskAppoint.class);
|
||||
// validEntityBeforeSave(add);
|
||||
// boolean flag = baseMapper.insert(add) > 0;
|
||||
// if (flag) {
|
||||
// bo.setId(add.getId());
|
||||
// }
|
||||
// return flag;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 修改任务委派
|
||||
// *
|
||||
// * @param bo 任务委派
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean updateByBo(PsTaskAppointBo bo) {
|
||||
// PsTaskAppoint update = MapstructUtils.convert(bo, PsTaskAppoint.class);
|
||||
// validEntityBeforeSave(update);
|
||||
// return baseMapper.updateById(update) > 0;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 保存前的数据校验
|
||||
// */
|
||||
// private void validEntityBeforeSave(PsTaskAppoint entity){
|
||||
// //TODO 做一些数据校验,如唯一约束
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除任务委派信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
// if(isValid){
|
||||
// //TODO 做一些业务上的校验,判断是否需要校验
|
||||
// }
|
||||
// return baseMapper.deleteBatchIds(ids) > 0;
|
||||
// }
|
||||
}
|
@ -0,0 +1,139 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.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 com.pusong.business.domain.bo.PsTaskMediaBo;
|
||||
import com.pusong.business.domain.vo.PsTaskMediaVo;
|
||||
import com.pusong.business.domain.PsTaskMedia;
|
||||
import com.pusong.business.mapper.PsTaskMediaMapper;
|
||||
import com.pusong.business.service.IPsTaskMediaService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 任务资料Service业务层处理
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PsTaskMediaServiceImpl implements IPsTaskMediaService {
|
||||
|
||||
private final PsTaskMediaMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询任务资料
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 任务资料
|
||||
*/
|
||||
@Override
|
||||
public List<PsTaskMediaVo> queryByTaskId(Long id){
|
||||
PsTaskMediaBo bo = new PsTaskMediaBo();
|
||||
bo.setTaskId(id);
|
||||
LambdaQueryWrapper<PsTaskMedia> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
private LambdaQueryWrapper<PsTaskMedia> buildQueryWrapper(PsTaskMediaBo bo) {
|
||||
LambdaQueryWrapper<PsTaskMedia> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(bo.getTaskId() != null, PsTaskMedia::getTaskId, bo.getTaskId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskMedia::getContractCode, bo.getContractCode());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMediaType()), PsTaskMedia::getMediaType, bo.getMediaType());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getMediaOssId()), PsTaskMedia::getMediaOssId, bo.getMediaOssId());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
public void saveMediaList(List<PsTaskMediaBo> voList){
|
||||
List<PsTaskMedia> save = MapstructUtils.convert(voList, PsTaskMedia.class);
|
||||
baseMapper.insertOrUpdateBatch(save);
|
||||
}
|
||||
// /**
|
||||
// * 分页查询任务资料列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 任务资料分页列表
|
||||
// */
|
||||
// @Override
|
||||
// public TableDataInfo<PsTaskMediaVo> queryPageList(PsTaskMediaBo bo, PageQuery pageQuery) {
|
||||
// LambdaQueryWrapper<PsTaskMedia> lqw = buildQueryWrapper(bo);
|
||||
// Page<PsTaskMediaVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// return TableDataInfo.build(result);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的任务资料列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 任务资料列表
|
||||
// */
|
||||
// @Override
|
||||
// public List<PsTaskMediaVo> queryList(PsTaskMediaBo bo) {
|
||||
// LambdaQueryWrapper<PsTaskMedia> lqw = buildQueryWrapper(bo);
|
||||
// return baseMapper.selectVoList(lqw);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 新增任务资料
|
||||
// *
|
||||
// * @param bo 任务资料
|
||||
// * @return 是否新增成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean insertByBo(PsTaskMediaBo bo) {
|
||||
// PsTaskMedia add = MapstructUtils.convert(bo, PsTaskMedia.class);
|
||||
// validEntityBeforeSave(add);
|
||||
// boolean flag = baseMapper.insert(add) > 0;
|
||||
// if (flag) {
|
||||
// bo.setId(add.getId());
|
||||
// }
|
||||
// return flag;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 修改任务资料
|
||||
// *
|
||||
// * @param bo 任务资料
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean updateByBo(PsTaskMediaBo bo) {
|
||||
// PsTaskMedia update = MapstructUtils.convert(bo, PsTaskMedia.class);
|
||||
// validEntityBeforeSave(update);
|
||||
// return baseMapper.updateById(update) > 0;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 保存前的数据校验
|
||||
// */
|
||||
// private void validEntityBeforeSave(PsTaskMedia entity){
|
||||
// //TODO 做一些数据校验,如唯一约束
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除任务资料信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
// if(isValid){
|
||||
// //TODO 做一些业务上的校验,判断是否需要校验
|
||||
// }
|
||||
// return baseMapper.deleteBatchIds(ids) > 0;
|
||||
// }
|
||||
}
|
@ -0,0 +1,407 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.pusong.business.domain.PsCompanyInfo;
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.pusong.business.domain.bo.AppointBo;
|
||||
import com.pusong.business.domain.bo.MediaCompanySaveBo;
|
||||
import com.pusong.business.domain.bo.PsTaskMediaBo;
|
||||
import com.pusong.business.domain.bo.PsTaskQueryBo;
|
||||
import com.pusong.business.domain.vo.*;
|
||||
import com.pusong.business.enums.ApproverTypeEnum;
|
||||
import com.pusong.business.enums.TaskStatusEnum;
|
||||
import com.pusong.business.enums.TaskStatusEnum.*;
|
||||
import com.pusong.business.mapper.PsContractBusinessMapper;
|
||||
import com.pusong.business.mapper.PsTaskAppointMapper;
|
||||
import com.pusong.business.service.IPsCompanyInfoService;
|
||||
import com.pusong.business.service.IPsTaskMediaService;
|
||||
import com.pusong.business.service.approver.ApproverContainer;
|
||||
import com.pusong.business.service.approver.ApproverService;
|
||||
import com.pusong.common.core.exception.ServiceException;
|
||||
import com.pusong.common.core.service.OssService;
|
||||
import com.pusong.common.core.utils.DateUtils;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.system.service.ISysOssService;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.pusong.business.domain.PsTaskMain;
|
||||
import com.pusong.business.mapper.PsTaskMainMapper;
|
||||
import com.pusong.business.service.IPsTaskService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 主任务Service业务层处理
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-07
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PsTaskServiceImpl implements IPsTaskService {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(PsTaskServiceImpl.class);
|
||||
private final PsTaskMainMapper baseMapper;
|
||||
private final PsTaskAppointMapper appointMapper;
|
||||
private final IPsTaskMediaService mediaService;
|
||||
private final IPsCompanyInfoService companyInfoService;
|
||||
private final ISysOssService ossService;
|
||||
@Resource
|
||||
private ApproverContainer approverContainer;
|
||||
/**
|
||||
* 新增主任务
|
||||
*
|
||||
* @param add 主任务
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insert(PsTaskMain add) {
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询主任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 主任务分页列表
|
||||
*/
|
||||
public TableDataInfo<PsTaskMainVo> queryPageList(PsTaskQueryBo bo, PageQuery pageQuery){
|
||||
QueryWrapper<PsTaskMain> lqw = buildQueryWrapper(bo);
|
||||
Page<PsTaskMainVo> page = baseMapper.queryTaskPageList(pageQuery.build(), lqw);
|
||||
for (PsTaskMainVo vo : page.getRecords()) {
|
||||
if(vo.getStartDate() != null){
|
||||
vo.setNumOfDat(DateUtils.calWorkDate(vo.getStartDate(),new Date())+1);
|
||||
}
|
||||
}
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询子任务列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 主任务分页列表
|
||||
*/
|
||||
public TableDataInfo<PsTaskMainVo> queryChildPageList(PsTaskQueryBo bo, PageQuery pageQuery){
|
||||
QueryWrapper<PsTaskMain> lqw = buildQueryWrapper(bo);
|
||||
lqw.eq("appo.appoint_type",bo.getAppointType());
|
||||
Page<PsTaskMainVo> page = baseMapper.queryChildTaskPageList(pageQuery.build(), lqw);
|
||||
for (PsTaskMainVo vo : page.getRecords()) {
|
||||
if(vo.getStartDate() != null){
|
||||
vo.setNumOfDat(DateUtils.calWorkDate(vo.getStartDate(),new Date())+1);
|
||||
}
|
||||
}
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据任务id查询任务的公司信息和资料信息
|
||||
*
|
||||
* @param id 任务主表主键
|
||||
* @return 公司及资料信息
|
||||
*/
|
||||
public PsTaskMainVo queryInfo(Long id){
|
||||
//查询任务信息
|
||||
PsTaskMain mainTask = baseMapper.selectById(id);
|
||||
//查询公司信息
|
||||
PsCompanyInfoVo companyInfoVo = companyInfoService.queryById(mainTask.getCompanyId());
|
||||
//查询资料信息
|
||||
List<PsTaskMediaVo> list = mediaService.queryByTaskId(mainTask.getId());
|
||||
PsTaskMainVo psTaskMainVo = new PsTaskMainVo();
|
||||
psTaskMainVo.setCompanyInfoVo(companyInfoVo);
|
||||
psTaskMainVo.setTaskMediaVoList(list);
|
||||
return psTaskMainVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传资料和公司信息
|
||||
*
|
||||
* @param save 公司及资料信息
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void saveInfo(MediaCompanySaveBo save){
|
||||
//1.1信息校验
|
||||
PsTaskMain taskMain = baseMapper.selectById(save.getId());
|
||||
if(!TaskStatusEnum.canUpload(taskMain.getTaskStatus())){
|
||||
log.error("任务已完成,无法修改");
|
||||
throw new ServiceException("任务已完成,无法修改");
|
||||
}
|
||||
if(save.getPsCompanyInfo().getId() != null || !save.getPsCompanyInfo().getId().equals( taskMain.getCompanyId())){
|
||||
log.error("公司id不同或为空");
|
||||
throw new ServiceException("非法请求");
|
||||
}
|
||||
if(CollectionUtils.isEmpty(save.getMediaBoList())){
|
||||
boolean repetition = save.getMediaBoList().stream().map(PsTaskMediaBo::getMediaType)
|
||||
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
|
||||
.entrySet().stream().anyMatch(e -> e.getValue() > 1);
|
||||
if(repetition){
|
||||
log.error("请求的任务类型重复");
|
||||
throw new ServiceException("请求的任务类型重复,请刷新页面重试");
|
||||
}
|
||||
}
|
||||
|
||||
//1.2保存公司信息
|
||||
companyInfoService.saveBo(save.getPsCompanyInfo());
|
||||
if(CollectionUtils.isEmpty(save.getMediaBoList())){
|
||||
return;
|
||||
}
|
||||
//2.1查询原始的合同资料信息
|
||||
List<PsTaskMediaVo> mediaList = mediaService.queryByTaskId(save.getId());
|
||||
//此次需要保存的资料id(后续删除使用)
|
||||
List<String> ossIdList = new ArrayList<>();
|
||||
save.getMediaBoList().forEach(item->{
|
||||
item.setTaskId(taskMain.getId());
|
||||
item.setContractCode(taskMain.getContractCode());
|
||||
if(StringUtils.isNotBlank(item.getMediaOssId()) && !StringUtils.equals("-1",item.getMediaOssId())){
|
||||
ossIdList.addAll(List.of(item.getMediaOssId().split(",")));
|
||||
}
|
||||
});
|
||||
//2.2保存最新的合同资料信息
|
||||
mediaService.saveMediaList(save.getMediaBoList());
|
||||
//把历史的资料id储存到list中
|
||||
List<String> list = mediaList.stream().filter(item -> StringUtils.isNotBlank(item.getMediaOssId())).map(item -> item.getMediaOssId().split(",")).flatMap(Arrays::stream).collect(Collectors.toList());
|
||||
//去掉与本次保存重叠的资料,和-1
|
||||
list.removeIf(item->StringUtils.equals("-1", item) || ossIdList.contains(item));
|
||||
//2.3删除无用资料
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
ossService.deleteWithValidByIds(list.stream().map(Long::parseLong).collect(Collectors.toList()),null);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 任务委派
|
||||
*
|
||||
* @param bo 任务委派请求信息
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void appoint(AppointBo bo){
|
||||
//前置校验
|
||||
PsTaskMain mainTask = baseMapper.selectById(bo.getId());
|
||||
if(!TaskStatusEnum.canAppoint(mainTask.getTaskStatus())){
|
||||
throw new ServiceException("任务已完成,无法继续派单");
|
||||
}
|
||||
List<PsTaskAppoint> list = appointMapper.selectList(Wrappers.<PsTaskAppoint>lambdaQuery()
|
||||
.eq(PsTaskAppoint::getDelFlag,"0").eq(PsTaskAppoint::getTaskId, bo.getId())
|
||||
.eq(PsTaskAppoint::getAppointType, bo.getAppointType())
|
||||
.ne(PsTaskAppoint::getAppointStatus, AppointStatusEnum.CANCEL.getCode()));
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
throw new ServiceException("操作失败,任务已委派");
|
||||
}
|
||||
//如果是第一次派单,需要修改任务状态
|
||||
if(StringUtils.equals(TaskStatusEnum.INIT.getCode(),mainTask.getTaskStatus())){
|
||||
PsTaskMain update = new PsTaskMain();
|
||||
update.setId(mainTask.getId());
|
||||
update.setTaskStatus(TaskStatusEnum.ING.getCode());
|
||||
baseMapper.updateById(update);
|
||||
}
|
||||
PsTaskAppoint psTaskAppoint = new PsTaskAppoint();
|
||||
psTaskAppoint.setAppointStatus(AppointStatusEnum.ING.getCode());
|
||||
psTaskAppoint.setAppointType(bo.getAppointType());
|
||||
psTaskAppoint.setContractCode(mainTask.getContractCode());
|
||||
psTaskAppoint.setTaskId(mainTask.getId());
|
||||
psTaskAppoint.setExecutor(bo.getUserId());
|
||||
appointMapper.insert(psTaskAppoint);
|
||||
}
|
||||
/**
|
||||
* 主任务完成
|
||||
*
|
||||
* @param id 任务主键id
|
||||
* @return
|
||||
*/
|
||||
public void finishMain(Long id){
|
||||
PsTaskMain main = baseMapper.selectById(id);
|
||||
if(!TaskStatusEnum.canFinish(main.getTaskStatus())){
|
||||
throw new ServiceException("此任务无法执行此操作,请刷新页面后重新操作");
|
||||
}
|
||||
List<PsTaskAppoint> list = appointMapper.selectList(Wrappers.<PsTaskAppoint>lambdaQuery()
|
||||
.eq(PsTaskAppoint::getDelFlag,"0").eq(PsTaskAppoint::getTaskId, id)
|
||||
.notIn(PsTaskAppoint::getAppointStatus, AppointStatusEnum.getEndStauts()));
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
throw new ServiceException("操作失败,子任务未完成");
|
||||
}
|
||||
ApproverService service = approverContainer.getService(ApproverTypeEnum.TASKFINISH.getCode());
|
||||
service.apply(id+"",main.getContractCode(),null,null);
|
||||
main.setTaskStatus(TaskStatusEnum.OA.getCode());
|
||||
}
|
||||
/**
|
||||
* 子任务完成
|
||||
*
|
||||
* @param id 任务主键id
|
||||
* @return
|
||||
*/
|
||||
public void finishChild(Long id,String desc){
|
||||
PsTaskAppoint appoint = appointMapper.selectById(id);
|
||||
if(StringUtils.equals("3",appoint.getAppointType()) && StringUtils.isBlank(desc)){
|
||||
throw new ServiceException("请填写特勤备注");
|
||||
}
|
||||
if(!AppointStatusEnum.canFinish(appoint.getAppointStatus())){
|
||||
throw new ServiceException("此任务无法执行此操作,请刷新页面后重新操作");
|
||||
}
|
||||
appoint.setAppointStatus(AppointStatusEnum.FINISH.getCode());
|
||||
appoint.setTaskDesc(desc);
|
||||
appointMapper.updateById(appoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取任务执行者列表
|
||||
*
|
||||
* @param id 主任务主键id
|
||||
* @return
|
||||
*/
|
||||
public Map<String, PsTaskAppointVo> getExecutors(Long id){
|
||||
List<PsTaskAppointVo> list = appointMapper.selectVoList(Wrappers.<PsTaskAppoint>lambdaQuery()
|
||||
.eq(PsTaskAppoint::getDelFlag,"0").eq(PsTaskAppoint::getTaskId, id)
|
||||
.ne(PsTaskAppoint::getAppointStatus, AppointStatusEnum.CANCEL.getCode()));
|
||||
Map<String, PsTaskAppointVo> map = new HashMap<>();
|
||||
if(CollectionUtils.isNotEmpty(list)){
|
||||
map = list.stream().collect(Collectors.groupingBy(PsTaskAppointVo::getAppointType,
|
||||
Collectors.collectingAndThen(Collectors.maxBy(Comparator.comparingLong(PsTaskAppointVo::getId)), Optional::get)));
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 任务改派
|
||||
* @param id 任务委派表id
|
||||
* @param executorId 任务新的执行者id
|
||||
*/
|
||||
public void taskReset(Long id,Long executorId){
|
||||
PsTaskAppoint appoint = appointMapper.selectById(id);
|
||||
if(!AppointStatusEnum.canReset(appoint.getAppointStatus())){
|
||||
throw new ServiceException("操作失败,子任务状态无法改派");
|
||||
}
|
||||
appoint.setExecutor(executorId);
|
||||
appointMapper.updateById(appoint);
|
||||
}
|
||||
|
||||
|
||||
private QueryWrapper<PsTaskMain> buildQueryWrapper(PsTaskQueryBo bo) {
|
||||
QueryWrapper<PsTaskMain> lqw = new QueryWrapper<PsTaskMain>();
|
||||
lqw.eq("del_flag","0");
|
||||
lqw.ne("task_status",TaskStatusEnum.CANCEL.getCode());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), "com.company_name", bo.getCompanyName());//公司地址
|
||||
lqw.like(StringUtils.isNotBlank(bo.getCustomerNum()), "com.customer_num", bo.getCustomerNum());//纳税人识别号
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCustomerCert()), "com.customer_cert", bo.getCustomerCert());//纳税人资格
|
||||
lqw.like(StringUtils.isNotBlank(bo.getCustomManagerName()), "us.nick_name", bo.getCustomManagerName());//销售经理姓名
|
||||
lqw.like(StringUtils.isNotBlank(bo.getCompanyAdress()), "com.company_adress", bo.getCompanyAdress());//公司地址
|
||||
lqw.like(StringUtils.isNotBlank(bo.getMobile()), "com.legal_person_phone", bo.getMobile());//法人手机号
|
||||
lqw.like(StringUtils.isNotBlank(bo.getIdNo()), "com.legal_person_idcard", bo.getIdNo());//法人身份证
|
||||
lqw.like(StringUtils.isNotBlank(bo.getName()), "com.legal_person_name", bo.getName());//法人姓名
|
||||
//服务项目编码集合
|
||||
lqw.exists(CollectionUtils.isNotEmpty(bo.getServiceProjectCode()), "select 1 from ps_contract_business_detail detail " +
|
||||
"where detail.contract_code = con.contract_code and detail.business_project in ("+StringUtils.join(bo.getServiceProjectCode(),",")+")");//服务项目编码集合
|
||||
//执行者姓名
|
||||
lqw.exists(StringUtils.isNotBlank(bo.getExecutor()), "select 1 from ps_task_appoint appoint,sys_user su " +
|
||||
"where appoint.executor = su.user_id and appoint.task_id = main.id and su.nick_name like '%" + bo.getExecutor() + "%'");
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// /**
|
||||
// * 查询主任务
|
||||
// *
|
||||
// * @param id 主键
|
||||
// * @return 主任务
|
||||
// */
|
||||
// @Override
|
||||
// public PsTaskMainVo queryById(Long id){
|
||||
// return baseMapper.selectVoById(id);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 分页查询主任务列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 主任务分页列表
|
||||
// */
|
||||
// @Override
|
||||
// public TableDataInfo<PsTaskMainVo> queryPageList(PsTaskMainBo bo, PageQuery pageQuery) {
|
||||
// LambdaQueryWrapper<PsTaskMain> lqw = buildQueryWrapper(bo);
|
||||
// Page<PsTaskMainVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// return TableDataInfo.build(result);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的主任务列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 主任务列表
|
||||
// */
|
||||
// @Override
|
||||
// public List<PsTaskMainVo> queryList(PsTaskMainBo bo) {
|
||||
// LambdaQueryWrapper<PsTaskMain> lqw = buildQueryWrapper(bo);
|
||||
// return baseMapper.selectVoList(lqw);
|
||||
// }
|
||||
//
|
||||
// private LambdaQueryWrapper<PsTaskMain> buildQueryWrapper(PsTaskMainBo bo) {
|
||||
// Map<String, Object> params = bo.getParams();
|
||||
// LambdaQueryWrapper<PsTaskMain> lqw = Wrappers.lambdaQuery();
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskMain::getContractCode, bo.getContractCode());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getTaskType()), PsTaskMain::getTaskType, bo.getTaskType());
|
||||
// lqw.eq(bo.getStartDate() != null, PsTaskMain::getStartDate, bo.getStartDate());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getTaskStatus()), PsTaskMain::getTaskStatus, bo.getTaskStatus());
|
||||
// return lqw;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 修改主任务
|
||||
// *
|
||||
// * @param bo 主任务
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean updateByBo(PsTaskMainBo bo) {
|
||||
// PsTaskMain update = MapstructUtils.convert(bo, PsTaskMain.class);
|
||||
// validEntityBeforeSave(update);
|
||||
// return baseMapper.updateById(update) > 0;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 保存前的数据校验
|
||||
// */
|
||||
// private void validEntityBeforeSave(PsTaskMain entity){
|
||||
// //TODO 做一些数据校验,如唯一约束
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除主任务信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
// if(isValid){
|
||||
// //TODO 做一些业务上的校验,判断是否需要校验
|
||||
// }
|
||||
// return baseMapper.deleteBatchIds(ids) > 0;
|
||||
// }
|
||||
}
|
@ -0,0 +1,169 @@
|
||||
package com.pusong.business.service.impl;
|
||||
|
||||
import com.pusong.business.domain.PsTaskAppoint;
|
||||
import com.pusong.business.mapper.PsTaskAppointMapper;
|
||||
import com.pusong.common.core.utils.MapstructUtils;
|
||||
import com.pusong.common.core.utils.StringUtils;
|
||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
||||
import com.pusong.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 com.pusong.business.domain.bo.PsTaskWorkRecordBo;
|
||||
import com.pusong.business.domain.vo.PsTaskWorkRecordVo;
|
||||
import com.pusong.business.domain.PsTaskWorkRecord;
|
||||
import com.pusong.business.mapper.PsTaskWorkRecordMapper;
|
||||
import com.pusong.business.service.IPsTaskWorkRecordService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 外勤任务记录Service业务层处理
|
||||
*
|
||||
* @author wls
|
||||
* @date 2024-08-09
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class PsTaskWorkRecordServiceImpl implements IPsTaskWorkRecordService {
|
||||
|
||||
private final PsTaskWorkRecordMapper baseMapper;
|
||||
private final PsTaskAppointMapper appointMapper;
|
||||
|
||||
|
||||
/**
|
||||
* 根据任务委派id查询工作进度列表
|
||||
*
|
||||
* @param id 任务委派id
|
||||
* @return 外勤任务记录列表
|
||||
*/
|
||||
@Override
|
||||
public List<PsTaskWorkRecordVo> queryListByAppointId(Long id) {
|
||||
LambdaQueryWrapper<PsTaskWorkRecord> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(PsTaskWorkRecord::getDelFlag,"0");
|
||||
lqw.eq(PsTaskWorkRecord::getTaskAppointId,id);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
/**
|
||||
* 新增外勤任务记录
|
||||
*
|
||||
* @param bo 外勤任务记录
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(PsTaskWorkRecordBo bo) {
|
||||
PsTaskAppoint appoint = appointMapper.selectById(bo.getTaskAppointId());
|
||||
PsTaskWorkRecord add = MapstructUtils.convert(bo, PsTaskWorkRecord.class);
|
||||
add.setContractCode(appoint.getContractCode());
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * 查询外勤任务记录
|
||||
// *
|
||||
// * @param id 主键
|
||||
// * @return 外勤任务记录
|
||||
// */
|
||||
// @Override
|
||||
// public PsTaskWorkRecordVo queryById(Long id){
|
||||
// return baseMapper.selectVoById(id);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 分页查询外勤任务记录列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @param pageQuery 分页参数
|
||||
// * @return 外勤任务记录分页列表
|
||||
// */
|
||||
// @Override
|
||||
// public TableDataInfo<PsTaskWorkRecordVo> queryPageList(PsTaskWorkRecordBo bo, PageQuery pageQuery) {
|
||||
// LambdaQueryWrapper<PsTaskWorkRecord> lqw = buildQueryWrapper(bo);
|
||||
// Page<PsTaskWorkRecordVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
// return TableDataInfo.build(result);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 查询符合条件的外勤任务记录列表
|
||||
// *
|
||||
// * @param bo 查询条件
|
||||
// * @return 外勤任务记录列表
|
||||
// */
|
||||
// @Override
|
||||
// public List<PsTaskWorkRecordVo> queryList(PsTaskWorkRecordBo bo) {
|
||||
// LambdaQueryWrapper<PsTaskWorkRecord> lqw = buildQueryWrapper(bo);
|
||||
// return baseMapper.selectVoList(lqw);
|
||||
// }
|
||||
//
|
||||
// private LambdaQueryWrapper<PsTaskWorkRecord> buildQueryWrapper(PsTaskWorkRecordBo bo) {
|
||||
// Map<String, Object> params = bo.getParams();
|
||||
// LambdaQueryWrapper<PsTaskWorkRecord> lqw = Wrappers.lambdaQuery();
|
||||
// lqw.eq(bo.getTaskAppointId() != null, PsTaskWorkRecord::getTaskAppointId, bo.getTaskAppointId());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getContractCode()), PsTaskWorkRecord::getContractCode, bo.getContractCode());
|
||||
// lqw.eq(bo.getHandleDate() != null, PsTaskWorkRecord::getHandleDate, bo.getHandleDate());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getHandleInfo()), PsTaskWorkRecord::getHandleInfo, bo.getHandleInfo());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getHandlePlan()), PsTaskWorkRecord::getHandlePlan, bo.getHandlePlan());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getNextType()), PsTaskWorkRecord::getNextType, bo.getNextType());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getNextDesc()), PsTaskWorkRecord::getNextDesc, bo.getNextDesc());
|
||||
// lqw.eq(StringUtils.isNotBlank(bo.getNextDate()), PsTaskWorkRecord::getNextDate, bo.getNextDate());
|
||||
// return lqw;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 新增外勤任务记录
|
||||
// *
|
||||
// * @param bo 外勤任务记录
|
||||
// * @return 是否新增成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean insertByBo(PsTaskWorkRecordBo bo) {
|
||||
// PsTaskWorkRecord add = MapstructUtils.convert(bo, PsTaskWorkRecord.class);
|
||||
// validEntityBeforeSave(add);
|
||||
// boolean flag = baseMapper.insert(add) > 0;
|
||||
// if (flag) {
|
||||
// bo.setId(add.getId());
|
||||
// }
|
||||
// return flag;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 修改外勤任务记录
|
||||
// *
|
||||
// * @param bo 外勤任务记录
|
||||
// * @return 是否修改成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean updateByBo(PsTaskWorkRecordBo bo) {
|
||||
// PsTaskWorkRecord update = MapstructUtils.convert(bo, PsTaskWorkRecord.class);
|
||||
// validEntityBeforeSave(update);
|
||||
// return baseMapper.updateById(update) > 0;
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 保存前的数据校验
|
||||
// */
|
||||
// private void validEntityBeforeSave(PsTaskWorkRecord entity){
|
||||
// //TODO 做一些数据校验,如唯一约束
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 校验并批量删除外勤任务记录信息
|
||||
// *
|
||||
// * @param ids 待删除的主键集合
|
||||
// * @param isValid 是否进行有效性校验
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// @Override
|
||||
// public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
// if(isValid){
|
||||
// //TODO 做一些业务上的校验,判断是否需要校验
|
||||
// }
|
||||
// return baseMapper.deleteBatchIds(ids) > 0;
|
||||
// }
|
||||
}
|
@ -7,7 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<id column="contract_code" property="contractCode"></id>
|
||||
<collection columnPrefix="com_" property="psCompanyInfoVo" ofType="com.pusong.business.domain.vo.PsCompanyInfoVo" >
|
||||
</collection>
|
||||
<collection columnPrefix="cus." property="psCustomInfoVo" ofType="com.pusong.business.domain.vo.PsCustomInfoVo" >
|
||||
<collection columnPrefix="cus_" property="psCustomInfoVo" ofType="com.pusong.business.domain.vo.PsCustomInfoVo" >
|
||||
</collection>
|
||||
</resultMap>
|
||||
<sql id="queryContractList" >
|
||||
|
@ -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="com.pusong.business.mapper.PsTaskAppointMapper">
|
||||
|
||||
</mapper>
|
@ -0,0 +1,94 @@
|
||||
<?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="com.pusong.business.mapper.PsTaskMainMapper">
|
||||
<resultMap id="taskMainResult" type="com.pusong.business.domain.vo.PsTaskMainVo">
|
||||
<id column="id" property="id"></id>
|
||||
<collection columnPrefix="con_" property="contractVo" ofType="com.pusong.business.domain.vo.TaskContractVo" >
|
||||
</collection>
|
||||
<collection columnPrefix="com_" property="companyInfoVo" ofType="com.pusong.business.domain.vo.PsCompanyInfoVo" >
|
||||
</collection>
|
||||
<collection columnPrefix="cus_" property="customInfoVo" ofType="com.pusong.business.domain.vo.PsCustomInfoVo" >
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
|
||||
|
||||
<select id="queryTaskPageList" resultMap="taskMainResult">
|
||||
select main.id,
|
||||
main.task_type,
|
||||
main.start_date,
|
||||
main.task_status,
|
||||
main.contract_code,
|
||||
con.is_proxy con_is_proxy,
|
||||
con.custom_scene con_custom_scene,
|
||||
con.custom_manager con_custom_manager,
|
||||
us.nick_name con_custom_manager_name,
|
||||
con.sign_desc con_sign_desc,
|
||||
com.company_adress com_company_adress,
|
||||
com.company_name com_company_name,
|
||||
com.legal_person_name com_legal_person_name,
|
||||
com.legal_person_idcard com_legal_person_idcard,
|
||||
com.legal_person_phone com_legal_person_phone,
|
||||
com.customer_num com_customer_num,
|
||||
com.customer_cert com_customer_cert,
|
||||
cus.custom_name cus_custom_name ,
|
||||
cus.custom_mobile cus_custom_mobile,
|
||||
(CASE WHEN (info.contract_amount -
|
||||
(select IFNULL(sum(money),0) from ps_contract_pay pay where pay.business_type =1 ) +
|
||||
(select IFNULL(sum(money),0) from ps_contract_pay cpay where cpay.business_type =2 )
|
||||
) > 0 THEN '半款' ELSE '全款' END) as pay_stauts_desc,
|
||||
(select GROUP_CONCAT(appoint.executor SEPARATOR ',')
|
||||
from ps_task_appoint appoint where appoint.task_id = main.id) as executors
|
||||
(select GROUP_CONCAT(business.business_type SEPARATOR ',')
|
||||
from ps_contract_business business where business.contract_code = con.contract_code) as business_type_name
|
||||
from ps_task_main main
|
||||
left join ps_contract_info con on main.contract_code = con.contract_code
|
||||
left join ps_company_info com on con.company_id = com.id
|
||||
left join ps_custom_info cus on con.custom_id = cus.id
|
||||
left join sys_user usr on con.custom_manager = usr.user_id
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="queryChildPageList" resultMap="taskMainResult">
|
||||
select
|
||||
main.task_type,
|
||||
main.start_date,
|
||||
main.task_status,
|
||||
main.contract_code,
|
||||
con.is_proxy con_is_proxy,
|
||||
con.custom_scene con_custom_scene,
|
||||
con.custom_manager con_custom_manager,
|
||||
us.nick_name con_custom_manager_name,
|
||||
con.sign_desc con_sign_desc,
|
||||
com.company_adress com_company_adress,
|
||||
com.company_name com_company_name,
|
||||
com.legal_person_name com_legal_person_name,
|
||||
com.legal_person_idcard com_legal_person_idcard,
|
||||
com.legal_person_phone com_legal_person_phone,
|
||||
com.customer_num com_customer_num,
|
||||
com.customer_cert com_customer_cert,
|
||||
com.finance_account_no com_finance_account_no
|
||||
cus.custom_name cus_custom_name ,
|
||||
cus.custom_mobile cus_custom_mobile,
|
||||
(CASE WHEN (info.contract_amount -
|
||||
(select IFNULL(sum(money),0) from ps_contract_pay pay where pay.business_type =1 ) +
|
||||
(select IFNULL(sum(money),0) from ps_contract_pay cpay where cpay.business_type =2 )
|
||||
) > 0 THEN '半款' ELSE '全款' END) as pay_stauts_desc,
|
||||
appo.executor as executors,
|
||||
appo.appoint_status,
|
||||
appo.id,
|
||||
(select GROUP_CONCAT(business.business_type SEPARATOR ',')
|
||||
from ps_contract_business business where business.contract_code = con.contract_code) as business_type_name
|
||||
from ps_task_appoint appo
|
||||
left join ps_task_main main on appo.task_id = main.id and appo.appoint_status != '50'
|
||||
left join ps_contract_info con on main.contract_code = con.contract_code
|
||||
left join ps_company_info com on con.company_id = com.id
|
||||
left join ps_custom_info cus on con.custom_id = cus.id
|
||||
left join sys_user usr on con.custom_manager = usr.user_id
|
||||
${ew.getCustomSqlSegment}
|
||||
</select>
|
||||
|
||||
|
||||
</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="com.pusong.business.mapper.PsTaskMediaMapper">
|
||||
|
||||
</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="com.pusong.business.mapper.PsTaskWorkRecordMapper">
|
||||
|
||||
</mapper>
|
Loading…
Reference in New Issue
Block a user