From 3068493329e8a809e292ba6f56b807425ec3dd9a Mon Sep 17 00:00:00 2001 From: 1073413548 <14628403+gjb0917@user.noreply.gitee.com> Date: Tue, 27 Aug 2024 18:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PsContractInfoController.java | 13 +++++++++ .../controller/PsContractPayController.java | 1 + .../business/domain/PsContractInfo.java | 7 ++--- .../pusong/business/domain/PsTaskMain.java | 5 ++++ .../business/domain/bo/PsContractInfoBo.java | 4 +++ .../business/domain/vo/PsCustomInfoVo.java | 14 +++++++++ .../service/IPsContractInfoService.java | 7 +++++ .../impl/PsContractInfoServiceImpl.java | 14 +++++++-- .../impl/PsContractPayServiceImpl.java | 2 +- .../service/impl/PsCustomInfoServiceImpl.java | 9 +++--- .../service/impl/PsTaskServiceImpl.java | 7 +++-- .../mapper/business/PsContractInfoMapper.xml | 6 ++-- .../mapper/business/PsCustomInfoMapper.xml | 29 ++++++++++--------- 13 files changed, 87 insertions(+), 31 deletions(-) diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java index c5d5f63..0338e19 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractInfoController.java @@ -176,6 +176,19 @@ public class PsContractInfoController extends BaseController { psContractInfoService.freeWork(contractCode,businessType,businessProject); return R.ok(); } + /** + * 根据合同编码查询服务进度 + * @param contractCode 合同编码 + * @return + */ + @RepeatSubmit() + @Log(title = "免费派单") + @SaCheckPermission("business:task:list") + @GetMapping("/queryScheduleByCode") + public R queryScheduleByCode(@NotNull String contractCode) { + psContractInfoService.queryScheduleByCode(contractCode); + return R.ok(); + } // // /** // * 获取合同基本信息详细信息 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java index 8f7906c..9fbf577 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsContractPayController.java @@ -85,6 +85,7 @@ public class PsContractPayController extends BaseController { psContractPayService.refundFinish(files,id); return R.ok(); } + /** * 导出合同回款记录列表 *//* diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java index e96d3f9..36716ed 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsContractInfo.java @@ -150,10 +150,9 @@ public class PsContractInfo extends TenantEntity { * 确认单 */ private Long confirmOssid; + /** - * 任务派单日期 + * 原合同编码(续费合同使用) */ - private Date startDate; - - + private String srcContractCode; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java index 2c10897..d0bb401 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/PsTaskMain.java @@ -74,4 +74,9 @@ public class PsTaskMain extends TenantEntity { * 发票 */ private String invoice; + + /** + * 派单操作人 + */ + private Long operateUser; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java index 8452dd1..320456d 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsContractInfoBo.java @@ -32,6 +32,10 @@ public class PsContractInfoBo { */ @NotBlank(message = "合同编码不能为空", groups = { EditGroup.class }) private String contractCode; + /** + * 原合同编码(续费合同使用) + */ + private String srcContractCode; /** * 合同主体 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java index 59b3cf7..840b279 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCustomInfoVo.java @@ -151,6 +151,20 @@ public class PsCustomInfoVo implements Serializable { * 是否已生成合同(1是0否) */ private Integer haveContract; + /** + * 合同编码(最新的) + */ + private Integer contractCode; + /** + * 派单日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm") + private Date startDate; + /** + * 任务进行天数 + */ + private int numOfDat; + /** * 报价金额DTO */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java index ea260e4..8383806 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java @@ -116,6 +116,13 @@ public interface IPsContractInfoService { * @param contractCode 合同编码 */ void finish(String contractCode); + + + /** + * 根据合同编码查询服务进度 + * @param contractCode 合同编码 + */ + void queryScheduleByCode(String contractCode); /** * 查询符合条件的合同基本信息列表 * diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index d49fee3..d3f593c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -217,6 +217,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { }else if (bo.getType() == 3){//已回款(要特定的作废数据) bo.setInContractStatus(ContractStatusEnum.getReturn()); }else if (bo.getType() == 4){//托管续费合同 + log.info("托管服务"); } QueryWrapper lqw = buildQueryWrapper(bo); @@ -476,7 +477,13 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { } + /** + * 根据合同编码查询服务进度 + * @param contractCode 合同编码 + */ + public void queryScheduleByCode(String contractCode){ + } private QueryWrapper buildQueryWrapper(PsContractInfoQueryBo bo) { QueryWrapper qw = Wrappers.query(); //删除标志 @@ -501,9 +508,10 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { wq.or().gt( bo.getType() == 2,"((select IFNULL(sum(pa.money),0) from ps_contract_pay pa where pa.pay_status = 1 and pa.business_type = 1 and pa.contract_code = info.contract_code\n" + ")-(select IFNULL(sum(pay.money),0) from ps_contract_pay pay where pay.pay_status = 1 and pay.business_type = 2 and pay.contract_code = info.contract_code))",0); }); - //托管续费合同 - qw.exists(bo.getType() != null && bo.getType() == 4 - ,"select 1 from ps_contract_business bus where info.contract_code = bus.contract_code and bus.business_type = 4"); + //托管续费合同(写死托管服务的id是2) + if(bo.getType() != null && bo.getType() == 4){ + qw.exists("select 1 from ps_contract_business bus where info.contract_code = bus.contract_code and bus.business_type = 2"); + } qw.orderByDesc("info.create_time"); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java index 105e6cf..62d3dcd 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractPayServiceImpl.java @@ -193,7 +193,7 @@ public class PsContractPayServiceImpl implements IPsContractPayService { info.setPayDate(new Date()); info.setPayCertification(StringUtils.join(payCertifications,",")); info.setPayStatus(PayStatusEnum.SUCCESS.getCode()); - baseMapper.insert(info); + baseMapper.updateById(info); } /* *//** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index b1f2dea..571140c 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java @@ -15,13 +15,12 @@ import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.CommonStatusEnum; import com.pusong.business.enums.ContractStatusEnum; import com.pusong.business.enums.CustomerStatusEnum; -import com.pusong.business.mapper.PsCompanyInfoMapper; -import com.pusong.business.mapper.PsCustomCallbackMapper; -import com.pusong.business.mapper.PsCustomPriceMapper; +import com.pusong.business.mapper.*; import com.pusong.business.service.IPsCompanyInfoService; 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.utils.DateUtils; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.TableDataInfo; @@ -34,7 +33,6 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.pusong.business.domain.PsCustomInfo; -import com.pusong.business.mapper.PsCustomInfoMapper; import com.pusong.business.service.IPsCustomInfoService; import org.springframework.transaction.annotation.Transactional; @@ -55,6 +53,7 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { private final PsCustomInfoMapper baseMapper; private final PsCustomPriceMapper priceMapper; private final PsCustomCallbackMapper callbackMapper; + private final PsContractInfoMapper contractInfoMapper; private final PsCompanyInfoMapper companyInfoMapper; @Resource private final IPsCompanyInfoService companyInfoService; @@ -178,6 +177,8 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { }else{ info.setCompanyNum(0); } + //任务进行天数 + info.setNumOfDat(info.getStartDate() == null?0:DateUtils.calWorkDate(info.getStartDate(),new Date())); } return TableDataInfo.build(result); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java index 8d33105..a929e3e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -33,6 +33,7 @@ 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.common.satoken.utils.LoginHelper; import com.pusong.system.domain.vo.SysOssVo; import com.pusong.system.service.ISysOssService; import jakarta.annotation.Resource; @@ -285,10 +286,9 @@ public class PsTaskServiceImpl implements IPsTaskService { update.setId(mainTask.getId()); update.setTaskStatus(TaskStatusEnum.ING.getCode()); update.setStartDate(new Date()); + update.setOperateUser(LoginHelper.getUserId()); baseMapper.updateById(update); -// contractInfoMapper.update(Wrappers.lambdaUpdate().set(PsContractInfo::getContractCode).eq(PsContractInfo::getContractCode,mainTask.getContractCode())); - } PsTaskAppoint psTaskAppoint = new PsTaskAppoint(); psTaskAppoint.setAppointStatus(AppointStatusEnum.ING.getCode()); @@ -402,7 +402,7 @@ public class PsTaskServiceImpl implements IPsTaskService { 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.getCustomManagerName()), "usr.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());//法人身份证 @@ -413,6 +413,7 @@ public class PsTaskServiceImpl implements IPsTaskService { //执行者姓名 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() + "%'"); + lqw.orderByDesc("main.create_time"); return lqw; } diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml index 51253bc..f3dfa52 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsContractInfoMapper.xml @@ -25,10 +25,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" cus.id cus_id, cus.custom_name cus_custom_name , cus.custom_mobile cus_custom_mobile, + cus.custom_status cus_custom_status, us.nick_name custom_manager_name, - (select ptm.invoice from ps_task_main ptm where ptm.task_type = '3' - and ptm.contract_code = info.contract_code and ptm.task_status = 30 limit 0,1) as invoice_ossid - + (select ptm.invoice from ps_task_main ptm where ptm.task_type = '3' and ptm.contract_code = info.contract_code and ptm.task_status = 30 limit 0,1) + as invoice_ossid from ps_contract_info info left join ps_company_info com on info.company_id = com.id left join ps_custom_info cus on info.custom_id = cus.id diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml index 4603bc9..da94c90 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCustomInfoMapper.xml @@ -8,8 +8,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT info.* , usr.nick_name as custom_manager_name - ,psinfo.custom_name as custom_introducer_name, - EXISTS(SELECT * FROM ps_contract_info coninfo WHERE coninfo.custom_id = info.id and coninfo.contract_status != '10') have_contract + ,psinfo.custom_name as custom_introducer_name + ,(select contract_code from ps_contract_info where custom_id = info.id and create_time = (select max(create_time) from ps_contract_info psi where psi.custom_id = info.id ) limit 0,1) + contract_code + ,(select min(start_date) from ps_task_main where contract_code = + (select contract_code from ps_contract_info where custom_id = info.id and create_time = (select max(create_time) from ps_contract_info psi where psi.custom_id = info.id ) limit 0,1)) + start_date + ,EXISTS(SELECT * FROM ps_contract_info coninfo WHERE coninfo.custom_id = info.id and coninfo.contract_status != '10') have_contract FROM ps_custom_info info left join sys_user usr on info.custom_manager = usr.user_id left join ps_custom_info psinfo on info.custom_introducer = psinfo.id @@ -42,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" custom.custom_mobile, (select GROUP_CONCAT(business.business_type SEPARATOR ',') from ps_contract_business business where business.contract_code = con.contract_code) as business_type_name, - task.start_date, + (select max(start_date) from ps_task_main ptm where ptm.contract_code = con.contract_code and ptm.task_type='1' ) start_date, com.finance_account_no, custom.custom_manager, com.company_adress, @@ -53,21 +58,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" com.legal_person_idcard, com.legal_person_phone, (select GROUP_CONCAT(appoint.executor SEPARATOR ',') - from ps_task_appoint appoint where appoint.task_id = task.id) as executors, + from ps_task_appoint appoint where appoint.contract_code = con.contract_code) as executors, con.sign_desc, con.contract_amount, con.finish_date, con.confirm_ossid, (select par.approver_status from ps_approver_record par where par.contract_code = con.contract_code and business_type = 'free' order by id desc limit 0,1) approver_status - from - ps_custom_info custom - left join - (select * from ps_task_main main where main.start_date in (select max(ma.start_date) start_date from ps_task_main ma group by ma.custom_id)) - task on custom.id = task.custom_id - left join - ps_company_info com on com.id = task.company_id - left join - ps_contract_info con on con.contract_code = task.contract_code + from + ps_custom_info custom + left join + (select * from ps_contract_info info where info.create_time in (select max(pci.create_time) create_time from ps_contract_info pci group by pci.custom_id)) + con on con.custom_id = custom.id + left join + ps_company_info com on com.id = con.company_id ${ew.getCustomSqlSegment}