From a55c0fe455abc8ca142c6b9a402284f9258690ec Mon Sep 17 00:00:00 2001 From: bianyadong Date: Tue, 30 Apr 2024 14:32:08 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E7=99=BB=E8=AE=B0PC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webb/PCTempUserDetailController.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java new file mode 100644 index 000000000..dce47946a --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java @@ -0,0 +1,57 @@ +package com.cool.store.controller.webb; + +import com.cool.store.dto.ehr.StaffBaseInfoDTO; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.TempUserDetailService; +import com.cool.store.vo.TempUserDetailInfoVO; +import com.cool.store.vo.TempUserDetailListVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @author byd + * @date 2024-04-29 16:15 + */ +@RestController +@RequestMapping({"/pc/tempUserDetail"}) +@Slf4j +@Api(tags = "PC培训登记") +public class PCTempUserDetailController { + + @Autowired + private TempUserDetailService tempUserDetailService; + + @GetMapping(path = "/getUserList") + @ApiOperation("登记员工列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "shopId", value = "店铺Id") + }) + public ResponseResult getUserList(@RequestParam(value = "shopId") Long shopId) { + return ResponseResult.success(tempUserDetailService.userList(shopId)); + } + + @GetMapping(path = "/getUserInfoByIdCard") + @ApiImplicitParams({ + @ApiImplicitParam(name = "idCard", value = "身份证号") + }) + @ApiOperation("培训登记-身份证号查询信息") + public ResponseResult getUserInfoByIdCard(@RequestParam(value = "idCard") String idCard) { + return ResponseResult.success(tempUserDetailService.getUserInfoByIdCard((idCard))); + } + + + @GetMapping(path = "/getUserInfoByIdUserDetailId") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userDetailId", value = "用户详情表id") + }) + @ApiOperation("培训登记-查询信息根据用户详情id") + public ResponseResult getUserInfoByIdUserDetailId(@RequestParam(value = "userDetailId") Long userDetailId) { + return ResponseResult.success(tempUserDetailService.getUserInfoByIdUserDetailId((userDetailId))); + } + +} From dfc292b9f3a874bf1444824b3829b73c24b9b6c5 Mon Sep 17 00:00:00 2001 From: bianyadong Date: Tue, 30 Apr 2024 14:57:58 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=9F=B9=E8=AE=AD=E7=99=BB=E8=AE=B0-?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=99=BB=E8=AE=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/webb/PCTempUserDetailController.java | 11 +++++++++++ .../controller/webc/TempUserDetailController.java | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java index dce47946a..25a64f048 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTempUserDetailController.java @@ -1,6 +1,7 @@ package com.cool.store.controller.webb; import com.cool.store.dto.ehr.StaffBaseInfoDTO; +import com.cool.store.request.IdRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.TempUserDetailService; import com.cool.store.vo.TempUserDetailInfoVO; @@ -54,4 +55,14 @@ public class PCTempUserDetailController { return ResponseResult.success(tempUserDetailService.getUserInfoByIdUserDetailId((userDetailId))); } + @PostMapping(path = "/registrationCompleted") + @ApiOperation("培训登记-完成") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "店铺id shopId") + }) + public ResponseResult registrationCompleted(@RequestBody IdRequest idRequest) { + tempUserDetailService.registrationCompleted((idRequest.getId())); + return ResponseResult.success(Boolean.TRUE); + } + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TempUserDetailController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TempUserDetailController.java index 497b63b4e..dbae28f21 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TempUserDetailController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TempUserDetailController.java @@ -1,6 +1,7 @@ package com.cool.store.controller.webc; import com.cool.store.dto.ehr.StaffBaseInfoDTO; +import com.cool.store.request.IdRequest; import com.cool.store.request.TempUserDetailRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.TempUserDetailService; @@ -62,4 +63,14 @@ public class TempUserDetailController { return ResponseResult.success(tempUserDetailService.getUserInfoByIdUserDetailId((userDetailId))); } + @PostMapping(path = "/registrationCompleted") + @ApiOperation("培训登记-完成") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "店铺id shopId") + }) + public ResponseResult registrationCompleted(@RequestBody IdRequest idRequest) { + tempUserDetailService.registrationCompleted((idRequest.getId())); + return ResponseResult.success(Boolean.TRUE); + } + } From 7053684ec5b54ade884c9cd16861294951daadb4 Mon Sep 17 00:00:00 2001 From: bianyadong Date: Tue, 30 Apr 2024 15:00:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=9F=B9=E8=AE=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/dao/EmployeeTrainingDAO.java | 19 +++ .../store/mapper/EmployeeTrainingMapper.java | 8 + .../mapper/EmployeeTrainingMapper.xml | 106 +++++++++--- .../cool/store/entity/EmployeeTrainingDO.java | 2 +- .../EmployeeTrainingDetailRequest.java | 55 ++++++ .../request/EmployeeTrainingRequest.java | 34 ++++ .../store/vo/EmployeeTrainingDetailVO.java | 159 ++++++++++++++++++ .../com/cool/store/vo/EmployeeTrainingVO.java | 66 ++++++++ .../cool/store/vo/TempUserDetailListVO.java | 7 + .../service/EmployeeTrainingService.java | 20 +++ .../store/service/TempUserDetailService.java | 2 + .../impl/EmployeeTrainingServiceImpl.java | 138 +++++++++++++++ .../impl/TempUserDetailServiceImpl.java | 25 ++- .../webb/EmployeeTrainingController.java | 51 ++++++ 14 files changed, 660 insertions(+), 32 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingDetailRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingDetailVO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/EmployeeTrainingService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/EmployeeTrainingServiceImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/EmployeeTrainingController.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EmployeeTrainingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EmployeeTrainingDAO.java index ef2635cbd..3569cd7a6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EmployeeTrainingDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EmployeeTrainingDAO.java @@ -1,10 +1,13 @@ package com.cool.store.dao; +import com.cool.store.entity.EmployeeTrainingDO; import com.cool.store.mapper.EmployeeTrainingMapper; +import com.cool.store.vo.EmployeeTrainingVO; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.List; /** * @author byd @@ -16,4 +19,20 @@ public class EmployeeTrainingDAO { @Resource private EmployeeTrainingMapper employeeTrainingMapper; + + public List employeeTrainingList(String keyWord, List regionIdList, + List authRegionIdList, Boolean assignFlag, + String beginTime, String endTime, List shopIdList) { + + return employeeTrainingMapper.employeeTrainingMapper(keyWord, regionIdList, authRegionIdList, assignFlag, beginTime, endTime, shopIdList); + } + + public EmployeeTrainingDO selectById(Long id) { + + return employeeTrainingMapper.selectByPrimaryKey(id); + } + + public EmployeeTrainingDO selectByUserDetailId(Long userDetailId) { + return employeeTrainingMapper.selectOne(EmployeeTrainingDO.builder().xfsgUserDetailId(userDetailId).build()); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EmployeeTrainingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EmployeeTrainingMapper.java index bd7e5cfab..c4389e9b4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EmployeeTrainingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EmployeeTrainingMapper.java @@ -1,7 +1,15 @@ package com.cool.store.mapper; import com.cool.store.entity.EmployeeTrainingDO; +import com.cool.store.vo.EmployeeTrainingVO; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.List; + public interface EmployeeTrainingMapper extends Mapper { + + List employeeTrainingMapper(@Param("keyWord") String keyWord, @Param("regionIdList") List regionIdList, + @Param("authRegionIdList") List authRegionIdList, @Param("assignFlag") Boolean assignFlag, + @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("shopIdList") List shopIdList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EmployeeTrainingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EmployeeTrainingMapper.xml index 46aa39daa..ed2b20ca4 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EmployeeTrainingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EmployeeTrainingMapper.xml @@ -1,31 +1,83 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/EmployeeTrainingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/EmployeeTrainingDO.java index d89c04402..e3e090c02 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/EmployeeTrainingDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/EmployeeTrainingDO.java @@ -39,7 +39,7 @@ public class EmployeeTrainingDO { * 是否分配 0-待分配 1-已分配 */ @Column(name = "assign_flag") - private Byte assignFlag; + private Boolean assignFlag; /** * 实训开始时间 diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingDetailRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingDetailRequest.java new file mode 100644 index 000000000..7211b8470 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingDetailRequest.java @@ -0,0 +1,55 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author byd + * @date 2024-04-30 10:53 + */ +@Data +public class EmployeeTrainingDetailRequest { + + @ApiModelProperty("id") + private Long id; + /** + * 实训开始时间 + */ + @ApiModelProperty("实训开始时间") + private Date trainingStartTime; + + /** + * 实训结束时间 + */ + @ApiModelProperty("实训结束时间") + private Date trainingEndTime; + + /** + * 实训门店ID + */ + @ApiModelProperty("实训门店ID") + private String trainingStoreId; + + + /** + * 带教老师ID + */ + @ApiModelProperty("带教老师ID") + private String trainingTeacherUserId; + + + /** + * 实操考核人员ID + */ + @ApiModelProperty("实操考核人员ID") + private String practicalAssessmentUserId; + + + /** + * 预计考核时间 + */ + @ApiModelProperty("预计考核时间") + private Date estimatedAssessmentTime; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingRequest.java new file mode 100644 index 000000000..9a73600b6 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/EmployeeTrainingRequest.java @@ -0,0 +1,34 @@ +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 EmployeeTrainingRequest extends PageBasicInfo { + + + @ApiModelProperty("姓名或者手机号") + private String keyWord; + + @ApiModelProperty("区域id列表") + private List regionIdList; + + @ApiModelProperty("是否分配 0-待分配 1-已分配") + private Boolean assignFlag; + + @ApiModelProperty("开始时间") + private Long beginTime; + + @ApiModelProperty("结束时间") + private Long endTime; + + @ApiModelProperty("门店id列表") + private List storeIdList; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingDetailVO.java new file mode 100644 index 000000000..3ea95994d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingDetailVO.java @@ -0,0 +1,159 @@ +package com.cool.store.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.persistence.Column; +import java.util.Date; + +/** + * @author byd + * @date 2024-04-30 10:53 + */ +@Data +public class EmployeeTrainingDetailVO { + + @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 String roleId; + + @ApiModelProperty("店铺id") + private Long shopId; + + @ApiModelProperty("店铺名称") + private String shopName; + + @ApiModelProperty("培训id") + private Long employeeTrainingId; + + + @ApiModelProperty("战区名称") + private String regionName; + + @ApiModelProperty("大区ID") + private Long largeRegionId; + + @ApiModelProperty("大区名称") + private String largeRegionName; + + /** + * 实训开始时间 + */ + @ApiModelProperty("实训开始时间") + private Date trainingStartTime; + + /** + * 实训结束时间 + */ + @ApiModelProperty("实训结束时间") + private Date trainingEndTime; + + /** + * 实训门店ID + */ + @ApiModelProperty("实训门店ID") + private String trainingStoreId; + + /** + * 实训门店ID + */ + @ApiModelProperty("实训门店名称") + private String trainingStoreName; + + /** + * 带教老师ID + */ + @ApiModelProperty("带教老师ID") + private String trainingTeacherUserId; + + /** + * 带教老师ID + */ + @ApiModelProperty("带教老师名称") + private String trainingTeacherUserName; + + /** + * 实操考核人员ID + */ + @ApiModelProperty("实操考核人员ID") + private String practicalAssessmentUserId; + + @ApiModelProperty("实操考核人员名称") + private String practicalAssessmentUserName; + + /** + * 预计考核时间 + */ + @ApiModelProperty("预计考核时间") + private Date estimatedAssessmentTime; + + /** + * 实际考核时间 + */ + @ApiModelProperty("实际考核时间") + private Date actualAssessmentTime; + + /** + * 是否分配 0-待分配 1-已分配 + */ + @ApiModelProperty("是否分配 0-待分配 1-已分配") + private Boolean assignFlag; + + /** + * 考核项数 + */ + @ApiModelProperty("考核项数") + private Integer assessmentNum; + + /** + * 考核总项数 + */ + @ApiModelProperty("考核总项数") + private Integer assessmentTotalNum; + + /** + * 理论考试状态 0-未开始 1-合格 2-不合格 + */ + @ApiModelProperty("理论考试状态 0-未开始 1-合格 2-不合格") + private Byte theoreticalExamStatus; + + /** + * 理论考试分值 + */ + @ApiModelProperty("理论考试分值") + private Integer theoreticalExamScore; + + /** + * 实操考试状态 0-未开始 1-合格 2-不合格 + */ + @ApiModelProperty("实操考试状态 0-未开始 1-合格 2-不合格") + private Byte practicalExamStatus; + + /** + * 实操考试分值 + */ + @ApiModelProperty("实操考试分值") + private Integer practicalExamScore; + + /** + * 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过 + */ + @ApiModelProperty("考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过") + private Byte assessmentStatus; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingVO.java new file mode 100644 index 000000000..7c68a15c7 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EmployeeTrainingVO.java @@ -0,0 +1,66 @@ +package com.cool.store.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author byd + * @date 2024-04-30 10:53 + */ +@Data +public class EmployeeTrainingVO { + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("名字") + private String username; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("区域id") + private Long regionId; + + @ApiModelProperty("角色id 170000000-店长 180000000-店员") + private String roleId; + + @ApiModelProperty("店铺id") + private Long shopId; + + @ApiModelProperty("店铺名称") + private Long shopName; + + @ApiModelProperty("培训id") + private Long employeeTrainingId; + + @ApiModelProperty("考核项数") + private Integer assessmentNum; + + @ApiModelProperty("考核总项数") + private Integer assessmentTotalNum; + + @ApiModelProperty("理论考试状态 0-未开始 1-合格 2-不合格") + private Integer theoreticalExamStatus; + + @ApiModelProperty("理论考试分值") + private Integer theoreticalExamScore; + + @ApiModelProperty("实操考试状态 0-未开始 1-合格 2-不合格") + private Integer practicalExamStatus; + + @ApiModelProperty("实操考试分值") + private Integer practicalExamScore; + + @ApiModelProperty("考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过") + private Integer assessmentStatus; + + @ApiModelProperty("战区名称") + private String regionName; + + @ApiModelProperty("大区ID") + private Long largeRegionId; + + @ApiModelProperty("大区名称") + private String largeRegionName; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/TempUserDetailListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/TempUserDetailListVO.java index d495959b9..96b47b784 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/TempUserDetailListVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/TempUserDetailListVO.java @@ -3,6 +3,7 @@ package com.cool.store.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.persistence.Column; import java.util.List; /** @@ -20,4 +21,10 @@ public class TempUserDetailListVO { @ApiModelProperty("店铺code") private String storeNum; + + /** + * 店铺子阶段状态 + */ + @ApiModelProperty("店铺子阶段状态") + private Integer shopSubStageStatus; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EmployeeTrainingService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EmployeeTrainingService.java new file mode 100644 index 000000000..ff69111a7 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EmployeeTrainingService.java @@ -0,0 +1,20 @@ +package com.cool.store.service; + +import com.cool.store.request.EmployeeTrainingDetailRequest; +import com.cool.store.request.EmployeeTrainingRequest; +import com.cool.store.vo.EmployeeTrainingDetailVO; +import com.cool.store.vo.EmployeeTrainingVO; +import com.github.pagehelper.PageInfo; + +/** + * @author byd + * @date 2024-04-30 10:16 + */ +public interface EmployeeTrainingService { + + PageInfo employeeTrainingList(String userId, EmployeeTrainingRequest request); + + EmployeeTrainingDetailVO employeeTrainingDetail(Long id); + + void distribution(EmployeeTrainingDetailRequest request); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/TempUserDetailService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/TempUserDetailService.java index 6331f2198..f719430f6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/TempUserDetailService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/TempUserDetailService.java @@ -22,4 +22,6 @@ public interface TempUserDetailService { TempUserDetailInfoVO getUserInfoByIdUserDetailId(Long id); StaffBaseInfoDTO getUserInfoByIdCard(String idCard); + + void registrationCompleted(Long shopId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EmployeeTrainingServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EmployeeTrainingServiceImpl.java new file mode 100644 index 000000000..422eebf45 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EmployeeTrainingServiceImpl.java @@ -0,0 +1,138 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.cool.store.dao.*; +import com.cool.store.entity.EmployeeTrainingDO; +import com.cool.store.entity.ShopInfoDO; +import com.cool.store.entity.StoreDO; +import com.cool.store.entity.TempUserDetailDO; +import com.cool.store.exception.ServiceException; +import com.cool.store.request.EmployeeTrainingDetailRequest; +import com.cool.store.request.EmployeeTrainingRequest; +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.EmployeeTrainingDetailVO; +import com.cool.store.vo.EmployeeTrainingVO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.*; + +/** + * @author byd + * @date 2024-04-30 10:16 + */ +@Service +public class EmployeeTrainingServiceImpl implements EmployeeTrainingService { + + @Resource + private SysRoleService sysRoleService; + + @Resource + private UserAuthMappingService userAuthMappingService; + + @Resource + private EmployeeTrainingDAO employeeTrainingDAO; + + @Resource + private RegionService regionService; + + @Resource + private RegionDao regionDao; + + @Resource + private TempUserDetailDAO tempUserDetailDAO; + + @Resource + private ShopInfoDAO shopInfoDAO; + + @Resource + private EnterpriseUserDAO enterpriseUserDAO; + + @Resource + private StoreDao storeDao; + + @Override + public PageInfo employeeTrainingList(String userId, EmployeeTrainingRequest request) { + List authRegionIdList = new ArrayList<>(); + if (!sysRoleService.checkIsAdmin(userId)) { + authRegionIdList = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(userId); + } + PageHelper.startPage(request.getPageNum(), request.getPageSize()); + List 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); + + list.forEach(item -> { + Long regionId = item.getRegionId(); + Long bigRegionIdByAreaId = regionService.getBigRegionIdByAreaId(item.getRegionId()); + Map regionNameMap = regionDao.getRegionNameMap(Arrays.asList(bigRegionIdByAreaId, item.getRegionId())); + item.setRegionName(regionNameMap.get(item.getRegionId())); + item.setLargeRegionId(bigRegionIdByAreaId); + item.setLargeRegionName(regionNameMap.get(bigRegionIdByAreaId)); + }); + return new PageInfo<>(list); + } + + @Override + public EmployeeTrainingDetailVO employeeTrainingDetail(Long id) { + TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(id); + + EmployeeTrainingDO employeeTrainingDO = employeeTrainingDAO.selectByUserDetailId(id); + + EmployeeTrainingDetailVO employeeTrainingVO = new EmployeeTrainingDetailVO(); + employeeTrainingVO.setId(employeeTrainingDO.getId()); + employeeTrainingVO.setRegionId(employeeTrainingDO.getRegionId()); + employeeTrainingVO.setTrainingStartTime(employeeTrainingDO.getTrainingStartTime()); + employeeTrainingVO.setTrainingEndTime(employeeTrainingDO.getTrainingEndTime()); + employeeTrainingVO.setTrainingStoreId(employeeTrainingDO.getTrainingStoreId()); + StoreDO storeDO = storeDao.getByStoreId(employeeTrainingDO.getTrainingStoreId()); + if (storeDO != null) { + employeeTrainingVO.setTrainingStoreName(storeDO.getStoreName()); + } + employeeTrainingVO.setTrainingTeacherUserId(employeeTrainingDO.getTrainingTeacherUserId()); + employeeTrainingVO.setTrainingTeacherUserName(enterpriseUserDAO.getUserName(employeeTrainingDO.getTrainingTeacherUserId())); + employeeTrainingVO.setAssessmentStatus(employeeTrainingDO.getAssessmentStatus()); + employeeTrainingVO.setAssessmentNum(employeeTrainingDO.getAssessmentNum()); + employeeTrainingVO.setAssessmentTotalNum(employeeTrainingDO.getAssessmentTotalNum()); + employeeTrainingVO.setTheoreticalExamStatus(employeeTrainingDO.getTheoreticalExamStatus()); + employeeTrainingVO.setTheoreticalExamScore(employeeTrainingDO.getTheoreticalExamScore()); + employeeTrainingVO.setPracticalExamStatus(employeeTrainingDO.getPracticalExamStatus()); + employeeTrainingVO.setPracticalExamScore(employeeTrainingDO.getPracticalExamScore()); + employeeTrainingVO.setEstimatedAssessmentTime(employeeTrainingDO.getEstimatedAssessmentTime()); + employeeTrainingVO.setActualAssessmentTime(employeeTrainingDO.getActualAssessmentTime()); + employeeTrainingVO.setPracticalAssessmentUserId(employeeTrainingDO.getPracticalAssessmentUserId()); + employeeTrainingVO.setPracticalAssessmentUserName(enterpriseUserDAO.getUserName(employeeTrainingDO.getPracticalAssessmentUserId())); + employeeTrainingVO.setAssignFlag(employeeTrainingDO.getAssignFlag()); + employeeTrainingVO.setShopId(employeeTrainingDO.getShopId()); + ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(employeeTrainingDO.getShopId()); + employeeTrainingVO.setShopName(shopInfoDO.getShopName()); + Long bigRegionIdByAreaId = regionService.getBigRegionIdByAreaId(employeeTrainingDO.getRegionId()); + Map regionNameMap = regionDao.getRegionNameMap(Arrays.asList(bigRegionIdByAreaId, employeeTrainingDO.getRegionId())); + employeeTrainingVO.setRegionName(regionNameMap.get(employeeTrainingDO.getRegionId())); + employeeTrainingVO.setLargeRegionId(bigRegionIdByAreaId); + employeeTrainingVO.setLargeRegionName(regionNameMap.get(bigRegionIdByAreaId)); + employeeTrainingVO.setRegionId(employeeTrainingDO.getRegionId()); + employeeTrainingVO.setMobile(tempUserDetailDO.getMobile()); + employeeTrainingVO.setUsername(tempUserDetailDO.getUsername()); + employeeTrainingVO.setIdCard(tempUserDetailDO.getIdCard()); + return employeeTrainingVO; + } + + @Override + public void distribution(EmployeeTrainingDetailRequest request) { + TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(request.getId()); + + EmployeeTrainingDO employeeTrainingDO = employeeTrainingDAO.selectByUserDetailId(request.getId()); + + if(employeeTrainingDO != null && employeeTrainingDO.getAssignFlag()){ + throw new ServiceException("已经分配"); + } + + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TempUserDetailServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TempUserDetailServiceImpl.java index 3bf773ab2..6d3f77d51 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TempUserDetailServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/TempUserDetailServiceImpl.java @@ -2,12 +2,16 @@ package com.cool.store.service.impl; import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.ShopInfoDAO; +import com.cool.store.dao.ShopStageInfoDAO; import com.cool.store.dao.TempUserDetailDAO; import com.cool.store.dto.ehr.StaffBaseInfoDTO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.ShopInfoDO; +import com.cool.store.entity.ShopStageInfoDO; import com.cool.store.entity.TempUserDetailDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.point.ShopSubStageEnum; +import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.TempUserDetailRequest; import com.cool.store.service.TempUserDetailService; @@ -21,10 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * @author byd @@ -45,6 +46,9 @@ public class TempUserDetailServiceImpl implements TempUserDetailService { @Autowired private XfsgEhrService xfsgEhrService; + @Autowired + private ShopStageInfoDAO shopStageInfoDAO; + @Override public TempUserDetailListVO userList(Long shopId) { List tempUserDetailDOList = tempUserDetailDAO.userList(shopId); @@ -73,6 +77,10 @@ public class TempUserDetailServiceImpl implements TempUserDetailService { tempUserDetailListVO.setUserList(resultList); tempUserDetailListVO.setShopId(shopId); tempUserDetailListVO.setStoreNum(shopInfoDO.getStoreNum()); + ShopStageInfoDO shopStageInfoDO = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_5); + if(shopStageInfoDO != null){ + tempUserDetailListVO.setShopSubStageStatus(shopStageInfoDO.getShopSubStageStatus()); + } return tempUserDetailListVO; } @@ -151,4 +159,13 @@ public class TempUserDetailServiceImpl implements TempUserDetailService { return xfsgEhrService.getUserInfoByCode(enterpriseUserDO.getJobnumber()); } + @Override + public void registrationCompleted(Long shopId) { + ShopStageInfoDO shopStageInfoDO = shopStageInfoDAO.getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_5); + if(shopStageInfoDO != null){ + shopStageInfoDO.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_51.getShopSubStageStatus()); + shopStageInfoDAO.batchUpdate(Collections.singletonList(shopStageInfoDO)); + } + } + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/EmployeeTrainingController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/EmployeeTrainingController.java new file mode 100644 index 000000000..f9c304b0b --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/EmployeeTrainingController.java @@ -0,0 +1,51 @@ +package com.cool.store.controller.webb; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.EmployeeTrainingDetailRequest; +import com.cool.store.request.EmployeeTrainingRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.EmployeeTrainingService; +import com.cool.store.vo.EmployeeTrainingDetailVO; +import com.cool.store.vo.EmployeeTrainingVO; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @author byd + * @date 2024-04-30 10:15 + */ +@Api(tags = "员工培训") +@RestController +@RequestMapping("pc/employeeTraining") +public class EmployeeTrainingController { + + @Resource + private EmployeeTrainingService employeeTrainingService; + + @ApiOperation("待巡员工列表") + @PostMapping("/employeeTrainingList") + public ResponseResult> employeeTrainingList(@RequestBody EmployeeTrainingRequest employeeTrainingRequest) { + return ResponseResult.success(employeeTrainingService.employeeTrainingList(CurrentUserHolder.getUserId(), employeeTrainingRequest)); + } + + @ApiOperation("员工培训详情") + @GetMapping("/employeeTrainingDetail") + @ApiImplicitParams({ + @ApiImplicitParam(name = "employeeTrainingId", value = "培训id", required = true) + }) + public ResponseResult employeeTrainingDetail(@RequestParam("employeeTrainingId") Long employeeTrainingId) { + return ResponseResult.success(employeeTrainingService.employeeTrainingDetail(employeeTrainingId)); + } + + @ApiOperation("员工培训--分配") + @PostMapping("/distribution") + public ResponseResult distribution(@RequestBody EmployeeTrainingDetailRequest request) { + return ResponseResult.success(employeeTrainingService.employeeTrainingDetail(request.getId())); + } +}