package doumeemes.service.ext.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.DateUtil; import doumeemes.core.utils.redis.RedisUtil; import doumeemes.dao.business.WOutboundMapper; import doumeemes.dao.business.WTransferMapper; import doumeemes.dao.business.WorkorderMapper; import doumeemes.dao.business.dto.statistics.StatisticsPlanDataModel; import doumeemes.dao.business.dto.statistics.Unqualified7DayModel; import doumeemes.dao.business.dto.statistics.UserProduceTopModel; import doumeemes.dao.business.model.*; import doumeemes.dao.ext.*; import doumeemes.dao.ext.dto.QueryBarcodeParamExtDTO; import doumeemes.dao.ext.dto.QueryCompanyExtDTO; import doumeemes.dao.ext.dto.QueryWorkPlansDTO; import doumeemes.dao.ext.dto.QueryWorkorderRecordExtDTO; import doumeemes.dao.ext.vo.BarcodeParamContent; import doumeemes.dao.ext.vo.BarcodeParamExtListVO; import doumeemes.dao.ext.vo.CompanyExtListVO; import doumeemes.dao.ext.vo.DepartmentExtListVO; import doumeemes.service.ext.BarcodeParamExtService; import doumeemes.service.ext.DepartmentExtService; import doumeemes.service.ext.StatisticsService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; /** * 二维码设置Service实现 * @author 江蹄蹄 * @date 2022/04/20 11:01 */ @Service public class StatisticsServiceImpl implements StatisticsService { @Autowired private RedisTemplate redisTemplate; @Autowired private WorkPlansExtMapper workPlansExtMapper; @Autowired private WorkorderRecordExtMapper workorderRecordExtMapper; @Autowired private DepartmentExtService departmentExtService; @Override public StatisticsPlanDataModel getPlansData(Integer companyId, Integer departId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,企业或者部门信息不合法,如有疑问,请联系系统管理员"); } QueryWorkPlansDTO workPlans = new QueryWorkPlansDTO(); workPlans.setRootDepartId(department.getRootId()); workPlans.setDepartId(departId); //查询统计结果 StatisticsPlanDataModel model = workPlansExtMapper.getPlansStaticticsData(workPlans); model.setUnqualifiedNum(new BigDecimal(0)); if(model.getDoneNUm() !=null && model.getDoneNUm().compareTo(new BigDecimal(0)) != 0){ //不良品率 model.setUnqualifiedRate(model.getUnqualifiedNum().divide(model.getDoneNUm(),4).multiply(new BigDecimal(100))); } return model; } @Override public List getUserProduceTopData(Integer companyId, Integer departId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,企业或者部门信息不合法,如有疑问,请联系系统管理员"); } QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); //查询统计结果 List model = workorderRecordExtMapper.getUserProduceTopData(param); return model; } @Override public List getUnqualified7DayData(Integer companyId, Integer departId) { DepartmentExtListVO department = departmentExtService.getModelById(companyId,departId); if(department == null || Constants.equalsInteger(department.getDeleted(), Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,企业或者部门信息不合法,如有疑问,请联系系统管理员"); } QueryWorkorderRecordExtDTO param = new QueryWorkorderRecordExtDTO(); param.setRootDepartId(department.getRootId()); param.setDepartId(departId); //查询统计结果 List model = workorderRecordExtMapper.getUnqualified7DayData(param); List result = new ArrayList<>(); Date date = DateUtil.getCurrentDate(); for (int i = 0; i < 7; i++) { Date td = DateUtil.addDaysToDate(date, 7-i); Unqualified7DayModel m = getReusltModelByDate(td,model); if(m == null){ m = new Unqualified7DayModel(); m.setCreateTime(td); m.setUnqualifiedNum(new BigDecimal(0)); } result.add(m); } return model; } private Unqualified7DayModel getReusltModelByDate(Date td, List model ) { if(model !=null){ for(Unqualified7DayModel m : model){ if(StringUtils.equals(DateUtil.getShortTime(td),DateUtil.getShortTime(m.getCreateTime()))){ return m; } } } return null; } }