Your Name
2023-02-23 380908e868b088d62c0e572457bffeea1cbfe8f8
service-common/src/main/java/com/java110/common/cmd/attendanceClasses/CheckInCmd.java
@@ -3,15 +3,18 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.common.smo.impl.AttendanceClassesTaskDetailInnerServiceSMOImpl;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.client.FileUploadTemplate;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.smo.IPhotoSMO;
import com.java110.doc.annotation.*;
import com.java110.dto.attendanceClasses.AttendanceClassesDto;
import com.java110.dto.attendanceClasses.AttendanceClassesTaskDetailDto;
import com.java110.dto.attendanceClasses.AttendanceClassesTaskDto;
import com.java110.dto.attendanceClassesStaff.AttendanceClassesStaffDto;
import com.java110.dto.file.FileDto;
import com.java110.dto.org.OrgStaffRelDto;
import com.java110.dto.store.StoreUserDto;
@@ -19,6 +22,7 @@
import com.java110.intf.common.*;
import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
import com.java110.intf.store.IStoreInnerServiceSMO;
import com.java110.intf.user.IAttendanceClassesStaffV1InnerServiceSMO;
import com.java110.intf.user.IUserV1InnerServiceSMO;
import com.java110.po.attendanceClasses.AttendanceClassesPo;
import com.java110.po.attendanceClassesTask.AttendanceClassesTaskPo;
@@ -92,7 +96,10 @@
    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
    @Autowired
    private IOrgStaffRelV1InnerServiceSMO orgStaffRelV1InnerServiceSMOImpl;
    private IAttendanceClassesStaffV1InnerServiceSMO attendanceClassesStaffV1InnerServiceSMOImpl;
    @Autowired
    private IPhotoSMO photoSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
@@ -102,6 +109,7 @@
    }
    @Override
    @Java110Transactional
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        StoreUserDto storeUserDto = new StoreUserDto();
@@ -116,45 +124,51 @@
        Assert.listOnlyOne(storeUserDtos, "员工不存在");
        OrgStaffRelDto orgStaffRelDto = new OrgStaffRelDto();
        orgStaffRelDto.setStoreId(storeUserDtos.get(0).getStoreId());
        orgStaffRelDto.setStaffId(reqJson.getString("staffId"));
        List<OrgStaffRelDto> orgStaffRelDtos = orgStaffRelV1InnerServiceSMOImpl.queryOrgStaffRels(orgStaffRelDto);
        AttendanceClassesStaffDto attendanceClassesStaffDto = new AttendanceClassesStaffDto();
        attendanceClassesStaffDto.setStaffId(reqJson.getString("staffId"));
        attendanceClassesStaffDto.setStoreId(storeUserDtos.get(0).getStoreId());
        List<AttendanceClassesStaffDto> attendanceClassesStaffs = attendanceClassesStaffV1InnerServiceSMOImpl.queryAttendanceClassesStaffs(attendanceClassesStaffDto);
        if(orgStaffRelDtos == null || orgStaffRelDtos.size() < 1){
        if (attendanceClassesStaffs == null || attendanceClassesStaffs.size() < 1) {
            throw new CmdException("员工没有考勤任务");
        }
        List<String> orgIds = new ArrayList<>();
        for(OrgStaffRelDto orgStaffRelDto1: orgStaffRelDtos){
            orgIds.add(orgStaffRelDto1.getOrgId());
        }
        // 考勤班次是否存在
        AttendanceClassesDto attendanceClassesDto = new AttendanceClassesDto();
        attendanceClassesDto.setStoreId(storeUserDtos.get(0).getStoreId());
        attendanceClassesDto.setClassesObjIds(orgIds.toArray(new String[orgIds.size()]));
        List<AttendanceClassesDto> attendanceClassesDtos = attendanceClassesV1InnerServiceSMOImpl.queryAttendanceClassess(attendanceClassesDto);
        if(attendanceClassesDtos == null || attendanceClassesDtos.size() < 1){
            throw new CmdException("班次不存在");
        }
       // Assert.listOnlyOne(attendanceClassesDtos, "班次不存在");
        for(AttendanceClassesDto tmpAttendanceClassesDto : attendanceClassesDtos) {
            doCheckInAttendanceLog(context, reqJson, storeUserDtos, userDtos, tmpAttendanceClassesDto);
        for (AttendanceClassesStaffDto tmpAttendanceClassesStaffDto : attendanceClassesStaffs) {
            // 考勤班次是否存在
            AttendanceClassesDto attendanceClassesDto = new AttendanceClassesDto();
            attendanceClassesDto.setStoreId(storeUserDtos.get(0).getStoreId());
            attendanceClassesDto.setClassesId(tmpAttendanceClassesStaffDto.getClassesId());
            List<AttendanceClassesDto> attendanceClassesDtos = attendanceClassesV1InnerServiceSMOImpl.queryAttendanceClassess(attendanceClassesDto);
            if (attendanceClassesDtos == null || attendanceClassesDtos.size() < 1) {
                throw new CmdException("班次不存在");
            }
            doCheckInAttendanceLog(context, reqJson, storeUserDtos, userDtos, attendanceClassesDtos.get(0));
        }
    }
    private void doCheckInAttendanceLog(ICmdDataFlowContext context, JSONObject reqJson, List<StoreUserDto> storeUserDtos, List<UserDto> userDtos, AttendanceClassesDto attendanceClassesDto) {
        String photo = "";
        if (reqJson.containsKey("photo") && !StringUtil.isEmpty(reqJson.getString("photo"))) {
            FileDto fileDto = new FileDto();
            fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
            fileDto.setFileName(fileDto.getFileId());
            fileDto.setContext(reqJson.getString("photo"));
            fileDto.setSuffix("jpeg");
            fileDto.setCommunityId("-1");
            photo = fileInnerServiceSMOImpl.saveFile(fileDto);
        }
        AttendanceLogPo attendanceLogPo = new AttendanceLogPo();
        attendanceLogPo.setLogId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_logId));
        attendanceLogPo.setStoreId(storeUserDtos.get(0).getStoreId());
        attendanceLogPo.setStaffId(reqJson.getString("staffId"));
        attendanceLogPo.setClockTime(reqJson.getString("checkTime"));
        attendanceLogPo.setDepartmentId(attendanceClassesDto.getClassesObjId());
        attendanceLogPo.setDepartmentName(attendanceClassesDto.getClassesObjName());
        attendanceLogPo.setDepartmentId(attendanceClassesDto.getClassesId());
        attendanceLogPo.setDepartmentName(attendanceClassesDto.getClassesName());
        attendanceLogPo.setStaffName(userDtos.get(0).getName());
        attendanceLogPo.setFacePath(photo);
        int flag = attendanceLogInnerServiceSMOImpl.saveAttendanceLog(attendanceLogPo);
@@ -175,16 +189,6 @@
            return;
        }
        String photo = "";
        if (reqJson.containsKey("photo") && !StringUtil.isEmpty(reqJson.getString("photo"))) {
            FileDto fileDto = new FileDto();
            fileDto.setFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
            fileDto.setFileName(fileDto.getFileId());
            fileDto.setContext(reqJson.getString("photo"));
            fileDto.setSuffix("jpeg");
            fileDto.setCommunityId("-1");
            photo = fileInnerServiceSMOImpl.saveFile(fileDto);
        }
        //当前考勤的 记录
        AttendanceClassesTaskDetailDto nowAttendanceClassesTaskDetailDto = attendanceClassesTaskDetailDtos.get(0);