|
@@ -19,6 +19,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -39,6 +43,8 @@ public class FbsAbnormalWorkingHoursServiceImpl extends ServiceImpl<FbsAbnormalW
|
|
|
|
|
|
@Resource
|
|
|
private IFbsAbnormalWorkingHoursTypeService iFbsAbnormalWorkingHoursTypeService;
|
|
|
+ @Resource
|
|
|
+ private IFbsAbnormalWorkingHoursService iFbsAbnormalWorkingHoursService;
|
|
|
|
|
|
@Override
|
|
|
public boolean addAndChild(FbsAbnormalWorkingHours fbsAbnormalWorkingHours) {
|
|
@@ -101,6 +107,8 @@ public class FbsAbnormalWorkingHoursServiceImpl extends ServiceImpl<FbsAbnormalW
|
|
|
return resulet;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Autowired
|
|
|
IFbsPersonService iFbsPersonService;
|
|
|
|
|
@@ -128,4 +136,110 @@ public class FbsAbnormalWorkingHoursServiceImpl extends ServiceImpl<FbsAbnormalW
|
|
|
fbsAbnormalWorkingHoursType.setDelFlag("1");
|
|
|
iFbsAbnormalWorkingHoursTypeService.update(fbsAbnormalWorkingHoursType,typeLambdaQueryWrapper);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public FbsAbnormalWorkingHours getAbnormalWorkingHoursReport() {
|
|
|
+ FbsAbnormalWorkingHours fbsAbnormalWorkingHoursResult=new FbsAbnormalWorkingHours();
|
|
|
+ //两个时间之间的所有日期
|
|
|
+ List<Date> dateList=startDateAndEndDate("2020-10-14","2020-10-17");
|
|
|
+ //查询全部异常工时
|
|
|
+ LambdaQueryWrapper<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ fbsAbnormalWorkingHoursLambdaQueryWrapper.eq(FbsAbnormalWorkingHours::getDelFlag,"0");
|
|
|
+ List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursList=iFbsAbnormalWorkingHoursService.list(fbsAbnormalWorkingHoursLambdaQueryWrapper);
|
|
|
+ //获取其全部主表id
|
|
|
+ List<String> hourIdList=new ArrayList<>();
|
|
|
+ if(fbsAbnormalWorkingHoursList!=null){
|
|
|
+ for(FbsAbnormalWorkingHours fbsAbnormalWorkingHours:fbsAbnormalWorkingHoursList){
|
|
|
+ hourIdList.add(fbsAbnormalWorkingHours.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //根据主表查询异常描述子表
|
|
|
+ LambdaQueryWrapper<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper=new LambdaQueryWrapper<>();
|
|
|
+ fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper.eq(FbsAbnormalWorkingHoursDescribe::getDelFlag,"0");
|
|
|
+ fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper.in(FbsAbnormalWorkingHoursDescribe::getAbnormalWorkingHoursId,hourIdList);
|
|
|
+ List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList=iFbsAbnormalWorkingHoursDescribeService.list(fbsAbnormalWorkingHoursDescribeLambdaQueryWrapper);
|
|
|
+ getDescribeList(fbsAbnormalWorkingHoursList,fbsAbnormalWorkingHoursDescribeList);
|
|
|
+
|
|
|
+ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursListAdd=new ArrayList<>();
|
|
|
+ if(dateList!=null){//是否为空
|
|
|
+ for(Date date:dateList){
|
|
|
+ String dateString=fmt.format(date);//时间
|
|
|
+ boolean ish=false;//是否找到时间对应的异常工时单
|
|
|
+ if(fbsAbnormalWorkingHoursList!=null){
|
|
|
+ for (FbsAbnormalWorkingHours fbsAbnormalWorkingHours:fbsAbnormalWorkingHoursList){
|
|
|
+ String hdate=fmt.format(fbsAbnormalWorkingHours.getDate());
|
|
|
+ if(dateString.equals(hdate)){//找到时间对应的时间工时单
|
|
|
+ fbsAbnormalWorkingHoursListAdd.add(fbsAbnormalWorkingHours);
|
|
|
+ ish=true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果没找到则添加空对象
|
|
|
+ if(ish==false){
|
|
|
+ FbsAbnormalWorkingHours fbsAbnormalWorkingHours=new FbsAbnormalWorkingHours();
|
|
|
+ fbsAbnormalWorkingHours.setDate(date);
|
|
|
+ fbsAbnormalWorkingHoursListAdd.add(fbsAbnormalWorkingHours);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fbsAbnormalWorkingHoursResult.setFbsAbnormalWorkingHoursList(fbsAbnormalWorkingHoursListAdd);
|
|
|
+ return fbsAbnormalWorkingHoursResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Author chenchuang
|
|
|
+ * @Description //TODO 根据主表id获取子表描述数据
|
|
|
+ * @Date 2020/10/17 18:14
|
|
|
+ * @Param [fbsAbnormalWorkingHoursList, fbsAbnormalWorkingHoursDescribeList]
|
|
|
+ * @return void
|
|
|
+ */
|
|
|
+ public void getDescribeList(List<FbsAbnormalWorkingHours> fbsAbnormalWorkingHoursList,List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeList){
|
|
|
+ //判断是否为空
|
|
|
+ if(fbsAbnormalWorkingHoursList!=null&&fbsAbnormalWorkingHoursDescribeList!=null){
|
|
|
+ //循环主表
|
|
|
+ for(FbsAbnormalWorkingHours fbsAbnormalWorkingHours:fbsAbnormalWorkingHoursList){
|
|
|
+ List<FbsAbnormalWorkingHoursDescribe> fbsAbnormalWorkingHoursDescribeListAdd=new ArrayList<>();
|
|
|
+ //循环子表
|
|
|
+ for(FbsAbnormalWorkingHoursDescribe fbsAbnormalWorkingHoursDescribe:fbsAbnormalWorkingHoursDescribeList){
|
|
|
+ //根据主表id查询子表数据
|
|
|
+ if(fbsAbnormalWorkingHours.getId().equals(fbsAbnormalWorkingHoursDescribe.getAbnormalWorkingHoursId())){
|
|
|
+ fbsAbnormalWorkingHoursDescribeListAdd.add(fbsAbnormalWorkingHoursDescribe);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ fbsAbnormalWorkingHours.setFbsAbnormalWorkingHoursDescribeList(fbsAbnormalWorkingHoursDescribeListAdd);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<Date> startDateAndEndDate(String startDate, String endDate) {
|
|
|
+ List<Date> list = new ArrayList<>();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String date1 = startDate; //开始时间
|
|
|
+ String date2 = endDate; //结束时间
|
|
|
+ Long startTIme = null;
|
|
|
+ try {
|
|
|
+ startTIme = sdf.parse(date1).getTime();
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ Long endTime = null;
|
|
|
+ try {
|
|
|
+ endTime = sdf.parse(date2).getTime();
|
|
|
+ } catch (ParseException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ Long oneDay = 1000 * 60 * 60 * 24l;
|
|
|
+ Long time = startTIme;
|
|
|
+ while (time <= endTime) {
|
|
|
+ Date d = new Date(time);
|
|
|
+ // DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ // String date=df.format(d);
|
|
|
+ list.add(d);
|
|
|
+ time += oneDay;
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|