Merge remote-tracking branch 'origin/cc_partner_init' into cc_partner_init

This commit is contained in:
bianyadong
2024-05-06 18:30:15 +08:00
24 changed files with 308 additions and 126 deletions

View File

@@ -19,9 +19,9 @@ public enum SMSMsgEnum {
SECOND_INTERVIEW_REMIND("二审前1小时提醒", "", "SMS_465925428"), SECOND_INTERVIEW_REMIND("二审前1小时提醒", "", "SMS_465925428"),
SECOND_INTERVIEW_REAPPOINTMENT("二审重新预约", "", "SMS_465940421"), SECOND_INTERVIEW_REAPPOINTMENT("二审重新预约", "", "SMS_465940421"),
SECOND_INTERVIEW_SUCCESS("二审面审成功", "", "SMS_465980397"), SECOND_INTERVIEW_SUCCESS("二审面审成功", "", "SMS_465980397"),
SELECT_SUCCESS("选铺成功", "", "SMS_465890428"), SELECT_SUCCESS("选铺成功", "", "SMS_465950846"),
RENT_CONTRACT_AUDIT_FAIL("租赁合同上传未通过", "", "SMS_465955429"), RENT_CONTRACT_AUDIT_FAIL("租赁合同上传未通过", "", "SMS_465955429"),
SHOP_EXPERIENCE("门店体验安排", "", "SMS_465900449"), SHOP_EXPERIENCE("门店体验安排", "", "SMS_465905828"),
; ;
private String title; private String title;

View File

@@ -68,4 +68,7 @@ public class AssessmentDataDAO {
return assessmentDataMapper.selectByPrimaryKey(id); return assessmentDataMapper.selectByPrimaryKey(id);
} }
public List<AssessmentDataDO> selectListByShopId(Long shopId) {
return assessmentDataMapper.selectListByShopId(shopId);
}
} }

View File

@@ -94,4 +94,13 @@ public class LineInterviewDAO {
} }
return lineInterviewMapper.batchUpdateInterviewStatus(interviewIds, interviewStatus.getCode()); return lineInterviewMapper.batchUpdateInterviewStatus(interviewIds, interviewStatus.getCode());
} }
/**
* 获取面试提醒列表
* @param intervalMinutes
* @return
*/
public List<LineInterviewDO> getInterviewRemindList(Integer intervalMinutes) {
return lineInterviewMapper.getInterviewRemindList(intervalMinutes);
}
} }

View File

@@ -52,6 +52,15 @@ public class PointInfoDAO {
return pointInfoMapper.updateByPrimaryKeySelective(shopPointInfo); return pointInfoMapper.updateByPrimaryKeySelective(shopPointInfo);
} }
/**
* 完善铺位信息
* @param shopPointInfo
* @return
*/
public Integer perfectPointInfo(PointInfoDO shopPointInfo) {
return pointInfoMapper.perfectPointInfo(shopPointInfo);
}
public Integer updatePointInfoByPrimaryKey(PointInfoDO shopPointInfo) { public Integer updatePointInfoByPrimaryKey(PointInfoDO shopPointInfo) {
return pointInfoMapper.updateByPrimaryKey(shopPointInfo); return pointInfoMapper.updateByPrimaryKey(shopPointInfo);
} }

View File

@@ -8,5 +8,7 @@ import tk.mybatis.mapper.common.Mapper;
import java.util.List; import java.util.List;
public interface AssessmentDataMapper extends Mapper<AssessmentDataDO> { public interface AssessmentDataMapper extends Mapper<AssessmentDataDO> {
Integer batchUpdate( List<AssessmentDataDO> AssessmentDataDOS); Integer batchUpdate(List<AssessmentDataDO> AssessmentDataDOS);
List<AssessmentDataDO> selectListByShopId(@Param("shopId") Long shopId);
} }

View File

@@ -68,4 +68,11 @@ public interface LineInterviewMapper extends Mapper<LineInterviewDO> {
* @return * @return
*/ */
Integer batchUpdateInterviewStatus(@Param("interviewIds") List<Long> interviewIds, @Param("interviewStatus") Integer interviewStatus); Integer batchUpdateInterviewStatus(@Param("interviewIds") List<Long> interviewIds, @Param("interviewStatus") Integer interviewStatus);
/**
* 获取面试提醒列表
* @param intervalMinutes
* @return
*/
List<LineInterviewDO> getInterviewRemindList(@Param("intervalMinutes") Integer intervalMinutes);
} }

View File

@@ -81,4 +81,11 @@ public interface PointInfoMapper extends Mapper<PointInfoDO> {
*/ */
PointInfoDO getDataByShopIdAndLineId(@Param("lineId") Long lineId, PointInfoDO getDataByShopIdAndLineId(@Param("lineId") Long lineId,
@Param("shopId") Long shopId); @Param("shopId") Long shopId);
/**
* 完善铺位信息
* @param request
* @return
*/
Integer perfectPointInfo(@Param("request") PointInfoDO request);
} }

View File

