wuxw пре 3 година
родитељ
комит
c5932854f5

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/attendanceClasses/AttendanceClassesDto.java

@@ -25,6 +25,7 @@ public class AttendanceClassesDto extends PageDto implements Serializable {
     private String clockType;
     private String clockTypeName;
     private String classesObjId;
+    private String[] classesObjIds;
     private String classesName;
     private String classesId;
     private String leaveOffset;
@@ -164,4 +165,12 @@ public class AttendanceClassesDto extends PageDto implements Serializable {
     public void setClockTypeName(String clockTypeName) {
         this.clockTypeName = clockTypeName;
     }
+
+    public String[] getClassesObjIds() {
+        return classesObjIds;
+    }
+
+    public void setClassesObjIds(String[] classesObjIds) {
+        this.classesObjIds = classesObjIds;
+    }
 }

+ 6 - 0
java110-db/src/main/resources/mapper/common/AttendanceClassesV1ServiceDaoImplMapper.xml

@@ -49,6 +49,12 @@
         <if test="classesObjId !=null and classesObjId != ''">
             and t.classes_obj_id= #{classesObjId}
         </if>
+        <if test="classesObjIds !=null">
+            and t.classes_obj_id in
+            <foreach collection="classesObjIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="classesName !=null and classesName != ''">
             and t.classes_name= #{classesName}
         </if>

+ 22 - 4
service-common/src/main/java/com/java110/common/cmd/attendanceClasses/CheckInCmd.java

@@ -13,9 +13,11 @@ import com.java110.dto.attendanceClasses.AttendanceClassesDto;
 import com.java110.dto.attendanceClasses.AttendanceClassesTaskDetailDto;
 import com.java110.dto.attendanceClasses.AttendanceClassesTaskDto;
 import com.java110.dto.file.FileDto;
+import com.java110.dto.org.OrgStaffRelDto;
 import com.java110.dto.store.StoreUserDto;
 import com.java110.dto.user.UserDto;
 import com.java110.intf.common.*;
+import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
 import com.java110.intf.store.IStoreInnerServiceSMO;
 import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.attendanceClasses.AttendanceClassesPo;
@@ -30,6 +32,7 @@ import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.text.ParseException;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -44,7 +47,6 @@ import java.util.List;
 )
 
 @Java110ParamsDoc(params = {
-        @Java110ParamDoc(name = "classId", length = 30, remark = "班次ID"),
         @Java110ParamDoc(name = "staffId", length = 30, remark = "打卡员工"),
         @Java110ParamDoc(name = "checkTime", type = "String", length = 30, remark = "考勤时间 YYYY-MM-DD hh24:mi:ss"),
         @Java110ParamDoc(name = "photo", type = "String", length = 2048, remark = "考勤图片"),
@@ -89,10 +91,12 @@ public class CheckInCmd extends Cmd {
     @Autowired
     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
 
+    @Autowired
+    private IOrgStaffRelV1InnerServiceSMO orgStaffRelV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
 
-        Assert.hasKeyAndValue(reqJson, "classId", "未包含班次");
         Assert.hasKeyAndValue(reqJson, "staffId", "未包含员工");
         Assert.hasKeyAndValue(reqJson, "clockTime", "未包含考勤时间");
     }
@@ -112,10 +116,24 @@ public class CheckInCmd extends Cmd {
 
         Assert.listOnlyOne(storeUserDtos, "员工不存在");
 
+        OrgStaffRelDto orgStaffRelDto = new OrgStaffRelDto();
+        orgStaffRelDto.setStoreId(storeUserDtos.get(0).getStoreId());
+        orgStaffRelDto.setStaffId(reqJson.getString("staffId"));
+        List<OrgStaffRelDto> orgStaffRelDtos = orgStaffRelV1InnerServiceSMOImpl.queryOrgStaffRels(orgStaffRelDto);
+
+        if(orgStaffRelDtos == null || orgStaffRelDtos.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.setClassesId(reqJson.getString("classId"));
+        attendanceClassesDto.setClassesObjIds(orgIds.toArray(new String[orgIds.size()]));
         List<AttendanceClassesDto> attendanceClassesDtos = attendanceClassesV1InnerServiceSMOImpl.queryAttendanceClassess(attendanceClassesDto);
 
         Assert.listOnlyOne(attendanceClassesDtos, "班次不存在");
@@ -140,7 +158,7 @@ public class CheckInCmd extends Cmd {
 
         AttendanceClassesTaskDetailDto attendanceClassesTaskDetailDto = new AttendanceClassesTaskDetailDto();
         attendanceClassesTaskDetailDto.setNowCheckTime(reqJson.getString("clockTime"));
-        attendanceClassesTaskDetailDto.setClassId(reqJson.getString("classId"));
+        attendanceClassesTaskDetailDto.setClassId(attendanceClassesDtos.get(0).getClassesId());
         attendanceClassesTaskDetailDto.setStaffId(reqJson.getString("staffId"));
         List<AttendanceClassesTaskDetailDto> attendanceClassesTaskDetailDtos = attendanceClassesTaskDetailInnerServiceSMOImpl.queryAttendanceClassesTaskDetails(attendanceClassesTaskDetailDto);