@ -3,10 +3,20 @@ package com.yxt.anrui.buscenter.biz.bustransferrecords;
import cn.hutool.core.bean.BeanUtil ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.metadata.IPage ;
import com.yxt.anrui.base.common.enums.CertificState ;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder ;
import com.yxt.anrui.buscenter.api.bustransferrecords.* ;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService ;
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoice ;
import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceFeign ;
import com.yxt.anrui.fin.api.finvehicleinvoice.StateUpdateQuery ;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign ;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo ;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign ;
import com.yxt.anrui.portal.api.sysuser.SysUser ;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign ;
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo ;
import com.yxt.anrui.portal.api.sysuserrole.SysUserRoleFeign ;
import com.yxt.common.base.config.component.FileUploadComponent ;
import com.yxt.common.base.service.MybatisBaseService ;
import com.yxt.common.base.utils.PagerUtil ;
@ -17,7 +27,9 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import java.util.ArrayList ;
import java.util.Arrays ;
import java.util.Date ;
import java.util.List ;
import java.util.stream.Collectors ;
@ -35,19 +47,30 @@ public class BusTransferRecordsService extends MybatisBaseService<BusTransferRec
private SysStaffOrgFeign sysStaffOrgFeign ;
@Autowired
private FileUploadComponent fileUploadComponent ;
@Autowired
private BusSalesOrderService busSalesOrderService ;
@Autowired
private SysUserFeign sysUserFeign ;
@Autowired
private SysOrganizationFeign sysOrganizationFeign ;
@Autowired
private SysUserRoleFeign sysUserRoleFeign ;
public PagerVo < BusTransferRecordsVo > pagerList ( PagerQuery < BusTransferRecordsQuery > pq ) {
QueryWrapper < BusTransferRecords > qw = new QueryWrapper < > ( ) ;
BusTransferRecordsQuery pagerQuery = pq . getParams ( ) ;
List < String > roleSidList = new ArrayList < > ( ) ;
if ( pagerQuery ! = null ) {
if ( pagerQuery . getType ( ) = = 0 ) {
qw . eq ( "receiveState" , 0 ) ;
qw . isNull ( "receiveSid" ) ;
} else if ( pagerQuery . getType ( ) = = 1 ) {
qw . eq ( "receiveState" , 1 ) ;
//接收开始时间-接收结束时间
qw . apply ( StringUtils . isNotBlank ( pagerQuery . getReceiveTimeStart ( ) ) , "date_format (receiveTime,'%Y-%m-%d') >= date_format('" + pagerQuery . getReceiveTimeStart ( ) + "','%Y-%m-%d')" ) .
apply ( StringUtils . isNotBlank ( pagerQuery . getReceiveTimeEnd ( ) ) , "date_format (receiveTime,'%Y-%m-%d') <= date_format('" + pagerQuery . getReceiveTimeEnd ( ) + "','%Y-%m-%d')"
) ;
qw . eq ( "receiveSid" , pagerQuery . getUserSid ( ) ) ;
}
qw . eq ( "goodsTypeKey" , BusTransferRecordEnum . FP . getCode ( ) ) ;
//合同编号
@ -76,13 +99,16 @@ public class BusTransferRecordsService extends MybatisBaseService<BusTransferRec
qw . eq ( "useOrgSid" , useOrgSid ) ;
}
//接收角色sid
if ( StringUtils . isNotBlank ( pagerQuery . getRole Sid ( ) ) ) {
if ( StringUtils . isNotBlank ( pagerQuery . getUser Sid ( ) ) ) {
//如果为销售专员的话不允许看到待接收的发票信息,销售专员的只能在交车准备里去确认。
qw . eq ( "receiveRoleSid" , pagerQuery . getRoleSid ( ) ) ;
ResultBean < List < String > > listResultBean = sysUserRoleFeign . selectByUserSid ( pagerQuery . getUserSid ( ) ) ;
if ( ! listResultBean . getData ( ) . isEmpty ( ) ) {
roleSidList = listResultBean . getData ( ) ;
}
}
}
IPage < BusTransferRecords > page = PagerUtil . queryToPage ( pq ) ;
IPage < BusTransferRecordsVo > pagging = baseMapper . pagerList ( page , qw ) ;
IPage < BusTransferRecordsVo > pagging = baseMapper . pagerList ( page , qw , roleSidList ) ;
for ( BusTransferRecordsVo record : pagging . getRecords ( ) ) {
String vinSid = record . getVinSid ( ) ;
//根据合同编号和车辆sid查询开票相关
@ -95,6 +121,16 @@ public class BusTransferRecordsService extends MybatisBaseService<BusTransferRec
record . setInvoiceNo ( finVehicleInvoice . getInvoiceNo ( ) ) ;
record . setInvoiceType ( finVehicleInvoice . getInvoiceType ( ) ) ;
}
//查询接收人电话
ResultBean < SysUser > sysUserInfoVoResultBean = sysUserFeign . selectBySid ( record . getReceiveSid ( ) ) ;
if ( sysUserInfoVoResultBean . getData ( ) ! = null ) {
record . setReceiveMobile ( sysUserInfoVoResultBean . getData ( ) . getMobile ( ) ) ;
}
String receiveFile = record . getReceiveFiles ( ) ;
if ( StringUtils . isNotBlank ( receiveFile ) ) {
List < String > receiveFileList = Arrays . asList ( receiveFile . split ( "," ) ) . stream ( ) . map ( v - > fileUploadComponent . getUrlPrefix ( ) + v ) . collect ( Collectors . toList ( ) ) ;
record . setReceiveFilesList ( receiveFileList ) ;
}
}
PagerVo < BusTransferRecordsVo > p = PagerUtil . pageToVo ( pagging , null ) ;
return p ;
@ -135,9 +171,9 @@ public class BusTransferRecordsService extends MybatisBaseService<BusTransferRec
return rb . success ( ) . setData ( busRecordsInvoiceVo ) ;
}
public ResultBean < BusTransferRecords > selectByVinSid ( String vinSid , String receiveUserSid , String type ) {
public ResultBean < BusTransferRecords > selectByVinSid ( String vinSid , String receiveUserSid , String type ) {
ResultBean < BusTransferRecords > rb = ResultBean . fireFail ( ) ;
BusTransferRecords BusTransferRecords = baseMapper . selectByVinSid ( vinSid , receiveUserSid , type ) ;
BusTransferRecords BusTransferRecords = baseMapper . selectByVinSid ( vinSid , receiveUserSid , type ) ;
return rb . success ( ) . setData ( BusTransferRecords ) ;
}
@ -146,4 +182,85 @@ public class BusTransferRecordsService extends MybatisBaseService<BusTransferRec
baseMapper . delBySourceSid ( sourceSid ) ;
return rb . success ( ) ;
}
public ResultBean confirmRecords ( ConfirmRecordsQuery query ) {
ResultBean rb = ResultBean . fireFail ( ) ;
//确认时,更新对应发票移交状态改为已移交。
//接收确认时,生成车辆对应销售专员的待接收记录,并给对应的销售专员发送站内信。销售专员可以在交车准备中确认接收发票。
List < String > sidsList = query . getSidsList ( ) ;
if ( ! sidsList . isEmpty ( ) ) {
//更新对应发票移交状态为已移交-查询发票的是否已移交
for ( int i = 0 ; i < sidsList . size ( ) ; i + + ) {
BusTransferRecords busTransferRecordss = new BusTransferRecords ( ) ;
BusTransferRecords busTransferRecords = fetchBySid ( sidsList . get ( i ) ) ;
BeanUtil . copyProperties ( busTransferRecords , busTransferRecordss , "sid" ) ;
String receiveName = "" ;
//将移交状态修改为已移交,并修改接收人和接收日期为当前确认人
busTransferRecords . setReceiveSid ( query . getUserSid ( ) ) ;
ResultBean < SysUserInfoVo > sysResultBean = sysUserFeign . selectUserInfoByUserSid ( query . getUserSid ( ) ) ;
if ( sysResultBean . getData ( ) ! = null ) {
SysUserInfoVo sysUserInfoVo = sysResultBean . getData ( ) ;
busTransferRecords . setReceiveName ( sysUserInfoVo . getStaffName ( ) ) ;
busTransferRecords . setReceiveTime ( new Date ( ) ) ;
receiveName = sysUserInfoVo . getStaffName ( ) ;
}
List < String > orgList = Arrays . asList ( query . getOrgPath ( ) . split ( "/" ) ) ;
busTransferRecords . setReceiveDeptSid ( orgList . get ( orgList . size ( ) - 1 ) ) ;
ResultBean < SysOrganizationVo > sysOrganizationResultBean = sysOrganizationFeign . fetchBySid ( orgList . get ( orgList . size ( ) - 1 ) ) ;
if ( sysOrganizationResultBean . getData ( ) ! = null ) {
SysOrganizationVo sysOrganizationVo = sysOrganizationResultBean . getData ( ) ;
busTransferRecords . setReceiveDept ( sysOrganizationVo . getName ( ) ) ;
}
busTransferRecords . setReceiveState ( 1 ) ;
busTransferRecords . setReceiveRemarks ( query . getReceiveRemarks ( ) ) ;
List < String > receiveFileList = query . getReceiveFilesList ( ) ;
if ( ! receiveFileList . isEmpty ( ) ) {
receiveFileList = receiveFileList . stream ( ) . map ( v - > v . replaceAll ( fileUploadComponent . getUrlPrefix ( ) , "" ) ) . collect ( Collectors . toList ( ) ) ;
String receiveFile = String . join ( "," , receiveFileList ) ;
busTransferRecords . setReceiveFiles ( receiveFile ) ;
}
//查询发票的状态是否是移交中
ResultBean < FinVehicleInvoice > resultBean = finVehicleInvoiceFeign . selectByVinAndContractNo ( busTransferRecords . getVinSid ( ) , busTransferRecords . getContractNo ( ) ) ;
if ( resultBean . getData ( ) ! = null ) {
FinVehicleInvoice finVehicleInvoice = resultBean . getData ( ) ;
if ( CertificState . TransferState . TRANSTATE_YJZ . getCode ( ) . equals ( finVehicleInvoice . getTransferStateKey ( ) ) ) {
//修改发票中的接收人、接收时间以及移交状态为已移交
StateUpdateQuery stateUpdateQuery = new StateUpdateQuery ( ) ;
stateUpdateQuery . setVinSid ( busTransferRecords . getVinSid ( ) ) ;
stateUpdateQuery . setTransferState ( CertificState . TransferState . TRANSTATE_YYJ . getRemarks ( ) ) ;
stateUpdateQuery . setTransferStateKey ( CertificState . TransferState . TRANSTATE_YYJ . getCode ( ) ) ;
stateUpdateQuery . setReceiveName ( receiveName ) ;
stateUpdateQuery . setReceiveSid ( query . getUserSid ( ) ) ;
ResultBean resultBean1 = finVehicleInvoiceFeign . updateYjState ( stateUpdateQuery ) ;
}
}
//生成车辆对应销售专员的待接收记录
//查询该车辆的对应的销售专员
BusSalesOrder busSalesOrder = busSalesOrderService . selectByContractNos ( busTransferRecords . getContractNo ( ) ) ;
String staffUserSid = busSalesOrder . getCreateBySid ( ) ;
busTransferRecordss . setReceiveRoleSid ( "89d7f310-a221-405b-858e-dd650e0993d5" ) ;
busTransferRecordss . setReceiveSid ( staffUserSid ) ;
String orgPath = busSalesOrder . getOrgSidPath ( ) ;
List < String > staffOrgPathList = Arrays . asList ( orgPath . split ( "/" ) ) ;
busTransferRecordss . setReceiveDeptSid ( staffOrgPathList . get ( staffOrgPathList . size ( ) - 1 ) ) ;
ResultBean < SysOrganizationVo > sysOrganizationResultBean1 = sysOrganizationFeign . fetchBySid ( staffOrgPathList . get ( staffOrgPathList . size ( ) - 1 ) ) ;
if ( sysOrganizationResultBean1 . getData ( ) ! = null ) {
SysOrganizationVo sysOrganizationVo = sysOrganizationResultBean1 . getData ( ) ;
busTransferRecordss . setReceiveDept ( sysOrganizationVo . getName ( ) ) ;
}
ResultBean < SysUserInfoVo > sysResultBean1 = sysUserFeign . selectUserInfoByUserSid ( staffUserSid ) ;
if ( sysResultBean1 . getData ( ) ! = null ) {
SysUserInfoVo sysUserInfoVo = sysResultBean1 . getData ( ) ;
busTransferRecordss . setReceiveName ( sysUserInfoVo . getStaffName ( ) ) ;
}
busTransferRecordss . setTransferDept ( busTransferRecords . getReceiveDept ( ) ) ;
busTransferRecordss . setTransferName ( busTransferRecords . getReceiveName ( ) ) ;
busTransferRecordss . setTransferSid ( busTransferRecords . getReceiveSid ( ) ) ;
busTransferRecordss . setTransferDeptSid ( busTransferRecords . getReceiveDeptSid ( ) ) ;
baseMapper . insert ( busTransferRecordss ) ;
baseMapper . updateById ( busTransferRecords ) ;
}
}
return rb . success ( ) ;
}
}