|
@@ -6,8 +6,10 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
+import com.zhongzheng.common.core.domain.entity.TopSysRole;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
+import com.zhongzheng.modules.activity.domain.ActivityGoodsPrice;
|
|
|
import com.zhongzheng.modules.top.financial.bo.TopDivideOrderQueryBo;
|
|
|
import com.zhongzheng.modules.top.financial.domain.TopDivideLog;
|
|
|
import com.zhongzheng.modules.top.financial.domain.TopDivideOrder;
|
|
@@ -25,6 +27,7 @@ import com.zhongzheng.modules.top.goods.service.ITopOldOrderCheckLogService;
|
|
|
import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
|
|
|
import com.zhongzheng.modules.top.goods.vo.TopOldOrderCheckLogVo;
|
|
|
import com.zhongzheng.modules.top.user.domain.TopSysUserRole;
|
|
|
+import com.zhongzheng.modules.top.user.service.ITopSysRoleService;
|
|
|
import com.zhongzheng.modules.top.user.service.ITopSysUserRoleService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -51,6 +54,9 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
|
|
|
@Autowired
|
|
|
private ITopSysUserRoleService topSysUserRoleService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ITopSysRoleService iTopSysRoleService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ITopOldOrderService iTopOldOrderService;
|
|
|
|
|
@@ -60,6 +66,7 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
|
|
|
@Autowired
|
|
|
private ITopDivideLogService iTopDivideLogService;
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public TopOldOrderCheckLogVo queryById(Long id){
|
|
|
TopOldOrderCheckLog db = this.baseMapper.selectById(id);
|
|
@@ -143,6 +150,12 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
|
|
|
if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
|
|
|
throw new CustomException("当前账号没有审核权限");
|
|
|
}
|
|
|
+ TopSysRole checkRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
|
|
|
+ .eq(TopSysRole::getRoleId, checkLog.getRoleId())
|
|
|
+ .last("limit 1"));
|
|
|
+ if(Validator.isNotEmpty(checkRole)&&"统计".equals(checkRole.getRoleName())&&bo.getCheckResult()==-1){
|
|
|
+ throw new CustomException("统计角色无法拒绝审核");
|
|
|
+ }
|
|
|
switch (bo.getCheckResult()) {
|
|
|
case 1://同意
|
|
|
consentCheck(checkLog, bo);
|
|
@@ -165,6 +178,26 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean updateBatchDivideByMonthEditBo(List<TopOldOrderCheckLogEditBo> bo) {
|
|
|
+ for(TopOldOrderCheckLogEditBo editBo : bo){
|
|
|
+ if(Validator.isEmpty(editBo.getDivideLogId())||Validator.isEmpty(editBo.getCheckFrom())||Validator.isEmpty(editBo.getCheckResult())){
|
|
|
+ throw new CustomException("缺少月份ID或其他参数");
|
|
|
+ }
|
|
|
+ TopDivideOrderQueryBo queryBo = new TopDivideOrderQueryBo();
|
|
|
+ queryBo.setDivideLogId(editBo.getDivideLogId());
|
|
|
+ queryBo.setOrderType(1);
|
|
|
+ List<TopDivideOrderVo> list = iTopDivideOrderService.queryList(queryBo);
|
|
|
+ for(TopDivideOrderVo vo : list){
|
|
|
+ editBo.setOrderSn(vo.getOrderSn());
|
|
|
+ updateDivideByEditBo(editBo);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
public void consentCheck(TopOldOrderCheckLog checkLog, TopOldOrderCheckLogEditBo bo) {
|
|
|
List<TopOldOrderCheckLog> checkLogList = list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
|
|
|
.eq(TopOldOrderCheckLog::getOrderSn, checkLog.getOrderSn())
|
|
@@ -215,28 +248,30 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
|
|
|
if (ObjectUtils.isNotNull(check)) {
|
|
|
check.setCheckSign(1);//开启当前流程
|
|
|
updateById(check);
|
|
|
- TopDivideOrderQueryBo orderQueryBo = new TopDivideOrderQueryBo();
|
|
|
- orderQueryBo.setOrderSn(checkLog.getOrderSn());
|
|
|
- orderQueryBo.setDivideType(checkLog.getCheckFrom()-1);
|
|
|
- TopDivideOrderVo orderVo = iTopDivideOrderService.getByOrderSn(orderQueryBo);
|
|
|
- if(Validator.isEmpty(orderVo)){
|
|
|
- throw new CustomException("月份账单数据缺失");
|
|
|
- }
|
|
|
- TopDivideOrderQueryBo queryBo = new TopDivideOrderQueryBo();
|
|
|
- queryBo.setDivideLogId(orderVo.getDivideLogId());
|
|
|
- List<TopDivideOrderVo> listOrder = iTopDivideOrderService.getFinishList(queryBo);
|
|
|
- boolean allWaitPay = true;
|
|
|
- for(TopDivideOrderVo divideOrderVo : listOrder){
|
|
|
- if(Validator.isNotEmpty(divideOrderVo.getCheckStatus())&÷OrderVo.getCheckStatus()!=2){
|
|
|
- allWaitPay = false;
|
|
|
+ if(checkLog.getCheckFrom()==2||checkLog.getCheckFrom()==3){
|
|
|
+ TopDivideOrderQueryBo orderQueryBo = new TopDivideOrderQueryBo();
|
|
|
+ orderQueryBo.setOrderSn(checkLog.getOrderSn());
|
|
|
+ orderQueryBo.setDivideType(checkLog.getCheckFrom()-1);
|
|
|
+ TopDivideOrderVo orderVo = iTopDivideOrderService.getByOrderSn(orderQueryBo);
|
|
|
+ if(Validator.isEmpty(orderVo)){
|
|
|
+ throw new CustomException("月份账单数据缺失");
|
|
|
+ }
|
|
|
+ TopDivideOrderQueryBo queryBo = new TopDivideOrderQueryBo();
|
|
|
+ queryBo.setDivideLogId(orderVo.getDivideLogId());
|
|
|
+ List<TopDivideOrderVo> listOrder = iTopDivideOrderService.getFinishList(queryBo);
|
|
|
+ boolean allWaitPay = true;
|
|
|
+ for(TopDivideOrderVo divideOrderVo : listOrder){
|
|
|
+ if(Validator.isNotEmpty(divideOrderVo.getCheckStatus())&÷OrderVo.getCheckStatus()!=2){
|
|
|
+ allWaitPay = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(allWaitPay){
|
|
|
+ TopDivideLog divideLog = new TopDivideLog();
|
|
|
+ divideLog.setId(orderVo.getDivideLogId());
|
|
|
+ divideLog.setPayStatus(0);
|
|
|
+ divideLog.setUpdateTime(DateUtils.getNowTime());
|
|
|
+ iTopDivideLogService.updateById(divideLog);
|
|
|
}
|
|
|
- }
|
|
|
- if(allWaitPay){
|
|
|
- TopDivideLog divideLog = new TopDivideLog();
|
|
|
- divideLog.setId(orderVo.getDivideLogId());
|
|
|
- divideLog.setPayStatus(0);
|
|
|
- divideLog.setUpdateTime(DateUtils.getNowTime());
|
|
|
- iTopDivideLogService.updateById(divideLog);
|
|
|
}
|
|
|
}
|
|
|
}
|