|
|
@@ -29,6 +29,7 @@ import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogDto;
|
|
|
import cn.start.tz.module.member.api.templatesendlog.dto.TemplateSendLogRespDto;
|
|
|
import cn.start.tz.module.member.api.user.MemberUserApi;
|
|
|
import cn.start.tz.module.member.api.user.dto.MemberUserRespDTO;
|
|
|
+import cn.start.tz.module.pressure.api.taskorder.dto.NonTaxPayStatusDTO;
|
|
|
import cn.start.tz.module.pressure2.api.taskorder.dto.UpdatePayStatusDTO;
|
|
|
import cn.start.tz.module.pressure2.constant.TemplateIdConstants;
|
|
|
import cn.start.tz.module.pressure2.controller.admin.boilertaskorderitempart.vo.BoilerTaskOrderItemPartSaveReqVO;
|
|
|
@@ -42,15 +43,22 @@ import cn.start.tz.module.pressure2.dal.dataobject.notificationformreport.Notifi
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.opinionnotificationfollowrecord.OpinionNotificationFollowRecordDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.orderreport.OrderReportDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorder.PipeTaskOrderDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitem.PipeTaskOrderItemDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreport.PipeTaskOrderItemReportDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderitemreportuser.PipeTaskOrderItemReportUserDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskordersecuritycheck.PipeTaskOrderSecurityCheckDO;
|
|
|
import cn.start.tz.module.pressure2.dal.dataobject.pipetaskorderuser.PipeTaskOrderUserDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.taskordernontaxrecord.TaskOrderNonTaxRecordDO;
|
|
|
+import cn.start.tz.module.pressure2.dal.dataobject.taskordernontaxrecorditem.TaskOrderNonTaxRecordItemDO;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boileracceptorderuser.BoilerAcceptOrderUserMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.boilerconnectrecordreport.BoilerConnectRecordReportMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.businessmemberrelation.BusinessMemberRelationMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.notificationformreport.NotificationformReportMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorder.PipeTaskOrderMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderitem.PipeTaskOrderItemMapper;
|
|
|
import cn.start.tz.module.pressure2.dal.mysql.pipetaskorderuser.PipeTaskOrderUserMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.taskordernontaxrecord.TaskOrderNonTaxRecordMapper;
|
|
|
+import cn.start.tz.module.pressure2.dal.mysql.taskordernontaxrecorditem.TaskOrderNonTaxRecordItemMapper;
|
|
|
import cn.start.tz.module.pressure2.enums.AcceptOrderStatusEnum;
|
|
|
import cn.start.tz.module.pressure2.enums.RedisKeyEnums;
|
|
|
import cn.start.tz.module.pressure2.enums.TaskOrderItemReportTypeEnum;
|
|
|
@@ -154,6 +162,7 @@ import cn.start.tz.module.pressure2.service.orderreport.OrderReportService;
|
|
|
import cn.start.tz.module.pressure2.service.pdf.PdfService;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderService;
|
|
|
import cn.start.tz.module.pressure2.service.pipetaskorder.PipeTaskOrderServiceImpl;
|
|
|
+import cn.start.tz.module.pressure2.service.pipetaskorderissuereport.PipeTaskOrderIssueReportService;
|
|
|
import cn.start.tz.module.pressure2.service.synchronization.SynchronizationService;
|
|
|
import cn.start.tz.module.pressure2.service.synchronization.dto.ReportDto;
|
|
|
import cn.start.tz.module.pressure2.service.userwallthicknesstemplate.UserWallThicknessTemplateService;
|
|
|
@@ -511,7 +520,8 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
BigDecimal serviceAmount = Optional.ofNullable(boilerTaskOrderDO.getServiceAmount()).orElse(BigDecimal.ZERO);
|
|
|
BigDecimal shouldAmount = Optional.ofNullable(boilerTaskOrderDO.getShouldAmount()).orElse(BigDecimal.ZERO);
|
|
|
BigDecimal reduceFee = Optional.ofNullable(boilerTaskOrderDO.getReduceFee()).orElse(BigDecimal.ZERO);
|
|
|
- boilerTaskOrderRespVO.setPayAmount(serviceAmount.add(shouldAmount).add(reduceFee));
|
|
|
+// boilerTaskOrderRespVO.setPayAmount(serviceAmount.add(shouldAmount).add(reduceFee));
|
|
|
+ boilerTaskOrderRespVO.setTotalAmount(serviceAmount.add(shouldAmount).add(reduceFee));
|
|
|
// 邮箱
|
|
|
boilerTaskOrderRespVO.setUnitEmail(boilerTaskOrderDO.getEmail());
|
|
|
|
|
|
@@ -3183,7 +3193,7 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
new Date();
|
|
|
String dateStr = simpleDateFormat.format(dateToUse);
|
|
|
|
|
|
- String acceptNo = "RW" + dateStr + redisService.generateAcceptanceNo(RedisKeyEnums.TASK_ORDER.getKey());
|
|
|
+ String acceptNo = "GC" + dateStr + redisService.generateAcceptanceNo(RedisKeyEnums.TASK_ORDER.getKey());
|
|
|
return acceptNo;
|
|
|
}
|
|
|
|
|
|
@@ -6089,8 +6099,12 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
//获取任务单关联部门信息
|
|
|
List<String> deptIds = new ArrayList<>(pageResult.getList().stream().map(BoilerOrderItemPageRespVO::getDeptId).filter(Objects::nonNull).toList());
|
|
|
Map<String, DeptRespDTO> deptMap = new HashMap<>();
|
|
|
- if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
- deptMap = deptApi.getDeptMap(deptIds);
|
|
|
+ try {
|
|
|
+ if (CollUtil.isNotEmpty(deptIds)) {
|
|
|
+ deptMap = deptApi.getDeptMap(deptIds);
|
|
|
+ }
|
|
|
+ }catch (Exception e) {
|
|
|
+ log.error("获取部门信息失败", e);
|
|
|
}
|
|
|
Map<String, DeptRespDTO> finalDeptMap = deptMap;
|
|
|
|
|
|
@@ -6331,5 +6345,126 @@ public class BoilerTaskOrderServiceImpl extends ServiceImpl<BoilerTaskOrderMappe
|
|
|
|
|
|
return "05";
|
|
|
}
|
|
|
+ @Resource
|
|
|
+ @Lazy
|
|
|
+ private PipeTaskOrderItemMapper pipeTaskOrderItemMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ @Lazy
|
|
|
+ private PipeTaskOrderIssueReportService pipeTaskOrderIssueReportService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ @Lazy
|
|
|
+ private PipeTaskOrderMapper pipeTaskOrderMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean updateFeeType(String serviceNo, int feeType, String contractNo) {
|
|
|
+ log.info("serviceNo {} ,feeType {} ,contractNo {}",serviceNo,feeType ,contractNo);
|
|
|
+ LambdaQueryWrapperX<BoilerTaskOrderDO> queryWrapper = new LambdaQueryWrapperX<BoilerTaskOrderDO>().eq(BoilerTaskOrderDO::getOrderNo, serviceNo);
|
|
|
+ queryWrapper.eq(BoilerTaskOrderDO::getOrderNo, serviceNo);
|
|
|
+ List<BoilerTaskOrderDO> boilerTaskOrderDOS = boilerTaskOrderMapper.selectList(queryWrapper);
|
|
|
+ if (CollUtil.isNotEmpty(boilerTaskOrderDOS)) {
|
|
|
+ BoilerTaskOrderDO boilerTaskOrderDO = boilerTaskOrderDOS.get(0);
|
|
|
+ //boilerTaskOrderDO.setFeeType(feeType);
|
|
|
+ LambdaUpdateWrapper<BoilerTaskOrderDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ lambdaUpdateWrapper.eq(BoilerTaskOrderDO::getId,boilerTaskOrderDO.getId());
|
|
|
+ lambdaUpdateWrapper.set(BoilerTaskOrderDO::getFeeType,feeType);
|
|
|
+ if(StringUtils.isNotBlank(contractNo)){
|
|
|
+ lambdaUpdateWrapper.set(BoilerTaskOrderDO::getContractNo,contractNo);
|
|
|
+ }else{
|
|
|
+ lambdaUpdateWrapper.set(BoilerTaskOrderDO::getContractNo,null);
|
|
|
+ }
|
|
|
+ boilerTaskOrderMapper.update(lambdaUpdateWrapper);
|
|
|
|
|
|
+ // 合同编号不为空,记录待发送报告
|
|
|
+ if(StringUtils.isNotBlank(contractNo)){
|
|
|
+ List<BoilerTaskOrderItemDO> taskOrderItemDOList = boilerTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<BoilerTaskOrderItemDO>().
|
|
|
+ eq(BoilerTaskOrderItemDO::getOrderId, boilerTaskOrderDO.getId()).
|
|
|
+ ne(BoilerTaskOrderItemDO::getTaskStatus, TaskOrderStatusEnum.CANCEL.getStatus()));
|
|
|
+ if (CollUtil.isNotEmpty(taskOrderItemDOList) && TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(boilerTaskOrderDO.getTaskStatus())) {
|
|
|
+ try {
|
|
|
+ //合同绑定回调时进行自动发送报告推送
|
|
|
+ boilerTaskOrderIssueReportService.autoIssueTaskOrderReport(boilerTaskOrderDO, taskOrderItemDOList);
|
|
|
+ return true;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("[合同绑定回调][自动发送报告推送失败({})]", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PipeTaskOrderDO pipeTaskOrderDO = pipeTaskOrderMapper.selectById(boilerTaskOrderDO.getId());
|
|
|
+ List<PipeTaskOrderItemDO> taskOrderItemDOList2 = pipeTaskOrderItemMapper.selectList(new LambdaQueryWrapperX<PipeTaskOrderItemDO>().
|
|
|
+ eq(PipeTaskOrderItemDO::getOrderId, boilerTaskOrderDO.getId()).
|
|
|
+ ne(PipeTaskOrderItemDO::getTaskStatus, TaskOrderStatusEnum.CANCEL.getStatus()));
|
|
|
+ if (CollUtil.isNotEmpty(taskOrderItemDOList2) && TaskOrderStatusEnum.REPORT_FINISH.getStatus().equals(boilerTaskOrderDO.getTaskStatus())) {
|
|
|
+ try {
|
|
|
+ //合同绑定回调时进行自动发送报告推送
|
|
|
+ pipeTaskOrderIssueReportService.autoIssueTaskOrderReport(pipeTaskOrderDO, taskOrderItemDOList2);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("[合同绑定回调][自动发送报告推送失败({})]", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TaskOrderNonTaxRecordMapper taskOrderNonTaxRecordMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private TaskOrderNonTaxRecordItemMapper taskOrderNonTaxRecordItemMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommonResult<Boolean> nonTaxPayStatus(NonTaxPayStatusDTO nonTaxPayStatusDTO) {
|
|
|
+ log.info("开始处理非税缴费状态更新: 缴费通知单号={}, 受理单号={}",
|
|
|
+ nonTaxPayStatusDTO.getPayNoticeNo(), nonTaxPayStatusDTO.getAcceptNo());
|
|
|
+
|
|
|
+ TaskOrderNonTaxRecordDO taxRecordDO = taskOrderNonTaxRecordMapper.selectOne(new LambdaQueryWrapperX<TaskOrderNonTaxRecordDO>().
|
|
|
+ eq(TaskOrderNonTaxRecordDO::getPaymentInstructionNo, nonTaxPayStatusDTO.getPayNoticeNo())
|
|
|
+ , false);
|
|
|
+ if(taxRecordDO == null){
|
|
|
+ return CommonResult.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ TaskOrderNonTaxRecordDO updateRecord = new TaskOrderNonTaxRecordDO();
|
|
|
+ updateRecord.setId(taxRecordDO.getId());
|
|
|
+ updateRecord.setImpUrl(nonTaxPayStatusDTO.getImpUrl());
|
|
|
+
|
|
|
+ // 数据类型转换: String (yyyy-MM-dd) -> LocalDateTime
|
|
|
+ if (StringUtils.isNotBlank(nonTaxPayStatusDTO.getPayValidityDate())) {
|
|
|
+ try {
|
|
|
+ LocalDate payValidityDate = LocalDate.parse(nonTaxPayStatusDTO.getPayValidityDate());
|
|
|
+ updateRecord.setPayDate(payValidityDate.atStartOfDay());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("缴费有效期日期解析失败: {}", nonTaxPayStatusDTO.getPayValidityDate(), e);
|
|
|
+ updateRecord.setPayDate(LocalDateTime.now());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ updateRecord.setPayStatus(200);
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal actualAmount = new BigDecimal(nonTaxPayStatusDTO.getPayMoney());
|
|
|
+ updateRecord.setActualAmount(actualAmount);
|
|
|
+ taskOrderNonTaxRecordMapper.updateById(updateRecord);
|
|
|
+
|
|
|
+ List<TaskOrderNonTaxRecordItemDO> taskOrderNonTaxRecordItemDOS = taskOrderNonTaxRecordItemMapper.selectList(new LambdaQueryWrapperX<TaskOrderNonTaxRecordItemDO>().
|
|
|
+ eq(TaskOrderNonTaxRecordItemDO::getRecordId, taxRecordDO.getId()));
|
|
|
+ if(CollUtil.isEmpty(taskOrderNonTaxRecordItemDOS)){
|
|
|
+ log.info("taskOrderNonTaxRecordItemDOS is empty");
|
|
|
+ return CommonResult.success(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ for(TaskOrderNonTaxRecordItemDO item:taskOrderNonTaxRecordItemDOS){
|
|
|
+ BoilerTaskOrderDO taskOrderDO = boilerTaskOrderMapper.selectById(item.getOrderId());
|
|
|
+ if(taskOrderDO == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BoilerTaskOrderDO updateOrder = new BoilerTaskOrderDO();
|
|
|
+ updateOrder.setId(item.getOrderId());
|
|
|
+ updateOrder.setPaymentStatus(1);
|
|
|
+ updateOrder.setPayTime(updateRecord.getPayDate());
|
|
|
+ boilerTaskOrderMapper.updateById(updateOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ return CommonResult.success(true);
|
|
|
+ }
|
|
|
}
|