@@ -41,4 +41,9 @@
</foreach> </foreach>
) )
</update> </update>
<select id="selectListByShopId" resultType="com.cool.store.entity.AssessmentDataDO">
select *
from xfsg_assessment_data
where shop_id = #{shopId}
</select>
</mapper> </mapper>

View File

@@ -126,4 +126,8 @@
</foreach> </foreach>
</update> </update>
<select id="getInterviewRemindList" resultMap="BaseResultMap">
select * from xfsg_line_interview where deleted = '0' and interview_type in (1, 2) and start_time between date_sub(now(), interval #{intervalMinutes} minute) and date_add(now(), interval #{intervalMinutes} minute)
</select>
</mapper> </mapper>

View File

@@ -200,5 +200,23 @@
<update id="recyclePoint"> <update id="recyclePoint">
update xfsg_point_info set line_id = null, shop_id = null, select_status = 0, update_time = now(), point_status = if(point_status = 6, 5, point_status) where id = #{pointId} update xfsg_point_info set line_id = null, shop_id = null, select_status = 0, update_time = now(), point_status = if(point_status = 6, 5, point_status) where id = #{pointId}
</update> </update>
<update id="perfectPointInfo">
update
xfsg_point_info
set
point_name = #{request.pointName},
region_id = #{request.regionId},
point_area = #{request.pointArea},
latitude = #{request.latitude},
longitude = #{request.longitude},
address = #{request.address},
province = #{request.province},
city = #{request.city},
district = #{request.district},
township = #{request.township},
point_score = #{request.pointScore}
where id = #{request.id}
</update>
</mapper> </mapper>

View File

@@ -17,22 +17,19 @@ import javax.persistence.Id;
@Data @Data
public class AssessmentDataDTO { public class AssessmentDataDTO {
@ApiModelProperty("模板id") @ApiModelProperty("模板id")
private Long templateId; private Long templateId;
private Long shopId;
/** /**
* 店铺是否合格 * 店铺是否合格
*/ */
@ApiModelProperty("店铺是否合格0合格1不合格") @ApiModelProperty("店铺是否合格0合格1不合格")
private Boolean qualified; private Boolean qualified;
/** /**
* 原因 * 原因
*/ */
@ApiModelProperty("不合格原因") @ApiModelProperty("不合格原因")
private String reason; private String reason;
/** /**
* 评语 * 评语
*/ */

View File

@@ -12,9 +12,11 @@ import lombok.Data;
@Data @Data
public class ThreeAcceptanceDTO { public class ThreeAcceptanceDTO {
@ApiModelProperty("验收签名 ") @ApiModelProperty("验收签名 ")
private String AcceptanceSignatures; private String acceptanceSignatures;
@ApiModelProperty("验收评语") @ApiModelProperty("验收评语")
private String Comments; private String comments;
@ApiModelProperty("0通过1不通过") @ApiModelProperty("0通过1不通过")
private Integer ResultType; private Integer resultType;
@ApiModelProperty("验收时间")
private String acceptanceTime;
} }

View File

@@ -1,5 +1,7 @@
package com.cool.store.entity; package com.cool.store.entity;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
@@ -54,15 +56,16 @@ public class AcceptanceInfoDO {
/** /**
* 工程部验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":1} * 工程部验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":1}
*/ */
@Column(name = "engineering_acceptance_signatures") @Column(name = "engineering_acceptance_signatures")
private String engineeringAcceptanceSignatures; private String engineeringAcceptanceSignatures;
/** /**
* 营运部验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":1} * 营运部验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":1}
*/ */
@Column(name = "operations_acceptance_signatures") @Column(name = "operations_acceptance_signatures")
private String operationsAcceptanceSignatures; private String operationsAcceptanceSignatures;
/** /**
* 加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0} * 加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0}
*/ */

View File

@@ -22,6 +22,4 @@ public class ThreeAcceptanceRequest {
private ThreeAcceptanceDTO operationsAcceptance; private ThreeAcceptanceDTO operationsAcceptance;
@ApiModelProperty("加盟商验收") @ApiModelProperty("加盟商验收")
private ThreeAcceptanceDTO partnerAcceptance; private ThreeAcceptanceDTO partnerAcceptance;
@ApiModelProperty("检查项")
private List<AssessmentDataDO> assessmentDataDOS;
} }

View File

@@ -0,0 +1,21 @@
package com.cool.store.response;
import com.cool.store.dto.decoration.ThreeAcceptanceDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Auther: WangShuo
* @Date: 2024/05/06/下午5:50
* @Version 1.0
* @注释:
*/
@Data
public class ThreeSignResponse {
@ApiModelProperty("工程部验收")
private ThreeAcceptanceDTO engineeringAcceptance;
@ApiModelProperty("营运部验收")
private ThreeAcceptanceDTO operationsAcceptance;
@ApiModelProperty("加盟商验收")
private ThreeAcceptanceDTO partnerAcceptance;
}

View File

@@ -15,4 +15,6 @@ public interface AssessmentDataService {
Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS); Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS);
Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS); Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS);
} }

View File

