Merge #133 into master from cc_20260512_merge_fix

feat:上传租赁合同审批

* cc_20260512_merge_fix: (1 commits squashed)

  - feat:上传租赁合同审批

Signed-off-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/133
This commit is contained in:
正新
2026-05-12 10:14:59 +00:00
parent 8caf3b1a6a
commit 52cc142e81
9 changed files with 172 additions and 81 deletions

View File

@@ -21,4 +21,13 @@ public interface OperationLogService {
List<AuditInfoResponse> getAuditInfo(Long shopId,List<Integer> shopSubStageList); List<AuditInfoResponse> getAuditInfo(Long shopId,List<Integer> shopSubStageList);
Boolean batchUpdateProcessed( List<OperationLogDO> operationLogs,Long audit , String userId, String reason); Boolean batchUpdateProcessed( List<OperationLogDO> operationLogs,Long audit , String userId, String reason);
/**
* 后期新增的阶段数据 对于处在阶段中的数据 可能没有提前生成审批记录 直接插入数据 且是审批完成状态
* @param subStageStatusEnum
* @param audit
* @param userId
* @param reason
*/
Boolean handleApproveTimeNoDate(Long shopId,ShopSubStageStatusEnum subStageStatusEnum,Long audit , String userId, String reason);
} }

View File

