装修阶段
This commit is contained in:
@@ -219,6 +219,8 @@ public enum ErrorCodeEnum {
|
||||
FITMENT_FAIL(12003,"装修款阶段未完成",null),
|
||||
SEE_ACCEPTANCE_ERROR(12004,"获取鲜丰撤场数据失败",null),
|
||||
SEE_ACCEPTANCE_AUDIT_NULL(12005,"视觉验收结果为空",null),
|
||||
STATUS_NOT_SUPPORT_SUMMIT(121006,"该状态不支持上传",null),
|
||||
DESIGN_NO_COMPLETE(121007,"请先完成设计阶段!",null),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,6 @@ public enum ShopSubStageEnum {
|
||||
SHOP_STAGE_7(ShopStageEnum.SHOP_STAGE_2, 70, "缴纳加盟费/保证金", 1),
|
||||
SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约", 4),
|
||||
SHOP_STAGE_9(ShopStageEnum.SHOP_STAGE_2, 90, "设计阶段", 21),
|
||||
SHOP_STAGE_10(ShopStageEnum.SHOP_STAGE_2, 100, "装修款", 24),
|
||||
SHOP_STAGE_11(ShopStageEnum.SHOP_STAGE_2, 110, "施工阶段", 31),
|
||||
SHOP_STAGE_12(ShopStageEnum.SHOP_STAGE_2, 120, "三方验收", 32),
|
||||
SHOP_STAGE_14(ShopStageEnum.SHOP_STAGE_2, 140, "开业运营方案", 23),
|
||||
|
||||
@@ -51,7 +51,7 @@ public enum ShopSubStageStatusEnum {
|
||||
//设计阶段
|
||||
SHOP_SUB_STAGE_STATUS_90(ShopSubStageEnum.SHOP_STAGE_9, 900, "待上传", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_92(ShopSubStageEnum.SHOP_STAGE_9, 920, "待确认", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_91(ShopSubStageEnum.SHOP_STAGE_9, 910, "已完成", Boolean.TRUE),
|
||||
SHOP_SUB_STAGE_STATUS_93(ShopSubStageEnum.SHOP_STAGE_9, 930, "已完成", Boolean.TRUE),
|
||||
|
||||
//施工阶段
|
||||
SHOP_SUB_STAGE_STATUS_111(ShopSubStageEnum.SHOP_STAGE_11, 1110, "施工中", Boolean.FALSE),
|
||||
|
||||
@@ -17,13 +17,28 @@ public class DecorationDesignInfoDAO {
|
||||
@Resource
|
||||
DecorationDesignInfoMapper decorationDesignInfoMapper;
|
||||
|
||||
private DecorationDesignInfoDO getById(Long id){
|
||||
public DecorationDesignInfoDO getById(Long id){
|
||||
if(id == null){
|
||||
return null;
|
||||
}
|
||||
return decorationDesignInfoMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
public Integer insertSelective(DecorationDesignInfoDO decorationDesignInfoDO){
|
||||
return decorationDesignInfoMapper.insertSelective(decorationDesignInfoDO);
|
||||
}
|
||||
|
||||
public Integer updateByPrimaryKey(DecorationDesignInfoDO decorationDesignInfoDO){
|
||||
return decorationDesignInfoMapper.updateByPrimaryKey(decorationDesignInfoDO);
|
||||
}
|
||||
|
||||
public DecorationDesignInfoDO getByShopId(Long shopId){
|
||||
if(shopId == null){
|
||||
return null;
|
||||
}
|
||||
return decorationDesignInfoMapper.selectByShopId(shopId);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,4 +4,13 @@ import com.cool.store.entity.DecorationDesignInfoDO;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
public interface DecorationDesignInfoMapper extends Mapper<DecorationDesignInfoDO> {
|
||||
|
||||
|
||||
/**
|
||||
* 查询店铺的设计数据
|
||||
* @param shopId
|
||||
* @return
|
||||
*/
|
||||
DecorationDesignInfoDO selectByShopId(Long shopId);
|
||||
|
||||
}
|
||||
@@ -15,4 +15,16 @@
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="deleted" jdbcType="BIT" property="deleted" />
|
||||
</resultMap>
|
||||
|
||||
<select id="selectByShopId" resultMap="BaseResultMap">
|
||||
select
|
||||
*
|
||||
from decoration_design_info where shop_id = #{shopId} and deleted = 0
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -72,6 +72,7 @@
|
||||
<if test="request.businessLeaderMobile != null">business_leader_mobile,</if>
|
||||
<if test="request.financialManagerName != null">financial_manager_name,</if>
|
||||
<if test="request.financialManagerMobile != null">financial_manager_mobile,</if>
|
||||
<if test="request.businessLicense != null">business_license,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="request.auditId != null">#{request.auditId},</if>
|
||||
@@ -103,6 +104,7 @@
|
||||
<if test="request.businessLeaderMobile != null">#{request.businessLeaderMobile},</if>
|
||||
<if test="request.financialManagerName != null">#{request.financialManagerName},</if>
|
||||
<if test="request.financialManagerMobile != null">#{request.financialManagerMobile},</if>
|
||||
<if test="request.businessLicense != null">#{request.businessLicense},</if>
|
||||
</trim>
|
||||
ON DUPLICATE KEY UPDATE
|
||||
<trim suffixOverrides=",">
|
||||
@@ -135,6 +137,7 @@
|
||||
<if test="request.businessLeaderMobile != null">business_leader_mobile = #{request.businessLeaderMobile},</if>
|
||||
<if test="request.financialManagerName != null">financial_manager_name = #{request.financialManagerName},</if>
|
||||
<if test="request.financialManagerMobile != null">financial_manager_mobile = #{request.financialManagerMobile},</if>
|
||||
<if test="request.businessLicense != null">business_license = #{request.businessLicense},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
@@ -203,5 +204,8 @@ public class QualificationsInfoDO {
|
||||
*/
|
||||
private Boolean deleted;
|
||||
|
||||
@Column(name = "business_license")
|
||||
private String businessLicense;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.cool.store.request;
|
||||
|
||||
import com.cool.store.entity.DecorationDesignInfoDO;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2024/6/25 11:19
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class DecorationDesignRequest {
|
||||
|
||||
@Column(name = "shop_id")
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 报价单
|
||||
*/
|
||||
@Column(name = "quotation_url")
|
||||
private String quotationUrl;
|
||||
|
||||
/**
|
||||
* 设计图
|
||||
*/
|
||||
@Column(name = "design_url")
|
||||
private String designUrl;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0}
|
||||
*/
|
||||
@Column(name = "partner_acceptance_signatures")
|
||||
private String partnerAcceptanceSignatures;
|
||||
|
||||
|
||||
|
||||
public DecorationDesignInfoDO toDecorationDesignInfoDO() {
|
||||
DecorationDesignInfoDO decorationDesignInfoDO = new DecorationDesignInfoDO();
|
||||
decorationDesignInfoDO.setDesignUrl(this.designUrl);
|
||||
decorationDesignInfoDO.setShopId(this.shopId);
|
||||
decorationDesignInfoDO.setRemark(this.remark);
|
||||
decorationDesignInfoDO.setQuotationUrl(this.quotationUrl);
|
||||
decorationDesignInfoDO.setPartnerAcceptanceSignatures(this.partnerAcceptanceSignatures);
|
||||
decorationDesignInfoDO.setUpdateTime(new Date());
|
||||
return decorationDesignInfoDO;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -84,6 +84,8 @@ public class JoinIntentionRequest {
|
||||
private String financialManagerName;
|
||||
@ApiModelProperty("业务负责人联系方式")
|
||||
private String financialManagerMobile;
|
||||
@ApiModelProperty("营业执照")
|
||||
private String businessLicense;
|
||||
|
||||
public LineInfoDO toLineInfoDO() {
|
||||
LineInfoDO lineInfoDO = new LineInfoDO();
|
||||
@@ -131,6 +133,7 @@ public class JoinIntentionRequest {
|
||||
qualificationsInfoDO.setBusinessLeaderMobile(this.businessLeaderMobile);
|
||||
qualificationsInfoDO.setFinancialManagerName(this.financialManagerName);
|
||||
qualificationsInfoDO.setFinancialManagerMobile(this.financialManagerMobile);
|
||||
qualificationsInfoDO.setBusinessLicense(this.businessLicense);
|
||||
return qualificationsInfoDO;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.cool.store.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2024/6/25 14:03
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class DecorationDesignVO {
|
||||
|
||||
/**
|
||||
* xfsg_shop_info.id
|
||||
*/
|
||||
@Column(name = "shop_id")
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 报价单
|
||||
*/
|
||||
@Column(name = "quotation_url")
|
||||
private String quotationUrl;
|
||||
|
||||
/**
|
||||
* 设计图
|
||||
*/
|
||||
@Column(name = "design_url")
|
||||
private String designUrl;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0}
|
||||
*/
|
||||
@Column(name = "partner_acceptance_signatures")
|
||||
private String partnerAcceptanceSignatures;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(name = "create_time")
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import com.cool.store.request.*;
|
||||
|
||||
|
||||
import com.cool.store.response.ThreeSignResponse;
|
||||
import com.cool.store.vo.DecorationDesignVO;
|
||||
import com.cool.store.vo.Fitment.DecorationStageVO;
|
||||
import com.cool.store.vo.Fitment.DesignInfoVo;
|
||||
import com.cool.store.vo.LinePayVO;
|
||||
@@ -117,4 +118,36 @@ public interface DecorationService {
|
||||
* @description:三方获取验收列表详情
|
||||
*/
|
||||
fitmentCheckVO getAcceptanceDetail(Long shopId, LoginUserInfo user);
|
||||
|
||||
|
||||
/**
|
||||
* 提交设计数据
|
||||
* @param request
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
Boolean submitDecorationDesign(DecorationDesignRequest request, LoginUserInfo user);
|
||||
|
||||
/**
|
||||
* 获取设计数据
|
||||
* @param shopId
|
||||
* @return
|
||||
*/
|
||||
DecorationDesignVO getDecorationDesign(Long shopId);
|
||||
|
||||
/**
|
||||
* 确认设计数据方案
|
||||
* @param request
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
Boolean confirmDesign(DecorationDesignRequest request, LoginUserInfo user);
|
||||
|
||||
/**
|
||||
* 装修阶段确认完成
|
||||
* @param shopId
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
Boolean confirmComplete(Long shopId, LoginUserInfo user);
|
||||
}
|
||||
|
||||
@@ -22,14 +22,12 @@ import com.cool.store.request.*;
|
||||
import com.cool.store.response.ThreeSignResponse;
|
||||
import com.cool.store.service.*;
|
||||
import com.cool.store.utils.CoolDateUtils;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.utils.poi.StringUtils;
|
||||
import com.cool.store.vo.AssessmentTemplateVO;
|
||||
import com.cool.store.vo.*;
|
||||
import com.cool.store.vo.Fitment.DecorationStageVO;
|
||||
import com.cool.store.vo.Fitment.DesignInfoVo;
|
||||
import com.cool.store.vo.LinePayVO;
|
||||
import com.cool.store.vo.PartnerUserInfoVO;
|
||||
|
||||
import com.cool.store.vo.fitmentCheckVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@@ -97,53 +95,14 @@ public class DecorationServiceImpl implements DecorationService {
|
||||
private CommonService commonService;
|
||||
@Resource
|
||||
private AssessmentTemplateService assessmentTemplateService;
|
||||
@Resource
|
||||
RedisUtilPool redisUtilPool;
|
||||
@Resource
|
||||
DecorationDesignInfoDAO decorationDesignInfoDAO;
|
||||
|
||||
@Override
|
||||
public DesignInfoVo DesignInfo(Long shopId) {
|
||||
DecorationDTO decoration = getDecorationDTO(shopId);
|
||||
if (decoration == null) {
|
||||
log.error("拉取云立方接口获取数据为空");
|
||||
return null;
|
||||
}
|
||||
Long flag;
|
||||
DesignInfoVo designInfoVo = new DesignInfoVo();
|
||||
//平面图和施工
|
||||
List<DesignSchemeDTO> designScheme = decoration.getDesignScheme();
|
||||
long count = designScheme.stream().filter(design -> DesignPhaseEnum.DESIGN_PHASE_ACCEPTANCE_PASS.getCode().equals(design.getStatus())).count();
|
||||
flag = count;
|
||||
designInfoVo.setDesignScheme(designScheme);
|
||||
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
|
||||
if (CollectionUtils.isNotEmpty(constructionSchedule)) {
|
||||
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
|
||||
Function.identity(), (a, b) -> b));
|
||||
if (CollectionUtils.isNotEmpty(constructionSchedule)) {
|
||||
//量房
|
||||
ConstructionScheduleDTO measuringRoom = constructionScheduleMap.get(CommonConstants.MEASURING_THE_ROOM);
|
||||
if (Objects.nonNull(measuringRoom)) {
|
||||
designInfoVo.setMeasuringRoom(measuringRoom);
|
||||
if (ConstructionPhaseEnum.construction_FINSH.getCode().equals(measuringRoom.getState())) {
|
||||
flag++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//获取最新预算
|
||||
BudgetDTO proposedBookBudget = getBudgetDTOS(decoration);
|
||||
if (Objects.nonNull(proposedBookBudget)) {
|
||||
designInfoVo.setProposedBookBudget(proposedBookBudget);
|
||||
flag++;
|
||||
}
|
||||
if (flag == CommonConstants.FOUR) {
|
||||
//如果设计阶段进行中
|
||||
ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_9);
|
||||
if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus().equals(shopSubStageInfo.getShopSubStageStatus())) {
|
||||
//更新设计阶段状态完成//初始化装修款阶段
|
||||
shopStageInfoDAO.batchUpdateShopStageStatus(shopId, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91));
|
||||
LineInfoDO lineInfo = lineInfoMapper.getByLineId(shopSubStageInfo.getLineId());
|
||||
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.DECORATION_MODEL_PAY, null);
|
||||
}
|
||||
}
|
||||
return designInfoVo;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -318,41 +277,18 @@ public class DecorationServiceImpl implements DecorationService {
|
||||
|
||||
|
||||
//如果完成更新施工阶段状态
|
||||
if (ConstructionPhaseEnum.construction_FINSH.getCode().equals(constructionSage.getState())) {
|
||||
shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112);
|
||||
} else {
|
||||
shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_111);
|
||||
}
|
||||
// if (ConstructionPhaseEnum.construction_FINSH.getCode().equals(constructionSage.getState())) {
|
||||
// shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112);
|
||||
// } else {
|
||||
// shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_111);
|
||||
// }
|
||||
return collect;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public ConstructionScheduleDTO getConstructionInfo(Long shopId) {
|
||||
DecorationDTO decoration = getDecorationDTO(shopId);
|
||||
if (decoration == null) {
|
||||
log.error("DecorationModel storeNum is null");
|
||||
return null;
|
||||
}
|
||||
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
|
||||
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
|
||||
dto -> dto));
|
||||
ConstructionScheduleDTO constructionScheduleDTO = constructionScheduleMap.get(CommonConstants.CONSTRUCTION_PHASE);
|
||||
//如果完成更新阶段状态
|
||||
if (ConstructionPhaseEnum.construction_FINSH.getCode().equals(constructionScheduleMap.get(CommonConstants.CONSTRUCTION_PHASE).getState())) {
|
||||
shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112);
|
||||
ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_11);
|
||||
shopSubStageInfo.setPlanCompleteTime(constructionScheduleDTO.getPlanEndDate());
|
||||
shopSubStageInfo.setActualCompleteTime(constructionScheduleDTO.getActualEndDate());
|
||||
shopStageInfoDAO.updateByShopId(shopSubStageInfo);
|
||||
} else {
|
||||
shopStageInfoDAO.updateShopStageInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_111);
|
||||
ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_11);
|
||||
shopSubStageInfo.setPlanCompleteTime(constructionScheduleDTO.getPlanEndDate());
|
||||
shopSubStageInfo.setActualCompleteTime(constructionScheduleDTO.getActualEndDate());
|
||||
shopStageInfoDAO.updateByShopId(shopSubStageInfo);
|
||||
}
|
||||
return constructionScheduleDTO;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -582,6 +518,85 @@ public class DecorationServiceImpl implements DecorationService {
|
||||
return fitmentCheckVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean submitDecorationDesign(DecorationDesignRequest request, LoginUserInfo user) {
|
||||
//重复提交校验 3秒内不能重复提交
|
||||
String lockKey = "submitDecorationDesign:" + request.getShopId();
|
||||
String lockValue = UUID.randomUUID().toString();
|
||||
boolean acquired = redisUtilPool.setNxExpire(lockKey, lockValue, CommonConstants.THREE*CommonConstants.ONE_SECONDS);
|
||||
if (!acquired){
|
||||
throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION);
|
||||
}
|
||||
//校验参数
|
||||
if (Objects.isNull(request)||request.getShopId()==null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
//必须是待提交状态才能提交
|
||||
ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getByShopIdAndSubStage(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus());
|
||||
if (Objects.isNull(shopStageInfo)) {
|
||||
throw new ServiceException(ErrorCodeEnum.STATUS_NOT_SUPPORT_SUMMIT);
|
||||
}
|
||||
DecorationDesignInfoDO decorationDesignInfoDO = request.toDecorationDesignInfoDO();
|
||||
DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(request.getShopId());
|
||||
if (Objects.nonNull(decoration)){
|
||||
decorationDesignInfoDO.setId(decoration.getId());
|
||||
decorationDesignInfoDAO.updateByPrimaryKey(decorationDesignInfoDO);
|
||||
}else {
|
||||
decorationDesignInfoDAO.insertSelective(decorationDesignInfoDO);
|
||||
}
|
||||
//更新装修设计状态
|
||||
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_92);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DecorationDesignVO getDecorationDesign(Long shopId) {
|
||||
if (shopId==null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(shopId);
|
||||
if (!Objects.isNull(decoration)){
|
||||
DecorationDesignVO decorationDesignVO = new DecorationDesignVO();
|
||||
decorationDesignVO.setDesignUrl(decoration.getDesignUrl());
|
||||
decorationDesignVO.setRemark(decoration.getRemark());
|
||||
decorationDesignVO.setQuotationUrl(decoration.getQuotationUrl());
|
||||
decorationDesignVO.setShopId(decoration.getShopId());
|
||||
decorationDesignVO.setPartnerAcceptanceSignatures(decoration.getPartnerAcceptanceSignatures());
|
||||
return decorationDesignVO;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean confirmDesign(DecorationDesignRequest request, LoginUserInfo user) {
|
||||
//重复提交校验 3秒内不能重复提交
|
||||
String lockKey = "confirmDesign:" + request.getShopId();
|
||||
String lockValue = UUID.randomUUID().toString();
|
||||
boolean acquired = redisUtilPool.setNxExpire(lockKey, lockValue, CommonConstants.THREE*CommonConstants.ONE_SECONDS);
|
||||
if (!acquired){
|
||||
throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION);
|
||||
}
|
||||
DecorationDesignInfoDO decorationDesignInfoDO = request.toDecorationDesignInfoDO();
|
||||
DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(request.getShopId());
|
||||
if (Objects.nonNull(decoration)){
|
||||
decorationDesignInfoDO.setId(decoration.getId());
|
||||
decorationDesignInfoDAO.updateByPrimaryKey(decorationDesignInfoDO);
|
||||
}
|
||||
//更新装修设计状态
|
||||
shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_93, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_111));
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean confirmComplete(Long shopId, LoginUserInfo user) {
|
||||
ShopStageInfoDO shopStageInfoDO = shopStageInfoDAO.getByShopIdAndSubStage(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_93.getShopSubStageStatus());
|
||||
if (Objects.isNull(shopStageInfoDO)){
|
||||
throw new ServiceException(ErrorCodeEnum.DESIGN_NO_COMPLETE);
|
||||
}
|
||||
shopStageInfoDAO.batchUpdateShopStageStatus(shopId, Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120));
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Boolean pcSubmitAcceptanceSign(ThreeAcceptanceRequest request) {
|
||||
|
||||
@@ -191,26 +191,14 @@ public class PreparationServiceImpl implements PreparationService {
|
||||
List<ShopStageInfoDO> shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, null);
|
||||
if (CollectionUtils.isNotEmpty(shopStageInfo)) {
|
||||
Map<Integer, ShopStageInfoDO> shopStageInfoDOMap = shopStageInfo.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, data -> data));
|
||||
Boolean buildStoreCompletionFlag = Boolean.TRUE;
|
||||
Boolean contractCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_8.getShopSubStage()).getShopSubStageStatus());
|
||||
//都完成了 初始化后续流程数据
|
||||
if (buildStoreCompletionFlag && contractCompletionFlag) {
|
||||
if (contractCompletionFlag) {
|
||||
//初始化后续流程数据 设计阶段 装修阶段 开业运营方案 首批订货清单
|
||||
List<ShopStageInfoDO> list = new ArrayList<>();
|
||||
ShopStageInfoDO data1 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage());
|
||||
data1.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus());
|
||||
list.add(data1);
|
||||
// ShopStageInfoDO data2 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_11.getShopSubStage());
|
||||
// data2.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus());
|
||||
// list.add(data2);
|
||||
//初始化xfsg_acceptance_info表
|
||||
// AcceptanceInfoDO acceptanceInfoDO1 = acceptanceInfoDAO.selectByShopId(shopId);
|
||||
// AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
|
||||
// acceptanceInfoDO.setShopId(shopId);
|
||||
// acceptanceInfoDO.setCreateTime(new Date());
|
||||
// if(Objects.isNull(acceptanceInfoDO1)) {
|
||||
// acceptanceInfoDAO.insertSelectiveAcceptanceInfo(acceptanceInfoDO);
|
||||
// }
|
||||
ShopStageInfoDO data3 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_14.getShopSubStage());
|
||||
data3.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140.getShopSubStageStatus());
|
||||
list.add(data3);
|
||||
@@ -234,25 +222,7 @@ public class PreparationServiceImpl implements PreparationService {
|
||||
|
||||
@Override
|
||||
public Boolean decorationFlush(Long shopId) {
|
||||
List<ShopStageInfoDO> shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, ShopStageEnum.SHOP_STAGE_2.getShopStage());
|
||||
Map<Integer, ShopStageInfoDO> collect = shopStageInfo.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, Function.identity()));
|
||||
//设计
|
||||
Boolean flushFlag = Boolean.FALSE;
|
||||
Integer Status900 = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus();
|
||||
Integer Design = collect.get(ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage()).getShopSubStageStatus();
|
||||
if (Status900.equals(Design)) {
|
||||
decorationService.DesignInfo(shopId);
|
||||
flushFlag = Boolean.TRUE;
|
||||
}
|
||||
//装修款
|
||||
Integer Status1000 = 1000;
|
||||
Integer Status1010 = 1010;
|
||||
Integer DecorationModel = collect.get(100).getShopSubStageStatus();
|
||||
if (Status1000.equals(DecorationModel) || Status1010.equals(DecorationModel)) {
|
||||
decorationService.getDecorationModel(shopId, null);
|
||||
flushFlag = Boolean.TRUE;
|
||||
}
|
||||
return flushFlag;
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -123,4 +123,16 @@ public class PCDecorationController {
|
||||
return ResponseResult.success(seeAcceptanceService.auditSeeAcceptance(request,user));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("提交设计方案")
|
||||
@PostMapping("/submitDecorationDesign")
|
||||
public ResponseResult<Boolean> submitBookingAcceptance(@RequestBody DecorationDesignRequest request){
|
||||
return ResponseResult.success(decorationService.submitDecorationDesign(request,CurrentUserHolder.getUser()));
|
||||
}
|
||||
|
||||
@ApiOperation("装修阶段完成")
|
||||
@PostMapping("/confirmComplete")
|
||||
public ResponseResult<Boolean> confirmComplete(@RequestParam Long shopId){
|
||||
return ResponseResult.success(decorationService.confirmComplete(shopId,CurrentUserHolder.getUser()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.cool.store.controller.webc;
|
||||
|
||||
import com.cool.store.context.CurrentUserHolder;
|
||||
import com.cool.store.context.PartnerUserHolder;
|
||||
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
|
||||
import com.cool.store.dto.decoration.DecorationModelDTO;
|
||||
import com.cool.store.dto.decoration.ThreeAcceptanceDTO;
|
||||
import com.cool.store.entity.ShopAuditInfoDO;
|
||||
import com.cool.store.request.DecorationDesignRequest;
|
||||
import com.cool.store.request.LinePaySubmitRequest;
|
||||
import com.cool.store.request.ThreeAcceptanceCheckRequest;
|
||||
import com.cool.store.request.ThreeAcceptanceRequest;
|
||||
@@ -15,6 +17,7 @@ import com.cool.store.service.AssessmentTemplateService;
|
||||
import com.cool.store.service.DecorationService;
|
||||
import com.cool.store.service.SeeAcceptanceService;
|
||||
import com.cool.store.vo.AssessmentTemplateVO;
|
||||
import com.cool.store.vo.DecorationDesignVO;
|
||||
import com.cool.store.vo.Fitment.DecorationStageVO;
|
||||
|
||||
import com.cool.store.vo.Fitment.DesignInfoVo;
|
||||
@@ -112,4 +115,18 @@ public class MiniDecorationController {
|
||||
public ResponseResult< List<ShopAuditInfoDO> > getAuditInfo(@RequestParam Long shopId){
|
||||
return ResponseResult.success(seeAcceptanceService.getAuditInfo(shopId));
|
||||
}
|
||||
|
||||
@ApiOperation("查询设计方案")
|
||||
@GetMapping("/getDecorationDesign")
|
||||
public ResponseResult<DecorationDesignVO> getDecorationDesign(@RequestParam Long shopId){
|
||||
return ResponseResult.success(decorationService.getDecorationDesign(shopId));
|
||||
}
|
||||
|
||||
@ApiOperation("加盟商确定设计方案")
|
||||
@GetMapping("/confirmDesign")
|
||||
public ResponseResult<Boolean> confirmDesign(@RequestParam DecorationDesignRequest shopId){
|
||||
return ResponseResult.success(decorationService.confirmDesign(shopId,CurrentUserHolder.getUser()));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -187,24 +187,9 @@ public class TestController {
|
||||
xxlJobHandler.updateEntryTime();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
@GetMapping("/fitmentAcceptanceHandler")
|
||||
public ResponseResult fitmentAcceptanceHandler(){
|
||||
xxlJobHandler.fitmentAcceptanceHandler();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
@GetMapping("/threeAcceptanceBookingMessage")
|
||||
public ResponseResult threeAcceptanceBookingMessage(){
|
||||
xxlJobHandler.threeAcceptanceBookingMessage();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
@GetMapping("/threeAcceptanceMessage")
|
||||
public ResponseResult threeAcceptanceMessage(){
|
||||
xxlJobHandler.threeAcceptanceMessage();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
@GetMapping("/waitThreeAcceptanceMessage")
|
||||
public ResponseResult waitThreeAcceptanceMessage(){
|
||||
xxlJobHandler.waitThreeAcceptanceMessage();
|
||||
return ResponseResult.success();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -135,44 +135,6 @@ public class XxlJobHandler {
|
||||
XxlJobHelper.handleSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* @Auther: wangshuo
|
||||
* @Date: 2024/4/29
|
||||
* @description: 每天更新装修阶段进场时间等,至预约状态
|
||||
*/
|
||||
@XxlJob("fitmentAcceptanceHandler")
|
||||
public void fitmentAcceptanceHandler() {
|
||||
log.info("----定时任务每天更新至预约状态----");
|
||||
boolean hasNext = true;
|
||||
int pageNum = 1;
|
||||
int pageSize = 50;
|
||||
while (hasNext) {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
//获取表中的三方验收状态为-100状态和进场时间不为空的
|
||||
List<AcceptanceInfoDO> acceptanceInfoDOS = acceptanceInfoDAO.selectAcceptanceInfoBySignatures(ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00.getShopSubStageStatus());
|
||||
if (CollectionUtils.isEmpty(acceptanceInfoDOS)) {
|
||||
log.info("------定时任务结束每天更新至预约状态结束------");
|
||||
return;
|
||||
}
|
||||
List<Long> shopIds = new ArrayList<>();
|
||||
for (AcceptanceInfoDO acceptanceInfoDO : acceptanceInfoDOS) {
|
||||
Long shopId = acceptanceInfoDO.getShopId();
|
||||
Date actualEntryTime = acceptanceInfoDO.getActualEntryTime();
|
||||
LocalDate plusFDays = DateUtils.getPlusFDays(actualEntryTime, CommonConstants.FOUR);
|
||||
//小于等于当前时间
|
||||
if (plusFDays.isEqual(LocalDate.now()) || plusFDays.isBefore(LocalDate.now())) {
|
||||
//三方验收待预约
|
||||
shopIds.add(shopId);
|
||||
|
||||
}
|
||||
}
|
||||
shopStageInfoDAO.batchUpdateShopStageStatus(shopIds, ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120.getShopSubStageStatus());
|
||||
hasNext = acceptanceInfoDOS.size() >= pageSize;
|
||||
pageNum++;
|
||||
}
|
||||
log.info("------定时任务结束调用鲜丰获取进场时间结束------");
|
||||
XxlJobHelper.handleSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* @Auther: wangshuo
|
||||
@@ -226,172 +188,6 @@ public class XxlJobHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Auther: wangshuo
|
||||
* @Date: 2024/5/7
|
||||
* @description:三方验收预约短信通知,进场时间+7天的18:00,发送短信到加盟商,
|
||||
*/
|
||||
@XxlJob("threeAcceptanceMessage")
|
||||
public void threeAcceptanceMessage() {
|
||||
log.info("------定时任务三方验收待验收的短信通知-----");
|
||||
boolean hasNext = true;
|
||||
int pageNum = 1;
|
||||
int pageSize = 50;
|
||||
while (hasNext) {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
//获取待验收的
|
||||
List<AcceptanceInfoDO> acceptanceInfoDOS = acceptanceInfoDAO
|
||||
.selectAcceptanceInfoBySignatures(ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_121.getShopSubStageStatus());
|
||||
if (CollectionUtils.isEmpty(acceptanceInfoDOS)) {
|
||||
log.info("------定时任务结束三方验收待验收的短信通知------");
|
||||
return;
|
||||
}
|
||||
for (AcceptanceInfoDO acceptanceInfoDO : acceptanceInfoDOS) {
|
||||
int flag = CommonConstants.ZERO;
|
||||
while (flag < CommonConstants.TWO) {
|
||||
try {
|
||||
Date approach = acceptanceInfoDO.getActualEntryTime();
|
||||
if (Objects.nonNull(approach)) {
|
||||
LocalDate plusFDays = DateUtils.getPlusFDays(approach, CommonConstants.SIX);//7 day
|
||||
if (plusFDays.equals(LocalDate.now())) {
|
||||
//三方验收带预约
|
||||
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(acceptanceInfoDO.getShopId());
|
||||
//加盟商手机号
|
||||
Long lineId = shopInfo.getLineId();
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
|
||||
if (Objects.isNull(lineInfo) && StringUtils.isNull(lineInfo.getMobile())) {
|
||||
log.error("定时任务三方验收待验收的短信通知:加盟商手机号为空,shopId:#{}", acceptanceInfoDO.getShopId());
|
||||
break;
|
||||
}
|
||||
EnterpriseUserDO supervisor = userAuthMappingService
|
||||
.getUserByRoleEnumAndRegionId(UserRoleEnum.ENGINEER_DEP_SUPERVISOR, shopInfo.getRegionId());
|
||||
if (Objects.isNull(supervisor)) {
|
||||
log.error("该区域没有工程部监理,RegionId:{}", shopInfo.getRegionId());
|
||||
break;
|
||||
}
|
||||
//获取计划撤场时间
|
||||
Date planExitTime = acceptanceInfoDO.getPlanExitTime();
|
||||
//获取施工阶段计划完成时间
|
||||
Date decorationEndTime = acceptanceInfoDO.getDecorationPlannedCompletionTime();
|
||||
//获取计划验收时间
|
||||
String planAcceptanceTime = CoolDateUtils.DateFormat(acceptanceInfoDO.getPlanAcceptanceTime(), CoolDateUtils.DATE_FORMAT_SEC);
|
||||
if (StringUtils.isBlank(planAcceptanceTime)) {
|
||||
planAcceptanceTime = "";
|
||||
}
|
||||
//区域监理手机号
|
||||
Boolean f = Boolean.TRUE;
|
||||
String mobile = supervisor.getMobile();
|
||||
String supervisionName = supervisor.getName();
|
||||
|
||||
Map<String, String> messageMap = new HashMap<>();
|
||||
if (Objects.nonNull(planExitTime)) {
|
||||
String date = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, planExitTime);
|
||||
messageMap.put("demolitionPlanTime", date);
|
||||
} else {
|
||||
if (Objects.nonNull(decorationEndTime)) {
|
||||
String date = DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, decorationEndTime);
|
||||
messageMap.put("demolitionPlanTime", date);
|
||||
}
|
||||
}
|
||||
messageMap.put("palnAcceptanceTime", planAcceptanceTime);
|
||||
messageMap.put("supervisionName", supervisionName);
|
||||
messageMap.put("supervisionMobile", mobile);
|
||||
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.THREE_ACCEPTANCE_WAIT, messageMap);
|
||||
}
|
||||
}
|
||||
break;
|
||||
} catch (Exception e) {
|
||||
log.error("定时任务三方验收待验收的短信通知失败 shopId:{},e:{}", acceptanceInfoDO.getShopId(), e.getMessage());
|
||||
flag++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
hasNext = acceptanceInfoDOS.size() >= pageSize;
|
||||
pageNum++;
|
||||
}
|
||||
XxlJobHelper.handleSuccess();
|
||||
}
|
||||
|
||||
/**
|
||||
* @Auther: wangshuo
|
||||
* @Date: 2024/5/7
|
||||
* @description:实际进场时间+7天,发送钉钉通知到督导
|
||||
*/
|
||||
@XxlJob("waitThreeAcceptanceMessage")
|
||||
public void waitThreeAcceptanceMessage() {
|
||||
log.info("------定时任务三方待验收钉钉通知-----");
|
||||
boolean hasNext = true;
|
||||
int pageNum = 1;
|
||||
int pageSize = 50;
|
||||
while (hasNext) {
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
//获取待验收的
|
||||
List<AcceptanceInfoDO> acceptanceInfoDOS = acceptanceInfoDAO
|
||||
.selectAcceptanceInfoBySignatures(ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_121.getShopSubStageStatus());
|
||||
if (CollectionUtils.isEmpty(acceptanceInfoDOS)) {
|
||||
log.info("------定时任务结束三方待验收钉钉通知------");
|
||||
return;
|
||||
}
|
||||
List<Long> shopIds = acceptanceInfoDOS.stream().filter(o -> o.getShopId() != null)
|
||||
.map(AcceptanceInfoDO::getShopId).collect(Collectors.toList());
|
||||
List<ShopInfoDO> shopListByIds = shopInfoDAO.getShopListByIds(shopIds);
|
||||
Map<Long, ShopInfoDO> shopIdMap = shopListByIds.stream().filter(o -> o.getId() != null)
|
||||
.collect(Collectors.toMap(ShopInfoDO::getId, Function.identity()));
|
||||
for (AcceptanceInfoDO acceptance : acceptanceInfoDOS) {
|
||||
//进场时间
|
||||
Date approach = acceptance.getActualEntryTime();
|
||||
Long shopId = acceptance.getShopId();
|
||||
if (Objects.nonNull(approach)) {
|
||||
LocalDate plusFDays = DateUtils.getPlusFDays(approach, CommonConstants.SIX);//7天
|
||||
if (plusFDays.equals(LocalDate.now())) {
|
||||
ShopInfoDO shopInfoDO = shopIdMap.get(shopId);
|
||||
if (StringUtils.isBlank(shopInfoDO.getSupervisorUserId())) {
|
||||
log.error("定时任务三方待验收钉钉通知,督导id为空,shopId:{}", shopId);
|
||||
}
|
||||
Long lineId = shopInfoDO.getLineId();
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
|
||||
Map<String, String> messageMap = new HashMap<>();
|
||||
messageMap.put("storeName", shopInfoDO.getShopName());
|
||||
messageMap.put("partnerUsername", lineInfo.getUsername());
|
||||
messageMap.put("partnerMobile", lineInfo.getMobile());
|
||||
commonService.sendMessage(Arrays.asList(shopInfoDO.getSupervisorUserId()), MessageEnum.MESSAGE_25, messageMap);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
hasNext = acceptanceInfoDOS.size() >= pageSize;
|
||||
pageNum++;
|
||||
}
|
||||
XxlJobHelper.handleSuccess();
|
||||
}
|
||||
|
||||
@XxlJob("interviewRemind")
|
||||
public void interviewRemind() {
|
||||
log.info("------面试提醒------");
|
||||
String startTime = LocalDateTime.now().plusHours(1).minusMinutes(CommonConstants.FIVE).format(DateTimeFormatter.ofPattern(CoolDateUtils.DATE_FORMAT_SEC));
|
||||
String endTime = LocalDateTime.now().plusHours(1).plusMinutes(CommonConstants.FIVE).format(DateTimeFormatter.ofPattern(CoolDateUtils.DATE_FORMAT_SEC));
|
||||
List<LineInterviewDO> interviewList = lineInterviewDAO.getInterviewRemindList(startTime, endTime);
|
||||
if (CollectionUtils.isEmpty(interviewList)) {
|
||||
log.info("------今日没有待更新数据------");
|
||||
return;
|
||||
}
|
||||
List<Long> lineIds = interviewList.stream().map(LineInterviewDO::getLineId).collect(Collectors.toList());
|
||||
Map<Long, String> lineMobileMap = lineInfoDAO.getLineMobileMap(lineIds);
|
||||
for (LineInterviewDO interview : interviewList) {
|
||||
Map<String, String> templateParamMap = new HashMap<>();
|
||||
templateParamMap.put("interviewTime", DateUtil.format(interview.getStartTime(), "HH:mm"));
|
||||
if (InterviewTypeEnum.INTERVIEW.getCode().equals(interview.getInterviewType())) {
|
||||
commonService.sendSms(lineMobileMap.get(interview.getLineId()), SMSMsgEnum.FIRST_INTERVIEW_REMIND, templateParamMap);
|
||||
}
|
||||
if (InterviewTypeEnum.SECOND_INTERVIEW.getCode().equals(interview.getInterviewType())) {
|
||||
commonService.sendSms(lineMobileMap.get(interview.getLineId()), SMSMsgEnum.SECOND_INTERVIEW_REMIND, templateParamMap);
|
||||
}
|
||||
}
|
||||
XxlJobHelper.handleSuccess();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 店铺新店开业状态更新
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user