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

This commit is contained in:
zhangchenbiao
2024-05-06 16:43:34 +08:00
43 changed files with 1084 additions and 220 deletions

View File

@@ -34,4 +34,13 @@ public enum LicenseTypeEnum {
}
return null;
}
public static LicenseTypeEnum matchName(String name) {
for (LicenseTypeEnum type : LicenseTypeEnum.values()) {
if (type.getMessage().equals(name)) {
return type;
}
}
return null;
}
}

View File

@@ -21,11 +21,11 @@ public class AcceptanceInfoDAO {
@Resource
private AcceptanceInfoMapper acceptanceInfoMapper;
public Long insertAcceptanceInfo(AcceptanceInfoDO acceptanceInfoDO){
public Long insertSelectiveAcceptanceInfo(AcceptanceInfoDO acceptanceInfoDO){
if (Objects.isNull(acceptanceInfoDO)){
return null;
}
acceptanceInfoMapper.insert(acceptanceInfoDO);
acceptanceInfoMapper.insertSelective(acceptanceInfoDO);
return acceptanceInfoDO.getId();
}
public List<AcceptanceInfoDO> selectAcceptanceInfoBySignatures(Integer status){

View File

@@ -39,8 +39,11 @@ public class AssessmentDataDAO {
return 0;
}
public List<AssessmentDataDO> selectList(Long shopId, String userId) {
return assessmentDataMapper.select(AssessmentDataDO.builder().shopId(shopId).assessmentUserId(userId).build());
public List<AssessmentDataDO> selectList(Long shopId, String userId, List<Long> templateIdList) {
Example example = new Example(AssessmentDataDO.class);
example.createCriteria().andEqualTo("assessmentUserId", userId).andEqualTo("shopId", shopId).andIn("templateId", templateIdList);
return assessmentDataMapper.selectByExample(example);
}
public AssessmentDataDO selectByTemplateId(Long templateId, String userId, Long shopId) {
@@ -60,4 +63,9 @@ public class AssessmentDataDAO {
example.createCriteria().andEqualTo("assessmentUserId", userId).andEqualTo("shopId", shopId).andIsNotNull("qualified");
return assessmentDataMapper.selectCountByExample(example);
}
public AssessmentDataDO selectByPrimaryKey(Long id) {
return assessmentDataMapper.selectByPrimaryKey(id);
}
}

View File

@@ -56,5 +56,11 @@ public class EmployeeTrainingDAO {
return employeeTrainingMapper.trainingListByShopId(shopId, trainingTeacherUserId, status);
}
public List<EmployeeTrainingVO> assessmentUserList(String name, String practicalAssessmentUserId,
Integer assessmentStatus,
String estimatedAssessmentBeginTime, String estimatedAssessmentEndTime,
String actualAssessmentBeginTime, String actualAssessmentEndTime) {
return employeeTrainingMapper.assessmentUserList(name, practicalAssessmentUserId, assessmentStatus, estimatedAssessmentBeginTime,
estimatedAssessmentEndTime, actualAssessmentBeginTime, actualAssessmentEndTime);
}
}

View File

@@ -11,13 +11,19 @@ import java.util.List;
public interface EmployeeTrainingMapper extends Mapper<EmployeeTrainingDO> {
List<EmployeeTrainingVO> employeeTrainingMapper(@Param("keyWord") String keyWord, @Param("regionIdList") List<String> regionIdList,
@Param("authRegionIdList") List<String> authRegionIdList, @Param("assignFlag") Boolean assignFlag,
@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("shopIdList") List<Long> shopIdList,
@Param("theoreticalExamStatus") Integer theoreticalExamStatus,
@Param("practicalExamStatus") Integer practicalExamStatus,
@Param("assessmentStatus") Integer assessmentStatus);
List<EmployeeTrainingVO> employeeTrainingMapper(@Param("keyWord") String keyWord, @Param("regionIdList") List<String> regionIdList,
@Param("authRegionIdList") List<String> authRegionIdList, @Param("assignFlag") Boolean assignFlag,
@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("shopIdList") List<Long> shopIdList,
@Param("theoreticalExamStatus") Integer theoreticalExamStatus,
@Param("practicalExamStatus") Integer practicalExamStatus,
@Param("assessmentStatus") Integer assessmentStatus);
List<EmployeeTrainingVO> trainingListByShopId(@Param("shopId") Long shopId, @Param("trainingTeacherUserId") String trainingTeacherUserId,
@Param("status") Integer status);
List<EmployeeTrainingVO> trainingListByShopId(@Param("shopId") Long shopId, @Param("trainingTeacherUserId") String trainingTeacherUserId,
@Param("status") Integer status);
List<EmployeeTrainingVO> assessmentUserList(@Param("name") String name, @Param("practicalAssessmentUserId") String practicalAssessmentUserId,
@Param("assessmentStatus") Integer assessmentStatus,
@Param("estimatedAssessmentBeginTime") String estimatedAssessmentBeginTime, @Param("estimatedAssessmentEndTime") String estimatedAssessmentEndTime,
@Param("actualAssessmentBeginTime") String actualAssessmentBeginTime, @Param("actualAssessmentEndTime") String actualAssessmentEndTime
);
}

View File

@@ -124,4 +124,55 @@
and u.shop_id = #{shopId}
</if>
</select>
<select id="assessmentUserList" resultType="com.cool.store.vo.EmployeeTrainingVO">
select
u.id,
u.username,
u.mobile,
u.region_id as regionId,
u.role_id as roleId,
u.shop_id as shopId,
s.shop_name as shopName,
u.id_card as idCard,
e.id as employeeTrainingId,
e.training_store_id as trainingStoreId,
e.training_teacher_user_id as trainingTeacherUserId,
e.practical_assessment_user_id as practicalAssessmentUserId,
e.assessment_num as assessmentNum,
e.assessment_total_num as assessmentTotalNum,
e.theoretical_exam_status as theoreticalExamStatus,
e.theoretical_exam_score as theoreticalExamScore,
e.practical_exam_status as practicalExamStatus,
e.practical_exam_score as practicalExamScore,
e.assessment_status as assessmentStatus,
e.estimated_assessment_time as estimatedAssessmentTime,
e.actual_assessment_time as actualAssessmentTime,
e.training_start_time as trainingStartTime,
e.training_end_time as trainingEndTime
from xfsg_temp_user_detail u
left join xfsg_employee_training e on e.xfsg_user_detail_id = u.id
left join xfsg_shop_info s on s.id = u.shop_id
where u.deleted = 0
<if test="practicalAssessmentUserId != null and practicalAssessmentUserId != ''">
and e.practical_assessment_user_id = #{practicalAssessmentUserId}
</if>
<if test="assessmentStatus != null">
and e.assessment_status = #{assessmentStatus}
</if>
<if test="estimatedAssessmentBeginTime != null and estimatedAssessmentBeginTime != ''">
and e.estimated_assessment_time &gt;= #{estimatedAssessmentBeginTime}
</if>
<if test="estimatedAssessmentEndTime != null and estimatedAssessmentEndTime != ''">
and e.estimated_assessment_time &lt;= #{estimatedAssessmentEndTime}
</if>
<if test="actualAssessmentBeginTime != null and actualAssessmentBeginTime != ''">
and e.actual_assessment_time &gt;= #{actualAssessmentBeginTime}
</if>
<if test="actualAssessmentEndTime != null and actualAssessmentEndTime != ''">
and e.actual_assessment_time &lt;= #{actualAssessmentEndTime}
</if>
<if test="name != null and name != ''">
and u.username like concat('%',#{name},'%')
</if>
</select>
</mapper>

View File

@@ -0,0 +1,42 @@
package com.cool.store.dto.decoration;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
/**
* @Auther: WangShuo
* @Date: 2024/05/06/下午3:31
* @Version 1.0
* @注释:
*/
@Data
public class AssessmentDataDTO {
@ApiModelProperty("模板id")
private Long templateId;
private Long shopId;
/**
* 店铺是否合格
*/
@ApiModelProperty("店铺是否合格0合格1不合格")
private Boolean qualified;
/**
* 原因
*/
@ApiModelProperty("不合格原因")
private String reason;
/**
* 评语
*/
@ApiModelProperty("评语")
private String comments;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.dto.decoration;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Auther: WangShuo
* @Date: 2024/05/06/下午3:09
* @Version 1.0
* @注释:
*/
@Data
public class ThreeAcceptanceDTO {
@ApiModelProperty("验收签名 ")
private String AcceptanceSignatures;
@ApiModelProperty("验收评语")
private String Comments;
@ApiModelProperty("0通过1不通过")
private Integer ResultType;
}

View File

@@ -99,7 +99,7 @@ public class EmployeeTrainingDO {
* 理论考试状态 0-未开始 1-合格 2-不合格
*/
@Column(name = "theoretical_exam_status")
private Byte theoreticalExamStatus;
private Integer theoreticalExamStatus;
/**
* 理论考试分值
@@ -111,7 +111,7 @@ public class EmployeeTrainingDO {
* 实操考试状态 0-未开始 1-合格 2-不合格
*/
@Column(name = "practical_exam_status")
private Byte practicalExamStatus;
private Integer practicalExamStatus;
/**
* 实操考试分值
@@ -123,7 +123,7 @@ public class EmployeeTrainingDO {
* 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*/
@Column(name = "assessment_status")
private Byte assessmentStatus;
private Integer assessmentStatus;
/**
* 创建时间

View File

@@ -0,0 +1,20 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author byd
* @date 2024-04-30 17:30
*/
@Data
public class EmployeeAssessmentCommitListRequest {
@ApiModelProperty("培训id")
private Long employeeTrainingId;
@ApiModelProperty("培训考核结果列表")
List<EmployeeAssessmentCommitRequest> list;
}

View File

@@ -0,0 +1,27 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author byd
* @date 2024-04-30 11:10
*/
@Data
public class EmployeeAssessmentCommitRequest {
@ApiModelProperty("数据项id")
private Long id;
@ApiModelProperty("模版id")
private Long templateId;
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("得分")
private Long score;
@ApiModelProperty("评语")
private String comments;
}

View File

@@ -0,0 +1,37 @@
package com.cool.store.request;
import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author byd
* @date 2024-04-30 11:10
*/
@Data
public class EmployeeAssessmentRequest extends PageBasicInfo {
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("预计考核时间-开始")
private Long estimatedAssessmentBeginTime;
@ApiModelProperty("预计考核时间-结束")
private Long estimatedAssessmentEndTime;
@ApiModelProperty("实际考核时间-开始")
private Long actualAssessmentBeginTime;
@ApiModelProperty("实际考核时间-结束")
private Long actualAssessmentEndTime;
@ApiModelProperty("实训门店id列表")
private List<String> storeIdList;
@ApiModelProperty("考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过")
private Integer assessmentStatus;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author byd
* @date 2024-04-30 11:10
*/
@Data
public class EmployeeAssessmentTurnRequest {
@ApiModelProperty("员工id")
private Long id;
@ApiModelProperty("转交人id")
private String turnUserId;
}

View File

@@ -10,9 +10,11 @@ import lombok.Data;
@Data
public class EmployeeTrainingCommitRequest {
@ApiModelProperty("数据项id")
private Long id;
@ApiModelProperty("模版id")
private Long templateId;
private Long templateId;
@ApiModelProperty("店铺id")
private Long shopId;
@@ -25,6 +27,4 @@ public class EmployeeTrainingCommitRequest {
*/
@ApiModelProperty("店铺是否合格")
private Boolean qualified;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request;
import com.cool.store.dto.decoration.AssessmentDataDTO;
import com.cool.store.entity.AssessmentDataDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/05/06/下午3:17
* @Version 1.0
* @注释:
*/
@Data
public class ThreeAcceptanceCheckRequest {
private Long shopId;
@ApiModelProperty("检查项")
private List<AssessmentDataDTO> assessmentDataDTOS;
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.request;
import com.cool.store.dto.decoration.ThreeAcceptanceDTO;
import com.cool.store.entity.AssessmentDataDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -15,24 +16,12 @@ import java.util.List;
@Data
public class ThreeAcceptanceRequest {
private Long shopId;
@ApiModelProperty("工程部验收签名 {pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String engineeringAcceptanceSignatures;
@ApiModelProperty("工程部验收评语")
private String engineeringComments;
@ApiModelProperty("0通过1不通过")
private Integer engineeringResultType;
@ApiModelProperty("营运部验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String operationsAcceptanceSignatures;
@ApiModelProperty("营运部验收评语")
private String operationsComments;
@ApiModelProperty("0通过1不通过")
private Integer operationsResultType;
@ApiModelProperty("加盟商验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":0}")
private String partnerAcceptanceSignatures;
@ApiModelProperty("加盟商验收评语")
private String partnerComments;
@ApiModelProperty("0通过1不通过")
private Integer partnerResultType;
@ApiModelProperty("工程部验收")
private ThreeAcceptanceDTO engineeringAcceptance;
@ApiModelProperty("营运部验收")
private ThreeAcceptanceDTO operationsAcceptance;
@ApiModelProperty("加盟商验收")
private ThreeAcceptanceDTO partnerAcceptance;
@ApiModelProperty("检查项")
private List<AssessmentDataDO> assessmentDataDOS;
}

View File

@@ -0,0 +1,165 @@
package com.cool.store.response;
import lombok.Data;
@Data
public class GetStoreInfoByCodeResponse {
/**
* 返回结果代码
* 结果代码
*/
private Integer code;
/**
* 返回结果数据
* 结果数据
*/
private InnerData data;
/**
* 提示信息
*/
private String message;
@Data
public static class InnerData {
/**
* 开店状态0=关店1=开店
*/
private String closeTime;
/**
* 加盟商编码
*/
private String franchiseeId;
/**
* 开店状态0=关店1=开店
*/
private Long hdStatus;
/**
* 维度
*/
private String latitude;
/**
* 经度
*/
private String longitude;
/**
* 门店开业时间
*/
private String openDate;
/**
* 开店状态0=关店1=开店
*/
private String openTime;
/**
* 门店地址
*/
private String storeAdd;
/**
* 小区
*/
private String storeArea;
/**
* 门店代码
*/
private String storeCode;
/**
* 大区
*/
private String storeCompany;
/**
* 门店证照信息
*/
private StoreDocument storeDocument;
/**
* 战区
*/
private String storeLarge;
/**
* 门店名称
*/
private String storeName;
/**
* 门店性质
*/
private String storeType;
}
@Data
public static class StoreDocument {
/**
* 营业执照经营场所/住所
*/
private String storeBusinessAdd;
/**
* 营业执照发证日期
*/
private String storeBusinessDate;
/**
* 营业执照图片
*/
private String storeBusinessImg;
/**
* 营业执照名称
*/
private String storeBusinessName;
/**
* 营业执照统一社会信用代码
*/
private String storeBusinessNumber;
/**
* 营业执照类型
*/
private String storeBusinessType;
/**
* 营业执照有效期, 非OCR识别手填。9=长期有效非长期有效则为具体日期2026-06-01
*/
private String storeBusinessValidPeriod;
/**
* 门店代码
*/
private String storeCode;
/**
* 营业执照经营者/法人
*/
private String storeDirector;
/**
* 食品流通经营许可证编号
*/
private String storeFoodLicense;
/**
* 食品流通/经营许可证有效期开始日期
*/
private String storeFoodLicenseBeginDate;
/**
* 食品经营许可证经营场所
*/
private String storeFoodLicenseBusinessAddress;
/**
* 食品经营许可证经营项目
*/
private String storeFoodLicenseBusinessScope;
/**
* 食品流通/经营许可证有效期结束日期
*/
private String storeFoodLicenseEndDate;
/**
* 食品经营许可证照片
*/
private String storeFoodLicenseImg;
/**
* 食品经营许可证法定代表人(负责人)
*/
private String storeFoodLicenseLegalRepresentative;
/**
* 食品经营许可证主体业态
*/
private String storeFoodLicenseMainBusiness;
/**
* 食品经营许可证经营者名称
*/
private String storeFoodLicenseOperatorName;
/**
* 备注
*/
private String storeRemark;
}
}

View File

@@ -1,7 +1,9 @@
package com.cool.store.response;
import cn.hutool.core.date.DateUtil;
import com.cool.store.entity.LicenseTransactDO;
import com.cool.store.entity.ShopAuditInfoDO;
import com.cool.store.enums.LicenseTypeEnum;
import com.cool.store.vo.ShopAuditInfoVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -9,6 +11,7 @@ import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Data
@ApiModel("提交证照办理响应体")
@@ -89,8 +92,43 @@ public class SubmitLicenseResponse {
@ApiModelProperty("流程记录")
private List<ShopAuditInfoVO> processRecords;
public static SubmitLicenseResponse from(GetStoreInfoByCodeResponse storeInfoCode){
if (Objects.isNull(storeInfoCode)){
return null;
}
GetStoreInfoByCodeResponse.InnerData data = storeInfoCode.getData();
GetStoreInfoByCodeResponse.StoreDocument storeDocument = data.getStoreDocument();
boolean storeBusinessValidPeriod = storeDocument.getStoreBusinessValidPeriod().equals("9");
SubmitLicenseResponse submitLicenseResponse = new SubmitLicenseResponse();
submitLicenseResponse.setId(null);
submitLicenseResponse.setShopId(null);
submitLicenseResponse.setLicenseType(LicenseTypeEnum.matchName(storeDocument.getStoreBusinessType()).getCode());
submitLicenseResponse.setLicenseLegalPerson(storeDocument.getStoreDirector());
submitLicenseResponse.setIssueTime(DateUtil.parseTime(storeDocument.getStoreBusinessDate()));
submitLicenseResponse.setLicenseAddress(storeDocument.getStoreBusinessAdd());
submitLicenseResponse.setValidity(storeBusinessValidPeriod ? null : DateUtil.parseTime(storeDocument.getStoreBusinessValidPeriod()));
submitLicenseResponse.setOperator(storeDocument.getStoreDirector());
submitLicenseResponse.setFoodLicenseLegalPerson(storeDocument.getStoreFoodLicenseOperatorName());
submitLicenseResponse.setMainBusiness(storeDocument.getStoreFoodLicenseMainBusiness());
submitLicenseResponse.setBusinessProject(storeDocument.getStoreFoodLicenseBusinessScope());
submitLicenseResponse.setRemark(storeDocument.getStoreRemark());
submitLicenseResponse.setRemarkUrl(null);
submitLicenseResponse.setSubmitStatus(null);
submitLicenseResponse.setLicenseUrl(storeDocument.getStoreBusinessImg());
submitLicenseResponse.setLicenseName(storeDocument.getStoreBusinessName());
submitLicenseResponse.setSocialCreditCode(storeDocument.getStoreBusinessNumber());
submitLicenseResponse.setIdCardAndLicense1(null);
submitLicenseResponse.setIdCardAndLicense2(null);
submitLicenseResponse.setFoodLicenseUrl(storeDocument.getStoreFoodLicenseImg());
submitLicenseResponse.setBusinessPremises(storeDocument.getStoreFoodLicenseBusinessAddress());
submitLicenseResponse.setFoodLicenseCode(storeDocument.getStoreFoodLicense());
submitLicenseResponse.setFoodLicenseStartTime(DateUtil.parseTime(storeDocument.getStoreFoodLicenseBeginDate()));
submitLicenseResponse.setFoodLicenseEndTime(DateUtil.parseTime(storeDocument.getStoreFoodLicenseEndDate()));
return submitLicenseResponse;
}
public static SubmitLicenseResponse from(LicenseTransactDO licenseTransactDO) {
if (licenseTransactDO == null) {
if (Objects.isNull(licenseTransactDO)) {
return null;
}
SubmitLicenseResponse submitLicenseResponse = new SubmitLicenseResponse();

View File

@@ -0,0 +1,110 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import java.util.Date;
import java.util.List;
/**
* @author byd
* @date 2024-04-30 10:53
*/
@Data
public class AssessmentUserTrainingVO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("名字")
private String username;
@ApiModelProperty("手机号")
private String mobile;
@ApiModelProperty("身份证号")
private String idCard;
@ApiModelProperty("区域id")
private Long regionId;
@ApiModelProperty("角色id 170000000-店长 180000000-店员")
private Long roleId;
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("店铺名称")
private String shopName;
@ApiModelProperty("培训id")
private Long employeeTrainingId;
/**
* 实训门店ID
*/
@ApiModelProperty("实训门店ID")
private String trainingStoreId;
/**
* 实训门店ID
*/
@ApiModelProperty("实训门店名称")
private String trainingStoreName;
/**
* 实操考核人员ID
*/
@ApiModelProperty("实操考核人员ID")
private String practicalAssessmentUserId;
@ApiModelProperty("实操考核人员名称")
private String practicalAssessmentUserName;
/**
* 预计考核时间
*/
@ApiModelProperty("预计考核时间")
private Date estimatedAssessmentTime;
/**
* 实际考核时间
*/
@ApiModelProperty("实际考核时间")
private Date actualAssessmentTime;
/**
* 理论考试状态 0-未开始 1-合格 2-不合格
*/
@ApiModelProperty("理论考试状态 0-未开始 1-合格 2-不合格")
private Integer theoreticalExamStatus;
/**
* 理论考试分值
*/
@ApiModelProperty("理论考试分值")
private Integer theoreticalExamScore;
/**
* 实操考试分值
*/
@ApiModelProperty("实操考试分值")
private Integer practicalExamScore;
@ApiModelProperty("实操考试状态")
private Integer practicalExamStatus;
/**
* 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*/
@ApiModelProperty("核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过")
private Integer assessmentStatus;
@ApiModelProperty("考核数据")
List<AssessmentTemplateDataVO> templateDataList;
}

View File

@@ -130,7 +130,7 @@ public class EmployeeTrainingDetailVO {
* 理论考试状态 0-未开始 1-合格 2-不合格
*/
@ApiModelProperty("理论考试状态 0-未开始 1-合格 2-不合格")
private Byte theoreticalExamStatus;
private Integer theoreticalExamStatus;
/**
* 理论考试分值
@@ -142,7 +142,7 @@ public class EmployeeTrainingDetailVO {
* 实操考试状态 0-未开始 1-合格 2-不合格
*/
@ApiModelProperty("实操考试状态 0-未开始 1-合格 2-不合格")
private Byte practicalExamStatus;
private Integer practicalExamStatus;
/**
* 实操考试分值
@@ -154,6 +154,6 @@ public class EmployeeTrainingDetailVO {
* 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*/
@ApiModelProperty("考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过")
private Byte assessmentStatus;
private Integer assessmentStatus;
}

View File

@@ -3,6 +3,7 @@ package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import java.util.Date;
/**
@@ -107,4 +108,15 @@ public class EmployeeTrainingVO {
@ApiModelProperty("实操考核人员名称")
private String practicalAssessmentUserName;
/**
* 预计考核时间
*/
@ApiModelProperty("预计考核时间")
private Date estimatedAssessmentTime;
/**
* 实际考核时间
*/
@ApiModelProperty("实际考核时间")
private Date actualAssessmentTime;
}

View File

@@ -21,7 +21,7 @@ import java.util.List;
public class OpeningOperationPlanVO {
@ApiModelProperty("门店name")
private String name;
private String shopName;
@ApiModelProperty("调研结果")
private String surveyResult;

View File

@@ -3,6 +3,9 @@ package com.cool.store.vo.shop;
import com.cool.store.entity.LineAuditInfoDO;
import com.cool.store.entity.ShopAuditInfoDO;
import com.cool.store.entity.ShopStageInfoDO;
import com.cool.store.enums.point.ShopStageEnum;
import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.vo.AuditInfoVO;
import com.cool.store.vo.LineAuditInfoVO;
import com.google.common.collect.Lists;
@@ -62,6 +65,9 @@ public class ShopStageInfoVO {
Map<Long, ShopAuditInfoDO> auditMap = auditList.stream().collect(Collectors.toMap(ShopAuditInfoDO::getId, Function.identity()));
List<ShopStageInfoVO> resultList = new ArrayList<>();
for (ShopStageInfoDO stageInfo : stageList) {
if (ShopSubStageEnum.SHOP_STAGE_13.getShopSubStage().equals(stageInfo.getShopSubStage())){
continue;
}
ShopStageInfoVO shopStageInfo = new ShopStageInfoVO(stageInfo.getShopStage(), stageInfo.getShopSubStage(), stageInfo.getShopSubStageStatus(), stageInfo.getIsTerminated());
ShopAuditInfoDO auditInfo = auditMap.get(stageInfo.getAuditId());
AuditInfoVO auditInfoVO = AuditInfoVO.convertVO(auditInfo);

View File

@@ -151,7 +151,7 @@ public class XfsgTrainingPersonSyncListener implements MessageListener {
}else if(UserRoleEnum.XFSG_SHOPOWNER.getDesc().equals(jobName)){
return UserRoleEnum.XFSG_SHOPOWNER.getCode();
}
return null;
return UserRoleEnum.XFSG_CLERK.getCode();
}
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.service;
import com.cool.store.request.FranchiseAgreementRequest;
import com.cool.store.request.NewStoreRequest;
import com.cool.store.response.GetStoreInfoByCodeResponse;
import com.cool.store.response.ResponseResult;
/**
@@ -33,4 +34,11 @@ public interface CoolStoreStartFlowService {
*/
Boolean getFirstOrder(String shopCode);
/**
* 获取证照信息
* @param storeNum
* @return
*/
GetStoreInfoByCodeResponse getStoreInfoCode(String storeNum);
}

View File

@@ -4,6 +4,7 @@ import com.cool.store.context.LoginUserInfo;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceCheckRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.request.BookingAcceptanceRequest;
import com.cool.store.response.FitmentResponse;
@@ -84,8 +85,9 @@ public interface DecorationService {
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:提交三方验收
* @description:提交三方验收检查项
*/
Boolean submitThreeCheck(ThreeAcceptanceCheckRequest request);
Boolean submitAcceptance(ThreeAcceptanceRequest request,PartnerUserInfoVO minUser, LoginUserInfo pcUser );
/**
* @Auther: wangshuo

View File

@@ -1,8 +1,7 @@
package com.cool.store.service;
import com.cool.store.request.EmployeeTrainingCommitListRequest;
import com.cool.store.request.EmployeeTrainingDetailRequest;
import com.cool.store.request.EmployeeTrainingRequest;
import com.cool.store.request.*;
import com.cool.store.vo.AssessmentUserTrainingVO;
import com.cool.store.vo.EmployeeTrainingDetailVO;
import com.cool.store.vo.EmployeeTrainingVO;
import com.cool.store.vo.EmployeeUserTrainingVO;
@@ -29,4 +28,12 @@ public interface EmployeeTrainingService {
EmployeeUserTrainingVO trainerUserDetail(Long id);
void trainerUserCommit(EmployeeTrainingCommitListRequest request);
PageInfo<EmployeeTrainingVO> assessmentUserList(String userId, EmployeeAssessmentRequest request);
AssessmentUserTrainingVO assessmentUserDetail(Long id);
void turn(Long id, String userId, String turnUserId);
void assessmentUserCommit(EmployeeAssessmentCommitListRequest request);
}

View File

@@ -9,6 +9,7 @@ import com.cool.store.dao.ShopStageInfoDAO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.LicenseTransactDO;
import com.cool.store.entity.ShopAuditInfoDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.enums.AuditTypeEnum;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
@@ -16,16 +17,19 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.ApplyLicenseMapper;
import com.cool.store.mapper.EnterpriseUserMapper;
import com.cool.store.mapper.ShopAuditInfoMapper;
import com.cool.store.mapper.ShopInfoMapper;
import com.cool.store.request.LicenseListRequest;
import com.cool.store.request.SubmitLicenseRequest;
import com.cool.store.response.GetStoreInfoByCodeResponse;
import com.cool.store.response.LicenseListResponse;
import com.cool.store.response.SubmitLicenseResponse;
import com.cool.store.service.ApplyLicenseService;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.PreparationService;
import com.cool.store.service.RegionService;
import com.cool.store.utils.StringUtil;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import com.cool.store.vo.OpenAcceptanceInfoListVO;
import com.cool.store.vo.ShopAuditInfoVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -63,21 +67,30 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
@Resource
EnterpriseUserMapper userMapper;
@Resource
CoolStoreStartFlowService coolStoreStartFlowService;
@Resource
ShopInfoMapper shopInfoMapper;
@Resource
PreparationService preparationService;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean submitLicense(SubmitLicenseRequest request) {
log.info("submitLicense request{}", JSONObject.toJSONString(request));
if (Objects.isNull(request)){
if (Objects.isNull(request)) {
return false;
}
LicenseTransactDO licenseTransactDO = request.toLicenseTransactDO();
if (request.getId() == null){
if (request.getId() == null) {
applyLicenseMapper.insertSelective(licenseTransactDO);
}else {
} else {
licenseTransactDO.setId(request.getId());
applyLicenseMapper.updateByPrimaryKeySelective(licenseTransactDO);
}
if (request.getSubmitStatus() == Constants.ONE_INTEGER){
if (request.getSubmitStatus() == Constants.ONE_INTEGER) {
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setShopId(request.getShopId());
shopAuditInfoDO.setAuditType(AuditTypeEnum.LICENSE_APPROVAL.getCode());
@@ -86,7 +99,7 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
shopAuditInfoDO.setSubmittedUserName(user.getName());
shopAuditInfoDO.setDataType(0);
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_41,null);
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_41, null);
}
return true;
}
@@ -94,33 +107,42 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
@Override
public SubmitLicenseResponse getDefault(Long shopId) {
LicenseTransactDO licenseTransactDO = new LicenseTransactDO();
licenseTransactDO.setShopId(shopId);
LicenseTransactDO result = applyLicenseMapper.selectOne(licenseTransactDO);
if (Objects.isNull(result)){
throw new ServiceException(ErrorCodeEnum.LICENSE_NOT_EXIST);
//1.如果已经提交过证照信息,直接查询后组装数据返回
LicenseTransactDO result = applyLicenseMapper.selectByShopId(shopId);
SubmitLicenseResponse submitLicenseResponse = new SubmitLicenseResponse();
if (Objects.nonNull(result)){
submitLicenseResponse = SubmitLicenseResponse.from(result);
List<ShopAuditInfoVO> listByShopIdAndType = shopAuditInfoMapper.getListByShopIdAndType(shopId, AuditTypeEnum.LICENSE_APPROVAL.getCode());
List<String> userIds = listByShopIdAndType.stream().map(ShopAuditInfoVO::getSubmittedUserId).collect(Collectors.toList());
List<EnterpriseUserDO> userInfoByUserIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(userIds)) {
userInfoByUserIds = userMapper.getUserInfoByUserIds(userIds);
Map<String, String> userAvatarMap = userInfoByUserIds.stream()
.filter(item -> StringUtil.isNotBlank(item.getUserId()) && StringUtil.isNotBlank(item.getAvatar()))
.collect(Collectors.toMap(k -> k.getUserId(), v -> v.getAvatar()));
listByShopIdAndType.stream().forEach(item -> {
String avatar = userAvatarMap.get(item.getSubmittedUserId());
if (StringUtils.isBlank(avatar)) {
item.setAvatar(Constants.AVATAR_DEFAULT);
} else {
item.setAvatar(avatar);
}
});
}
submitLicenseResponse.setProcessRecords(listByShopIdAndType);
return submitLicenseResponse;
}
SubmitLicenseResponse submitLicenseResponse = SubmitLicenseResponse.from(result);
List<ShopAuditInfoVO> listByShopIdAndType = shopAuditInfoMapper.getListByShopIdAndType(shopId, AuditTypeEnum.LICENSE_APPROVAL.getCode());
List<String> userIds = listByShopIdAndType.stream().map(ShopAuditInfoVO::getSubmittedUserId).collect(Collectors.toList());
List<EnterpriseUserDO> userInfoByUserIds = new ArrayList<>();
if (CollectionUtils.isNotEmpty(userIds)){
userInfoByUserIds = userMapper.getUserInfoByUserIds(userIds);
Map<String, String> userAvatarMap = userInfoByUserIds.stream()
.filter(item -> StringUtil.isNotBlank(item.getUserId()) && StringUtil.isNotBlank(item.getAvatar()))
.collect(Collectors.toMap(k -> k.getUserId(), v -> v.getAvatar()));
listByShopIdAndType.stream().forEach( item -> {
String avatar = userAvatarMap.get(item.getSubmittedUserId());
if (StringUtils.isBlank(avatar)){
item.setAvatar(Constants.AVATAR_DEFAULT);
}else {
item.setAvatar(avatar);
}
});
//2.未查到证照信息,所以查询鲜丰的默认值
ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId);
if (Objects.nonNull(shopInfoDO.getStoreNum())) {
GetStoreInfoByCodeResponse storeInfoCode = coolStoreStartFlowService.getStoreInfoCode(shopInfoDO.getStoreNum());
if (Objects.nonNull(storeInfoCode) && Objects.nonNull(storeInfoCode.getData()) && storeInfoCode.getCode() == 0) {
submitLicenseResponse = SubmitLicenseResponse.from(storeInfoCode);
return submitLicenseResponse;
}
}
submitLicenseResponse.setProcessRecords(listByShopIdAndType);
return submitLicenseResponse;
//3.既没有提交数据,也没有在鲜丰端查到证照信息,则返回空自由填写
return null;
}
@Override
@@ -154,7 +176,7 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean licenseExamine(Long shopId, Integer status,String result) {
public Boolean licenseExamine(Long shopId, Integer status, String result) {
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setShopId(shopId);
ShopSubStageStatusEnum shopSubStageStatusEnum = null;
@@ -166,11 +188,13 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
shopAuditInfoDO.setResultType(status);
LicenseTransactDO licenseTransactDO = new LicenseTransactDO();
licenseTransactDO.setShopId(shopId);
if (status == Constants.ZERO_INTEGER){
if (status == Constants.ZERO_INTEGER) {
//是否开业验收 改走的流程都已经完成 ->初始化开业验收数据
preparationService.whetherToOpenForAcceptance(shopId);
shopAuditInfoDO.setPassReason(result);
shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_43;
licenseTransactDO.setSubmitStatus(3);
}else if (status == Constants.ONE_INTEGER){
} else if (status == Constants.ONE_INTEGER) {
licenseTransactDO.setSubmitStatus(2);
shopAuditInfoDO.setRejectReason(result);
shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_42;
@@ -179,7 +203,7 @@ public class ApplyLicenseServiceImpl implements ApplyLicenseService {
//插入操作/意见
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
//更新阶段状态
shopStageInfoDAO.updateShopStageAndAuditInfo(shopId,shopSubStageStatusEnum,null);
shopStageInfoDAO.updateShopStageAndAuditInfo(shopId, shopSubStageStatusEnum, null);
return null;
}
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.service.impl;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.AssessmentDataDAO;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.service.AssessmentDataService;
@@ -20,11 +21,17 @@ public class AssessmentDataServiceImpl implements AssessmentDataService {
private AssessmentDataDAO assessmentDataDAO;
@Override
public Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS) {
if (assessmentDataDOS.isEmpty()) {
return Boolean.FALSE;
}
return assessmentDataDAO.batchInsert(assessmentDataDOS);
}
@Override
public Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS) {
if (assessmentDataDOS.isEmpty()) {
return CommonConstants.ZERO;
}
return assessmentDataDAO.batchUpdate(assessmentDataDOS);
}
}

View File

@@ -106,7 +106,7 @@ public class AuditStatusServiceImpl implements AuditStatusService {
if (Objects.nonNull(lineInterviewDO.getActualEndTime())){
response.setEndTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, lineInterviewDO.getActualEndTime()));
}
if (Objects.nonNull(auditStatusDO.getCreateTime())){
if (Objects.nonNull(auditStatusDO.getUpdateTime())){
response.setCheckTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, auditStatusDO.getUpdateTime()));
}
response.setCheckUser(auditStatusDO.getAuditUserName());

View File

@@ -9,10 +9,12 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.request.FranchiseAgreementRequest;
import com.cool.store.request.NewStoreRequest;
import com.cool.store.response.GetStoreInfoByCodeResponse;
import com.cool.store.response.InitiatingResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.utils.SecureUtil;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
@@ -102,6 +104,24 @@ public class CoolStoreStartFlowServiceImpl implements CoolStoreStartFlowService
throw new ServiceException(ErrorCodeEnum. GET_FIRST_ORDER);
}
}
@Override
public GetStoreInfoByCodeResponse getStoreInfoCode(String storeNum) {
log.info("getStoreInfoCode storeNum:{}",storeNum);
if (StringUtils.isBlank(storeNum)){
throw new ServiceException(ErrorCodeEnum.STORE_NUM_NOT_FOUND);
}
Map<String, Object> requestMap = new HashMap<>();
fillSignatureInfo(requestMap);
requestMap.put("storeCode",storeNum);
String url = xfsgUrl + Constants.GET_STORE_INFO_BY_CODE + "?timestamp=" + requestMap.get("timestamp") + "&signature=" + requestMap.get("signature");
GetStoreInfoByCodeResponse response = httpRestTemplateService.getForObject(url, GetStoreInfoByCodeResponse.class, requestMap);
return response;
}
private void fillSignatureInfo(Map<String, Object> requestMap) {
long timestamp = System.currentTimeMillis();
String signature = SecureUtil.getSignature(timestamp);

View File

@@ -17,6 +17,7 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.LineInfoMapper;
import com.cool.store.mapper.ShopInfoMapper;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceCheckRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.request.BookingAcceptanceRequest;
import com.cool.store.response.FitmentResponse;
@@ -59,6 +60,8 @@ public class DecorationServiceImpl implements DecorationService {
@Resource
private ShopAuditInfoDAO shopAuditInfoDAO;
@Resource
private SysRoleService sysRoleService;
@Resource
private EnterpriseUserDAO enterpriseUserDAO;
@Resource
private RegionService regionService;
@@ -96,14 +99,17 @@ public class DecorationServiceImpl implements DecorationService {
FitmentResponse fitmentResponse = new FitmentResponse();
List<DecorationStageVO> stageInfoList = new ArrayList<>();
//设计
this.DesignInfo(shopId);
stageInfoList.add(getDecorationStageVOS(shopId, ShopSubStageEnum.SHOP_STAGE_9));
//装修款
this.getDecorationModel(shopId, null);
stageInfoList.add(getDecorationStageVOS(shopId, ShopSubStageEnum.SHOP_STAGE_10));
//施工阶段计划时间
//施工阶段
this.getConstructionInfo(shopId);
stageInfoList.add(getDecorationStageVOS(shopId, ShopSubStageEnum.SHOP_STAGE_11));
//三方验收
//TODO 三方验收
stageInfoList.add(getDecorationStageVOS(shopId, ShopSubStageEnum.SHOP_STAGE_12));
//视觉验收
//TODO 视觉验收
stageInfoList.add(getDecorationStageVOS(shopId, ShopSubStageEnum.SHOP_STAGE_13));
fitmentResponse.setStageInfoList(stageInfoList);
return fitmentResponse;
@@ -116,6 +122,8 @@ public class DecorationServiceImpl implements DecorationService {
decorationStageVO.setShopSubStage(ShopStage.getShopSubStage());
decorationStageVO.setShopSubStageName(shopSubStageEnum.getShopSubStageName());
decorationStageVO.setCreatTime(ShopStage.getCreateTime());
decorationStageVO.setPlanEndTime(ShopStage.getPlanCompleteTime());
decorationStageVO.setActualCompleteTime(ShopStage.getActualCompleteTime());
return decorationStageVO;
}
@@ -399,6 +407,23 @@ public class DecorationServiceImpl implements DecorationService {
return constructionScheduleDTO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean submitThreeCheck(ThreeAcceptanceCheckRequest request) {
log.info("submitThreeCheck, request:{} ", JSONObject.toJSONString(request));
List<AssessmentDataDO> assessmentDataDOS = new ArrayList<>();
BeanUtil.copyProperties(request.getAssessmentDataDTOS(),assessmentDataDOS);
for(AssessmentDataDO assessmentDataDO : assessmentDataDOS){
assessmentDataDO.setShopId(request.getShopId());
}
Boolean assessment = assessmentDataService.batchInsert(assessmentDataDOS);
if (assessment == Boolean.FALSE) {
log.error("三方验收插入检查项失败");
throw new ServiceException(ErrorCodeEnum.CHECK_ITEM);
}
return assessment;
}
@Override
public PageInfo<fitmentCheckVO> getFitmentAcceptanceList(Integer subStageStatus, LoginUserInfo user, Integer pageNum, Integer pageSize) {
List<String> authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId());
@@ -406,11 +431,19 @@ public class DecorationServiceImpl implements DecorationService {
for (String authRegionId : authRegionIds) {
regions.add(Long.parseLong(authRegionId));
}
if (regions.isEmpty()) {
log.info("该用户下权限没有管理区域");
return null;
}
List<fitmentCheckVO> fitmentCheckVOList = new ArrayList<>();
//shopId,lineid,regionid,shopname,storenum,
PageHelper.startPage(pageNum, pageSize);
List<ShopInfoDO> shopInfoDOS = shopInfoMapper.selectShopListByRegionId(regions, subStageStatus);
PageInfo pageInfo = new PageInfo<>(shopInfoDOS);
if (shopInfoDOS.isEmpty()) {
log.info("该工程部监理下门店为空");
return pageInfo;
}
Map<Long, ShopInfoDO> ShopIdmap = shopInfoDOS.stream().collect(Collectors.toMap(ShopInfoDO::getId, dto1 -> dto1));
//招商经理选址人员拓展经理id
List<Long> lineIds = shopInfoDOS.stream().map(ShopInfoDO::getLineId).collect(Collectors.toList());
@@ -421,7 +454,7 @@ public class DecorationServiceImpl implements DecorationService {
List<UserNameDTO> nameByUserId = enterpriseUserDAO.getNameByUserId(InvestmentManagerIds);
Map<String, UserNameDTO> vonameMap = nameByUserId.stream()
.collect(Collectors.toMap(UserNameDTO::getUserId, vo -> vo));
//选址人员name
//选址人员(拓展经理)name
List<String> setterIds = lineInfos.stream().map(LineInfoDO::getDevelopmentManager).collect(Collectors.toList());
List<UserNameDTO> setterName = enterpriseUserDAO.getNameByUserId(setterIds);
Map<String, UserNameDTO> setterNameMap = setterName.stream()
@@ -429,6 +462,15 @@ public class DecorationServiceImpl implements DecorationService {
//所属战区
List<Long> regionIds = shopInfoDOS.stream().map(ShopInfoDO::getRegionId).collect(Collectors.toList());
Map<Long, String> regionNameMap = regionService.getBelongWarRegionNameMap(regionIds);
//战区经理name
Map<Long, String> fightManger = new HashMap<>();
for (Long regionId : regionIds) {
String fightMangerUserId = sysRoleService.getUserIdByRegionIdWithRolePriority(regionId, Arrays.asList(UserRoleEnum.THEATER_MANAGER));
List<UserNameDTO> fightMangerName = enterpriseUserDAO.getNameByUserId(Arrays.asList(fightMangerUserId));
if (!fightMangerName.isEmpty()) {
fightManger.put(regionId, fightMangerName.get(CommonConstants.ZERO).getName());
}
}
//施工计划完成时间 //施工实际完成实际//验收状态//计划验收时间//验收实际时间
Map<Long, ConstructionScheduleDTO> ConstructionScheduleMap = new HashMap<>();
Map<Long, ShopStageInfoDO> ShopStageInfoDOMap = new HashMap<>();
@@ -438,7 +480,6 @@ public class DecorationServiceImpl implements DecorationService {
ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_12);
ShopStageInfoDOMap.put(shopId, shopSubStageInfo);
}
//战区经理 TODO
for (ShopInfoDO shopInfoDO : shopInfoDOS) {
fitmentCheckVO fitmentCheckVO = new fitmentCheckVO();
@@ -506,44 +547,25 @@ public class DecorationServiceImpl implements DecorationService {
throw new ServiceException(ErrorCodeEnum.CHECK_ITEM);
}
//工程部验收签名
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setAuditType(CommonConstants.FIVE);
shopAuditInfoDO.setShopId(request.getShopId());
shopAuditInfoDO.setSubmittedUserId(minUser.getPartnerId());
shopAuditInfoDO.setSubmittedUserName(minUser.getUsername());
if (AuditResultTypeEnum.PASS.getCode().equals(request.getEngineeringResultType())) {
shopAuditInfoDO.setResultType(AuditResultTypeEnum.PASS.getCode());
shopAuditInfoDO.setPassReason(request.getEngineeringComments());
} else {
shopAuditInfoDO.setResultType(AuditResultTypeEnum.REJECT.getCode());
shopAuditInfoDO.setPassReason(request.getEngineeringComments());
}
shopAuditInfoDO.setCreateTime(new Date());
shopAuditInfoDAO.addAuditInfo(shopAuditInfoDO);
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);
//加盟商
ShopAuditInfoDO shopAuditInfoDO1 = new ShopAuditInfoDO();
shopAuditInfoDO1.setAuditType(CommonConstants.FIVE);
shopAuditInfoDO1.setShopId(request.getShopId());
shopAuditInfoDO1.setSubmittedUserId(minUser.getPartnerId());
shopAuditInfoDO1.setSubmittedUserName(minUser.getUsername());
if (AuditResultTypeEnum.PASS.getCode().equals(request.getPartnerResultType())) {
shopAuditInfoDO1.setResultType(AuditResultTypeEnum.PASS.getCode());
shopAuditInfoDO1.setPassReason(request.getPartnerComments());
} else {
shopAuditInfoDO1.setResultType(AuditResultTypeEnum.REJECT.getCode());
shopAuditInfoDO1.setPassReason(request.getPartnerComments());
}
shopAuditInfoDO1.setCreateTime(new Date());
shopAuditInfoDAO.addAuditInfo(shopAuditInfoDO1);
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(request.getPartnerAcceptanceSignatures());
acceptanceInfoDO.setEngineeringAcceptanceSignatures(request.getEngineeringAcceptanceSignatures());
acceptanceInfoDO.setPartnerAcceptanceSignatures(partner.toString());
acceptanceInfoDO.setEngineeringAcceptanceSignatures(engineering.toString());
acceptanceInfoDO.setUpdateTime(new Date());
acceptanceInfoDAO.updateAcceptanceInfo(acceptanceInfoDO);
List<AcceptanceInfoDO> assessmentDataDOS = new ArrayList<>();
BeanUtil.copyProperties(request, assessmentDataDOS);
//更新阶段状态验收中
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_122);
return Boolean.TRUE;
@@ -552,41 +574,39 @@ public class DecorationServiceImpl implements DecorationService {
throw new ServiceException(ErrorCodeEnum.THREE_ACCEPTANCE);
}
} else {
//营部验收签名
//营部验收签名
try {
ShopAuditInfoDO shopAuditInfoDO = new ShopAuditInfoDO();
shopAuditInfoDO.setAuditType(CommonConstants.FIVE);
shopAuditInfoDO.setShopId(request.getShopId());
shopAuditInfoDO.setSubmittedUserId(pcUser.getUserId());
shopAuditInfoDO.setSubmittedUserName(pcUser.getName());
if (AuditResultTypeEnum.PASS.getCode().equals(request.getOperationsResultType())) {
shopAuditInfoDO.setResultType(AuditResultTypeEnum.PASS.getCode());
} else {
shopAuditInfoDO.setResultType(AuditResultTypeEnum.REJECT.getCode());
}
shopAuditInfoDO.setPassReason(request.getOperationsComments());
shopAuditInfoDO.setCreateTime(new Date());
shopAuditInfoDAO.addAuditInfo(shopAuditInfoDO);
if (CommonConstants.ZERO==request.getOperationsResultType()) {
//更新阶段状态验收完毕
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123);
preparationService.whetherToOpenForAcceptance(request.getShopId());
}
else {
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120);
}
AcceptanceInfoDO acceptanceInfoDO1 = acceptanceInfoDAO.selectByShopId(request.getShopId());
JSONObject engineering = JSONObject.parseObject(acceptanceInfoDO1.getEngineeringAcceptanceSignatures());
JSONObject partner = JSONObject.parseObject(acceptanceInfoDO1.getPartnerAcceptanceSignatures());
JSONObject operations = new JSONObject();
operations.put("pic", request.getOperationsAcceptance().getAcceptanceSignatures());
operations.put("acceptanceTime", new Date());
operations.put("result", request.getOperationsAcceptance().getResultType());
operations.put("remark", request.getOperationsAcceptance().getComments());
operations.put("status", 1);
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
acceptanceInfoDO.setShopId(request.getShopId());
acceptanceInfoDO.setOperationsAcceptanceSignatures(request.getOperationsAcceptanceSignatures());
acceptanceInfoDO.setOperationsAcceptanceSignatures(operations.toString());
acceptanceInfoDO.setUpdateTime(new Date());
acceptanceInfoDAO.updateAcceptanceInfo(acceptanceInfoDO);
}catch (Exception e) {
if (AuditResultTypeEnum.PASS.getCode() == operations.getInteger("result")
&& AuditResultTypeEnum.PASS.getCode() == partner.getInteger("result")
&& AuditResultTypeEnum.PASS.getCode() == engineering.getInteger("result")) {
//更新阶段状态验收完毕
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123,null);
preparationService.whetherToOpenForAcceptance(request.getShopId());
} else {
//未通过至为带预约
shopStageInfoDAO.updateShopStageAndAuditInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120, null);
}
} catch (Exception e) {
log.error("PC提交三方验收失败");
throw new ServiceException(ErrorCodeEnum.THREE_ACCEPTANCE);
}
}
return null;
return Boolean.FALSE;
}
@Override

View File

@@ -1,23 +1,17 @@
package com.cool.store.service.impl;
import cn.hutool.core.date.DateUtil;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.entity.*;
import com.cool.store.enums.AssessmentTemplateType;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.EmployeeTrainingCommitListRequest;
import com.cool.store.request.EmployeeTrainingDetailRequest;
import com.cool.store.request.EmployeeTrainingRequest;
import com.cool.store.request.*;
import com.cool.store.service.EmployeeTrainingService;
import com.cool.store.service.RegionService;
import com.cool.store.service.SysRoleService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.vo.AssessmentTemplateDataVO;
import com.cool.store.vo.EmployeeTrainingDetailVO;
import com.cool.store.vo.EmployeeTrainingVO;
import com.cool.store.vo.EmployeeUserTrainingVO;
import com.cool.store.vo.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections4.CollectionUtils;
@@ -27,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
* @author byd
@@ -60,7 +55,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
private EnterpriseUserDAO enterpriseUserDAO;
@Resource
private StoreDao storeDao;
private StoreDao storeDAO;
@Resource
private AssessmentTemplateDAO assessmentTemplateDAO;
@@ -68,6 +63,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
@Resource
private AssessmentDataDAO assessmentDataDAO;
@Override
public PageInfo<EmployeeTrainingVO> employeeTrainingList(String userId, EmployeeTrainingRequest request) {
List<String> authRegionIdList = new ArrayList<>();
@@ -76,8 +72,8 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
}
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<EmployeeTrainingVO> list = employeeTrainingDAO.employeeTrainingList(request.getKeyWord(), request.getRegionIdList(), authRegionIdList, request.getAssignFlag(),
DateUtil.format(new Date(request.getBeginTime()), DateUtils.YYYY_MM_DD_HH_MM_SS),
DateUtil.format(new Date(request.getEndTime()), DateUtils.YYYY_MM_DD_HH_MM_SS), null,
DateUtils.parseLongDateToStr(request.getBeginTime()),
DateUtils.parseLongDateToStr(request.getEndTime()), null,
request.getTheoreticalExamStatus(), request.getPracticalExamStatus(), request.getAssessmentStatus());
list.forEach(item -> {
@@ -103,7 +99,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
employeeTrainingVO.setTrainingStartTime(employeeTrainingDO.getTrainingStartTime());
employeeTrainingVO.setTrainingEndTime(employeeTrainingDO.getTrainingEndTime());
employeeTrainingVO.setTrainingStoreId(employeeTrainingDO.getTrainingStoreId());
StoreDO storeDO = storeDao.getByStoreId(employeeTrainingDO.getTrainingStoreId());
StoreDO storeDO = storeDAO.getByStoreId(employeeTrainingDO.getTrainingStoreId());
if (storeDO != null) {
employeeTrainingVO.setTrainingStoreName(storeDO.getStoreName());
}
@@ -162,6 +158,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
employeeTrainingDO.setEstimatedAssessmentTime(request.getEstimatedAssessmentTime());
employeeTrainingDO.setAssessmentNum(0);
employeeTrainingDO.setAssessmentTotalNum(assessmentTemplateDOList.size());
employeeTrainingDO.setAssessmentStatus(0);
if (employeeTrainingDO.getId() == null) {
employeeTrainingDO.setXfsgUserDetailId(tempUserDetailDO.getId());
employeeTrainingDO.setRegionId(tempUserDetailDO.getRegionId());
@@ -189,7 +186,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
List<EmployeeTrainingVO> list = employeeTrainingDAO.trainingListByShopId(shopId, null, null);
list.forEach(item -> {
StoreDO storeDO = storeDao.getByStoreId(item.getTrainingStoreId());
StoreDO storeDO = storeDAO.getByStoreId(item.getTrainingStoreId());
if (storeDO != null) {
item.setTrainingStoreName(storeDO.getStoreName());
}
@@ -201,7 +198,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
public List<EmployeeTrainingVO> trainerUserList(String userId, Integer status) {
List<EmployeeTrainingVO> list = employeeTrainingDAO.trainingListByShopId(null, userId, status);
list.forEach(item -> {
StoreDO storeDO = storeDao.getByStoreId(item.getTrainingStoreId());
StoreDO storeDO = storeDAO.getByStoreId(item.getTrainingStoreId());
if (storeDO != null) {
item.setTrainingStoreName(storeDO.getStoreName());
}
@@ -228,8 +225,9 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
employeeUserTrainingVO.setRoleId(tempUserDetailDO.getRoleId());
employeeUserTrainingVO.setIdCard(tempUserDetailDO.getIdCard());
List<AssessmentTemplateDO> assessmentTemplateDOList = assessmentTemplateDAO.listByType(AssessmentTemplateType.TRAINER.getCode());
List<Long> templateIdList = assessmentTemplateDOList.stream().map(AssessmentTemplateDO::getId).collect(Collectors.toList());
List<AssessmentDataDO> assessmentDataDOList = assessmentDataDAO.selectList(tempUserDetailDO.getShopId(), enterpriseUserDO.getUserId());
List<AssessmentDataDO> assessmentDataDOList = assessmentDataDAO.selectList(tempUserDetailDO.getShopId(), enterpriseUserDO.getUserId(), templateIdList);
Map<String, AssessmentDataDO> assessmentDataMap = new HashMap<>();
assessmentDataDOList.forEach(item -> {
@@ -262,7 +260,7 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
@Transactional(rollbackFor = Exception.class)
@Override
public void trainerUserCommit(EmployeeTrainingCommitListRequest request) {
if(CollectionUtils.isEmpty(request.getList())){
if (CollectionUtils.isEmpty(request.getList())) {
return;
}
Long shopId = request.getList().get(0).getShopId();
@@ -273,7 +271,12 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoByThirdOaUniqueFlag(tempUserDetailDO.getIdCard());
String userId = enterpriseUserDO.getUserId();
request.getList().forEach(item -> {
AssessmentDataDO assessmentDataDO = assessmentDataDAO.selectByTemplateId(item.getTemplateId(), item.getUserDetailId(), item.getShopId());
AssessmentDataDO assessmentDataDO = null;
if (item.getId() != null) {
assessmentDataDO = assessmentDataDAO.selectByPrimaryKey(item.getId());
} else {
assessmentDataDO = assessmentDataDAO.selectByTemplateId(item.getTemplateId(), item.getUserDetailId(), item.getShopId());
}
if (assessmentDataDO != null) {
assessmentDataDO.setQualified(item.getQualified());
assessmentDataDAO.updateByPrimaryKeySelective(assessmentDataDO);
@@ -288,6 +291,162 @@ public class EmployeeTrainingServiceImpl implements EmployeeTrainingService {
});
Integer num = assessmentDataDAO.selectCount(userId, shopId);
employeeTrainingDO.setAssessmentNum(num);
if(num.equals(employeeTrainingDO.getAssessmentTotalNum())){
employeeTrainingDO.setAssessmentStatus(1);
}
employeeTrainingDAO.updateByPrimaryKeySelective(employeeTrainingDO);
}
@Override
public PageInfo<EmployeeTrainingVO> assessmentUserList(String userId, EmployeeAssessmentRequest request) {
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<EmployeeTrainingVO> employeeTrainingVOList = employeeTrainingDAO.assessmentUserList(request.getName(), userId, request.getAssessmentStatus(),
DateUtils.parseLongDateToStr(request.getEstimatedAssessmentBeginTime()),
DateUtils.parseLongDateToStr(request.getEstimatedAssessmentEndTime()),
DateUtils.parseLongDateToStr(request.getActualAssessmentBeginTime()),
DateUtils.parseLongDateToStr(request.getActualAssessmentEndTime()));
if (CollectionUtils.isEmpty(employeeTrainingVOList)) {
return new PageInfo<>(employeeTrainingVOList);
}
List<String> storeIdList = employeeTrainingVOList.stream().map(EmployeeTrainingVO::getTrainingStoreId).collect(Collectors.toList());
List<StoreDO> storeDOList = storeDAO.getEffectiveStoreByStoreIds(storeIdList);
Map<String, String> storeNameMap = storeDOList.stream().collect(Collectors.toMap(StoreDO::getStoreId, StoreDO::getStoreName));
employeeTrainingVOList.forEach(item -> {
item.setTrainingStoreName(storeNameMap.get(item.getTrainingStoreId()));
});
return new PageInfo<>(employeeTrainingVOList);
}
@Override
public AssessmentUserTrainingVO assessmentUserDetail(Long id) {
AssessmentUserTrainingVO assessmentUserTrainingVO = new AssessmentUserTrainingVO();
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(id);
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoByThirdOaUniqueFlag(tempUserDetailDO.getIdCard());
EmployeeTrainingDO employeeTrainingDO = employeeTrainingDAO.selectByUserDetailId(id);
assessmentUserTrainingVO.setEmployeeTrainingId(employeeTrainingDO.getId());
assessmentUserTrainingVO.setTrainingStoreId(employeeTrainingDO.getTrainingStoreId());
StoreDO storeDO = storeDAO.getByStoreId(employeeTrainingDO.getTrainingStoreId());
if (storeDO != null) {
assessmentUserTrainingVO.setTrainingStoreName(storeDO.getStoreName());
}
assessmentUserTrainingVO.setPracticalAssessmentUserId(employeeTrainingDO.getPracticalAssessmentUserId());
assessmentUserTrainingVO.setPracticalAssessmentUserName(enterpriseUserDAO.getUserName(employeeTrainingDO.getPracticalAssessmentUserId()));
assessmentUserTrainingVO.setMobile(tempUserDetailDO.getMobile());
assessmentUserTrainingVO.setRoleId(tempUserDetailDO.getRoleId());
assessmentUserTrainingVO.setIdCard(tempUserDetailDO.getIdCard());
assessmentUserTrainingVO.setActualAssessmentTime(employeeTrainingDO.getActualAssessmentTime());
assessmentUserTrainingVO.setEstimatedAssessmentTime(employeeTrainingDO.getEstimatedAssessmentTime());
assessmentUserTrainingVO.setUsername(tempUserDetailDO.getUsername());
assessmentUserTrainingVO.setAssessmentStatus(employeeTrainingDO.getAssessmentStatus());
assessmentUserTrainingVO.setShopId(tempUserDetailDO.getShopId());
assessmentUserTrainingVO.setTheoreticalExamStatus(employeeTrainingDO.getTheoreticalExamStatus());
assessmentUserTrainingVO.setTheoreticalExamScore(employeeTrainingDO.getTheoreticalExamScore());
assessmentUserTrainingVO.setPracticalExamScore(employeeTrainingDO.getPracticalExamScore());
assessmentUserTrainingVO.setPracticalExamStatus(employeeTrainingDO.getPracticalExamStatus());
ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(employeeTrainingDO.getShopId());
if (shopInfoDO != null) {
assessmentUserTrainingVO.setShopName(shopInfoDO.getShopName());
}
List<AssessmentTemplateDO> assessmentTemplateDOList = assessmentTemplateDAO.listByType(AssessmentTemplateType.STORE_MANAGER.getCode());
List<Long> templateIdList = assessmentTemplateDOList.stream().map(AssessmentTemplateDO::getId).collect(Collectors.toList());
List<AssessmentDataDO> assessmentDataDOList = assessmentDataDAO.selectList(tempUserDetailDO.getShopId(), enterpriseUserDO.getUserId(), templateIdList);
Map<String, AssessmentDataDO> assessmentDataMap = new HashMap<>();
assessmentDataDOList.forEach(item -> {
assessmentDataMap.put(item.getTemplateId() + CommonConstants.COLON + item.getAssessmentUserId(), item);
});
List<AssessmentTemplateDataVO> templateDataVOList = new ArrayList<>();
assessmentTemplateDOList.forEach(item -> {
AssessmentTemplateDataVO assessmentTemplateDataVO = new AssessmentTemplateDataVO();
AssessmentDataDO assessmentDataDO = assessmentDataMap.get(item.getId() + CommonConstants.COLON + enterpriseUserDO.getUserId());
if (assessmentDataDO != null) {
assessmentTemplateDataVO.setGoalScore(assessmentDataDO.getScore());
assessmentTemplateDataVO.setReason(assessmentDataDO.getReason());
assessmentTemplateDataVO.setComments(assessmentDataDO.getComments());
assessmentTemplateDataVO.setQualified(assessmentDataDO.getQualified());
assessmentTemplateDataVO.setAssessmentDataId(assessmentDataDO.getId());
}
assessmentTemplateDataVO.setScore(item.getScore());
assessmentTemplateDataVO.setTemplateName(item.getTemplateName());
assessmentTemplateDataVO.setTemplateRemarkList(Arrays.asList(item.getTemplateRemark().split(CommonConstants.COMMA)));
assessmentTemplateDataVO.setCategory(item.getCategory());
assessmentTemplateDataVO.setId(item.getId());
assessmentTemplateDataVO.setType(item.getType());
assessmentTemplateDataVO.setCategory(item.getCategory());
assessmentTemplateDataVO.setTemplateRequirements(item.getTemplateRequirements());
templateDataVOList.add(assessmentTemplateDataVO);
});
assessmentUserTrainingVO.setTemplateDataList(templateDataVOList);
return assessmentUserTrainingVO;
}
@Override
public void turn(Long id, String userId, String turnUserId) {
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(id);
EmployeeTrainingDO employeeTrainingDO = employeeTrainingDAO.selectByUserDetailId(id);
employeeTrainingDO.setPracticalAssessmentUserId(turnUserId);
employeeTrainingDAO.updateByPrimaryKeySelective(employeeTrainingDO);
}
@Override
public void assessmentUserCommit(EmployeeAssessmentCommitListRequest request) {
if (CollectionUtils.isEmpty(request.getList())) {
return;
}
EmployeeTrainingDO employeeTrainingDO = employeeTrainingDAO.selectById(request.getEmployeeTrainingId());
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(employeeTrainingDO.getXfsgUserDetailId());
Boolean pass = true;
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoByThirdOaUniqueFlag(tempUserDetailDO.getIdCard());
String userId = enterpriseUserDO.getUserId();
AtomicReference<Long> totalScore = new AtomicReference<>(0L);
request.getList().forEach(item -> {
AssessmentDataDO assessmentDataDO = null;
totalScore.set(totalScore.get() + item.getScore());
if (item.getId() != null) {
assessmentDataDO = assessmentDataDAO.selectByPrimaryKey(item.getId());
} else {
assessmentDataDO = assessmentDataDAO.selectByTemplateId(item.getTemplateId(), employeeTrainingDO.getXfsgUserDetailId().toString(), item.getShopId());
}
if (assessmentDataDO != null) {
assessmentDataDO.setScore(item.getScore());
assessmentDataDO.setComments(item.getComments());
assessmentDataDAO.updateByPrimaryKeySelective(assessmentDataDO);
} else {
assessmentDataDO = new AssessmentDataDO();
assessmentDataDO.setTemplateId(item.getTemplateId());
assessmentDataDO.setShopId(item.getShopId());
assessmentDataDO.setComments(item.getComments());
assessmentDataDO.setScore(item.getScore());
assessmentDataDO.setAssessmentUserId(employeeTrainingDO.getXfsgUserDetailId().toString());
assessmentDataDAO.insertSelective(assessmentDataDO);
}
});
employeeTrainingDO.setPracticalAssessmentUserId(userId);
employeeTrainingDO.setPracticalExamScore(totalScore.get().intValue());
if (totalScore.get().intValue() > CommonConstants.NINETY) {
employeeTrainingDO.setPracticalExamStatus(1);
} else {
employeeTrainingDO.setPracticalExamStatus(0);
}
employeeTrainingDO.setPracticalExamScore(totalScore.get().intValue());
employeeTrainingDO.setActualAssessmentTime(new Date());
if(employeeTrainingDO.getPracticalExamStatus() == 2 || employeeTrainingDO.getTheoreticalExamStatus() == 2){
employeeTrainingDO.setAssessmentStatus(3);
}
if(employeeTrainingDO.getPracticalExamStatus() == 1 && employeeTrainingDO.getTheoreticalExamStatus() == 1){
employeeTrainingDO.setAssessmentStatus(2);
}
employeeTrainingDAO.updateByPrimaryKeySelective(employeeTrainingDO);
}
}

View File

@@ -124,7 +124,7 @@ public class OpeningOperationPlanImpl implements OpeningOperationPlanService {
openingOperationPlanVO.setSubmittedUserName(username.getName());
openingOperationPlanVO.setPreparationUsers(nameByUserId);
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
openingOperationPlanVO.setName(shopInfo.getShopName());
openingOperationPlanVO.setShopName(shopInfo.getShopName());
return openingOperationPlanVO;
}

View File

@@ -191,7 +191,7 @@ public class PreparationServiceImpl implements PreparationService {
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
acceptanceInfoDO.setShopId(shopId);
acceptanceInfoDO.setCreateTime(new Date());
acceptanceInfoDAO.insertAcceptanceInfo(acceptanceInfoDO);
acceptanceInfoDAO.insertSelectiveAcceptanceInfo(acceptanceInfoDO);
ShopStageInfoDO data3 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_14.getShopSubStage());
data3.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140.getShopSubStageStatus());
list.add(data3);

View File

@@ -420,13 +420,13 @@ public class SysStoreAppServiceImpl implements SysStoreAppService,AuditResultSer
shopAuditInfoDO.setResultType(Constants.ZERO_INTEGER);
shopAuditInfoDO.setPassReason(request.getCause());
shopSubStageStatusEnum = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33;
//校验建店与加盟签约合同是否完成 并初始化后续流程数据
preparationService.contractAndBuildStoreCompletion(shopId);
}
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
}catch (Exception e){
throw new ServiceException(ErrorCodeEnum.UNKNOWN);
}finally {
//2.校验建店与加盟签约合同是否完成 并初始化后续流程数据
preparationService.contractAndBuildStoreCompletion(shopId);
//更新门店编码
ShopInfoDO shopInfoDO = new ShopInfoDO();
shopInfoDO.setId(shopId);

View File

@@ -98,9 +98,9 @@ public class TempUserDetailServiceImpl implements TempUserDetailService {
if(shopInfoDO == null){
throw new ServiceException("该店铺不存在");
}
if(StringUtil.isNotBlank(shopInfoDO.getStoreNum())){
throw new ServiceException("系统建店已完成,无法手动登记");
}
// if(StringUtil.isNotBlank(shopInfoDO.getStoreNum())){
// throw new ServiceException("系统建店已完成,无法手动登记");
// }
tempUserDetailDO = new TempUserDetailDO();
tempUserDetailDO.setLineId(shopInfoDO.getLineId());
tempUserDetailDO.setShopId(tempUserDetailRequest.getShopId());

View File

@@ -17,8 +17,7 @@ import java.util.Date;
*
* @author fanlyun
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
{
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
public static String YYYY = "yyyy";
public static String YYYY_MM = "yyyy-MM";
@@ -47,8 +46,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
*
* @return Date() 当前日期
*/
public static Date getNowDate()
{
public static Date getNowDate() {
return new Date();
}
@@ -57,56 +55,48 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
*
* @return String
*/
public static String getDate()
{
public static String getDate() {
return dateTimeNow(YYYY_MM_DD);
}
public static String getTime()
{
public static String getTime() {
return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
}
public static String dateTimeNow()
{
public static String dateTimeNow() {
return dateTimeNow(YYYYMMDDHHMMSS);
}
public static String dateTimeNow(final String format)
{
public static String dateTimeNow(final String format) {
return parseDateToStr(format, new Date());
}
public static String dateTime(final Date date)
{
public static String dateTime(final Date date) {
return parseDateToStr(YYYY_MM_DD, date);
}
/**
* 格式化日期
*
* @param format 格式化规则
* @param date 日期
* @param date 日期
* @return 格式化完毕的日期
*/
public static String parseDateToStr(final String format, final Date date)
{
public static String parseDateToStr(final String format, final Date date) {
return new SimpleDateFormat(format).format(date);
}
/**
* 以规则解析时间字符串
*
* @param format 格式化规则
* @param ts 时间字符串
* @param ts 时间字符串
* @return 解析后时间
*/
public static Date dateTime(final String format, final String ts)
{
try
{
public static Date dateTime(final String format, final String ts) {
try {
return new SimpleDateFormat(format).parse(ts);
}
catch (ParseException e)
{
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
@@ -114,8 +104,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 日期路径 即年/月/日 如2018/08/08
*/
public static String datePath()
{
public static String datePath() {
Date now = new Date();
return DateFormatUtils.format(now, "yyyy/MM/dd");
}
@@ -123,8 +112,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 日期路径 即年/月/日 如20180808
*/
public static String dateTime()
{
public static String dateTime() {
Date now = new Date();
return DateFormatUtils.format(now, "yyyyMMdd");
}
@@ -132,18 +120,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 日期型字符串转化为日期 格式
*/
public static Date parseDate(Object str)
{
if (str == null)
{
public static Date parseDate(Object str) {
if (str == null) {
return null;
}
try
{
try {
return parseDate(str.toString(), parsePatterns);
}
catch (ParseException e)
{
} catch (ParseException e) {
return null;
}
}
@@ -151,8 +134,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 获取服务器启动时间
*/
public static Date getServerStartDate()
{
public static Date getServerStartDate() {
long time = ManagementFactory.getRuntimeMXBean().getStartTime();
return new Date(time);
}
@@ -160,8 +142,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 计算两个时间差
*/
public static String getDatePoor(Date endDate, Date nowDate)
{
public static String getDatePoor(Date endDate, Date nowDate) {
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
@@ -181,6 +162,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 以规则解析时间字符串
*
* @param strDate 时间字符串
* @param pattern 格式化规则
* @return 解析后时间
@@ -193,6 +175,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 根据毫秒数获取时间
*
* @param millis 毫秒数
* @return 时间
*/
@@ -201,16 +184,16 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
Date date = new Date();
date.setTime(millis);
return simpleDateFormat.format(date);
return simpleDateFormat.format(date);
}
public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
public static String NOTICE_DATE = "yyyy年MM月dd日 HH:mm";
/**
* 返回11个月之前的月从月的第一天开始如当前是2020-05-03 返回的是2019-06-01 00:00:00
*
* @return Date
*/
public static Date getNestOneYear() {
@@ -220,6 +203,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
/**
* 从1.8新增的{@link LocalDate}转换为{@link Date}
*
* @param localDate {@link LocalDate}
* @return 时间
*/
@@ -229,4 +213,10 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
return Date.from(instant);
}
public static String parseLongDateToStr(final Long time) {
if (time == null) {
return null;
}
return new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS).format(new Date(time));
}
}

View File

@@ -178,6 +178,8 @@ public class Constants
public static final String FRANCHISE_AGREEMENT_PERSON = "/api/coolstore/start-flow/franchise-agreement-person";
public static final String GET_STORE_INFO_BY_CODE = "/api/kdz/get-store-info-by-code";
// 员工详细信息数据接口
public static final String GET_USER_INFO_BY_CODE = "/api/kdz/get-user-info-by-code";
// 加盟商信息数据接口

View File

@@ -1,11 +1,10 @@
package com.cool.store.controller.webb;
import com.cool.store.context.CurrentUserHolder;
import com.cool.store.request.EmployeeTrainingCommitListRequest;
import com.cool.store.request.EmployeeTrainingDetailRequest;
import com.cool.store.request.EmployeeTrainingRequest;
import com.cool.store.request.*;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.EmployeeTrainingService;
import com.cool.store.vo.AssessmentUserTrainingVO;
import com.cool.store.vo.EmployeeTrainingDetailVO;
import com.cool.store.vo.EmployeeTrainingVO;
import com.cool.store.vo.EmployeeUserTrainingVO;
@@ -81,6 +80,39 @@ public class EmployeeTrainingController {
@ApiOperation("培训-教练员-提交培训")
@PostMapping("/trainerUserCommit")
public ResponseResult<Boolean> trainerUserCommit(@RequestBody EmployeeTrainingCommitListRequest request) {
employeeTrainingService.trainerUserCommit(request);
return ResponseResult.success(Boolean.TRUE);
}
@ApiOperation("培训-战区经理-考核员工列表")
@PostMapping("/assessmentUserList")
public ResponseResult<PageInfo<EmployeeTrainingVO>> assessmentUserList(@RequestBody EmployeeAssessmentRequest request) {
return ResponseResult.success(employeeTrainingService.assessmentUserList(CurrentUserHolder.getUserId(), request));
}
@ApiOperation("培训-战区经理-员工考核详情")
@PostMapping("/assessmentUserDetail")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "员工id", required = true)
})
public ResponseResult<AssessmentUserTrainingVO> assessmentUserDetail(Long id) {
return ResponseResult.success(employeeTrainingService.assessmentUserDetail(id));
}
@ApiOperation("培训-实训考核-转交")
@PostMapping("/turn")
public ResponseResult<Boolean> turn(@RequestBody EmployeeAssessmentTurnRequest request) {
employeeTrainingService.turn(request.getId(), CurrentUserHolder.getUserId(), request.getTurnUserId());
return ResponseResult.success(Boolean.TRUE);
}
@ApiOperation("培训-实训考核-提交考核结果")
@PostMapping("/assessmentUserCommit")
public ResponseResult<Boolean> assessmentUserCommit(@RequestBody EmployeeAssessmentCommitListRequest request) {
employeeTrainingService.assessmentUserCommit(request);
return ResponseResult.success(Boolean.TRUE);
}
}

View File

@@ -6,6 +6,7 @@ import com.cool.store.response.LicenseListResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.SubmitLicenseResponse;
import com.cool.store.service.ApplyLicenseService;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.vo.OpenAcceptanceInfoListVO;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api;
@@ -51,5 +52,4 @@ public class PCApplyLicenseController {
@RequestParam("result") String result) {
return ResponseResult.success(applyLicenseService.licenseExamine(shopId,status,result));
}
}

View File

@@ -3,6 +3,7 @@ package com.cool.store.controller.webc;
import com.cool.store.request.SubmitLicenseRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.ApplyLicenseService;
import com.cool.store.service.CoolStoreStartFlowService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -38,7 +39,7 @@ public class ApplyLicenseController {
/**
*
* @param id
* @param
* @param status 0通过 1不通过
* @return
*/
@@ -49,5 +50,4 @@ public class ApplyLicenseController {
@RequestParam("result") String result) {
return ResponseResult.success(applyLicenseService.licenseExamine(shopId,status,result));
}
}

View File

@@ -4,6 +4,7 @@ import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceCheckRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.FitmentResponse;
import com.cool.store.response.ResponseResult;
@@ -80,6 +81,11 @@ public class MiniDecorationController {
public ResponseResult<List<AssessmentTemplateVO>> getChecks(@RequestParam Integer type){
return ResponseResult.success(assessmentTemplateService.listByType(type));
}
@ApiOperation("提交三方验收检查项")
@PostMapping("/submitThreeChecks")
public ResponseResult<Boolean> submitThreeChecks(@RequestBody ThreeAcceptanceCheckRequest request){
return ResponseResult.success(decorationService.submitThreeCheck(request));
}
@ApiOperation("提交三方验收")
@PostMapping("/submitThreeAcceptance")
public ResponseResult<Boolean> submitThreeAcceptance(@RequestBody ThreeAcceptanceRequest request){