@@ -304,7 +304,7 @@ public interface PointService {
* @param request * @param request
* @return * @return
*/ */
Integer uploadRentContract(AddRentContractRequest request); Integer uploadRentContract(AddRentContractRequest request,String userId,String userName);
/** /**
* 获取租赁合同详情 * 获取租赁合同详情

View File

@@ -235,6 +235,30 @@ public class OperationLogServiceImpl implements OperationLogService {
return operationLogDAO.batchUpdateByPrimaryKeySelective(operationLogList); return operationLogDAO.batchUpdateByPrimaryKeySelective(operationLogList);
} }
@Override
public Boolean handleApproveTimeNoDate(Long shopId,ShopSubStageStatusEnum subStageStatusEnum, Long audit, String userId, String reason) {
OperationLogDO operationLogDO = new OperationLogDO();
operationLogDO.setOperator(userId);
operationLogDO.setAuditResultId(audit);
operationLogDO.setRemarks(reason);
operationLogDO.setShopId(shopId);
operationLogDO.setShopSubStage(subStageStatusEnum.getShopSubStageEnum().getShopSubStage());
operationLogDO.setShopSubStageStatus(subStageStatusEnum.getShopSubStageStatus());
operationLogDO.setStatus(OperationStatusEnum.PROCESSED.getCode());
operationLogDO.setType(OperationTypeEnum.OPERATION_TYPE_1.getCode());
String userName = enterpriseUserDAO.getUserName(userId);
if (StringUtils.isNotBlank(userName)) {
operationLogDO.setOperatorName(userName);
}
Date createTime = new Date();
Date updateTime = new Date();
operationLogDO.setCreateTime(createTime);
operationLogDO.setUpdateTime(updateTime);
operationLogDO.setCreateUserId(userId);
operationLogDAO.addOperationLog(operationLogDO);
return Boolean.TRUE;
}
} }

View File

@@ -51,8 +51,7 @@ import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cool.store.enums.point.ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21; import static com.cool.store.enums.point.ShopSubStageStatusEnum.*;
import static com.cool.store.enums.point.ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21_5;
/** /**
* @author zhangchenbiao * @author zhangchenbiao
@@ -106,6 +105,10 @@ public class PointServiceImpl implements PointService {
private String enterpriseId; private String enterpriseId;
@Resource @Resource
SysRoleMapper sysRoleMapper; SysRoleMapper sysRoleMapper;
@Resource
OperationLogService operationLogService;
@Resource
OperationLogDAO operationLogDAO;
@Resource @Resource
PointFinancialDataDAO pointFinancialDataDAO; PointFinancialDataDAO pointFinancialDataDAO;
@@ -1195,14 +1198,13 @@ public class PointServiceImpl implements PointService {
} }
@Override @Override
public Integer uploadRentContract(AddRentContractRequest request) { public Integer uploadRentContract(AddRentContractRequest request,String userId,String userName) {
if (!request.check()) { if (!request.check()) {
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
} }
Long pointId = request.getPointId(), shopId = request.getShopId(); Long pointId = request.getPointId(), shopId = request.getShopId();
ShopInfoDO shopInfo = null; ShopInfoDO shopInfo = shopInfo = shopInfoDAO.getShopInfo(shopId);;
if (Objects.isNull(pointId) && Objects.nonNull(shopId)) { if (Objects.isNull(pointId) && Objects.nonNull(shopId)) {
shopInfo = shopInfoDAO.getShopInfo(shopId);
pointId = shopInfo.getPointId(); pointId = shopInfo.getPointId();
} }
if (Objects.nonNull(pointId) && Objects.isNull(shopId)) { if (Objects.nonNull(pointId) && Objects.isNull(shopId)) {
@@ -1239,6 +1241,13 @@ public class PointServiceImpl implements PointService {
MessageEnum.MESSAGE_15, MessageEnum.MESSAGE_15,
map); map);
} }
// 审批记录
operationLogService.addOperationLog(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20, userId, userName,
OperationTypeEnum.OPERATION_TYPE_0, "加盟商上传租赁合同", OperationStatusEnum.PROCESSED);
List<EnterpriseUserDO> userDOList = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.REGION_MANAGER, shopInfo.getInvestRegionId());
operationLogService.addOperationLog(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21,
userId, userDOList,
OperationTypeEnum.OPERATION_TYPE_1, "招商片区老总审核", OperationStatusEnum.NOT_PROCESSED);
return shopStageInfoDAO.updateShopStageInfo(shopId, SHOP_SUB_STAGE_STATUS_21); return shopStageInfoDAO.updateShopStageInfo(shopId, SHOP_SUB_STAGE_STATUS_21);
} }
@@ -1286,6 +1295,8 @@ public class PointServiceImpl implements PointService {
Long auditId = shopAuditInfoDAO.addAuditInfo(AuditRentContractRequest.convert(request, AuditTypeEnum.UPLOAD_RENT_CONTRACT)); Long auditId = shopAuditInfoDAO.addAuditInfo(AuditRentContractRequest.convert(request, AuditTypeEnum.UPLOAD_RENT_CONTRACT));
ShopSubStageStatusEnum subStageStatus = null; ShopSubStageStatusEnum subStageStatus = null;
Integer current = shopStageInfo.getShopSubStageStatus();
ShopSubStageStatusEnum currentShopSubStageStatusEnum = getShopSubStageStatusEnum(current);
if (AuditResultTypeEnum.PASS.getCode().equals(request.getResultType())){ if (AuditResultTypeEnum.PASS.getCode().equals(request.getResultType())){
if (shopStageInfo.getShopSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_21.getShopSubStageStatus())){ if (shopStageInfo.getShopSubStageStatus().equals(SHOP_SUB_STAGE_STATUS_21.getShopSubStageStatus())){
subStageStatus = SHOP_SUB_STAGE_STATUS_21_5; subStageStatus = SHOP_SUB_STAGE_STATUS_21_5;
@@ -1296,6 +1307,16 @@ public class PointServiceImpl implements PointService {
}else { }else {
subStageStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_22; subStageStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_22;
} }
//处理审批
handleApprove(shopId,AuditTypeEnum.UPLOAD_RENT_CONTRACT,request.getOperateUserId(),request.getOperateUserName(),
request.getResultType(),currentShopSubStageStatusEnum,request.getReason());
//如果有下一级
if (SHOP_SUB_STAGE_STATUS_21.getShopSubStageStatus().equals(currentShopSubStageStatusEnum.getShopSubStageStatus())){
List<EnterpriseUserDO> userDOList = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.BRANCH_OFFICE, shopInfo.getInvestRegionId());
operationLogService.addOperationLog(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_21_5,
request.getOperateUserId(), userDOList,
OperationTypeEnum.OPERATION_TYPE_1, "分部内勤审核", OperationStatusEnum.NOT_PROCESSED);
}
if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_23.equals(subStageStatus)) { if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_23.equals(subStageStatus)) {
//审核通过铺位变为已签约 //审核通过铺位变为已签约
@@ -1324,6 +1345,41 @@ public class PointServiceImpl implements PointService {
return CommonConstants.ONE; return CommonConstants.ONE;
} }
/**
* 处理审批
* @param shopId
* @param auditTypeEnum
* @param userId
* @param userName
* @param resultType
* @param currentStatusEnum
* @param cause
* @return
*/
private Boolean handleApprove(Long shopId,AuditTypeEnum auditTypeEnum,String userId,String userName,Integer resultType,ShopSubStageStatusEnum currentStatusEnum,String cause){
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setShopId(shopId);
shopAuditInfoDO.setAuditType(auditTypeEnum.getCode());
shopAuditInfoDO.setSubmittedUserId(userId);
shopAuditInfoDO.setSubmittedUserName(userName);
shopAuditInfoDO.setResultType(resultType);
if (AuditResultTypeEnum.PASS.getCode().equals(shopAuditInfoDO.getResultType())) {
shopAuditInfoDO.setPassReason(cause);
} else {
shopAuditInfoDO.setRejectReason(cause);
}
Long auditId = shopAuditInfoDAO.addAuditInfo(shopAuditInfoDO);
//更新操作记录
List<OperationLogDO> operationLogs = operationLogDAO.getBySubStageStatusEnumAndsStatus(shopId, currentStatusEnum, OperationTypeEnum.OPERATION_TYPE_1.getCode());
if (CollectionUtils.isNotEmpty(operationLogs)){
operationLogService.batchUpdateProcessed(operationLogs, auditId, userId, cause);
}else {
operationLogService.handleApproveTimeNoDate(shopId,currentStatusEnum,auditId, userId, cause);
}
return true;
}
@Override @Override
public Integer updateRentContract(UpdateRentContractRequest request) { public Integer updateRentContract(UpdateRentContractRequest request) {
if (!request.check()) { if (!request.check()) {

View File

@@ -2,6 +2,7 @@ package com.cool.store.controller.webb;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.CurrentUserHolder;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.context.PartnerUserHolder; import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dto.point.PointStatisticsDTO; import com.cool.store.dto.point.PointStatisticsDTO;
import com.cool.store.dto.point.ShopPointDTO; import com.cool.store.dto.point.ShopPointDTO;
@@ -283,7 +284,8 @@ public class PointController {
@ApiOperation("上传租赁合同") @ApiOperation("上传租赁合同")
@PostMapping("/uploadRentContract") @PostMapping("/uploadRentContract")
public ResponseResult<Integer> uploadRentContract(@RequestBody @Validated AddRentContractRequest request) { public ResponseResult<Integer> uploadRentContract(@RequestBody @Validated AddRentContractRequest request) {
return ResponseResult.success(pointService.uploadRentContract(request)); LoginUserInfo user = CurrentUserHolder.getUser();
return ResponseResult.success(pointService.uploadRentContract(request,user.getUserId(),user.getName()));
} }
@ApiOperation("保存点位测算 V3.0 新增") @ApiOperation("保存点位测算 V3.0 新增")

View File

@@ -97,9 +97,9 @@ public class MiniShopController {
@ApiOperation("上传租赁合同") @ApiOperation("上传租赁合同")
@PostMapping("/uploadRentContract") @PostMapping("/uploadRentContract")
public ResponseResult<Integer> uploadRentContract(@RequestBody @Validated AddRentContractRequest request) { public ResponseResult<Integer> uploadRentContract(@RequestBody @Validated AddRentContractRequest request) {
Long lineId = PartnerUserHolder.getUser().getLineId(); PartnerUserInfoVO user = PartnerUserHolder.getUser();
request.setCurLineId(lineId); request.setCurLineId(user.getLineId());
return ResponseResult.success(pointService.uploadRentContract(request)); return ResponseResult.success(pointService.uploadRentContract(request,user.getPartnerId(),user.getUsername()));
} }
@ApiOperation("获取租赁合同详情") @ApiOperation("获取租赁合同详情")