123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- /*
- * Copyright [2022] [https://www.baiduc.com]
- *
- * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
- *
- * 1.请不要删除和修改根目录下的LICENSE文件。
- * 2.请不要删除和修改Snowy源码头部的版权声明。
- * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
- * 4.分发源码时候,请注明软件出处 https://www.baiduc.com
- * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
- * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.baiduc.com
- */
- package vip.xiaonuo.quality.service.impl;
- import cn.hutool.core.bean.BeanUtil;
- import cn.hutool.core.collection.CollStreamUtil;
- import cn.hutool.core.util.ObjectUtil;
- import cn.hutool.core.util.StrUtil;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.StringUtils;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import vip.xiaonuo.common.enums.CommonSortOrderEnum;
- import vip.xiaonuo.common.exception.CommonException;
- import vip.xiaonuo.common.page.CommonPageRequest;
- import vip.xiaonuo.purchase.entity.PurchaseOrder;
- import vip.xiaonuo.purchase.param.PurchaseAllParam;
- import vip.xiaonuo.quality.entity.QualityFenxibaogao;
- import vip.xiaonuo.quality.mapper.QualityFenxibaogaoMapper;
- import vip.xiaonuo.quality.param.*;
- import vip.xiaonuo.quality.param.vo.ChengPinQuXianVo;
- import vip.xiaonuo.quality.service.QualityFenxibaogaoService;
- import vip.xiaonuo.write.entity.WriteThreshold;
- import vip.xiaonuo.write.entity.WriteWarning;
- import vip.xiaonuo.write.mapper.WriteThresholdMapper;
- import vip.xiaonuo.write.mapper.WriteWarningMapper;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.List;
- /**
- * 质量分析报表Service接口实现类
- *
- * @author 1
- * @date 2025/02/26 16:25
- **/
- @Service
- public class QualityFenxibaogaoServiceImpl extends ServiceImpl<QualityFenxibaogaoMapper, QualityFenxibaogao> implements QualityFenxibaogaoService {
- @Autowired
- private QualityFenxibaogaoMapper qualityFenxibaogaoMapper;
- @Autowired
- private WriteThresholdMapper thresholdMapper;
- @Autowired
- private WriteWarningMapper warningMapper;
- @Override
- public Page<QualityFenxibaogao> page(QualityFenxibaogaoPageParam qualityFenxibaogaoPageParam) {
- QueryWrapper<QualityFenxibaogao> queryWrapper = new QueryWrapper<>();
- String orgId = qualityFenxibaogaoPageParam.getOrgId();
- String type = qualityFenxibaogaoPageParam.getFnumber();
- String selfBatchNum = qualityFenxibaogaoPageParam.getSelfBatchNum();
- String startDate = qualityFenxibaogaoPageParam.getStartDate();
- String endDate = qualityFenxibaogaoPageParam.getEndDate();
- queryWrapper.eq(StringUtils.isNotBlank(orgId),"org_id",orgId);
- queryWrapper.ge(StringUtils.isNotBlank(startDate),"samp_date",startDate);
- queryWrapper.le(StringUtils.isNotBlank(endDate),"samp_date",endDate);
- queryWrapper.like(StringUtils.isNotBlank(selfBatchNum),"self_batch_num",selfBatchNum);
- queryWrapper.likeRight(StringUtils.isNotBlank(type),"fnumber",type);
- queryWrapper.orderByDesc("samp_date");
- Page<QualityFenxibaogao> page = new Page<>(qualityFenxibaogaoPageParam.getPageNum(), qualityFenxibaogaoPageParam.getPageSize());
- return qualityFenxibaogaoMapper.selectPage(page, queryWrapper);
- }
- @Transactional(rollbackFor = Exception.class)
- @Override
- public void add(QualityFenxibaogaoAddParam qualityFenxibaogaoAddParam) {
- String orgId = qualityFenxibaogaoAddParam.getOrgId();
- if(StringUtils.isBlank(orgId)) {
- throw new CommonException("请选择需要添加的公司");
- }
- QualityFenxibaogao qualityFenxibaogao = BeanUtil.toBean(qualityFenxibaogaoAddParam, QualityFenxibaogao.class);
- this.save(qualityFenxibaogao);
- String otation = qualityFenxibaogao.getSpecificOtation();
- Double value = Double.valueOf(otation);
- QueryWrapper<WriteThreshold> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("org_id",qualityFenxibaogao.getOrgId()).eq("type_s",7);
- List<WriteThreshold> thresholds = thresholdMapper.selectList(queryWrapper);
- if (thresholds.size() != 0) {
- for (WriteThreshold threshold : thresholds) {
- String valuesS = threshold.getValuesS();
- Double valueOf = Double.valueOf(valuesS);
- Integer isTrue = threshold.getIsTrue();
- if (0 == isTrue) {
- if (value < valueOf) {
- WriteWarning warning = new WriteWarning();
- warning.setWarningDate(new Date());
- warning.setWarningType(threshold.getIndexS());
- warning.setWarningLevel(threshold.getLevelS().toString());
- warning.setWarningContent(threshold.getIndexS() + otation + "小于阈值");
- warning.setUserName(threshold.getUserName());
- warning.setUserId(threshold.getUserId());
- warning.setType(7);
- warningMapper.insert(warning);
- }
- } else if (1 == isTrue) {
- WriteWarning warning = new WriteWarning();
- warning.setWarningDate(new Date());
- warning.setWarningType(threshold.getIndexS());
- warning.setWarningLevel(threshold.getLevelS().toString());
- warning.setWarningContent(threshold.getIndexS() + otation + "等于阈值");
- warning.setUserName(threshold.getUserName());
- warning.setUserId(threshold.getUserId());
- warning.setType(7);
- warningMapper.insert(warning);
- } else if (2 == isTrue) {
- WriteWarning warning = new WriteWarning();
- warning.setWarningDate(new Date());
- warning.setWarningType(threshold.getIndexS());
- warning.setWarningLevel(threshold.getLevelS().toString());
- warning.setWarningContent(threshold.getIndexS() + otation + "大于阈值");
- warning.setUserName(threshold.getUserName());
- warning.setUserId(threshold.getUserId());
- warning.setType(7);
- warningMapper.insert(warning);
- }
- }
- }
- }
- @Transactional(rollbackFor = Exception.class)
- @Override
- public void edit(QualityFenxibaogao qualityFenxibaogao) {
- this.updateById(qualityFenxibaogao);
- }
- @Transactional(rollbackFor = Exception.class)
- @Override
- public void delete(QualityFenxibaogaoIdParam qualityFenxibaogaoIdParamList) {
- // 执行删除
- this.removeById(qualityFenxibaogaoIdParamList.getId());
- }
- @Override
- public QualityFenxibaogao queryEntity(String id) {
- QualityFenxibaogao qualityFenxibaogao = this.getById(id);
- if(ObjectUtil.isEmpty(qualityFenxibaogao)) {
- throw new CommonException("质量分析报表不存在,id值为:{}", id);
- }
- return qualityFenxibaogao;
- }
- @Override
- public List<QualityFenxibaogao> getChengPin(ChengPingZhiParam chengPingZhiParam) {
- QueryWrapper<QualityFenxibaogao> wrapper = new QueryWrapper<>();
- wrapper.select("material_name , quality_type");
- wrapper.groupBy("material_name");
- wrapper.eq(StringUtils.isNotBlank(chengPingZhiParam.getOrgId()),"org_id",chengPingZhiParam.getOrgId());
- return this.list(wrapper);
- }
- @Override
- public List<ChengPinQuXianVo> getChengPinQuXian(ChengPingZhiParam chengPingZhiParam) {
- String orgId = chengPingZhiParam.getOrgId();
- Integer dateType = chengPingZhiParam.getDateType();
- Integer number = chengPingZhiParam.getNumber();
- // Integer type = chengPingZhiParam.getType();
- QueryWrapper<QualityFenxibaogao> wrapper = new QueryWrapper<>();
- wrapper.eq( StringUtils.isNotBlank(orgId),"org_id", orgId)
- .eq(StringUtils.isNotBlank(chengPingZhiParam.getInspecItems()),"inspec_items",chengPingZhiParam.getInspecItems())
- .eq(StringUtils.isNotBlank(chengPingZhiParam.getMaterialName()),"material_name",chengPingZhiParam.getMaterialName())
- ;
- List<ChengPinQuXianVo> busAllParams;
- if (ObjectUtil.isEmpty(dateType) || 0 == dateType){
- Calendar calendar = Calendar.getInstance();
- if (null == number) {
- calendar.add(Calendar.YEAR, -3);
- } else {
- calendar.add(Calendar.YEAR, -number);
- }
- wrapper.between("report_date", calendar.getTime(), new Date());
- busAllParams= qualityFenxibaogaoMapper.getChengPinQuXianYear(wrapper);
- }else {
- Calendar calendar = Calendar.getInstance();
- if (null == number) {
- calendar.add(Calendar.MONTH, -13);
- } else {
- calendar.add(Calendar.MONTH, -number);
- }
- wrapper.between("report_date", calendar.getTime(), new Date());
- busAllParams = qualityFenxibaogaoMapper.getChengPinQuXianMonth(wrapper);
- }
- return busAllParams;
- }
- @Override
- public List<QualityFenxibaogao> getJianCeXiangMu(ChengPingZhiParam chengPingZhiParam) {
- QueryWrapper<QualityFenxibaogao> wrapper = new QueryWrapper<>();
- wrapper.select("inspec_items, quality_type");
- wrapper.groupBy("inspec_items");
- wrapper.eq(StringUtils.isNotBlank(chengPingZhiParam.getOrgId()),"org_id",chengPingZhiParam.getOrgId());
- return this.list(wrapper);
- }
- }
|