|
@@ -7,6 +7,8 @@ import java.nio.file.Files;
|
|
|
import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
import java.nio.file.StandardCopyOption;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
@@ -81,8 +83,7 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional
|
|
|
- public int insertCareNurseClocks(CareNurseClocks careNurseClocks,Long userId)
|
|
|
- {
|
|
|
+ public int insertCareNurseClocks(CareNurseClocks careNurseClocks,Long userId) {
|
|
|
//判断当前日期是否可以打卡,非残疾人出院前两天不再护理,残疾人截至到出院当天,若无法打卡,则抛出异常
|
|
|
CareApplications careApplications = careApplicationsMapper.selectCareApplicationsByApplyId(Long.parseLong(careNurseClocks.getApplyId()));
|
|
|
String leaveTimeStr = careApplications.getLeaveTime();
|
|
@@ -143,8 +144,13 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
careRecordsMapper.updateCareRecords(curr);
|
|
|
|
|
|
//计算计时天数
|
|
|
- careNurseRecord=calDayApplyRecord(careNurseRecord,careNurseClocks.getNursingTime());
|
|
|
- careNurseRecordsMapper.updateCareNurseRecords(careNurseRecord);
|
|
|
+ try {
|
|
|
+ careNurseRecord=calDayApplyRecord(careNurseRecord,careNurseClocks.getNursingTime());
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ System.out.print(careNurseRecord);
|
|
|
+ careNurseRecordsMapper.updateCareNurseRecords(careNurseRecord);
|
|
|
|
|
|
//已经开始了直接新增打卡记录
|
|
|
result= careNurseClocksMapper.insertCareNurseClocks(careNurseClocks);
|
|
@@ -159,7 +165,15 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
careNurseRecords.setClockNum(1);//当天第一次打卡
|
|
|
careNurseRecords.setCalDays(new BigDecimal(0));//当天第一次打卡,计算天数为0
|
|
|
careNurseRecords.setCalDayReason("今天第一次打卡,计算天数暂定为0");
|
|
|
- careNurseRecords.setCreateTime(DateUtils.getNowDate());
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ Date time = null;
|
|
|
+ try {
|
|
|
+ time = sdf.parse(careNurseClocks.getNursingTime());
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ careNurseRecords.setCreateTime(time);
|
|
|
careNurseRecordsMapper.insertCareNurseRecords(careNurseRecords);
|
|
|
|
|
|
//获取打卡次数
|
|
@@ -204,11 +218,15 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
CareNurseClocks careNurseClock=careNurseClocksMapper.selectLastClock(careApplications.getApplyId());
|
|
|
CareNurseRecords careNurseRecord=careNurseRecordsMapper.selectCareNurseRecordsByNursingRecordId(careNurseClock.getNursingRecordId());
|
|
|
//计算计时天数
|
|
|
- careNurseRecord=calDayApplyRecord(careNurseRecord,careNurseClock.getNursingTime());
|
|
|
+ try {
|
|
|
+ careNurseRecord=calDayApplyRecord(careNurseRecord,careNurseClock.getNursingTime());
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
return careNurseRecordsMapper.updateCareNurseRecords(careNurseRecord);
|
|
|
}
|
|
|
|
|
|
- private CareNurseRecords calDayApplyRecord(CareNurseRecords careNurseRecords,String nurseTime) {
|
|
|
+ private CareNurseRecords calDayApplyRecord(CareNurseRecords careNurseRecords,String nurseTime) throws ParseException {
|
|
|
BigDecimal day=new BigDecimal(0);
|
|
|
String reason="";
|
|
|
//获取第一次打卡时间 判断是上午开始还是下午开始的
|
|
@@ -218,10 +236,7 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
boolean isFirstClockInMorning = isMorning(firstTime);
|
|
|
|
|
|
//获取当天打卡次数
|
|
|
- CareNurseClocks param=new CareNurseClocks();
|
|
|
- param.setApplyId(careNurseRecords.getApplyId().toString());
|
|
|
- List<CareNurseClocks> lst=careNurseClocksMapper.selectCareNurseClocksList(param);
|
|
|
- Integer count=lst.size();
|
|
|
+ Integer count=careNurseRecords.getClockNum()+1;
|
|
|
|
|
|
//获取半天次数和全天次数
|
|
|
Long allday=sysWorkConfigMapper.selectSysWorkConfigByType("day_clock_num").getNumber();
|
|
@@ -231,7 +246,8 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
//如果第一次是下午打卡,若当前是上午且次数已经达到半天次数,则返回0.5天,若次数未达到,则返回0
|
|
|
|
|
|
//判断当前是上午还是下午
|
|
|
- Date currentTime = new Date(nurseTime);
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ Date currentTime = sdf.parse(nurseTime);
|
|
|
if (isFirstClockInMorning) {// 第一次打卡在上午
|
|
|
if (isMorning(currentTime)) {
|
|
|
if (count >= halfday) {
|
|
@@ -259,6 +275,7 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
}
|
|
|
careNurseRecords.setCalDays(day);
|
|
|
careNurseRecords.setCalDayReason(reason);
|
|
|
+ careNurseRecords.setClockNum(count);
|
|
|
return careNurseRecords;
|
|
|
}
|
|
|
|
|
@@ -325,7 +342,11 @@ public class CareNurseClocksServiceImpl implements ICareNurseClocksService
|
|
|
if(lst.size()>0){
|
|
|
CareNurseRecords careNurseRecord=lst.get(0);
|
|
|
//计算计时天数
|
|
|
- careNurseRecord=calDayApplyRecord(careNurseRecord,careNurseClocks.getNursingTime());
|
|
|
+ try {
|
|
|
+ careNurseRecord=calDayApplyRecord(careNurseRecord,careNurseClocks.getNursingTime());
|
|
|
+ } catch (ParseException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
careNurseRecordsMapper.updateCareNurseRecords(careNurseRecord);
|
|
|
|
|
|
//已经开始了直接新增打卡记录
|