From 658c1d5fcc47ca30c72c51f98f2df739700fe125 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 12 十一月 2024 17:26:22 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java | 143 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 141 insertions(+), 2 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java index c55fe52..2e64ef8 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/thrid/BoardServiceImpl.java @@ -14,11 +14,15 @@ import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse; import com.doumee.core.haikang.model.param.respose.PageSensorStatusResponse; import com.doumee.core.haikang.service.HKService; +import com.doumee.core.model.ApiResponse; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; +import com.doumee.core.utils.Utils; import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; +import com.doumee.dao.web.reqeust.SavePlatformWarnEventDTO; import com.doumee.dao.web.response.platformReport.*; +import com.doumee.service.business.impl.PlatformJobServiceImpl; import com.doumee.service.business.third.BoardService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; @@ -26,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -253,7 +258,7 @@ .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() , Constants.PlatformJobStatus.LEAVED.getKey()) - .apply("to_days(t1.create_data) = to_days(now())") + .apply("to_days(t1.create_date) = to_days(now())") .groupBy(PlatformGroup::getId) ); if(jobList!=null){ @@ -274,6 +279,140 @@ ); carWorkSituationVO.setPlatformLogList(platformLogList); return carWorkSituationVO; + } + + @Override + public List<PlatformWorkDataVO> platformWorkData(){ + + List<PlatformWorkDataVO> platformWorkDataVOList = new ArrayList<>(); + List<Platform> platformList = platformMapper.selectJoinList(Platform.class, new MPJLambdaWrapper<Platform>() + .selectAll( Platform.class) + .eq(Platform::getIsdeleted, Constants.ZERO) + .orderByAsc(Platform::getSortnum) + ); + /** + * WAIT_CONFIRM(0, "寰呯‘璁�","寰呯‘璁�" ), + * WART_SIGN_IN(1, "寰呯鍒�","寰呯鍒�" ), + * WAIT_CALL(2, "宸茬鍒�","宸茬鍒�"), + * IN_WAIT(3, "鍏ュ洯绛夊緟","鍏ュ洯绛夊緟" ), + * CALLED(4, "宸插彨鍙�","宸插彨鍙�" ), + * WORKING(5, "浣滀笟涓�","浣滀笟涓�" ), + * DONE(6, "浣滀笟瀹屾垚 ","浣滀笟瀹屾垚" ), + * TRANSFERING(7, "杞Щ涓�","杞Щ涓�" ), + * EXCEPTION(8, "寮傚父鎸傝捣","寮傚父鎸傝捣" ), + * AUTHED_LEAVE(9, "宸叉巿鏉冪鍥�","宸叉巿鏉冪鍥�" ), + * LEAVED(10, "宸茬鍥� ","宸茬鍥� " ), + * OVER_NUMBER(11, "宸茶繃鍙�","宸茶繃鍙�" ), + * CANCEL(12, "宸插彇娑�","宸插彇娑�" ), + */ + + if(platformList!=null && platformList.size()>0){ + List<PlatformJob> jobList = platformJobMapper.selectJoinList(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>() + .selectAll( PlatformJob.class) + .select("( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = "+Constants.PlatformJobLogType.WORKING.getKey()+" order by pl.CREATE_DATE desc limit 1 ) as newStartDate") + .select(" (select sum(ifnull(pl.IO_QTY , 0 )) from platform_wms_detail pl where pl.job_id = t.id and pl.isdeleted=0 )",PlatformJob::getWorkNum) + .apply("to_days(t.create_date) = to_days(now())") + .eq(Platform::getIsdeleted, Constants.ZERO) + .in(PlatformJob ::getStatus,new Integer[]{Constants.PlatformJobStatus.WORKING.getKey(),Constants.PlatformJobStatus.CALLED.getKey() }) + .orderByDesc(PlatformJob::getStatus )); + //鏈堝彴鐘舵�侊細0=浣滀笟涓紱1=绌洪棽涓紱2=浣滀笟瓒呮椂;3=鍙彿 + for(Platform model : platformList){ + PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); + platformDurationVO.setPlatformName(model.getName()); + platformDurationVO.setPlatformId(model.getId()); + platformDurationVO.setPlatformSort(model.getSortnum()); + PlatformJob job = getJobFromListById(model.getId(),jobList); + if(job != null){ + if(Constants.equalsInteger(job.getType(),Constants.ONE) || Constants.equalsInteger(job.getType(),Constants.THREE)){ + platformDurationVO.setWorkType(Constants.ONE);//濡傛灉鏄璐� + }else{ + platformDurationVO.setWorkType(Constants.ZERO);//濡傛灉鏄嵏璐� + } + Integer workMinute = job.getWorkNum().multiply(new BigDecimal(60)).divide(model.getWorkRate(),0,BigDecimal.ROUND_HALF_UP).intValue(); + Date overDate = DateUtil.getXMinuteAfterDate(job.getNewStartDate(),workMinute + model.getWorkTimeoutAlarmTime());//棰勮瀹屾垚鏃堕棿 + platformDurationVO.setFinishTimeStr(DateUtil.DateToStr(overDate,"HH:mm")); + + platformDurationVO.setWorkNum(Constants.formatBigdecimal(job.getWorkNum()).intValue()); + platformDurationVO.setCarNo(job.getCarCodeFront());//杞︾墝鍙� + if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.CALLED.getKey() )){ + platformDurationVO.setStatus(Constants.THREE); //鍙彿涓� + }else{ + platformDurationVO.setStatus(Constants.ZERO); //浣滀笟涓� + platformDurationVO.setWorkTime(PlatformJobServiceImpl.getWorkTime(job,platformLogMapper));//宸插伐浣滄椂闂� + if(overDate.getTime() < System.currentTimeMillis() ){ + model.setStatus(Constants.TWO); //浣滀笟宸茶秴鏃� + } + } + }else{ + platformDurationVO.setStatus(Constants.ONE);//绌洪棽涓� + } + platformWorkDataVOList.add(platformDurationVO); + } + } + return platformWorkDataVOList; + } + + private PlatformJob getJobFromListById(Integer id, List<PlatformJob> jobList) { + if(jobList!=null){ + for(PlatformJob job :jobList){ + if(Constants.equalsInteger(job.getPlatformId(),id)){ + return job; + } + } + + } + + return null; + } + + /** + * + * @param type 鏌ヨ绫诲瀷锛�0=鍏ュ簱锛�1=鍑哄簱 + * @return + */ + @Override + public List<WorkEfficiencyVO> workEfficiency(Integer type){ + //浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣 + List<WorkEfficiencyVO> workEfficiencyVOList = new ArrayList<>(); + List<PlatformWmsDetail> jobList = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class, new MPJLambdaWrapper<PlatformWmsDetail>() + .selectAll( PlatformWmsDetail.class) + .selectAs( PlatformJob::getDoneDate,PlatformWmsDetail::getDoneDate) + .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId) + .eq(PlatformWmsDetail::getIsdeleted, Constants.ZERO) + .eq(PlatformJob::getIsdeleted, Constants.ZERO) + .in(Constants.equalsInteger(type,Constants.ZERO),PlatformJob::getType,new Integer[]{0,2,4}) + .in(Constants.equalsInteger(type,Constants.ONE),PlatformJob::getType,new Integer[]{1,3}) + .in(PlatformJob::getStatus, Constants.PlatformJobStatus.DONE.getKey() + , Constants.PlatformJobStatus.AUTHED_LEAVE.getKey() + , Constants.PlatformJobStatus.LEAVED.getKey()) + .apply("to_days(t1.create_date) = to_days(now())") + ); + int curtotalNum = 0; + Date today = Utils.Date.getStart(new Date()); + long curTime=0, lastTime=0; + for (int i = 0; i < 8; i++) { + lastTime = curTime;//涓婃鐨勬椂闂� + int curHour = 8+(i*2); + long time = curHour*60*60*1000 + today.getTime(); + WorkEfficiencyVO workEfficiencyVO = new WorkEfficiencyVO(); + workEfficiencyVO.setWorkTime(curHour+":00"); + if(jobList!=null && jobList.size()>0){ + for(PlatformWmsDetail detail : jobList){ + if(detail.getDoneDate()!=null && detail.getDoneDate().getTime()<= time){ + //褰撳墠閲� + if(detail.getDoneDate()!=null && detail.getDoneDate().getTime() > lastTime){ + //鍖洪棿鍊� 鍙栧疄杩�2灏忔椂鍐呯殑绱鍊� + workEfficiencyVO.setWorkNum(Constants.formatIntegerNum(workEfficiencyVO.getWorkNum())+Constants.formatBigdecimal(detail.getIoQty()).intValue()); + } + //绱Н閲� + curtotalNum += Constants.formatBigdecimal(detail.getIoQty()).intValue(); + } + } + } + workEfficiencyVO.setTotalWorkNum(curtotalNum);//绱鍊� + workEfficiencyVOList.add(workEfficiencyVO); + } + return workEfficiencyVOList; } @Override public List<PlatformDurationVO> platformDuration(){ @@ -330,7 +469,7 @@ .selectAll(PlatformJob.class) .select("count(id)" ,PlatformJob::getCountum) .eq(PlatformJob::getIsdeleted,Constants.ZERO) - .apply("to_days(create_data) = to_days(now())" ) + .apply("to_days(create_date) = to_days(now())" ) .groupBy(PlatformJob::getStatus ) ); if(jobList!=null){ -- Gitblit v1.9.3