@ -2,16 +2,29 @@ package com.lzbi.bill.service;
import com.baomidou.mybatisplus.extension.service.IService ;
import com.baomidou.mybatisplus.extension.service.IService ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.lzbi.bi.domain.DcBusiTargetDraftDaynew ;
import com.lzbi.bi.mapper.DcBusiTargetDraftDaynewMapper ;
import com.lzbi.bill.domain.DcBusiPlanBillMaster ;
import com.lzbi.bill.domain.DcBusiPlanBillMaster ;
import com.lzbi.bill.domain.DcBusiPlanBillSub ;
import com.lzbi.bill.domain.DcBusiPlanBillSub ;
import com.lzbi.bill.mapper.DcBusiPlanBillMasterMapper ;
import com.lzbi.bill.mapper.DcBusiPlanBillMasterMapper ;
import com.lzbi.bill.mapper.DcBusiPlanBillSubMapper ;
import com.lzbi.common.core.domain.entity.SysDept ;
import com.lzbi.common.utils.DateUtils ;
import com.lzbi.common.utils.DateUtils ;
import com.lzbi.common.utils.SecurityUtils ;
import com.lzbi.common.utils.StringUtils ;
import com.lzbi.common.utils.StringUtils ;
import com.lzbi.system.service.impl.SysDeptServiceImpl ;
import com.lzbi.targetFolder.domain.DcBaseAssetTarget ;
import com.lzbi.targetFolder.mapper.DcBaseAssetTargetMapper ;
import org.apache.commons.lang3.ObjectUtils ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.stereotype.Service ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
import org.springframework.transaction.annotation.Transactional ;
import org.springframework.util.CollectionUtils ;
import javax.annotation.Resource ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.List ;
import java.util.List ;
/ * *
/ * *
* 计划单据主Service业务层处理
* 计划单据主Service业务层处理
*
*
@ -19,8 +32,19 @@ import java.util.List;
* @date 2023 - 12 - 21
* @date 2023 - 12 - 21
* /
* /
@Service
@Service
public class DcBusiPlanBillMasterService extends ServiceImpl < DcBusiPlanBillMasterMapper , DcBusiPlanBillMaster > implements IService < DcBusiPlanBillMaster >
public class DcBusiPlanBillMasterService extends ServiceImpl < DcBusiPlanBillMasterMapper , DcBusiPlanBillMaster > implements IService < DcBusiPlanBillMaster > {
{
@Autowired
private SysDeptServiceImpl sysDeptService ;
@Resource
private DcBusiPlanBillSubMapper dcBusiPlanBillSubMapper ;
@Resource
private DcBusiTargetDraftDaynewMapper dcBusiTargetDraftDaynewMapper ;
@Resource
private DcBaseAssetTargetMapper dcBaseAssetTargetMapper ;
/ * *
/ * *
* 查询计划单据主
* 查询计划单据主
@ -28,19 +52,30 @@ public class DcBusiPlanBillMasterService extends ServiceImpl<DcBusiPlanBillMaste
* @param id 计划单据主主键
* @param id 计划单据主主键
* @return 计划单据主
* @return 计划单据主
* /
* /
public DcBusiPlanBillMaster selectDcBusiPlanBillMasterById ( Long id )
public DcBusiPlanBillMaster selectDcBusiPlanBillMasterById ( Long id ) {
{
return baseMapper . selectDcBusiPlanBillMasterById ( id ) ;
return baseMapper . selectDcBusiPlanBillMasterById ( id ) ;
}
}
public DcBusiPlanBillMaster selectDcBusiPlanBillMasterByBillNo ( String billNo ) {
DcBusiPlanBillMaster dcBusiPlanBillMaster = baseMapper . selectDcBusiPlanBillMasterByBillNo ( billNo ) ;
DcBusiPlanBillSub params = new DcBusiPlanBillSub ( ) ;
params . setBillNo ( billNo ) ;
List < DcBusiPlanBillSub > dcBusiPlanBillSubs = dcBusiPlanBillSubMapper . selectDcBusiPlanBillSubList ( params ) ;
if ( ! CollectionUtils . isEmpty ( dcBusiPlanBillSubs ) ) {
dcBusiPlanBillMaster . setDcBusiPlanBillSubList ( dcBusiPlanBillSubs ) ;
dcBusiPlanBillMaster . setFieldCode ( dcBusiPlanBillSubs . get ( 0 ) . getFieldCode ( ) ) ;
dcBusiPlanBillMaster . setFieldName ( dcBusiPlanBillSubs . get ( 0 ) . getFieldName ( ) ) ;
}
return dcBusiPlanBillMaster ;
}
/ * *
/ * *
* 查询计划单据主列表
* 查询计划单据主列表
*
*
* @param dcBusiPlanBillMaster 计划单据主
* @param dcBusiPlanBillMaster 计划单据主
* @return 计划单据主
* @return 计划单据主
* /
* /
public List < DcBusiPlanBillMaster > selectDcBusiPlanBillMasterList ( DcBusiPlanBillMaster dcBusiPlanBillMaster )
public List < DcBusiPlanBillMaster > selectDcBusiPlanBillMasterList ( DcBusiPlanBillMaster dcBusiPlanBillMaster ) {
{
return baseMapper . selectDcBusiPlanBillMasterList ( dcBusiPlanBillMaster ) ;
return baseMapper . selectDcBusiPlanBillMasterList ( dcBusiPlanBillMaster ) ;
}
}
@ -51,10 +86,26 @@ public class DcBusiPlanBillMasterService extends ServiceImpl<DcBusiPlanBillMaste
* @return 结果
* @return 结果
* /
* /
@Transactional
@Transactional
public int insertDcBusiPlanBillMaster ( DcBusiPlanBillMaster dcBusiPlanBillMaster ) {
public int insertDcBusiPlanBillMaster ( DcBusiPlanBillMaster dcBusiPlanBillMaster )
DcBusiPlanBillMaster params = new DcBusiPlanBillMaster ( ) ;
{
params . setBillNo ( dcBusiPlanBillMaster . getBillNo ( ) ) ;
List < DcBusiPlanBillMaster > dcBusiPlanBillMasters = this . selectDcBusiPlanBillMasterList ( params ) ;
// 如果单据号重复了
if ( ! CollectionUtils . isEmpty ( dcBusiPlanBillMasters ) ) {
throw new RuntimeException ( "单据号已存在,不可重复录入" ) ;
}
// 查询公司
SysDept company = sysDeptService . selectDeptById ( dcBusiPlanBillMaster . getCompanyId ( ) ) ;
if ( ObjectUtils . isNotEmpty ( company ) ) {
dcBusiPlanBillMaster . setCompanyName ( company . getDeptName ( ) ) ;
}
// 查询组织
SysDept organize = sysDeptService . selectDeptById ( dcBusiPlanBillMaster . getOragnizeId ( ) ) ;
if ( ObjectUtils . isNotEmpty ( organize ) ) {
dcBusiPlanBillMaster . setOrganizeName ( organize . getDeptName ( ) ) ;
}
dcBusiPlanBillMaster . setCreatedTime ( DateUtils . getNowDate ( ) ) ;
dcBusiPlanBillMaster . setCreatedTime ( DateUtils . getNowDate ( ) ) ;
dcBusiPlanBillMaster . setCreatedBy ( SecurityUtils . getLoginUser ( ) . getUsername ( ) ) ;
int rows = baseMapper . insertDcBusiPlanBillMaster ( dcBusiPlanBillMaster ) ;
int rows = baseMapper . insertDcBusiPlanBillMaster ( dcBusiPlanBillMaster ) ;
insertDcBusiPlanBillSub ( dcBusiPlanBillMaster ) ;
insertDcBusiPlanBillSub ( dcBusiPlanBillMaster ) ;
return rows ;
return rows ;
@ -68,12 +119,118 @@ public class DcBusiPlanBillMasterService extends ServiceImpl<DcBusiPlanBillMaste
* /
* /
@Transactional
@Transactional
public int updateDcBusiPlanBillMaster ( DcBusiPlanBillMaster dcBusiPlanBillMaster )
public int updateDcBusiPlanBillMaster ( DcBusiPlanBillMaster dcBusiPlanBillMaster ) {
{
dcBusiPlanBillMaster . setUpdatedTime ( DateUtils . getNowDate ( ) ) ;
dcBusiPlanBillMaster . setUpdatedTime ( DateUtils . getNowDate ( ) ) ;
baseMapper . deleteDcBusiPlanBillSubByBillNo ( dcBusiPlanBillMaster . getId ( ) ) ;
dcBusiPlanBillMaster . setUpdatedBy ( SecurityUtils . getLoginUser ( ) . getUsername ( ) ) ;
baseMapper . deleteDcBusiPlanBillSubByBillNo ( dcBusiPlanBillMaster . getBillNo ( ) ) ;
insertDcBusiPlanBillSub ( dcBusiPlanBillMaster ) ;
insertDcBusiPlanBillSub ( dcBusiPlanBillMaster ) ;
return baseMapper . updateDcBusiPlanBillMaster ( dcBusiPlanBillMaster ) ;
return baseMapper . updateDcBusiPlanBillMasterByBillNo ( dcBusiPlanBillMaster ) ;
}
public int checkBack ( String billNo ) {
DcBusiPlanBillMaster master = new DcBusiPlanBillMaster ( ) ;
master . setBillNo ( billNo ) ;
master . setUpdatedBy ( SecurityUtils . getUsername ( ) ) ;
master . setCreatedTime ( DateUtils . getNowDate ( ) ) ;
master . setCheckStatus ( "0" ) ;
return baseMapper . updateDcBusiPlanBillMasterByBillNo ( master ) ;
}
@Transactional ( rollbackFor = Exception . class )
public int checkPass ( String billNo ) {
// 查询主表数据
DcBusiPlanBillMaster master = baseMapper . selectDcBusiPlanBillMasterByBillNo ( billNo ) ;
if ( "0" . equals ( master . getCheckStatus ( ) ) ) {
throw new RuntimeException ( "审核失败,单据未提交" ) ;
}
if ( "2" . equals ( master . getCheckStatus ( ) ) ) {
throw new RuntimeException ( "审核失败,单据已审核" ) ;
}
// 查询子表数据
DcBusiPlanBillSub subParams = new DcBusiPlanBillSub ( ) ;
subParams . setBillNo ( billNo ) ;
List < DcBusiPlanBillSub > subList = dcBusiPlanBillSubMapper . selectDcBusiPlanBillSubList ( subParams ) ;
if ( ! CollectionUtils . isEmpty ( subList ) ) {
// 循环修改底稿表数据
for ( int i = 0 , len = subList . size ( ) ; i < len ; i + + ) {
DcBusiTargetDraftDaynew dcBusiTargetDraftDaynew = new DcBusiTargetDraftDaynew ( ) ;
dcBusiTargetDraftDaynew . setCompanyId ( master . getCompanyId ( ) ) ;
dcBusiTargetDraftDaynew . setOrganizeId ( master . getOragnizeId ( ) ) ;
dcBusiTargetDraftDaynew . setFieldCode ( master . getFieldCode ( ) ) ;
dcBusiTargetDraftDaynew . setAssetCode ( subList . get ( i ) . getAssetCode ( ) ) ;
dcBusiTargetDraftDaynew . setTargetCode ( subList . get ( i ) . getTargetCode ( ) ) ;
dcBusiTargetDraftDaynew . setDateYear ( subList . get ( i ) . getDateYear ( ) ) ;
dcBusiTargetDraftDaynew . setDateMonth ( subList . get ( i ) . getDateMonth ( ) ) ;
dcBusiTargetDraftDaynew . setDateDay ( subList . get ( i ) . getDateDay ( ) ) ;
List < DcBusiTargetDraftDaynew > dcBusiTargetDraftDaynews = dcBusiTargetDraftDaynewMapper . selectDcBusiTargetDraftDaynewList ( dcBusiTargetDraftDaynew ) ;
// 如果底稿表数据为空,则新增底稿数据,否则,加上计划值修改
if ( CollectionUtils . isEmpty ( dcBusiTargetDraftDaynews ) ) {
dcBusiTargetDraftDaynew . setCompanyName ( master . getCompanyName ( ) ) ;
dcBusiTargetDraftDaynew . setOrganizeName ( master . getOrganizeName ( ) ) ;
dcBusiTargetDraftDaynew . setFieldName ( master . getFieldName ( ) ) ;
dcBusiTargetDraftDaynew . setAssetName ( subList . get ( i ) . getAssetName ( ) ) ;
dcBusiTargetDraftDaynew . setTagetName ( subList . get ( i ) . getTargetName ( ) ) ;
DcBaseAssetTarget dcBaseAssetTarget = dcBaseAssetTargetMapper . selectDcBaseAssetTargetByTargetCodeAndAssetCode ( subList . get ( i ) . getAssetCode ( ) , subList . get ( i ) . getAssetCode ( ) ) ;
if ( ObjectUtils . isNotEmpty ( dcBaseAssetTarget ) ) {
dcBusiTargetDraftDaynew . setTargetModelCode ( dcBaseAssetTarget . getTargetModelCode ( ) ) ;
}
dcBusiTargetDraftDaynew . setValuePlan ( subList . get ( i ) . getPlanValue ( ) ) ;
dcBusiTargetDraftDaynewMapper . insertDcBusiTargetDraftDaynew ( dcBusiTargetDraftDaynew ) ;
} else {
dcBusiTargetDraftDaynew = dcBusiTargetDraftDaynews . get ( 0 ) ;
dcBusiTargetDraftDaynew . setValuePlan ( dcBusiTargetDraftDaynew . getValuePlan ( ) . add ( subList . get ( i ) . getPlanValue ( ) ) ) ;
dcBusiTargetDraftDaynewMapper . updateDcBusiTargetDraftDaynew ( dcBusiTargetDraftDaynew ) ;
}
}
}
// 修改计划单状态为2
master . setUpdatedBy ( SecurityUtils . getUsername ( ) ) ;
master . setCreatedTime ( DateUtils . getNowDate ( ) ) ;
master . setBillNo ( billNo ) ;
master . setCheckStatus ( "2" ) ;
return baseMapper . updateDcBusiPlanBillMasterByBillNo ( master ) ;
}
@Transactional ( rollbackFor = Exception . class )
public int checkRevert ( String billNo ) {
// 查询主表
DcBusiPlanBillMaster master = baseMapper . selectDcBusiPlanBillMasterByBillNo ( billNo ) ;
if ( "0" . equals ( master . getCheckStatus ( ) ) ) {
throw new RuntimeException ( "反审核失败,单据未提交" ) ;
}
if ( "1" . equals ( master . getCheckStatus ( ) ) ) {
throw new RuntimeException ( "反审核失败,单据未审核通过" ) ;
}
// 如果单据状态为已审核状态,需要把底稿表数据恢复
if ( "2" . equals ( master . getCheckStatus ( ) ) ) {
// 查询子表数据
DcBusiPlanBillSub subParams = new DcBusiPlanBillSub ( ) ;
subParams . setBillNo ( billNo ) ;
List < DcBusiPlanBillSub > subList = dcBusiPlanBillSubMapper . selectDcBusiPlanBillSubList ( subParams ) ;
for ( int i = 0 , len = subList . size ( ) ; i < len ; i + + ) {
DcBusiTargetDraftDaynew dcBusiTargetDraftDaynew = new DcBusiTargetDraftDaynew ( ) ;
dcBusiTargetDraftDaynew . setCompanyId ( master . getCompanyId ( ) ) ;
dcBusiTargetDraftDaynew . setOrganizeId ( master . getOragnizeId ( ) ) ;
dcBusiTargetDraftDaynew . setFieldCode ( master . getFieldCode ( ) ) ;
dcBusiTargetDraftDaynew . setAssetCode ( subList . get ( i ) . getAssetCode ( ) ) ;
dcBusiTargetDraftDaynew . setTargetCode ( subList . get ( i ) . getTargetCode ( ) ) ;
dcBusiTargetDraftDaynew . setDateYear ( subList . get ( i ) . getDateYear ( ) ) ;
dcBusiTargetDraftDaynew . setDateMonth ( subList . get ( i ) . getDateMonth ( ) ) ;
dcBusiTargetDraftDaynew . setDateDay ( subList . get ( i ) . getDateDay ( ) ) ;
List < DcBusiTargetDraftDaynew > dcBusiTargetDraftDaynews = dcBusiTargetDraftDaynewMapper . selectDcBusiTargetDraftDaynewList ( dcBusiTargetDraftDaynew ) ;
// 如果底稿表数据不为空,则减去计划值
if ( ! CollectionUtils . isEmpty ( dcBusiTargetDraftDaynews ) ) {
dcBusiTargetDraftDaynew = dcBusiTargetDraftDaynews . get ( 0 ) ;
dcBusiTargetDraftDaynew . setValuePlan ( dcBusiTargetDraftDaynew . getValuePlan ( ) . subtract ( subList . get ( i ) . getPlanValue ( ) ) ) ;
dcBusiTargetDraftDaynewMapper . updateDcBusiTargetDraftDaynew ( dcBusiTargetDraftDaynew ) ;
}
}
}
master . setUpdatedBy ( SecurityUtils . getUsername ( ) ) ;
master . setCreatedTime ( DateUtils . getNowDate ( ) ) ;
master . setBillNo ( billNo ) ;
master . setCheckStatus ( "0" ) ;
return baseMapper . updateDcBusiPlanBillMasterByBillNo ( master ) ;
}
}
/ * *
/ * *
@ -84,8 +241,7 @@ public class DcBusiPlanBillMasterService extends ServiceImpl<DcBusiPlanBillMaste
* /
* /
@Transactional
@Transactional
public int deleteDcBusiPlanBillMasterByIds ( Long [ ] ids )
public int deleteDcBusiPlanBillMasterByIds ( Long [ ] ids ) {
{
baseMapper . deleteDcBusiPlanBillSubByBillNos ( ids ) ;
baseMapper . deleteDcBusiPlanBillSubByBillNos ( ids ) ;
return baseMapper . deleteDcBusiPlanBillMasterByIds ( ids ) ;
return baseMapper . deleteDcBusiPlanBillMasterByIds ( ids ) ;
}
}
@ -98,9 +254,11 @@ public class DcBusiPlanBillMasterService extends ServiceImpl<DcBusiPlanBillMaste
* /
* /
@Transactional
@Transactional
public int deleteDcBusiPlanBillMasterById ( Long id )
public int deleteDcBusiPlanBillMasterById ( Long id ) {
{
DcBusiPlanBillMaster dcBusiPlanBillMaster = baseMapper . selectDcBusiPlanBillMasterById ( id ) ;
baseMapper . deleteDcBusiPlanBillSubByBillNo ( id ) ;
if ( ObjectUtils . isNotEmpty ( dcBusiPlanBillMaster ) ) {
baseMapper . deleteDcBusiPlanBillSubByBillNo ( dcBusiPlanBillMaster . getBillNo ( ) ) ;
}
return baseMapper . deleteDcBusiPlanBillMasterById ( id ) ;
return baseMapper . deleteDcBusiPlanBillMasterById ( id ) ;
}
}
@ -109,21 +267,12 @@ public class DcBusiPlanBillMasterService extends ServiceImpl<DcBusiPlanBillMaste
*
*
* @param dcBusiPlanBillMaster 计划单据主对象
* @param dcBusiPlanBillMaster 计划单据主对象
* /
* /
public void insertDcBusiPlanBillSub ( DcBusiPlanBillMaster dcBusiPlanBillMaster )
public void insertDcBusiPlanBillSub ( DcBusiPlanBillMaster dcBusiPlanBillMaster ) {
{
List < DcBusiPlanBillSub > dcBusiPlanBillSubDaoList = dcBusiPlanBillMaster . getDcBusiPlanBillSubList ( ) ;
List < DcBusiPlanBillSub > dcBusiPlanBillSubDaoList = dcBusiPlanBillMaster . getDcBusiPlanBillSubList ( ) ;
String billNo = dcBusiPlanBillMaster . getBillNo ( ) ;
if ( StringUtils . isNotNull ( dcBusiPlanBillSubDaoList ) ) {
if ( StringUtils . isNotNull ( dcBusiPlanBillSubDaoList ) )
for ( DcBusiPlanBillSub dcBusiPlanBillSubDao : dcBusiPlanBillSubDaoList ) {
{
dcBusiPlanBillSubDao . setBillNo ( dcBusiPlanBillMaster . getBillNo ( ) ) ;
List < DcBusiPlanBillSub > list = new ArrayList < DcBusiPlanBillSub > ( ) ;
dcBusiPlanBillSubMapper . insertDcBusiPlanBillSub ( dcBusiPlanBillSubDao ) ;
for ( DcBusiPlanBillSub dcBusiPlanBillSubDao : dcBusiPlanBillSubDaoList )
{
dcBusiPlanBillSubDao . setBillNo ( billNo ) ;
list . add ( dcBusiPlanBillSubDao ) ;
}
if ( list . size ( ) > 0 )
{
baseMapper . batchDcBusiPlanBillSub ( list ) ;
}
}
}
}
}
}