@@ -3,12 +3,14 @@ package com.cool.store.service;
import com.cool.store.context.LoginUserInfo; import com.cool.store.context.LoginUserInfo;
import com.cool.store.dto.decoration.ConstructionScheduleDTO; import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationModelDTO; import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.dto.decoration.ThreeAcceptanceDTO;
import com.cool.store.request.LinePaySubmitRequest; import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceCheckRequest; import com.cool.store.request.ThreeAcceptanceCheckRequest;
import com.cool.store.request.ThreeAcceptanceRequest; import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.request.BookingAcceptanceRequest; import com.cool.store.request.BookingAcceptanceRequest;
import com.cool.store.response.FitmentResponse; import com.cool.store.response.FitmentResponse;
import com.cool.store.response.ThreeAcceptanceResponse; import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.response.ThreeSignResponse;
import com.cool.store.vo.Fitment.DecorationStageVO; import com.cool.store.vo.Fitment.DecorationStageVO;
import com.cool.store.vo.Fitment.DecorationModelVO; import com.cool.store.vo.Fitment.DecorationModelVO;
import com.cool.store.vo.Fitment.DesignInfoVo; import com.cool.store.vo.Fitment.DesignInfoVo;
@@ -88,19 +90,37 @@ public interface DecorationService {
* @description:提交三方验收检查项 * @description:提交三方验收检查项
*/ */
Boolean submitThreeCheck(ThreeAcceptanceCheckRequest request); Boolean submitThreeCheck(ThreeAcceptanceCheckRequest request);
Boolean submitAcceptance(ThreeAcceptanceRequest request,PartnerUserInfoVO minUser, LoginUserInfo pcUser ); /**
* @Auther: wangshuo
* @Date: 2024/5/6
* @description:查看三方验收检查项
*/
ThreeAcceptanceCheckRequest getThreeChecks(Long shopId);
/**
* @Auther: wangshuo
* @Date: 2024/5/6
* @description:mini提交三方验收检签字
*/
Boolean miniSubmitAcceptanceSign(ThreeAcceptanceRequest request);
/**
* @Auther: wangshuo
* @Date: 2024/5/6
* @description:pc提交三方验收检签字
*/
Boolean pcSubmitAcceptanceSign(ThreeAcceptanceRequest request);
/**
* @Auther: wangshuo
* @Date: 2024/5/6
* @description:查看三方验收签字
*/
List<ThreeAcceptanceDTO> getThreeAcceptanceSign(Long shopId);
/** /**
* @Auther: wangshuo * @Auther: wangshuo
* @Date: 2024/5/3 * @Date: 2024/5/3
* @description:预约验收 * @description:预约验收
*/ */
Boolean bookingAcceptance(BookingAcceptanceRequest response); Boolean bookingAcceptance(BookingAcceptanceRequest response);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:查看三方验收
*/
ThreeAcceptanceResponse getThreeAcceptance(Long shopId);
/** /**
* @Auther: wangshuo * @Auther: wangshuo
* @Date: 2024/5/3 * @Date: 2024/5/3

View File

@@ -28,10 +28,7 @@ import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -109,11 +106,15 @@ public class CommonService {
} }
} }
public void sendSms(String poneNumber, SMSMsgEnum templateCode, List<JSONObject> templateParamList){ public void sendSms(String poneNumber, SMSMsgEnum templateCode){
sendSms(Arrays.asList(poneNumber), templateCode, templateParamList); sendSms(Arrays.asList(poneNumber), templateCode, null);
} }
public void sendSms(List<String> poneNumbers, SMSMsgEnum templateCode, List<JSONObject> templateParamList){ public void sendSms(String poneNumber, SMSMsgEnum templateCode, Map<String, String> templateParamMap){
sendSms(Arrays.asList(poneNumber), templateCode, templateParamMap);
}
public void sendSms(List<String> poneNumbers, SMSMsgEnum templateCode, Map<String, String> templateParamMap){
List<String> signNameList = new ArrayList<>(); List<String> signNameList = new ArrayList<>();
signNameList.add("酷店掌"); signNameList.add("酷店掌");
AsyncClient client = null; AsyncClient client = null;
@@ -134,11 +135,11 @@ public class CommonService {
.phoneNumberJson(JSONObject.toJSONString(poneNumbers)) .phoneNumberJson(JSONObject.toJSONString(poneNumbers))
.signNameJson(JSONObject.toJSONString(signNameList)) .signNameJson(JSONObject.toJSONString(signNameList))
.templateCode(templateCode.getTemplateCode()) .templateCode(templateCode.getTemplateCode())
.templateParamJson(JSONObject.toJSONString(templateParamList)) .templateParamJson("[" + JSONObject.toJSONString(templateParamMap) + "]")
.build(); .build();
CompletableFuture<SendBatchSmsResponse> response = client.sendBatchSms(sendBatchSmsRequest); CompletableFuture<SendBatchSmsResponse> response = client.sendBatchSms(sendBatchSmsRequest);
SendBatchSmsResponse resp = response.get(); SendBatchSmsResponse resp = response.get();
log.info("短信发送response:{}", JSONObject.toJSONString(resp)); log.info("短信发送templateCode:{}, response:{}", templateCode.getTemplateCode(), JSONObject.toJSONString(resp));
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} catch (ExecutionException e) { } catch (ExecutionException e) {

View File

@@ -22,6 +22,7 @@ import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.request.BookingAcceptanceRequest; import com.cool.store.request.BookingAcceptanceRequest;
import com.cool.store.response.FitmentResponse; import com.cool.store.response.FitmentResponse;
import com.cool.store.response.ThreeAcceptanceResponse; import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.response.ThreeSignResponse;
import com.cool.store.service.*; import com.cool.store.service.*;
import com.cool.store.utils.poi.StringUtils; import com.cool.store.utils.poi.StringUtils;
import com.cool.store.vo.Fitment.DecorationStageVO; import com.cool.store.vo.Fitment.DecorationStageVO;
@@ -58,7 +59,7 @@ public class DecorationServiceImpl implements DecorationService {
private static final Logger log = LoggerFactory.getLogger(DecorationServiceImpl.class); private static final Logger log = LoggerFactory.getLogger(DecorationServiceImpl.class);
@Resource @Resource
private ShopAuditInfoDAO shopAuditInfoDAO; private AssessmentDataDAO assessmentDataDAO;
@Resource @Resource
private SysRoleService sysRoleService; private SysRoleService sysRoleService;
@Resource @Resource
@@ -412,9 +413,11 @@ public class DecorationServiceImpl implements DecorationService {
public Boolean submitThreeCheck(ThreeAcceptanceCheckRequest request) { public Boolean submitThreeCheck(ThreeAcceptanceCheckRequest request) {
log.info("submitThreeCheck, request:{} ", JSONObject.toJSONString(request)); log.info("submitThreeCheck, request:{} ", JSONObject.toJSONString(request));
List<AssessmentDataDO> assessmentDataDOS = new ArrayList<>(); List<AssessmentDataDO> assessmentDataDOS = new ArrayList<>();
BeanUtil.copyProperties(request.getAssessmentDataDTOS(),assessmentDataDOS); for (AssessmentDataDTO assessmentDataDTO : request.getAssessmentDataDTOS()) {
for(AssessmentDataDO assessmentDataDO : assessmentDataDOS){ AssessmentDataDO assessmentDataDO = new AssessmentDataDO();
BeanUtil.copyProperties(assessmentDataDTO, assessmentDataDO);
assessmentDataDO.setShopId(request.getShopId()); assessmentDataDO.setShopId(request.getShopId());
assessmentDataDOS.add(assessmentDataDO);
} }
Boolean assessment = assessmentDataService.batchInsert(assessmentDataDOS); Boolean assessment = assessmentDataService.batchInsert(assessmentDataDOS);
if (assessment == Boolean.FALSE) { if (assessment == Boolean.FALSE) {
@@ -424,6 +427,53 @@ public class DecorationServiceImpl implements DecorationService {
return assessment; return assessment;
} }
@Override
public ThreeAcceptanceCheckRequest getThreeChecks(Long shopId) {
List<AssessmentDataDO> assessmentDataDOS = assessmentDataDAO.selectListByShopId(shopId);
List<AssessmentDataDTO> assessmentDataDTOS = new ArrayList<>();
for (AssessmentDataDO assessmentDataDO : assessmentDataDOS) {
AssessmentDataDTO assessmentDataDTO = new AssessmentDataDTO();
BeanUtil.copyProperties(assessmentDataDO, assessmentDataDTO);
assessmentDataDTOS.add(assessmentDataDTO);
}
ThreeAcceptanceCheckRequest threeAcceptanceCheckRequest = new ThreeAcceptanceCheckRequest();
threeAcceptanceCheckRequest.setShopId(shopId);
threeAcceptanceCheckRequest.setAssessmentDataDTOS(assessmentDataDTOS);
return threeAcceptanceCheckRequest;
}
@Override
public Boolean miniSubmitAcceptanceSign(ThreeAcceptanceRequest request) {
try {
//工程部验收签名
JSONObject engineering = new JSONObject();
engineering.put("pic", request.getEngineeringAcceptance().getAcceptanceSignatures());
engineering.put("acceptanceTime", new Date());
engineering.put("result", request.getEngineeringAcceptance().getResultType());
engineering.put("remark", request.getEngineeringAcceptance().getComments());
engineering.put("status", 1);
//加盟商
JSONObject partner = new JSONObject();
partner.put("pic", request.getPartnerAcceptance().getAcceptanceSignatures());
partner.put("acceptanceTime", new Date());
partner.put("result", request.getPartnerAcceptance().getResultType());
partner.put("remark", request.getPartnerAcceptance().getComments());
partner.put("status", 1);
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
acceptanceInfoDO.setShopId(request.getShopId());
acceptanceInfoDO.setPartnerAcceptanceSignatures(partner.toString());
acceptanceInfoDO.setEngineeringAcceptanceSignatures(engineering.toString());
acceptanceInfoDO.setUpdateTime(new Date());
acceptanceInfoDAO.updateAcceptanceInfo(acceptanceInfoDO);
//更新阶段状态验收中
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_122);
return Boolean.TRUE;
} catch (Exception e) {
log.error("mini提交三方验收失败");
throw new ServiceException(ErrorCodeEnum.THREE_ACCEPTANCE);
}
}
@Override @Override
public PageInfo<fitmentCheckVO> getFitmentAcceptanceList(Integer subStageStatus, LoginUserInfo user, Integer pageNum, Integer pageSize) { public PageInfo<fitmentCheckVO> getFitmentAcceptanceList(Integer subStageStatus, LoginUserInfo user, Integer pageNum, Integer pageSize) {
List<String> authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId()); List<String> authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId());
@@ -532,51 +582,14 @@ public class DecorationServiceImpl implements DecorationService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Boolean submitAcceptance(ThreeAcceptanceRequest request, PartnerUserInfoVO minUser, LoginUserInfo pcUser) { public Boolean pcSubmitAcceptanceSign(ThreeAcceptanceRequest request) {
log.info("submitAcceptance, request:{} ", JSONObject.toJSONString(request)); log.info("submitAcceptance, request:{} ", JSONObject.toJSONString(request));
if (Objects.nonNull(minUser)) { //营运部验收签名
try { try {
//插入检查项 AcceptanceInfoDO acceptanceInfoDO1 = acceptanceInfoDAO.selectByShopId(request.getShopId());
for (AssessmentDataDO assessmentDataDO : request.getAssessmentDataDOS()) { if (StringUtils.isNotEmpty(acceptanceInfoDO1.getEngineeringAcceptanceSignatures())
//TODO 考核人是谁? && StringUtils.isNotEmpty(acceptanceInfoDO1.getPartnerAcceptanceSignatures())
assessmentDataDO.setAssessmentUserId(minUser.getPartnerId()); && Objects.nonNull(request.getOperationsAcceptance())) {
}
Boolean assessment = assessmentDataService.batchInsert(request.getAssessmentDataDOS());
if (assessment == Boolean.FALSE) {
log.error("三方验收插入检查项失败");
throw new ServiceException(ErrorCodeEnum.CHECK_ITEM);
}
//工程部验收签名
JSONObject engineering = new JSONObject();
engineering.put("pic", request.getEngineeringAcceptance().getAcceptanceSignatures());
engineering.put("acceptanceTime", new Date());
engineering.put("result", request.getEngineeringAcceptance().getResultType());
engineering.put("remark", request.getEngineeringAcceptance().getComments());
engineering.put("status", 1);
//加盟商
JSONObject partner = new JSONObject();
partner.put("pic", request.getPartnerAcceptance().getAcceptanceSignatures());
partner.put("acceptanceTime", new Date());
partner.put("result", request.getPartnerAcceptance().getResultType());
partner.put("remark", request.getPartnerAcceptance().getComments());
partner.put("status", 1);
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
acceptanceInfoDO.setShopId(request.getShopId());
acceptanceInfoDO.setPartnerAcceptanceSignatures(partner.toString());
acceptanceInfoDO.setEngineeringAcceptanceSignatures(engineering.toString());
acceptanceInfoDO.setUpdateTime(new Date());
acceptanceInfoDAO.updateAcceptanceInfo(acceptanceInfoDO);
//更新阶段状态验收中
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_122);
return Boolean.TRUE;
} catch (Exception e) {
log.error("mini提交三方验收失败");
throw new ServiceException(ErrorCodeEnum.THREE_ACCEPTANCE);
}
} else {
//营运部验收签名
try {
AcceptanceInfoDO acceptanceInfoDO1 = acceptanceInfoDAO.selectByShopId(request.getShopId());
JSONObject engineering = JSONObject.parseObject(acceptanceInfoDO1.getEngineeringAcceptanceSignatures()); JSONObject engineering = JSONObject.parseObject(acceptanceInfoDO1.getEngineeringAcceptanceSignatures());
JSONObject partner = JSONObject.parseObject(acceptanceInfoDO1.getPartnerAcceptanceSignatures()); JSONObject partner = JSONObject.parseObject(acceptanceInfoDO1.getPartnerAcceptanceSignatures());
JSONObject operations = new JSONObject(); JSONObject operations = new JSONObject();
@@ -594,19 +607,57 @@ public class DecorationServiceImpl implements DecorationService {
&& AuditResultTypeEnum.PASS.getCode() == partner.getInteger("result") && AuditResultTypeEnum.PASS.getCode() == partner.getInteger("result")
&& AuditResultTypeEnum.PASS.getCode() == engineering.getInteger("result")) { && AuditResultTypeEnum.PASS.getCode() == engineering.getInteger("result")) {
//更新阶段状态验收完毕 //更新阶段状态验收完毕
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123,null); shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123, null);
preparationService.whetherToOpenForAcceptance(request.getShopId()); preparationService.whetherToOpenForAcceptance(request.getShopId());
} else { } else {
//未通过至为带预约 //未通过至为带预约
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120, null); shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120, null);
} }
} catch (Exception e) {
log.error("PC提交三方验收失败");
throw new ServiceException(ErrorCodeEnum.THREE_ACCEPTANCE);
} }
return Boolean.TRUE;
} catch (Exception e) {
log.error("PC提交三方验收失败");
throw new ServiceException(ErrorCodeEnum.THREE_ACCEPTANCE);
} }
return Boolean.FALSE;
}
@Override
public List<ThreeAcceptanceDTO> getThreeAcceptanceSign(Long shopId) {
List<ThreeAcceptanceDTO> threeAcceptanceDTOS = new ArrayList<>();
AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoDAO.selectByShopId(shopId);
//工程部
if (StringUtils.isNotEmpty(acceptanceInfoDO.getEngineeringAcceptanceSignatures())) {
JSONObject engineering = JSONObject.parseObject(acceptanceInfoDO.getEngineeringAcceptanceSignatures());
ThreeAcceptanceDTO engineeringDTO = new ThreeAcceptanceDTO();
engineeringDTO.setAcceptanceSignatures(engineering.getString("pic"));
engineeringDTO.setComments(engineering.getString("remark"));
engineeringDTO.setResultType(engineering.getInteger("result"));
engineeringDTO.setAcceptanceTime(engineering.getString("acceptanceTime"));
threeAcceptanceDTOS.add(CommonConstants.ZERO, engineeringDTO);
}
//营运部
if (StringUtils.isNotEmpty(acceptanceInfoDO.getOperationsAcceptanceSignatures())) {
JSONObject operations = JSONObject.parseObject(acceptanceInfoDO.getOperationsAcceptanceSignatures());
ThreeAcceptanceDTO operationsDTO = new ThreeAcceptanceDTO();
operationsDTO.setAcceptanceSignatures(operations.getString("pic"));
operationsDTO.setComments(operations.getString("remark"));
operationsDTO.setResultType(operations.getInteger("result"));
operationsDTO.setAcceptanceTime(operations.getString("acceptanceTime"));
threeAcceptanceDTOS.add(CommonConstants.ONE, operationsDTO);
}
//加盟商
if (StringUtils.isNotEmpty(acceptanceInfoDO.getPartnerAcceptanceSignatures())) {
JSONObject partner = JSONObject.parseObject(acceptanceInfoDO.getPartnerAcceptanceSignatures());
ThreeAcceptanceDTO partnerDTO = new ThreeAcceptanceDTO();
partnerDTO.setAcceptanceSignatures(partner.getString("pic"));
partnerDTO.setComments(partner.getString("remark"));
partnerDTO.setResultType(partner.getInteger("result"));
partnerDTO.setAcceptanceTime(partner.getString("acceptanceTime"));
threeAcceptanceDTOS.add(CommonConstants.TWO, partnerDTO);
}
return threeAcceptanceDTOS;
} }
@Override @Override
@@ -620,14 +671,7 @@ public class DecorationServiceImpl implements DecorationService {
return Boolean.TRUE; return Boolean.TRUE;
} }
@Override
public ThreeAcceptanceResponse getThreeAcceptance(Long shopId) {
AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoDAO.selectByShopId(shopId);
ThreeAcceptanceResponse response = new ThreeAcceptanceResponse();
BeanUtil.copyProperties(acceptanceInfoDO, response);
response.setAcceptanceTime(acceptanceInfoDO.getUpdateTime());
return response;
}
private DecorationDTO getDecorationDTO(Long shopId) { private DecorationDTO getDecorationDTO(Long shopId) {
List<Long> shopIds = new ArrayList<>(); List<Long> shopIds = new ArrayList<>();

View File

@@ -142,7 +142,7 @@ public class PointServiceImpl implements PointService {
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
} }
shopPointInfo.setPointScore(shopPoint.getTotalPointScore()); shopPointInfo.setPointScore(shopPoint.getTotalPointScore());
pointInfoDAO.updatePointInfo(shopPointInfo); pointInfoDAO.perfectPointInfo(shopPointInfo);
pointDetailInfoDAO.updatePartFieldPointDetail(shopPoint); pointDetailInfoDAO.updatePartFieldPointDetail(shopPoint);
return shopPointDetailRequest.getPointId(); return shopPointDetailRequest.getPointId();
} }
@@ -382,9 +382,9 @@ public class PointServiceImpl implements PointService {
private void initUploadRentContract(PointInfoDO pointInfo) { private void initUploadRentContract(PointInfoDO pointInfo) {
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(pointInfo.getLineId()); LineInfoDO lineInfo = lineInfoDAO.getLineInfo(pointInfo.getLineId());
shopStageInfoDAO.batchUpdateShopStageStatus(pointInfo.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20)); shopStageInfoDAO.batchUpdateShopStageStatus(pointInfo.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20));
JSONObject templateParam = new JSONObject(); Map<String, String> templateParam = new HashMap<>();
templateParam.put("pointName", pointInfo.getAddress()); templateParam.put("pointName", pointInfo.getAddress());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SELECT_SUCCESS, Arrays.asList(templateParam)); commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SELECT_SUCCESS, templateParam);
} }
@Override @Override
@@ -760,10 +760,10 @@ public class PointServiceImpl implements PointService {
if(PointStatusEnum.POINT_STATUS_5.getCode().equals(pointInfo.getPointStatus())){ if(PointStatusEnum.POINT_STATUS_5.getCode().equals(pointInfo.getPointStatus())){
selectStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12; selectStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_12;
updateStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20); updateStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_20);
JSONObject templateParam = new JSONObject(); Map<String, String> templateParam = new HashMap<>();
templateParam.put("pointName", pointInfo.getAddress()); templateParam.put("pointName", pointInfo.getAddress());
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SELECT_SUCCESS, Arrays.asList(templateParam)); commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.SELECT_SUCCESS, templateParam);
} }
updateStatusList.add(selectStatus); updateStatusList.add(selectStatus);
shopStageInfoDAO.batchUpdateShopStageStatus(shopId, updateStatusList); shopStageInfoDAO.batchUpdateShopStageStatus(shopId, updateStatusList);

View File

@@ -74,14 +74,10 @@ public class PCDecorationController {
public ResponseResult<Boolean> submitBookingAcceptance(@RequestBody BookingAcceptanceRequest response){ public ResponseResult<Boolean> submitBookingAcceptance(@RequestBody BookingAcceptanceRequest response){
return ResponseResult.success(decorationService.bookingAcceptance(response)); return ResponseResult.success(decorationService.bookingAcceptance(response));
} }
@ApiOperation("查看三方验收")
@GetMapping("/getThreeAcceptance") @ApiOperation("提交三方验收签字")
public ResponseResult<ThreeAcceptanceResponse> getThreeAcceptance(@RequestParam Long shopId){ @PostMapping("/submitThreeAcceptanceSign")
return ResponseResult.success(decorationService.getThreeAcceptance(shopId)); public ResponseResult<Boolean> submitThreeAcceptanceSign(@RequestBody ThreeAcceptanceRequest request){
} return ResponseResult.success(decorationService.pcSubmitAcceptanceSign(request));
@ApiOperation("提交三方验收")
@PostMapping("/submitThreeAcceptance")
public ResponseResult<Boolean> submitThreeAcceptance(@RequestBody ThreeAcceptanceRequest request){
return ResponseResult.success(decorationService.submitAcceptance(request,null, CurrentUserHolder.getUser()));
} }
} }

View File

@@ -1,25 +1,18 @@
package com.cool.store.controller.webb; package com.cool.store.controller.webb;
import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*; import com.cool.store.dao.*;
import com.cool.store.dto.OpenCityDTO;
import com.cool.store.entity.*; import com.cool.store.entity.*;
import com.cool.store.enums.MessageEnum; import com.cool.store.enums.MessageEnum;
import com.cool.store.enums.SMSMsgEnum; import com.cool.store.enums.SMSMsgEnum;
import com.cool.store.mapper.HyOpenAreaInfoMapper;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.service.ShopService; import com.cool.store.service.ShopService;
import com.cool.store.service.impl.CommonService; import com.cool.store.service.impl.CommonService;
import com.cool.store.utils.poi.ExcelUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
@@ -32,6 +25,8 @@ public class PCTestController {
private LineInfoDAO lineInfoDAO; private LineInfoDAO lineInfoDAO;
@Resource @Resource
private ShopService shopService; private ShopService shopService;
@Resource
private LineInterviewDAO lineInterviewDAO;
@GetMapping("/sendMessage") @GetMapping("/sendMessage")
@@ -42,9 +37,14 @@ public class PCTestController {
@GetMapping("/sendSms") @GetMapping("/sendSms")
public ResponseResult<Boolean> sendSms(){ public ResponseResult<Boolean> sendSms(){
JSONObject templateParam = new JSONObject(); List<LineInterviewDO> interviewList = lineInterviewDAO.getInterviewRemindList(CommonConstants.FIVE);
templateParam.put("pointName", "杭州市西湖区"); Map<String, String> templateParam = new HashMap<>();
commonService.sendSms("17681878615", SMSMsgEnum.RENT_CONTRACT_AUDIT_FAIL, Arrays.asList(templateParam)); templateParam.put("pointName", "杭州门店A");
List<SMSMsgEnum> smsMsgList = new ArrayList<>();
smsMsgList.add(SMSMsgEnum.SELECT_SUCCESS);
for (SMSMsgEnum value : smsMsgList) {
commonService.sendSms("17681878615", value, templateParam);
}
return ResponseResult.success(Boolean.FALSE); return ResponseResult.success(Boolean.FALSE);
} }

View File

@@ -3,12 +3,14 @@ package com.cool.store.controller.webc;
import com.cool.store.context.PartnerUserHolder; import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dto.decoration.ConstructionScheduleDTO; import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationModelDTO; import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.dto.decoration.ThreeAcceptanceDTO;
import com.cool.store.request.LinePaySubmitRequest; import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceCheckRequest; import com.cool.store.request.ThreeAcceptanceCheckRequest;
import com.cool.store.request.ThreeAcceptanceRequest; import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.FitmentResponse; import com.cool.store.response.FitmentResponse;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.response.ThreeAcceptanceResponse; import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.response.ThreeSignResponse;
import com.cool.store.service.AssessmentTemplateService; import com.cool.store.service.AssessmentTemplateService;
import com.cool.store.service.DecorationService; import com.cool.store.service.DecorationService;
import com.cool.store.vo.AssessmentTemplateVO; import com.cool.store.vo.AssessmentTemplateVO;
@@ -76,7 +78,7 @@ public class MiniDecorationController {
PartnerUserInfoVO user = PartnerUserHolder.getUser(); PartnerUserInfoVO user = PartnerUserHolder.getUser();
return ResponseResult.success(decorationService.getDecorationModel(shopId,user)); return ResponseResult.success(decorationService.getDecorationModel(shopId,user));
} }
@ApiOperation("获取三方验收检查项") @ApiOperation("获取三方验收模板检查项")
@GetMapping("/getChecks") @GetMapping("/getChecks")
public ResponseResult<List<AssessmentTemplateVO>> getChecks(@RequestParam Integer type){ public ResponseResult<List<AssessmentTemplateVO>> getChecks(@RequestParam Integer type){
return ResponseResult.success(assessmentTemplateService.listByType(type)); return ResponseResult.success(assessmentTemplateService.listByType(type));
@@ -86,15 +88,20 @@ public class MiniDecorationController {
public ResponseResult<Boolean> submitThreeChecks(@RequestBody ThreeAcceptanceCheckRequest request){ public ResponseResult<Boolean> submitThreeChecks(@RequestBody ThreeAcceptanceCheckRequest request){
return ResponseResult.success(decorationService.submitThreeCheck(request)); return ResponseResult.success(decorationService.submitThreeCheck(request));
} }
@ApiOperation("提交三方验收") @ApiOperation("获取三方验收检查项")
@PostMapping("/submitThreeAcceptance") @GetMapping("/getAcceptanceChecks")
public ResponseResult<Boolean> submitThreeAcceptance(@RequestBody ThreeAcceptanceRequest request){ public ResponseResult<ThreeAcceptanceCheckRequest> getAcceptanceChecks(@RequestParam Long shopId){
PartnerUserInfoVO user = PartnerUserHolder.getUser(); return ResponseResult.success(decorationService.getThreeChecks(shopId));
return ResponseResult.success(decorationService.submitAcceptance(request,user,null));
} }
@ApiOperation("查看三方验收") @ApiOperation("提交三方验收签字")
@GetMapping("/getThreeAcceptance") @PostMapping("/submitThreeAcceptanceSign")
public ResponseResult<ThreeAcceptanceResponse> getThreeAcceptance(@RequestParam Long shopId){ public ResponseResult<Boolean> submitThreeAcceptance(@RequestBody ThreeAcceptanceRequest request){
return ResponseResult.success(decorationService.getThreeAcceptance(shopId));
return ResponseResult.success(decorationService.miniSubmitAcceptanceSign(request));
}
@ApiOperation("查看三方验收签字")
@GetMapping("/getThreeSign")
public ResponseResult<List<ThreeAcceptanceDTO> > getThreeAcceptance(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getThreeAcceptanceSign(shopId));
} }
} }

View File

@@ -1,5 +1,6 @@
package com.cool.store.job; package com.cool.store.job;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants; import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*; import com.cool.store.dao.*;
@@ -19,6 +20,8 @@ import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.service.CoolStoreStartFlowService; import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.DecorationService; import com.cool.store.service.DecorationService;
import com.cool.store.service.PreparationService; import com.cool.store.service.PreparationService;
import com.cool.store.service.impl.CommonService;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.utils.poi.StringUtils; import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants; import com.cool.store.utils.poi.constant.Constants;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
@@ -68,6 +71,8 @@ public class XxlJobHandler {
private AcceptanceInfoDAO acceptanceInfoDAO; private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource @Resource
private DecorationService decorationService; private DecorationService decorationService;
@Resource
private CommonService commonService;
/** /**
* 每天都将待体验门店信息变更到体验中 * 每天都将待体验门店信息变更到体验中
@@ -223,4 +228,26 @@ public class XxlJobHandler {
} }
} }
@XxlJob("interviewRemind")
public void interviewRemind() {
log.info("------面试提醒------");
List<LineInterviewDO> interviewList = lineInterviewDAO.getInterviewRemindList(CommonConstants.FIVE);
if (CollectionUtils.isEmpty(interviewList)) {
log.info("------今日没有待更新数据------");
return;
}
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(interview.getInterviewerUserId(), SMSMsgEnum.FIRST_INTERVIEW_REMIND, templateParamMap);
}
if(InterviewTypeEnum.SECOND_INTERVIEW.getCode().equals(interview.getInterviewType())){
commonService.sendSms(interview.getInterviewerUserId(), SMSMsgEnum.SECOND_INTERVIEW_REMIND, templateParamMap);
}
}
XxlJobHelper.handleSuccess();
}
} }