Commit 6ed334c1 authored by mengbali153's avatar mengbali153

Merge remote-tracking branch 'origin/master' into master

parents c86a51f8 a992516f
......@@ -118,18 +118,19 @@ public class EntrustController {
@ApiOperation("导出委托单")
public void getReportDetail(@PathVariable("entrustId") Integer entrustId,
HttpServletResponse response) {
EntrustVo entrustVo = entrustService.getDetailCapacity(entrustId).getData();
// EntrustVo entrustVo = entrustService.getDetailCapacity(entrustId).getData();
EntrustVo entrustVo = entrustService.getBaseDtail(entrustId).getData();
if (entrustVo == null) {
return;
}
Map<String, Object> beanParams = new HashMap<>(7);
beanParams.put("clientName", entrustVo.getClientName());
beanParams.put("entrustCode", entrustVo.getEntrustCode());
beanParams.put("userName", entrustVo.getUserName());
beanParams.put("userPhone", entrustVo.getUserPhone());
beanParams.put("userFax", entrustVo.getUserFax());
beanParams.put("projectName", entrustVo.getProjectName());
beanParams.put("sampleNum", entrustVo.getSampleNum());
beanParams.put("clientName", entrustVo.getClientName()==null?"":entrustVo.getClientName());
beanParams.put("entrustCode", entrustVo.getEntrustCode()==null?"":entrustVo.getEntrustCode());
beanParams.put("userName", entrustVo.getUserName()==null?"":entrustVo.getUserName());
beanParams.put("userPhone", entrustVo.getUserPhone()==null?"":entrustVo.getUserPhone());
beanParams.put("userFax", entrustVo.getUserFax()==null?"":entrustVo.getUserFax());
beanParams.put("projectName", entrustVo.getProjectName()==null?"":entrustVo.getProjectName());
beanParams.put("sampleNum", entrustVo.getSampleNum()==null?"":entrustVo.getSampleNum());
//获取委托单样品列表(不包含平行样)
List<SampleVo> sampleList = new ArrayList<>(entrustVo.getSampleList().size());
......
package cn.wise.sc.cement.business.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.wise.sc.cement.business.entity.NormProduction;
import cn.wise.sc.cement.business.entity.NormProductionStatistics;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.LoginUser;
import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.vo.NormProductionVo;
import cn.wise.sc.cement.business.model.vo.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import cn.wise.sc.cement.business.service.INonStandardValueService;
import cn.wise.sc.cement.business.service.INormProductionService;
import cn.wise.sc.cement.business.service.IPrecipriceService;
import cn.wise.sc.cement.business.service.ISysUserService;
import cn.wise.sc.cement.business.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -29,6 +37,7 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* <p>
......@@ -45,9 +54,18 @@ public class NormProductionController {
final
INormProductionService iNormProductionService;
final
IPrecipriceService iPrecipriceService;
final
INonStandardValueService inonStandardValueService;
final
ISysUserService iSysUserService;
public NormProductionController(INormProductionService iNormProductionService) {
public NormProductionController(INormProductionService iNormProductionService, IPrecipriceService iPrecipriceService, INonStandardValueService inonStandardValueService, ISysUserService iSysUserService) {
this.iNormProductionService = iNormProductionService;
this.iPrecipriceService = iPrecipriceService;
this.inonStandardValueService = inonStandardValueService;
this.iSysUserService = iSysUserService;
}
@PostMapping("/create")
......@@ -93,6 +111,7 @@ public class NormProductionController {
return iNormProductionService.activeOrForbidden(id);
}
@GetMapping("/statistics")
@ApiOperation("标准产值统计")
public BaseResponse<Page<NormProductionStatistics>> normProductionStatistics(String start, String end, String name, Integer groupId, PageQuery pageQuery) {
......@@ -105,7 +124,7 @@ public class NormProductionController {
}
//将list拆分成分页
BaseResponse<List<NormProductionStatistics>> baseResponse = iNormProductionService
BaseResponse<List<NormProductionStatistics>> baseResponse = iPrecipriceService
.normProductionStatistics(startTime, endTime, name, groupId);
if (baseResponse.getCode() == 200) {
List<NormProductionStatistics> data = baseResponse.getData();
......@@ -114,25 +133,32 @@ public class NormProductionController {
return BaseResponse.okData(rts);
}
}
return BaseResponse.errorMsg("没有找到相关数据!");
return BaseResponse.okData(null);
}
@GetMapping("/statistics/detail")
@ApiOperation("标准产值详情")
public BaseResponse<Page<NormProduction.NormProductionDetail>> normProductionDetails(Integer userId, String start,
String end, PageQuery pageQuery) {
Assert.notNull(userId,"用户id是必填的!");
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
List<NormProduction.NormProductionDetail> data = iNormProductionService.normProductionDetails(userId, startTime, endTime);
if (data.size() != 0) {
Page<NormProduction.NormProductionDetail> rts = PageUtil.listConvertToPage(data, pageQuery);
List<NormProduction.NormProductionDetail> data = iPrecipriceService.normProductionDetails(userId, startTime, endTime);
List<NormProduction.NormProductionDetail> collect = data
.stream()
.filter(arg -> arg.getUserId().intValue() == userId)
.collect(Collectors.toList());
if (collect.size() != 0) {
Page<NormProduction.NormProductionDetail> rts = PageUtil.listConvertToPage(collect, pageQuery);
return BaseResponse.okData(rts);
}
return BaseResponse.errorMsg("没有找到相关数据!");
return BaseResponse.okData(null);
}
@GetMapping("/total/production")
......@@ -146,8 +172,8 @@ public class NormProductionController {
endTime = DateUtil.parseDate(end).getTime();
}
List<ProductionVo> rts = iNormProductionService.production(name, startTime, endTime, groupId);
if (!rts.isEmpty()) {
List<ProductionVo> rts = iPrecipriceService.production(name, startTime, endTime, groupId);
if (!CollectionUtil.isEmpty(rts)) {
Set<Integer> ids = new HashSet<>();
for (ProductionVo productionVo : rts) {
Integer groupId1 = productionVo.getGroupId();
......@@ -207,7 +233,7 @@ public class NormProductionController {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
iNormProductionService.exportNormProductionDetail(userId, startTime, endTime, response);
iPrecipriceService.exportNormProductionDetail(userId, startTime, endTime, response);
}
@PostMapping("/export/total/production")
......@@ -228,6 +254,15 @@ public class NormProductionController {
@ApiOperation("工作量统计")
public BaseResponse<List<WorkloadStatisticsVo>> workloadStatistics(String start, String end, Integer userId) {
LoginUser loginUser = iSysUserService.getLoginUser();
if (BeanUtil.isEmpty(loginUser)){
return BaseResponse.errorMsg("请登录!");
}
if (!loginUser.getRoleList().getName().equals("系统管理员")) {
userId = loginUser.getId();
}
Date startTime = null;
Date endTime = DateUtil.date();
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
......@@ -235,7 +270,7 @@ public class NormProductionController {
endTime = DateUtil.parseDate(end);
}
return BaseResponse.okData(iNormProductionService.workloadStatistics(startTime, endTime, userId));
return BaseResponse.okData(iPrecipriceService.workloadStatistics(startTime, endTime, userId));
}
}
......
package cn.wise.sc.cement.business.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.wise.sc.cement.business.entity.NormProduction;
import cn.wise.sc.cement.business.entity.NormProductionStatistics;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.vo.NormProductionVo;
import cn.wise.sc.cement.business.model.vo.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import cn.wise.sc.cement.business.service.INonStandardValueService;
import cn.wise.sc.cement.business.service.INormProductionService;
import cn.wise.sc.cement.business.service.IPrecipriceService;
import cn.wise.sc.cement.business.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* <p>
* 前端控制器
* </p>
*
* @author ztw
* @since 2020-11-02
*/
@RestController
@Api(hidden = true)
@RequestMapping("/business/preciprice")
public class PrecipriceController {
@Autowired
IPrecipriceService iNormProductionService;
@Autowired
INonStandardValueService inonStandardValueService;
@GetMapping("/ddd")
@ApiOperation("aaa")
public void add(){
iNormProductionService.createPreciprice(1,1,1,1,1);
}
@GetMapping("/statistics")
@ApiOperation("标准产值统计")
public BaseResponse<Page<NormProductionStatistics>> normProductionStatistics(String start, String end, String name, Integer groupId, PageQuery pageQuery) {
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
//将list拆分成分页
BaseResponse<List<NormProductionStatistics>> baseResponse = iNormProductionService
.normProductionStatistics(startTime, endTime, name, groupId);
if (baseResponse.getCode() == 200) {
List<NormProductionStatistics> data = baseResponse.getData();
if (data.size() != 0) {
Page<NormProductionStatistics> rts = PageUtil.listConvertToPage(data, pageQuery);
return BaseResponse.okData(rts);
}
}
return BaseResponse.okData(null);
}
@GetMapping("/statistics/detail")
@ApiOperation("标准产值详情")
public BaseResponse<Page<NormProduction.NormProductionDetail>> normProductionDetails(Integer userId, String start,
String end, PageQuery pageQuery) {
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
List<NormProduction.NormProductionDetail> data = iNormProductionService.normProductionDetails(userId, startTime, endTime);
List<NormProduction.NormProductionDetail> collect = data
.stream()
.filter(arg -> arg.getUserId().intValue() == userId)
.collect(Collectors.toList());
if (collect.size() != 0) {
Page<NormProduction.NormProductionDetail> rts = PageUtil.listConvertToPage(collect, pageQuery);
return BaseResponse.okData(rts);
}
return BaseResponse.okData(null);
}
@GetMapping("/total/production")
@ApiOperation("总产值统计")
public BaseResponse<Page<ProductionVo>> production(PageQuery pageQuery, String name, String start, String end, Integer groupId) {
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
List<ProductionVo> rts = iNormProductionService.production(name, startTime, endTime, groupId);
if (!CollectionUtil.isEmpty(rts)) {
Set<Integer> ids = new HashSet<>();
for (ProductionVo productionVo : rts) {
Integer groupId1 = productionVo.getGroupId();
ids.add(groupId1);
}
List<ProductionVo> newRts = new ArrayList<>();
for (Integer groupId1 : ids) {
ProductionVo finalNormProduction = new ProductionVo();
for (ProductionVo productionVo : rts) {
if (productionVo.getGroupId().intValue() == groupId1) {
finalNormProduction.setUserId(productionVo.getUserId());
finalNormProduction.setUserName(productionVo.getUserName());
finalNormProduction.setAccount(productionVo.getAccount());
finalNormProduction.setPositionId(productionVo.getPositionId());
finalNormProduction.setPosition(productionVo.getPosition());
finalNormProduction.setTime(productionVo.getTime());
finalNormProduction.setGroupId(productionVo.getGroupId());
finalNormProduction.setGroupName(productionVo.getGroupName());
Double newFinalValue = productionVo.getProductionTotalValue() + finalNormProduction.getProductionTotalValue();
finalNormProduction.setProductionTotalValue(newFinalValue);
Double newNonProductionValue = productionVo.getNonProductionValue() + finalNormProduction.getNonProductionValue();
finalNormProduction.setNonProductionValue(newNonProductionValue);
Double newProductionValue = productionVo.getProductionValue() + finalNormProduction.getProductionValue();
finalNormProduction.setProductionValue(newProductionValue);
}
}
newRts.add(finalNormProduction);
}
rts = newRts;
}
return BaseResponse.okData(PageUtil.listConvertToPage(rts, pageQuery));
}
@PostMapping("/export/statistics")
@ApiOperation("导出标准产值列表")
public void exportNormProductionStatistics(String start, String end, String name, Integer groupId, HttpServletResponse response) {
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
iNormProductionService.exportNormProductionStatistics(startTime, endTime, name, groupId, response);
}
@PostMapping("/export/statistics/detail")
@ApiOperation("导出个人标准产值详情列表")
public void exportNormProductionDetails(Integer userId, String start,
String end, HttpServletResponse response) {
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
iNormProductionService.exportNormProductionDetail(userId, startTime, endTime, response);
}
@PostMapping("/export/total/production")
@ApiOperation("导出总产值")
public void exportProduction(String name, String start, String end, Integer groupId, HttpServletResponse response) {
Long startTime = null;
Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start).getTime();
endTime = DateUtil.parseDate(end).getTime();
}
iNormProductionService.exportProduction(name, startTime, endTime, groupId, response);
}
@GetMapping("/workload/statistics")
@ApiOperation("工作量统计")
public BaseResponse<List<WorkloadStatisticsVo>> workloadStatistics(String start, String end, Integer userId) {
Date startTime = null;
Date endTime = DateUtil.date();
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
startTime = DateUtil.parseDate(start);
endTime = DateUtil.parseDate(end);
}
return BaseResponse.okData(iNormProductionService.workloadStatistics(startTime, endTime, userId));
}
}
......@@ -61,7 +61,7 @@ public class QualityController {
List<EntrustVo> records = baseResponse.getData().getRecords();
if (records.size() == 0) {
return BaseResponse.errorMsg("没找到相关数据!");
return BaseResponse.okData(null);
}
List<Integer> projectIds = records.stream().map(EntrustVo::getId).collect(Collectors.toList());
Set<Integer> qualityApplyIds = iQualityApplyService.selectQualityApplyStatusByProIds(projectIds);
......
package cn.wise.sc.cement.business.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.wise.sc.cement.business.entity.EntityEnclosure;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.FileExt;
import cn.wise.sc.cement.business.model.IndustrialElementKey;
......@@ -8,25 +10,33 @@ import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.ReportDetailVo;
import cn.wise.sc.cement.business.model.SixElementKey;
import cn.wise.sc.cement.business.model.SixElementReport;
import cn.wise.sc.cement.business.model.query.SampleHandleEnclosureQuery;
import cn.wise.sc.cement.business.model.vo.EntrustVo;
import cn.wise.sc.cement.business.service.IEntityEnclosureService;
import cn.wise.sc.cement.business.service.IEntrustService;
import cn.wise.sc.cement.business.util.WordUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -47,6 +57,8 @@ public class ReportController {
final
IEntrustService iEntrustService;
@Autowired
IEntityEnclosureService iEntityEnclosureService;
public ReportController(IEntrustService iEntrustService) {
this.iEntrustService = iEntrustService;
......@@ -129,6 +141,45 @@ public class ReportController {
}
@PostMapping("/upload")
@ApiOperation("上传报告")
public BaseResponse<Boolean> uploadReport(@RequestBody SampleHandleEnclosureQuery query){
Assert.notNull(query.getId(),"委托id不能为空!");
QueryWrapper<EntityEnclosure> qw = new QueryWrapper();
qw.eq("entity_type",5);
qw.eq("entity_id",query.getId());
if (FileExt.EXCL.getName().equals(query.getExtName()) ||
FileExt.EXCLX.getName().equals(query.getExtName())){
EntityEnclosure one = iEntityEnclosureService.getOne(qw);
if (BeanUtil.isEmpty(one)){
EntityEnclosure entityEnclosure = new EntityEnclosure();
entityEnclosure.setEntityId(query.getId());
entityEnclosure.setExtName(query.getExtName());
entityEnclosure.setCreateTime(LocalDateTime.now());
entityEnclosure.setUpdateTime(LocalDateTime.now());
entityEnclosure.setEnclosureUrl(query.getEnclosureUrl());
entityEnclosure.setAlias(query.getAlias());
entityEnclosure.setEntityType(5);
iEntityEnclosureService.save(entityEnclosure);
return BaseResponse.okData(true);
}else {
one.setAlias(query.getAlias());
one.setEnclosureUrl(query.getEnclosureUrl());
one.setExtName(query.getExtName());
one.setUpdateTime(LocalDateTime.now());
iEntityEnclosureService.updateById(one);
return BaseResponse.okData(true);
}
}else {
return BaseResponse.errorMsg("文件类型只能是excel!");
}
}
/**
* 将样品六元素检测Map转换成单独属性
*
......@@ -202,4 +253,6 @@ public class ReportController {
return strBuilder.replace(0, 5, "").toString();
}
}
......@@ -5,6 +5,7 @@ import cn.wise.sc.cement.business.entity.SysGroup;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.service.ISysApprovalService;
import cn.wise.sc.cement.business.service.ISysDictionaryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
......@@ -29,6 +30,8 @@ public class SysApprovalController {
@Autowired
private ISysApprovalService approvalService;
@Autowired
private ISysDictionaryService dictionaryService;
@ApiOperation(value = "审批分页列表")
@GetMapping("/getPage")
......@@ -78,5 +81,28 @@ public class SysApprovalController {
return BaseResponse.errorMsg("失败!");
}
@ApiOperation(value = "删除审批")
@PostMapping("/delete/{id}")
public BaseResponse delete(@PathVariable Integer id) {
try {
approvalService.removeById(id);
return BaseResponse.okData("删除成功");
} catch (Exception e) {
log.debug("删除审批{}", e);
}
return BaseResponse.errorMsg("失败!");
}
@ApiOperation(value = "获取审批流程列表")
@GetMapping("/getSampleFormList")
public BaseResponse getSampleFormList() {
try {
return dictionaryService.getContent("审批流程");
} catch (Exception e) {
log.debug("获取审批流程列表{}", e);
}
return BaseResponse.errorMsg("失败!");
}
}
......@@ -7,6 +7,9 @@ import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.query.RoleQuery;
import cn.wise.sc.cement.business.service.ISysGroupService;
import cn.wise.sc.cement.business.service.ISysUserService;
import cn.wise.sc.cement.business.wrapper.page.Query;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -35,6 +38,8 @@ public class SysGroupController {
@Autowired
private ISysGroupService groupService;
@Autowired
private ISysUserService userService;
@ApiOperation(value = "工作组分页列表")
@GetMapping("/getPage")
......@@ -100,6 +105,12 @@ public class SysGroupController {
@PostMapping("/delete/{id}")
public BaseResponse delete(@PathVariable Integer id) {
try {
QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
sysUserQueryWrapper.eq("group_id", id);
Integer conunts = userService.count(sysUserQueryWrapper);
if (conunts != 0 && conunts > 0) {
return BaseResponse.errorMsg(conunts + "个用户正在使用!");
}
groupService.removeById(id);
return BaseResponse.okData("删除成功");
} catch (Exception e) {
......
......@@ -2,10 +2,13 @@ package cn.wise.sc.cement.business.controller;
import cn.wise.sc.cement.business.entity.SysGroup;
import cn.wise.sc.cement.business.entity.SysPost;
import cn.wise.sc.cement.business.entity.SysUser;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.query.PostQuery;
import cn.wise.sc.cement.business.service.ISysPostService;
import cn.wise.sc.cement.business.service.ISysUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -34,6 +37,8 @@ public class SysPostController {
@Autowired
private ISysPostService postService;
@Autowired
private ISysUserService userService;
@ApiOperation(value = "职务分页列表")
@ApiImplicitParams(value = {
......@@ -102,6 +107,12 @@ public class SysPostController {
@PostMapping("/delete/{id}")
public BaseResponse delete(@PathVariable Integer id) {
try {
QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
sysUserQueryWrapper.eq("post_id", id);
Integer conunts = userService.count(sysUserQueryWrapper);
if (conunts != 0 && conunts > 0) {
return BaseResponse.errorMsg(conunts + "个用户正在使用!");
}
postService.removeById(id);
return BaseResponse.okData("删除成功");
} catch (Exception e) {
......
......@@ -64,6 +64,7 @@ public class EntityEnclosure implements Serializable {
int HEAD = 0;
int EQUIPMENT_TEST = 3;
int STANDARD_SAMPLE = 4;
int ENTRUST_REPORT = 5;
}
......
package cn.wise.sc.cement.business.entity;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author ztw
* @since 2020-11-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Preciprice implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 样品名字
*/
private String sampleName;
private Integer sex;
/**
* 用户id
*/
private Integer userId;
/**
* 样品id
*/
private Integer sampleId;
/**
* 检测/处理Id
*/
private Integer targetId;
/**
* 检测:1 处理:0
*/
private Integer type;
/**
* 工值
*/
private BigDecimal preciprice;
/**
* 考核占比
*/
private BigDecimal assessRate;
/**
* 分析占比
*/
private BigDecimal analyseRate;
/**
* 分样占比
*/
private BigDecimal separateRate;
/**
* 报出分析结果
*/
private BigDecimal reportedAnalyseResult;
/**
* 定额工日
*/
private BigDecimal quotaDay;
/**
* 建议系数
*/
private BigDecimal coefficient;
/**
* 考核工值
*/
private BigDecimal assessValue;
/**
* 报结果占比
*/
private BigDecimal reportedResultRate;
/**
* 时间
*/
private long createTime;
/**
* 项目id
*/
private Integer entrustId;
/**
* 项目id
*/
private String entrustName;
/**
* 项目编号
*/
private String entrustCode;
/**
* 账号
*/
private String account;
/**
* 职位
*/
private String position;
/**
* 部门id
*/
private Integer groupId;
private String userName;
/**
* 检测组名
*/
private String groupTeamName;
}
......@@ -25,7 +25,7 @@ import org.springframework.web.filter.OncePerRequestFilter;
@Component
public class TokenFilter extends OncePerRequestFilter {
private static final Logger log = LoggerFactory.getLogger("WeiXinService");
private static final Logger log = LoggerFactory.getLogger("TokenFilter");
public static final String TOKEN_KEY = "Authorization";
......
......@@ -10,6 +10,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* <p>
......@@ -32,4 +33,11 @@ public interface EquipmentUseMapper extends BaseMapper<EquipmentUse> {
* @return list
*/
List<String> getEquipmentNamesByProjectId(@Param("param") Integer entrustId);
/**
* 根据设备ids获取使用到的设备名字
* @param ids 设备id
* @return list
*/
List<String> getEquipmentNamesByEquipmentIds(@Param("params")Set<Integer> ids);
}
package cn.wise.sc.cement.business.mapper;
import cn.wise.sc.cement.business.entity.Preciprice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author ztw
* @since 2020-11-02
*/
public interface PrecipriceMapper extends BaseMapper<Preciprice> {
}
......@@ -31,6 +31,9 @@ public interface SampleDistributionMapper extends BaseMapper<SampleDistribution>
List<SampleDistributionTeamVo> getDistributionTeamList(@Param("sampleId") Integer sampleId,
@Param("userId") Integer userId);
List<SampleDistributionTeamVo> getDistributionTeamGroupList(@Param("sampleId") Integer sampleId,
@Param("userId") Integer userId);
List<SampleCheckGroupVo> getSampleCheckGroupList(@Param("sampleId") Integer sampleId);
List<EntrustSample> getEntrustSample();
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.Map;
......@@ -21,4 +22,5 @@ public interface SysGroupMapper extends BaseMapper<SysGroup> {
IPage<GroupVo> getPage(@Param("page") Page page);
}
......@@ -5,6 +5,7 @@ import cn.wise.sc.cement.business.model.vo.UserVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -26,4 +27,16 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
// List<Map<String,Object>> exportList(@Param("params") Map<String,Object> params);
@Delete("delete from sys_role_user where user_id = #{userId}")
int deleteUserRole(Integer userId);
int saveUserRoles(@Param("userId") Integer userId, @Param("roleId") Integer roleId);
}
......@@ -52,5 +52,13 @@
WHERE eu.id IS NOT NULL
</select>
<select id="getEquipmentNamesByEquipmentIds" resultType="java.lang.String">
SELECT CONCAT(`name`,' (',`code`,')') FROM equipment
where id in
<foreach collection="params" open="(" close=")" item="id" separator=",">
#{id}
</foreach>
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wise.sc.cement.business.mapper.PrecipriceMapper">
</mapper>
......@@ -75,6 +75,20 @@
order by t.id asc
</select>
<select id="getDistributionTeamGroupList" resultType="cn.wise.sc.cement.business.model.vo.SampleDistributionTeamVo">
select su.id as userId,
t.team_group_id as teamGroupId
from sample_distribution t
left join sys_user su on su.id = t.user_id
left join team s on s.id = t.team_id
left join team_group tg on tg.id = t.team_group_id
where t.sample_id = #{sampleId}
<if test="userId != null">
and t.user_id = #{userId}
</if>
group by t.team_group_id
</select>
<select id="getSampleCheckGroupList" resultType="cn.wise.sc.cement.business.model.vo.SampleCheckGroupVo">
select sd.team_group_id as teamGroupId, tg.name as teamGroupName,
sd.user_id as userId, su.name as userName
......
......@@ -38,6 +38,11 @@
where su.id = #{id}
</select>
<insert id="saveUserRoles">
insert into sys_role_user(role_id, user_id) values
(#{roleId}, #{userId})
</insert>
<!-- <select id="exportList" resultType="java.util.HashMap">-->
<!-- SELECT-->
......
......@@ -10,7 +10,8 @@ public enum FileExt {
//office后缀名
DOC(".doc"),
EXCL(".xls");
EXCL(".xls"),
EXCLX(".xlsx");
private String name;
......
......@@ -68,4 +68,7 @@ public class UserQuery {
@ApiModelProperty("备注")
private String remark;
@ApiModelProperty("角色id")
private Integer roleId;
}
......@@ -126,4 +126,17 @@ public class EntrustVo {
@ApiModelProperty("评审意见")
private String opinion;
@ApiModelProperty("文件名")
private String alias;
@ApiModelProperty("扩展名")
private String extName;
@ApiModelProperty("路径")
private String enclosureUrl;
}
package cn.wise.sc.cement.business.service;
import cn.wise.sc.cement.business.entity.NormProduction;
import cn.wise.sc.cement.business.entity.NormProductionStatistics;
import cn.wise.sc.cement.business.entity.Preciprice;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.vo.NormProductionVo;
import cn.wise.sc.cement.business.model.vo.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author ztw
* @since 2020-11-02
*/
public interface IPrecipriceService extends IService<Preciprice> {
boolean createPreciprice(final Integer userId, final Integer entrustId,
final Integer targetId, final Integer type,
final Integer sampleId);
/**
* 标准产值统计
*
* @param start 开始时间
* @param end 结束时间
* @param groupId 部门id
* @return BaseResponse
*/
BaseResponse<List<NormProductionStatistics>> normProductionStatistics(Long start, Long end, String name, Integer groupId);
/**
* 标准产值统计 单人详情
*
* @param userId 用户id
* @param start 开始时间
* @param end 结束时间
* @return 详细信息
*/
List<NormProduction.NormProductionDetail> normProductionDetails(Integer userId,
Long start, Long end);
/**
* 总产值统计
*
* @param name 用户
* @param start 开始时间
* @param end 结束时间
* @return 详细信息
*/
List<ProductionVo> production(String name, Long start, Long end, Integer groupId);
/**
* 导出标准统计
* @param start 开始时间
* @param end 结束时间
* @param name 人员名字
* @param groupId 部门id
* @param response 响应体
*/
void exportNormProductionStatistics(Long start, Long end,String name,Integer groupId, HttpServletResponse response);
/**
* 导出个人标准产值详情列表
* @param userId 用户id
* @param startTime 开始时间
* @param endTime 结束时间
* @param response 响应体
*/
void exportNormProductionDetail(Integer userId, Long startTime, Long endTime, HttpServletResponse response);
/**
* 导出产值总统计列表
* @param name 名字检索
* @param startTime 开始时间
* @param endTime 结束时间
* @param response 响应体
*/
void exportProduction(String name, Long startTime, Long endTime,Integer groupId,HttpServletResponse response);
/**
* 统计工作量
* @param startTime 开始时间
* @param endTime 结束时间
* @return 统计对象
*/
List<WorkloadStatisticsVo> workloadStatistics(Date startTime, Date endTime, Integer userId);
}
......@@ -27,11 +27,14 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sun.org.apache.xpath.internal.operations.Bool;
import lombok.Data;
import net.bytebuddy.description.field.FieldDescription;
import org.apache.commons.io.filefilter.FalseFileFilter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
......@@ -114,8 +117,12 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
private ISysUserMessageService userMessageService;
@Autowired
private WeiXinService weiXinService;
@Autowired
private INormProductionService iNormProductionService;
@Autowired
private IPrecipriceService iPrecipriceService;
@Resource
private EntityEnclosureMapper entityEnclosureMapper;
/**
* 委托分页
*
......@@ -181,6 +188,19 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
entrustVo.setCheckTeam(checkTeam);
entrustVo.setCheckMethodNumber(sampleTmp.getMethodNumbers());
}
//查询报告,如果有上传的委托报告,用户可已进行下载
QueryWrapper<EntityEnclosure> wrapper = new QueryWrapper<>();
wrapper.eq("entity_type", EntityEnclosure.EntityType.ENTRUST_REPORT);
wrapper.eq("entity_id", entrustVo.getId());
wrapper.eq("is_deleted", 1);
List<EntityEnclosure> entityEnclosureList = entityEnclosureMapper.selectList(wrapper);
if(entityEnclosureList != null && entityEnclosureList.size()>0 ){
EntityEnclosure entityEnclosure = entityEnclosureList.get(0);
entrustVo.setAlias(entityEnclosure.getAlias());
entrustVo.setEnclosureUrl(entityEnclosure.getEnclosureUrl());
entrustVo.setExtName(entityEnclosure.getExtName());
}
}
}
pages.setRecords(list);
......@@ -265,10 +285,12 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
for (String teamId : teamIdS) {
Team team = teamMapper.selectById(Integer.valueOf(teamId));
if (team != null) {
if(!teamNameList.contains(teamId)){
charge = charge.compareTo(BigDecimal.ZERO) == 0 ? team.getCharge() : (charge.add(team.getCharge()));
teamNameList.add(team.getName());
}
}
}
//选择Mg必须选择Ca;选择Al必须选择Fe
if(teamNameList.contains("MgO")){
if(!teamNameList.contains("CaO")){
......@@ -287,6 +309,8 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
sampleTmpList.add(sampleTmp);
}
sampleTmpService.saveBatch(sampleTmpList);
}else{
return BaseResponse.errorMsg("样品及检测项不可为空");
}
logsService.saveLog(SysLogs.ObjType.ENTRUST_LOG, entrust.getId(), "提交了委托单", null);
//消息推送
......@@ -567,6 +591,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
}
}
sampleVo.setTeamName(teamName);
sampleVo.setSampleDistributionTeamVoList(sampleNoDistributionTeamVoList);
sampleVoList.add(sampleVo);
}
}
......@@ -807,6 +832,10 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
if (StringUtils.isEmpty(sampleQuery.getCementCode())) {
return BaseResponse.errorMsg("本所编号不能为空");
}
String regex = "[0-9]{2}\\-[0-9]{4}";
if(!sampleQuery.getCementCode().matches(regex) || sampleQuery.getCementCode().length() != getMaxCementCode().getData().length()){
return BaseResponse.errorMsg("本所编号格式不符合规范");
}
//前端传入的本所编号
Integer cementCodeInteger = commonService.getIntegerCode(sampleQuery.getCementCode());
if (cementCodeInteger <= integerMaxCode) {
......@@ -942,6 +971,15 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
.setStatus(0)
.setAlias(handle.getName());
sampleHandleEnclosureList.add(sampleHandleEnclosure);
//获取产值信息
QueryWrapper<NormProduction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("assess_id", handle.getId());
queryWrapper.eq("type", 0);
queryWrapper.eq("status", 1);
NormProduction normProduction = iNormProductionService.getOne(queryWrapper);
if(normProduction == null){
return BaseResponse.errorMsg("联系管理员.配置产值信息!");
}
}
sampleHandleEnclosureService.saveBatch(sampleHandleEnclosureList);
}
......@@ -1191,7 +1229,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
* @param ids
* @return
*/
@Transactional
@Transactional(rollbackFor = Exception.class,propagation = Propagation.NESTED)
@Override
public BaseResponse<String> finishHandle(Integer[] ids) {
LoginUser loginUser = userService.getLoginUser();
......@@ -1225,6 +1263,20 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
if (entrust == null) {
return BaseResponse.errorMsg("委托信息错误");
}
//计算产值
if (sampleHandle.getContent() != null) {
String[] handIdS = sampleHandle.getContent().split("、");
String illMessage = "";
for (String handleId : handIdS) {
try {
iPrecipriceService.createPreciprice(sampleHandle.getUserId(),entrust.getId(),Integer.valueOf(handleId),0,sample.getId());
}catch (Exception e){
System.out.println(e.getMessage());
return BaseResponse.errorMsg(e.getMessage());
}
}
}
QueryWrapper<SampleHandle> sampleHandleWrapper = new QueryWrapper<>();
sampleHandleWrapper.eq("sample_id", sample.getId());
sampleHandleWrapper.ne("status", 2);
......@@ -1315,6 +1367,16 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
.setStatus(0)
.setCreateTime(LocalDateTime.now());
sampleDistributionList.add(sampleDistribution);
//获取产值信息
QueryWrapper<NormProduction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("assess_id", distributionTeamQuery.getTeamGroupId());
queryWrapper.eq("type", 1);
queryWrapper.eq("status", 1);
NormProduction normProduction = iNormProductionService.getOne(queryWrapper);
if(normProduction == null){
return BaseResponse.errorMsg("联系管理员.配置产值信息!");
}
//消息推送
BaseResponse wrapper = userMessageService.sendMessage(distributionTeamQuery.getUserId(), "您有一条样品检测信息等待接受",entrust.getId(), SysUserMessage.MessageType.ENTRUST);
if(wrapper.getCode() != 200){
......@@ -1539,6 +1601,8 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
return BaseResponse.errorMsg("参数错误");
}
Entrust entrust = null;
//样品计算过产值的List
List<Integer> sampleIdS = new ArrayList<>();
for (Integer id : ids) {
SampleDistribution distribution = distributionMapper.selectById(id);
if (distribution == null) {
......@@ -1572,11 +1636,26 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
entrust.setStatus(6);
}
entrustMapper.updateById(entrust);
//计算产值
if(!sampleIdS.contains(sample.getId())){
List<SampleDistributionTeamVo> sampleDistributionTeamGroupVoList = distributionMapper.getDistributionTeamGroupList(sample.getId(), loginUser.getId());
if (sampleDistributionTeamGroupVoList != null && sampleDistributionTeamGroupVoList.size() > 0) {
for (SampleDistributionTeamVo sdVo : sampleDistributionTeamGroupVoList) {
try {
iPrecipriceService.createPreciprice(sdVo.getUserId(),entrust.getId(),sdVo.getTeamGroupId(),1,sample.getId());
}catch (Exception e){
return BaseResponse.errorMsg(e.getMessage());
}
}
}
sampleIdS.add(sample.getId());
}
}
}
if (entrust == null) {
return BaseResponse.errorMsg("委托信息错误");
}
logsService.saveLog(SysLogs.ObjType.ENTRUST_LOG, entrust.getId(), "完成检测项目任务", null);
return BaseResponse.okMsg("已完成检测项目任务");
}
......@@ -2328,6 +2407,19 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
entrustVo.setCheckTeam(checkTeam);
entrustVo.setCheckMethodNumber(sampleTmp.getMethodNumbers());
}
//查询报告,如果有上传的委托报告,用户可已进行下载
QueryWrapper<EntityEnclosure> wrapper = new QueryWrapper<>();
wrapper.eq("entity_type", EntityEnclosure.EntityType.ENTRUST_REPORT);
wrapper.eq("entity_id", entrustVo.getId());
wrapper.eq("is_deleted", 1);
List<EntityEnclosure> entityEnclosureList = entityEnclosureMapper.selectList(wrapper);
if(entityEnclosureList != null && entityEnclosureList.size()>0 ){
EntityEnclosure entityEnclosure = entityEnclosureList.get(0);
entrustVo.setAlias(entityEnclosure.getAlias());
entrustVo.setEnclosureUrl(entityEnclosure.getEnclosureUrl());
entrustVo.setExtName(entityEnclosure.getExtName());
}
}
}
pages.setRecords(list);
......@@ -2550,17 +2642,25 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
private String mapStringToMap(String str) {
str = str.substring(1, str.length() - 1);
String[] strs = str.split(",");
Map<String, String> map = new HashMap<>(strs.length);
for (String string : strs) {
String key = string.split(":")[0];
String value = string.split(":")[1];
map.put(key, value);
}
List<MapObj> mapObjs = JSON.parseArray(str, MapObj.class);
Map<String,String> map = new HashMap<>();
mapObjs.forEach(arg->map.put(arg.getName(),arg.getValue()));
return JSON.toJSONString(map);
}
@Data
public static class MapObj{
String name;
String value;
}
/**
* 根据样品检测列表获取报告管理首页
*
......@@ -2586,7 +2686,10 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
rts.setSampleNames(new HashSet<>(source.size()));
rts.setMethodNames(new HashSet<>(source.size()));
rts.setTeamNames(new HashSet<>(source.size()));
Set<Integer> equipmentIds = new HashSet<>(source.size());
source.forEach(arg -> {
equipmentIds.add(arg.getEquipmentId());
//获取使用的设备id
//关联检测项目
if (StrUtil.isNotBlank(arg.getTeamName())) {
String[] teamSplits = arg.getTeamName().split("、");
......@@ -2610,7 +2713,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
rts.setSampleNum(rts.getSampleNames().size());
//关联仪器名字 去重
List<String> equipmentNames = equipmentUseMapper.getEquipmentNamesByProjectId(firstReportDetail.getEntrustId());
List<String> equipmentNames = equipmentUseMapper.getEquipmentNamesByEquipmentIds(equipmentIds);
equipmentNames.forEach(arg -> rts.getEquipmentNames().add(arg));
//关联送样单位名字
......@@ -2722,7 +2825,7 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
} else if (j == 10) {
obj = checkMethodStr;
} else {
obj = m.get(headers[j]).toString();
obj = m.get(headers[j])!= null? m.get(headers[j]).toString() : "" ;
//如果序号带小数点 去除.0,保留整数
if (j == 0) {
obj = obj.split("\\.")[0];
......
......@@ -250,7 +250,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
normProductionDetails(null, start, end);
if (normProductionDetails.size() == 0) {
BaseResponse<List<NormProductionStatistics>> rts = BaseResponse.errorMsg("没找到相关数据!");
BaseResponse<List<NormProductionStatistics>> rts = BaseResponse.okData(null);
rts.setData(new ArrayList<>());
return rts;
}
......@@ -285,6 +285,7 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
continue;
}
if (sysGroup == null) {
log.debug("用户分组未设置!关联用户部门失败!");
continue;
}
NormProductionStatistics productionStatistics = new NormProductionStatistics();
......@@ -346,22 +347,13 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
* 1.获取处理派发表数据,获取标准产值配置,查询处理项。
* */
//获取标准产值数据
QueryWrapper<SampleDistribution> qwDis = new QueryWrapper<>();
QueryWrapper<SampleHandle> qwHan = new QueryWrapper<>();
QueryWrapper<SampleCheckTeam> qwCT = new QueryWrapper<>();
Map<String, Object> params = new HashMap<>(2);
if (userId != null && userId > 0) {
qwDis.eq("user_id", userId);
qwHan.eq("user_id", userId);
qwCT.eq("user_id", userId);
params.put("user_id", userId);
}
if (start != null && end != null) {
DateTime startTime = DateUtil.date(start);
DateTime endTime = DateUtil.date(end);
qwDis.between("finish_time", startTime, endTime);
qwHan.between("finish_time", startTime, endTime);
qwCT.between("finish_time", startTime, endTime);
params.put("start_time", DateUtil.format(startTime, "yyyy-MM-dd"));
params.put("end_time", DateUtil.format(endTime, "yyyy-MM-dd"));
}
......@@ -444,6 +436,9 @@ public class NormProductionServiceImpl extends ServiceImpl<NormProductionMapper,
//处理非标准产值没有用名职位信息
QueryWrapper<SysUser> qw = new QueryWrapper<>();
qw.in("id", userIds);
if(CollectionUtil.isEmpty(userIds)){
return null;
}
List<SysUser> users = iSysUserService.list(qw);
List<SysPost> sysPosts = iSysPostService.list();
List<SysGroup> sysGroups = iSysGroupService.list();
......
package cn.wise.sc.cement.business.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.wise.sc.cement.business.entity.Entrust;
import cn.wise.sc.cement.business.entity.Handle;
import cn.wise.sc.cement.business.entity.NonStandardApply;
import cn.wise.sc.cement.business.entity.NonStandardValue;
import cn.wise.sc.cement.business.entity.NormProduction;
import cn.wise.sc.cement.business.entity.NormProductionStatistics;
import cn.wise.sc.cement.business.entity.Preciprice;
import cn.wise.sc.cement.business.entity.Sample;
import cn.wise.sc.cement.business.entity.SampleDistribution;
import cn.wise.sc.cement.business.entity.SysGroup;
import cn.wise.sc.cement.business.entity.SysPost;
import cn.wise.sc.cement.business.entity.SysUser;
import cn.wise.sc.cement.business.entity.TeamGroup;
import cn.wise.sc.cement.business.mapper.EntrustMapper;
import cn.wise.sc.cement.business.mapper.PrecipriceMapper;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.LoginUser;
import cn.wise.sc.cement.business.model.vo.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import cn.wise.sc.cement.business.service.IEntrustService;
import cn.wise.sc.cement.business.service.IHandleService;
import cn.wise.sc.cement.business.service.INonStandardApplyService;
import cn.wise.sc.cement.business.service.INonStandardValueService;
import cn.wise.sc.cement.business.service.INormProductionService;
import cn.wise.sc.cement.business.service.IPrecipriceService;
import cn.wise.sc.cement.business.service.ISampleDistributionService;
import cn.wise.sc.cement.business.service.ISampleService;
import cn.wise.sc.cement.business.service.ISysGroupService;
import cn.wise.sc.cement.business.service.ISysPostService;
import cn.wise.sc.cement.business.service.ISysUserService;
import cn.wise.sc.cement.business.service.ITeamGroupService;
import cn.wise.sc.cement.business.util.ExcelUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* <p>
* 服务实现类
* </p>
*
* @author ztw
* @since 2020-11-02
*/
@Service
public class PrecipriceServiceImpl extends ServiceImpl<PrecipriceMapper, Preciprice> implements IPrecipriceService {
final
EntrustMapper iEntrustService;
final
ISampleService iSampleService;
final
INormProductionService iNormProductionService;
final
ISysUserService iSysUserService;
final
ISysGroupService iSysGroupService;
final
ITeamGroupService iTeamGroupService;
final
IHandleService iHandleService;
final
ISysPostService iSysPostService;
final
INonStandardValueService iNonStandardValueService;
final
INonStandardApplyService iNonStandardApplyService;
final
ISampleDistributionService iSampleDistributionService;
public PrecipriceServiceImpl(EntrustMapper iEntrustService,
ISampleService iSampleService,
INormProductionService iNormProductionService,
ISysUserService iSysUserService,
ISysGroupService iSysGroupService,
ITeamGroupService iTeamGroupService,
IHandleService iHandleService,
ISysPostService iSysPostService,
INonStandardValueService iNonStandardValueService,
INonStandardApplyService iNonStandardApplyService,
ISampleDistributionService iSampleDistributionService) {
this.iEntrustService = iEntrustService;
this.iSampleService = iSampleService;
this.iNormProductionService = iNormProductionService;
this.iSysUserService = iSysUserService;
this.iSysGroupService = iSysGroupService;
this.iTeamGroupService = iTeamGroupService;
this.iHandleService = iHandleService;
this.iSysPostService = iSysPostService;
this.iNonStandardValueService = iNonStandardValueService;
this.iNonStandardApplyService = iNonStandardApplyService;
this.iSampleDistributionService = iSampleDistributionService;
}
@Override
@Transactional(rollbackFor = Exception.class,propagation = Propagation.NESTED)
public boolean createPreciprice(final Integer userId, final Integer entrustId,
final Integer targetId, final Integer type,
final Integer sampleId) {
Assert.notNull(userId, "用户id不能为空!");
Assert.notNull(entrustId, "项目id不能为空!");
Assert.notNull(targetId, "处理项id不能为空!");
Assert.notNull(sampleId, "样品id不能为空!");
Assert.notNull(type, "处理项类型不能为空!");
//获取项目编号和名字
Entrust entrust = iEntrustService.selectById(entrustId);
if (BeanUtil.isEmpty(entrust)) {
log.debug("产值记录新增失败,项目没找到!");
throw new IllegalArgumentException("无效的项目id!");
}
Preciprice preciprice = new Preciprice();
preciprice.setEntrustId(entrust.getId());
preciprice.setEntrustCode(entrust.getEntrustCode());
preciprice.setEntrustName(entrust.getProjectName());
//获取样品信息
Sample sample = iSampleService.getById(sampleId);
if (BeanUtil.isEmpty(sample)) {
log.debug("产值记录新增失败,项目没找到!");
throw new IllegalArgumentException("无效的项目id!");
}
preciprice.setSampleId(sample.getId());
preciprice.setSampleName(sample.getName());
//获取产值信息
QueryWrapper<NormProduction> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("assess_id", targetId);
queryWrapper.eq("type", type);
queryWrapper.eq("status", 1);
NormProduction normProduction = iNormProductionService.getOne(queryWrapper);
if (BeanUtil.isEmpty(normProduction)) {
log.debug("产值记录新增失败,产值信息没找到!");
throw new IllegalArgumentException("联系管理员.配置产值信息!");
}
preciprice.setAnalyseRate(BigDecimal.valueOf(normProduction.getAnalyseRate()));
preciprice.setAssessRate(BigDecimal.valueOf(normProduction.getAssessId()));
preciprice.setAssessValue(BigDecimal.valueOf(normProduction.getAssessValue()));
preciprice.setReportedAnalyseResult(BigDecimal.valueOf(normProduction.getReportedAnalyseResult()));
preciprice.setReportedResultRate(BigDecimal.valueOf(normProduction.getReportedResultRate()));
preciprice.setCoefficient(BigDecimal.valueOf(normProduction.getCoefficient()));
preciprice.setCreateTime(DateUtil.date().getTime());
preciprice.setSeparateRate(BigDecimal.valueOf(normProduction.getSeparateRate()));
preciprice.setQuotaDay(BigDecimal.valueOf(normProduction.getQuotaDay()));
if (type == 1) {
preciprice.setPreciprice(calculateWorkTimeCoefficient(normProduction, normProduction.getAnalyseRate()));
} else {
preciprice.setPreciprice(calculateWorkTimeCoefficient(normProduction, normProduction.getAnalyseRate()));
}
//获取用户职位和账号
SysUser sysUser = iSysUserService.getById(userId);
if (BeanUtil.isEmpty(sysUser)) {
log.debug("产值记录新增失败,用户没找到!");
throw new IllegalArgumentException("无效的用户id!");
}
preciprice.setUserId(sysUser.getId());
preciprice.setUserName(sysUser.getName());
preciprice.setSex(sysUser.getSex());
SysGroup sysGroup = iSysGroupService.getById(sysUser.getGroupId());
if (BeanUtil.isEmpty(sysGroup)) {
log.debug("产值记录新增失败,用户所在部门未找到!");
throw new IllegalArgumentException("用户所在部门需要设置!");
}
preciprice.setPosition(sysGroup.getName());
preciprice.setGroupId(sysGroup.getId());
//获取检测组名
if (type == 1) {
TeamGroup teamGroup = iTeamGroupService.getById(targetId);
preciprice.setGroupTeamName(teamGroup.getName());
} else {
Handle handle = iHandleService.getById(targetId);
preciprice.setGroupTeamName(handle.getName());
}
preciprice.setTargetId(targetId);
preciprice.setType(type);
try {
return this.save(preciprice);
} catch (Exception e) {
log.error("添加产值记录失败!");
return false;
}
}
@Override
public BaseResponse<List<NormProductionStatistics>> normProductionStatistics(Long start, Long end, String name, Integer groupId) {
//曲解、心有灵犀、捧着、不争论、心态口才策略
//统计分样处理的详情
List<NormProduction.NormProductionDetail> normProductionDetails =
normProductionDetails(null, start, end);
if (normProductionDetails.size() == 0) {
BaseResponse<List<NormProductionStatistics>> rts = BaseResponse.okData(null);
rts.setData(new ArrayList<>());
return rts;
}
//
Map<Integer, BigDecimal> coefficientMap = new HashMap<>(normProductionDetails.size());
normProductionDetails
.forEach(arg -> {
Integer userId = arg.getUserId();
//不存在 添加
if (!coefficientMap.containsKey(userId)) {
coefficientMap.put(userId, arg.getWorkTimeCoefficient());
} else {
BigDecimal bigDecimal = coefficientMap.get(userId);
BigDecimal newWorkTime = arg.getWorkTimeCoefficient().add(bigDecimal);
coefficientMap.put(userId, newWorkTime);
}
});
List<NormProductionStatistics> rts = new ArrayList<>();
Set<Integer> userIds = coefficientMap.keySet();
QueryWrapper<SysUser> qw = new QueryWrapper<>();
qw.in("id", userIds);
List<SysUser> users = iSysUserService.list(qw);
List<SysPost> sysPosts = iSysPostService.list();
List<SysGroup> sysGroups = iSysGroupService.list();
for (Integer userId : coefficientMap.keySet()) {
SysUser sysUser = users.stream()
.filter(arg -> arg.getId().intValue() == userId)
.findFirst().orElse(null);
SysGroup sysGroup = sysGroups.stream().filter(arg -> arg.getId().intValue() == userId)
.findFirst().orElse(null);
if (sysUser == null) {
continue;
}
if (sysGroup == null) {
log.debug("用户分组未设置!关联用户部门失败!");
continue;
}
NormProductionStatistics productionStatistics = new NormProductionStatistics();
productionStatistics.setAccount(sysUser.getUsername());
productionStatistics.setCoefficient(coefficientMap.get(userId).doubleValue());
productionStatistics.setTime("/");
productionStatistics.setCount(normProductionDetails.stream()
.filter(arg -> arg.getUserId().intValue() == sysUser.getId())
.count());
productionStatistics.setPosition(sysUser.getQualifications());
if (start != null && end != null) {
DateTime startTime = DateUtil.date(start);
DateTime endTime = DateUtil.date(end);
productionStatistics.setTime(startTime.toDateStr() + "-" + endTime.toDateStr());
}
productionStatistics.setSex(sysUser.getSex() == 0 ? "女" : "男");
productionStatistics.setUserId(sysUser.getId() + "");
productionStatistics.setUserName(sysUser.getName());
productionStatistics.setGroupId(sysUser.getGroupId());
productionStatistics.setGroupName(sysGroup.getName());
SysPost sysPost = sysPosts.stream()
.filter(arg -> arg.getId().intValue() == sysUser.getPostId()).
findFirst().orElse(null);
productionStatistics.setPosition(sysPost == null ? "职务一" : sysPost.getName());
productionStatistics.setGroupName(sysGroup.getName());
rts.add(productionStatistics);
}
//过滤名字
if (StrUtil.isNotBlank(name)) {
List<NormProductionStatistics> collect = rts.stream().filter(arg -> arg.getUserName().contains(name)).collect(Collectors.toList());
return BaseResponse.okData(collect);
}
//过滤部门id
if (groupId != null) {
List<NormProductionStatistics> collect = rts.stream().filter(arg -> arg.getGroupId().equals(groupId)).collect(Collectors.toList());
return BaseResponse.okData(collect);
}
return BaseResponse.okData(rts);
}
@Override
public List<NormProduction.NormProductionDetail>
normProductionDetails(Integer userId, Long startTime, Long endTime) {
QueryWrapper<Preciprice> qw = new QueryWrapper<>();
if (!BeanUtil.isEmpty(startTime)) {
qw.gt("create_time", startTime);
}
if (!BeanUtil.isEmpty(endTime)) {
qw.le("create_time", endTime);
}
if (!BeanUtil.isEmpty(userId)) {
qw.like("user_id", userId);
}
List<Preciprice> list = this.list(qw);
List<NormProduction.NormProductionDetail> rts = new ArrayList<>(list.size());
for (Preciprice preciprice : list) {
NormProduction.NormProductionDetail detail = preciprice2NormDetail(preciprice);
rts.add(detail);
}
return rts;
}
@Override
public List<ProductionVo> production(String name, Long start, Long end, Integer groupId) {
Date startDate = null;
Date endDate = new Date();
if (start != null && start != 0) {
startDate = DateUtil.date(start);
}
if (end != null && end != 0) {
endDate = DateUtil.date(end);
}
//非标准产值
List<NonStandardValue> nonStandardValues = iNonStandardValueService.nonValue(startDate, endDate, groupId).getData();
//标准产值
List<NormProductionStatistics> productionStatistics = this.normProductionStatistics(start, end, name, groupId).getData();
//以userId找关系
Set<String> userIds = new HashSet<>();
nonStandardValues.forEach(arg -> userIds.add(arg.getUserId() + ""));
productionStatistics.forEach(arg -> userIds.add(arg.getUserId()));
List<ProductionVo> rts = new ArrayList<>(userIds.size());
userIds.forEach(arg -> {
ProductionVo productionVo = new ProductionVo();
productionVo.setUserId(arg);
//找到标准准产值里面的数据
productionStatistics.forEach(opt -> {
if (opt.getUserId().equals(arg)) {
productionVo.setProductionValue(opt.getCoefficient());
productionVo.setUserName(opt.getUserName());
productionVo.setPosition(opt.getPosition());
productionVo.setAccount(opt.getAccount());
productionVo.setGroupId(opt.getGroupId());
productionVo.setGroupName(opt.getGroupName());
}
});
//找到标准产值里面的数据
nonStandardValues.forEach(opt -> {
if (arg.equals(opt.getUserId() + "")) {
productionVo.setNonProductionValue(opt.getFinalValue());
}
});
rts.add(productionVo);
});
//处理非标准产值没有用名职位信息
QueryWrapper<SysUser> qw = new QueryWrapper<>();
qw.in("id", userIds);
if (CollectionUtil.isEmpty(userIds)) {
return null;
}
List<SysUser> users = iSysUserService.list(qw);
List<SysPost> sysPosts = iSysPostService.list();
List<SysGroup> sysGroups = iSysGroupService.list();
Date finalStartDate = startDate;
Date finalEndDate = endDate;
rts.forEach(arg -> {
arg.setTime(finalStartDate == null ? "/" : DateUtil.format(finalStartDate, "yyyy-MM-dd") + "--" + DateUtil.format(finalEndDate, "yyyy-MM-dd"));
if (StrUtil.isBlank(arg.getUserName())) {
//关联用户信息
users.stream().filter(opt -> arg.getUserId().equals(opt.getId() + "")).findFirst()
.ifPresent(opt -> {
arg.setUserName(opt.getName());
arg.setAccount(opt.getUsername());
arg.setPositionId(opt.getPostId());
arg.setGroupId(opt.getGroupId());
});
//关联职务
sysPosts.stream().filter(opt -> arg.getPositionId().intValue() == opt.getId())
.findFirst()
.ifPresent(opt -> arg.setPosition(opt.getName()));
sysGroups.stream().filter(opt -> arg.getGroupId().intValue() == opt.getId())
.findFirst()
.ifPresent(opt -> arg.setGroupName(opt.getName()));
}
arg.setProductionTotalValue(arg.getNonProductionValue() + arg.getProductionValue());
});
//过滤名字
if (StrUtil.isNotBlank(name)) {
return rts.stream().filter(arg -> arg.getUserName().contains(name))
.collect(Collectors.toList());
}
//过滤部门id
if (groupId != null) {
return rts.stream().filter(arg -> arg.getGroupId().equals(groupId))
.collect(Collectors.toList());
}
return rts;
}
@Override
public void exportNormProductionStatistics(Long start, Long end, String name, Integer groupId, HttpServletResponse response) {
BaseResponse<List<NormProductionStatistics>> listBaseResponse = normProductionStatistics(start, end, name, groupId);
if (listBaseResponse.getCode() == 200) {
List<NormProductionStatistics> data = listBaseResponse.getData();
if (CollectionUtil.isNotEmpty(data)) {
String[] headers = new String[10];
headers[0] = "用户编号";
headers[1] = "用户名";
headers[2] = "账号";
headers[3] = "性别";
headers[4] = "职务";
headers[5] = "统计时间";
headers[6] = "检测项目数";
headers[7] = "产值绩效";
headers[8] = "部门id";
headers[9] = "部门名";
List<Object[]> exportData = new ArrayList<>(data.size());
for (NormProductionStatistics productionStatistics : data) {
Object[] objs = new Object[10];
objs[0] = productionStatistics.getUserId();
objs[1] = productionStatistics.getUserName();
objs[2] = productionStatistics.getAccount();
objs[3] = productionStatistics.getSex();
objs[4] = productionStatistics.getPosition();
objs[5] = productionStatistics.getTime();
objs[6] = productionStatistics.getCount();
objs[7] = productionStatistics.getCoefficient();
objs[8] = productionStatistics.getGroupId();
objs[9] = productionStatistics.getGroupName();
exportData.add(objs);
}
ExcelUtil.excelExport(
"标准产值统计", headers,
exportData, response);
}
}
}
@Override
public void exportNormProductionDetail(Integer userId, Long startTime, Long endTime, HttpServletResponse response) {
List<NormProduction.NormProductionDetail> normProductionDetails = normProductionDetails(userId, startTime, endTime);
if (CollectionUtil.isNotEmpty(normProductionDetails)) {
String[] headers = new String[13];
headers[0] = "序号";
headers[1] = "名字";
headers[2] = "检测项目";
headers[3] = "所属项目";
headers[4] = "项目编号";
headers[5] = "检测时间";
headers[6] = "分析占比";
headers[7] = "分样占比";
headers[8] = "校核占比";
headers[9] = "报结果占比";
headers[10] = "合计";
List<Object[]> exportData = new ArrayList<>(normProductionDetails.size());
int count = 0;
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm:ss");
for (NormProduction.NormProductionDetail target : normProductionDetails) {
Object[] objs = new Object[13];
objs[0] = count++;
objs[1] = target.getUserName();
objs[2] = target.getGroupTeamName();
objs[3] = target.getProjectName();
objs[4] = target.getEntrustCode();
objs[5] = target.getCheckTime() == null ? "/" : target.getCheckTime().format(timeFormatter);
objs[6] = target.getAnalyseRate();
objs[7] = target.getSeparateRate();
objs[8] = target.getAssessRate();
objs[9] = target.getReportedResultRate();
objs[10] = target.getWorkTimeCoefficient();
exportData.add(objs);
}
ExcelUtil.excelExport("标准产值详情—" + normProductionDetails.get(0).getUserName(), headers, exportData, response);
}
}
@Override
public void exportProduction(String name, Long startTime, Long endTime, Integer groupId, HttpServletResponse response) {
List<ProductionVo> data = production(name, startTime, endTime, groupId);
if (CollectionUtil.isNotEmpty(data)) {
String[] headers = new String[10];
headers[0] = "序号";
headers[1] = "姓名";
headers[2] = "账户";
headers[3] = "职务";
headers[4] = "统计时间";
headers[5] = "标准产值";
headers[6] = "非标准产值";
headers[7] = "产值统计";
headers[8] = "部门id";
headers[9] = "部门名";
List<Object[]> exportData = new ArrayList<>(data.size());
int count = 0;
for (ProductionVo target : data) {
Object[] objs = new Object[10];
objs[0] = count++;
objs[1] = target.getUserName();
objs[2] = target.getAccount();
objs[3] = target.getPosition();
objs[4] = target.getTime();
objs[5] = target.getProductionValue();
objs[6] = target.getNonProductionValue();
objs[7] = target.getProductionTotalValue();
objs[8] = target.getGroupId();
objs[9] = target.getGroupName();
exportData.add(objs);
}
ExcelUtil.excelExport("产值统计", headers, exportData, response);
}
}
@Override
public List<WorkloadStatisticsVo> workloadStatistics(Date startTime, Date endTime, Integer userId) {
long start = getDefaultStart(startTime == null ? 0 : startTime.getTime());
long end = getDefaultEnd(endTime.getTime());
Map<String, Integer> map1 = initMonthMoneyMap(start, end);
Map<String, Integer> map2 = initMonthMoneyMap(start, end);
QueryWrapper<SampleDistribution> qw = new QueryWrapper<>();
if (startTime != null) {
qw.ge("finish_time", DateUtil.format(DateUtil.date(start), "yyyy-MM-dd"));
}
if (userId != null && userId != 0) {
qw.eq("user_id", userId);
}
qw.le("finish_time", DateUtil.format(DateUtil.date(end), "yyyy-MM-dd"));
qw.eq("status", 2);
List<SampleDistribution> sampleDistributions = iSampleDistributionService.list(qw);
QueryWrapper<NonStandardApply> qwA = new QueryWrapper<>();
if (startTime != null) {
qwA.ge("start_time", DateUtil.format(DateUtil.date(start), "yyyy-MM-dd"));
}
if (userId != null && userId != 0) {
qwA.eq("user_id", userId);
}
qwA.le("start_time", DateUtil.format(DateUtil.date(end), "yyyy-MM-dd"));
qwA.eq("status", 2);
List<NonStandardApply> nonStandardApplies = iNonStandardApplyService.list(qwA);
for (SampleDistribution sampleDistribution : sampleDistributions) {
addCount(sampleDistribution.getFinishTime(), map1);
}
for (NonStandardApply nonStandardApply : nonStandardApplies) {
addCount(nonStandardApply.getStartTime(), map2);
}
WorkloadStatisticsVo workloadStatisticsVo = new WorkloadStatisticsVo();
workloadStatisticsVo.setType(0);
workloadStatisticsVo.setMap(map1);
WorkloadStatisticsVo workloadStatisticsVo2 = new WorkloadStatisticsVo();
workloadStatisticsVo2.setType(1);
workloadStatisticsVo2.setMap(map2);
List<WorkloadStatisticsVo> rts = new ArrayList<>(2);
rts.add(workloadStatisticsVo);
rts.add(workloadStatisticsVo2);
return rts;
}
private NormProduction.NormProductionDetail preciprice2NormDetail(Preciprice preciprice) {
NormProduction.NormProductionDetail rts = new NormProduction.NormProductionDetail();
BeanUtil.copyProperties(preciprice, rts);
rts.setAssessId(preciprice.getTargetId());
rts.setWorkTimeCoefficient(preciprice.getPreciprice());
rts.setCheckTime(getDateTimeOfTimestamp(preciprice.getCreateTime()));
return rts;
}
public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
Instant instant = Instant.ofEpochMilli(timestamp);
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
private NormProductionStatistics preciprice2NormProductionStatistics(Preciprice preciprice) {
NormProductionStatistics rts = new NormProductionStatistics();
rts.setPosition(preciprice.getPosition());
rts.setUserName(preciprice.getUserName());
rts.setUserId(preciprice.getUserId() + "");
rts.setSex(preciprice.getSex() == 1 ? "男" : "女");
rts.setAccount(preciprice.getAccount());
rts.setCoefficient(preciprice.getCoefficient().doubleValue());
rts.setGroupId(preciprice.getGroupId());
rts.setGroupName(preciprice.getPosition());
return rts;
}
private <M, T> IPage<T> copyPage(IPage<M> page, List<T> target) {
IPage<T> rts = new Page<>();
rts.setCurrent(page.getCurrent());
rts.setRecords(target);
rts.setSize(page.getSize());
rts.setPages(page.getPages());
rts.setTotal(page.getTotal());
return rts;
}
private void addCount(LocalDateTime date, Map<String, Integer> map) {
Date nextDate = DateUtil.endOfMonth(asDate(date));
map.put(nextDate.getMonth() + 1 + "", map.get(nextDate.getMonth() + 1 + "") + 1);
}
private void addCount(LocalDate date, Map<String, Integer> map) {
Date nextDate = DateUtil.endOfMonth(asDate(date));
map.put(nextDate.getMonth() + 1 + "", map.get(nextDate.getMonth() + 1 + "") + 1);
}
private static Date asDate(LocalDate localDate) {
return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
}
private static Date asDate(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
private Map<String, Integer> initMonthMoneyMap(long start, long end) {
Map<String, Integer> map = new LinkedHashMap();
for (long i = start; i <= end; i = DateUtil.offsetMonth(DateUtil.date(i), 1).getTime()) {
map.put(DateUtil.endOfMonth(DateUtil.date(i)).getMonth() + 1 + "", 0);
}
return map;
}
private static long getDefaultStart(long start) {
//如果没传时间进来 默认开始时间是今天开始时间
if (start == 0) {
start = System.currentTimeMillis();
start = DateUtil.beginOfYear(DateUtil.date(start)).getTime();
}
return start;
}
private static long getDefaultEnd(long end) {
//如果没传时间进来 默认开始时间是今天开始时间
if (end == 0) {
end = System.currentTimeMillis();
end = DateUtil.endOfYear(DateUtil.date(end)).getTime();
}
return end;
}
/**
* 计算标准产值的工时标准系数 plan
* 额定工日*建议系数/报出对应分析结果*考核工值*分析占比
*
* @param normProduction 标准产值配置对象 如:六元素
* @param rate 具体的操作占比 如:统计分析 85%
* @return BigDecimal
*/
private BigDecimal calculateWorkTimeCoefficient(NormProduction normProduction, Double rate) {
//计算出工时标准系数:
//额定工日*建议系数/报出对应分析结果*考核工值*分析占比
BigDecimal quotaDayBig = BigDecimal.valueOf(normProduction.getQuotaDay());
BigDecimal coefficientBig = BigDecimal.valueOf(normProduction.getCoefficient());
BigDecimal reportedAnalyseRtsBig = BigDecimal.valueOf(normProduction.getReportedAnalyseResult());
BigDecimal assessValueBig = BigDecimal.valueOf(normProduction.getAssessValue());
BigDecimal analyseRateBig = BigDecimal.valueOf(rate);
return quotaDayBig.multiply(coefficientBig)
.divide(reportedAnalyseRtsBig, 6, RoundingMode.HALF_DOWN)
.multiply(assessValueBig).multiply(analyseRateBig)
.setScale(6, RoundingMode.HALF_DOWN);
}
}
......@@ -93,6 +93,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
@Override
@Transactional
public BaseResponse<SysRole> update(RoleQuery query) {
if(query.getId() == 1){
return BaseResponse.errorMsg("系统管理员角色不允许修改!");
}
if (StringUtils.isEmpty(query.getName())) {
return BaseResponse.errorMsg("角色名称不能为空!");
}
......@@ -138,6 +141,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
@Override
@Transactional
public BaseResponse<String> delete(Integer id) {
if(id == 1){
return BaseResponse.errorMsg("系统管理员角色不允许删除!");
}
SysRole role = roleMapper.selectById(id);
if (role == null) {
return BaseResponse.errorMsg("角色不存在!");
......
......@@ -2,9 +2,11 @@ package cn.wise.sc.cement.business.service.impl;
import cn.wise.sc.cement.business.entity.Project;
import cn.wise.sc.cement.business.entity.SysPermission;
import cn.wise.sc.cement.business.entity.SysRole;
import cn.wise.sc.cement.business.entity.SysUser;
import cn.wise.sc.cement.business.exception.BusinessExceptionEnum;
import cn.wise.sc.cement.business.mapper.SysPermissionMapper;
import cn.wise.sc.cement.business.mapper.SysRoleMapper;
import cn.wise.sc.cement.business.mapper.SysUserMapper;
import cn.wise.sc.cement.business.model.BaseResponse;
import cn.wise.sc.cement.business.model.LoginUser;
......@@ -56,6 +58,8 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
RedisUtil redisUtil;
@Resource
private SysPermissionMapper permissionMapper;
@Resource
private SysRoleMapper roleMapper;
/**
* 当前登录用户
......@@ -75,6 +79,8 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
LoginUser loginUser = new LoginUser();
BeanUtils.copyProperties(sysUser, loginUser);
List<SysPermission> permissionList = permissionMapper.listByUserId(loginUser.getId());
SysRole sysRole = roleMapper.byUserId(sysUser.getId());
loginUser.setRoleList(sysRole);
loginUser.setPermissions(permissionList);
return loginUser;
} catch (Exception e) {
......@@ -114,6 +120,9 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
if (StringUtils.isEmpty(query.getPhone())) {
return BaseResponse.errorMsg("手机号码不可为空!");
}
if(query.getRoleId() == null){
return BaseResponse.errorMsg("请选择角色信息!");
}
QueryWrapper<SysUser> qw = new QueryWrapper<>();
qw.eq("phone", query.getPhone());
int count = userMapper.selectCount(qw);
......@@ -124,6 +133,8 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
BeanUtils.copyProperties(query, user);
user.setStatus(1).setIsDelete(1).setCreateTime(LocalDateTime.now());
userMapper.insert(user);
saveUserRoles(user.getId(), query.getRoleId());
return BaseResponse.okData(user);
}
......@@ -136,9 +147,15 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
@Override
@Transactional
public BaseResponse<SysUser> update(UserQuery query) {
if(query.getId() == 1){
return BaseResponse.errorMsg("不允许更改系统管理员信息!");
}
if (StringUtils.isEmpty(query.getPhone())) {
return BaseResponse.errorMsg("手机号码不可为空!");
}
if(query.getRoleId() == null){
return BaseResponse.errorMsg("请选择角色信息!");
}
QueryWrapper<SysUser> qw = new QueryWrapper<>();
qw.eq("phone", query.getPhone());
qw.ne("id", query.getId());
......@@ -150,9 +167,25 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
BeanUtils.copyProperties(query, user);
user.setId(query.getId());
userMapper.updateById(user);
saveUserRoles(user.getId(), query.getRoleId());
return BaseResponse.okData(user);
}
/**
* 保存用户和角色信息
* @param userId
* @param roleId
*/
private void saveUserRoles(Integer userId, Integer roleId) {
if (userId != null) {
userMapper.deleteUserRole(userId);
if (roleId != null) {
userMapper.saveUserRoles(userId, roleId);
}
}
}
/**
* 禁用启用
*
......@@ -163,6 +196,9 @@ public class UserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impleme
@Override
@Transactional
public BaseResponse<String> status(Integer status, Integer id) {
if(id == 1){
return BaseResponse.errorMsg("不允许更改系统管理员状态!");
}
if (status == null || id == null) {
return BaseResponse.errorMsg("参数错误!");
}
......
package cn.wise.sc.cement.business.service.impl;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import cn.wise.sc.cement.business.entity.SysUser;
import cn.wise.sc.cement.business.model.BaseResponse;
......@@ -21,6 +22,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
@Service
public class WeiXinService {
......@@ -232,6 +235,8 @@ public class WeiXinService {
}
public static void main(String[] args) {
BigDecimal bigDecimal = NumberUtil.toBigDecimal(StrUtil.trim("111 "));
}
}
package cn.wise.sc.cement.business.util;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.cookie.SM;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.ss.usermodel.*;
......@@ -31,7 +33,7 @@ public class CheckCountUtil {
//object 转成 BigDecimal
public static BigDecimal getBigDecimal(Object value ) {
BigDecimal ret = null;
if( value != null ) {
if( value != null && !value.equals("") ) {
if( value instanceof BigDecimal ) {
ret = (BigDecimal) value;
} else if( value instanceof String ) {
......@@ -56,12 +58,15 @@ public class CheckCountUtil {
public static String checkCount(String name, Map<String, String> resultMap) {
BigDecimal endResult = null;
if(name.equals("L.O.I")){
if( StringUtils.isNotBlank(resultMap.get("样重m1")) &&
StringUtils.isNotBlank(resultMap.get("空堝重m2"))&&
StringUtils.isNotBlank(resultMap.get("烧后重m3"))){
//样重m1—保留4位⼩数
BigDecimal m1 = getBigDecimal(resultMap.get("样重m1")).setScale(4,BigDecimal.ROUND_HALF_UP);
BigDecimal m1 = getBigDecimal(resultMap.get("样重m1").trim()).setScale(4,BigDecimal.ROUND_HALF_UP);
//空堝重m2—保留4位⼩数
BigDecimal m2 = getBigDecimal(resultMap.get("空堝重m2")).setScale(4,BigDecimal.ROUND_HALF_UP);
BigDecimal m2 = getBigDecimal(resultMap.get("空堝重m2").trim()).setScale(4,BigDecimal.ROUND_HALF_UP);
//烧后重m3—保留4位⼩数
BigDecimal m3 = getBigDecimal(resultMap.get("烧后重m3")).setScale(4,BigDecimal.ROUND_HALF_UP);
BigDecimal m3 = getBigDecimal(resultMap.get("烧后重m3").trim()).setScale(4,BigDecimal.ROUND_HALF_UP);
//计算的核心公式结果
BigDecimal countResult = (m1.add(m2).subtract(m3)).divide(m1,4);
BigDecimal result1 = countResult.multiply(param100.multiply(param100));
......@@ -71,13 +76,17 @@ public class CheckCountUtil {
}else{
endResult = countResult.multiply(param100).subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("SiO2")){
if( StringUtils.isNotBlank(resultMap.get("VSiO2")) &&
StringUtils.isNotBlank(resultMap.get("TSiO2"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))){
//毫升数
BigDecimal VSiO2 = getBigDecimal(resultMap.get("VSiO2"));
BigDecimal VSiO2 = getBigDecimal(resultMap.get("VSiO2").trim());
//滴定度
BigDecimal TSiO2 = getBigDecimal(resultMap.get("TSiO2"));
BigDecimal TSiO2 = getBigDecimal(resultMap.get("TSiO2").trim());
//样m
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = VSiO2.multiply(TSiO2).divide(m, 4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -87,12 +96,19 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("Al2O3+TiO2")){
BigDecimal TAl2O3 = getBigDecimal(resultMap.get("TAl2O3"));
BigDecimal VAl2O3 = getBigDecimal(resultMap.get("VAl2O3"));
BigDecimal K = getBigDecimal(resultMap.get("K"));
BigDecimal VCuSO4_I = getBigDecimal(resultMap.get("VCuSO4(I)"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
if( StringUtils.isNotBlank(resultMap.get("TAl2O3")) &&
StringUtils.isNotBlank(resultMap.get("VAl2O3"))&&
StringUtils.isNotBlank(resultMap.get("K"))&&
StringUtils.isNotBlank(resultMap.get("VCuSO4(I)"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))
){
BigDecimal TAl2O3 = getBigDecimal(resultMap.get("TAl2O3").trim());
BigDecimal VAl2O3 = getBigDecimal(resultMap.get("VAl2O3").trim());
BigDecimal K = getBigDecimal(resultMap.get("K").trim());
BigDecimal VCuSO4_I = getBigDecimal(resultMap.get("VCuSO4(I)").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = TAl2O3.multiply(VAl2O3.subtract(K.multiply(VCuSO4_I))).divide(m,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -102,13 +118,21 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("Al2O3")){
BigDecimal TAl2O3 = getBigDecimal(resultMap.get("TAl2O3"));
BigDecimal VAl2O3 = getBigDecimal(resultMap.get("VAl2O3"));
BigDecimal K = getBigDecimal(resultMap.get("K"));
BigDecimal VCuSO4_I = getBigDecimal(resultMap.get("VCuSO4(I)"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
BigDecimal VCuSO4_II = getBigDecimal(resultMap.get("VCuSO4(II)"));
if( StringUtils.isNotBlank(resultMap.get("TAl2O3")) &&
StringUtils.isNotBlank(resultMap.get("VAl2O3"))&&
StringUtils.isNotBlank(resultMap.get("K"))&&
StringUtils.isNotBlank(resultMap.get("VCuSO4(I)"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))&&
StringUtils.isNotBlank(resultMap.get("VCuSO4(II)"))
){
BigDecimal TAl2O3 = getBigDecimal(resultMap.get("TAl2O3").trim());
BigDecimal VAl2O3 = getBigDecimal(resultMap.get("VAl2O3").trim());
BigDecimal K = getBigDecimal(resultMap.get("K").trim());
BigDecimal VCuSO4_I = getBigDecimal(resultMap.get("VCuSO4(I)").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
BigDecimal VCuSO4_II = getBigDecimal(resultMap.get("VCuSO4(II)").trim());
//计算的核心公式结果
BigDecimal countResult = TAl2O3.multiply(VAl2O3.subtract(K.multiply(VCuSO4_I.add(VCuSO4_II)))).divide(m,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -118,10 +142,16 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("Fe2O3")){
BigDecimal TFe2O3 = getBigDecimal(resultMap.get("TFe2O3"));
BigDecimal VF2O3 = getBigDecimal(resultMap.get("VF2O3"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
if( StringUtils.isNotBlank(resultMap.get("TFe2O3")) &&
StringUtils.isNotBlank(resultMap.get("VF2O3"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))
){
BigDecimal TFe2O3 = getBigDecimal(resultMap.get("TFe2O3").trim());
BigDecimal VF2O3 = getBigDecimal(resultMap.get("VF2O3").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = TFe2O3.multiply(VF2O3).divide(m,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -131,10 +161,15 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("CaO")){
BigDecimal TCaO = getBigDecimal(resultMap.get("TCaO"));
BigDecimal VCaO = getBigDecimal(resultMap.get("VCaO"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
if( StringUtils.isNotBlank(resultMap.get("TCaO")) &&
StringUtils.isNotBlank(resultMap.get("VCaO"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))
){
BigDecimal TCaO = getBigDecimal(resultMap.get("TCaO").trim());
BigDecimal VCaO = getBigDecimal(resultMap.get("VCaO").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = TCaO.multiply(VCaO).divide(m,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -144,11 +179,17 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("MgO")){
BigDecimal TMgO = getBigDecimal(resultMap.get("TMgO"));
BigDecimal VMgO = getBigDecimal(resultMap.get("VMgO"));
BigDecimal VCaO = getBigDecimal(resultMap.get("VCaO"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
if( StringUtils.isNotBlank(resultMap.get("TMgO")) &&
StringUtils.isNotBlank(resultMap.get("VMgO"))&&
StringUtils.isNotBlank(resultMap.get("VCaO"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))
){
BigDecimal TMgO = getBigDecimal(resultMap.get("TMgO").trim());
BigDecimal VMgO = getBigDecimal(resultMap.get("VMgO").trim());
BigDecimal VCaO = getBigDecimal(resultMap.get("VCaO").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = TMgO.multiply(VMgO.subtract(VCaO)).divide(m,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -158,11 +199,17 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("TiO2")){
BigDecimal TTiO2 = getBigDecimal(resultMap.get("TTiO2"));
BigDecimal VCuSO4_II = getBigDecimal(resultMap.get("VCuSO4(II)"));
BigDecimal K = getBigDecimal(resultMap.get("K"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
if( StringUtils.isNotBlank(resultMap.get("TTiO2")) &&
StringUtils.isNotBlank(resultMap.get("VCuSO4(II)"))&&
StringUtils.isNotBlank(resultMap.get("K"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))
){
BigDecimal TTiO2 = getBigDecimal(resultMap.get("TTiO2").trim());
BigDecimal VCuSO4_II = getBigDecimal(resultMap.get("VCuSO4(II)").trim());
BigDecimal K = getBigDecimal(resultMap.get("K").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = TTiO2.multiply(VCuSO4_II).multiply(K).divide(m,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -172,19 +219,32 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("重量法_SO3")){
BigDecimal m2 = getBigDecimal(resultMap.get("烧重m2"));
BigDecimal m1 = getBigDecimal(resultMap.get("埚重m1"));
BigDecimal m3 = getBigDecimal(resultMap.get("空白m3"));
BigDecimal m = getBigDecimal(resultMap.get("样重m"));
if( StringUtils.isNotBlank(resultMap.get("烧重m2")) &&
StringUtils.isNotBlank(resultMap.get("埚重m1"))&&
StringUtils.isNotBlank(resultMap.get("空白m3"))&&
StringUtils.isNotBlank(resultMap.get("样重m"))
){
BigDecimal m2 = getBigDecimal(resultMap.get("烧重m2").trim());
BigDecimal m1 = getBigDecimal(resultMap.get("埚重m1").trim());
BigDecimal m3 = getBigDecimal(resultMap.get("空白m3").trim());
BigDecimal m = getBigDecimal(resultMap.get("样重m").trim());
//计算的核心公式结果
BigDecimal countResult = m2.subtract(m1).subtract(m3).divide(m,4).multiply(new BigDecimal(0.343));
endResult = countResult.multiply(param100).setScale(4,BigDecimal.ROUND_HALF_UP);
}
}else if(name.equals("K2O")){
BigDecimal CK2O = getBigDecimal(resultMap.get("CK2O"));
BigDecimal V = getBigDecimal(resultMap.get("V"));
BigDecimal AK2O = getBigDecimal(resultMap.get("AK2O"));
BigDecimal mR20 = getBigDecimal(resultMap.get("样重R2O"));
if( StringUtils.isNotBlank(resultMap.get("CK2O")) &&
StringUtils.isNotBlank(resultMap.get("V"))&&
StringUtils.isNotBlank(resultMap.get("AK2O"))&&
StringUtils.isNotBlank(resultMap.get("样重R2O"))
){
BigDecimal CK2O = getBigDecimal(resultMap.get("CK2O").trim());
BigDecimal V = getBigDecimal(resultMap.get("V").trim());
BigDecimal AK2O = getBigDecimal(resultMap.get("AK2O").trim());
BigDecimal mR20 = getBigDecimal(resultMap.get("样重R2O").trim());
//计算的核心公式结果
BigDecimal countResult = CK2O.multiply(V).multiply(AK2O).divide(mR20,4).divide(param10000,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -194,11 +254,17 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("Na2O")){
BigDecimal CNa2O = getBigDecimal(resultMap.get("CNa2O"));
BigDecimal V = getBigDecimal(resultMap.get("V"));
BigDecimal ANa2O = getBigDecimal(resultMap.get("ANa2O"));
BigDecimal mR20 = getBigDecimal(resultMap.get("样重R2O"));
if( StringUtils.isNotBlank(resultMap.get("CNa2O")) &&
StringUtils.isNotBlank(resultMap.get("V"))&&
StringUtils.isNotBlank(resultMap.get("ANa2O"))&&
StringUtils.isNotBlank(resultMap.get("样重R2O"))
){
BigDecimal CNa2O = getBigDecimal(resultMap.get("CNa2O").trim());
BigDecimal V = getBigDecimal(resultMap.get("V").trim());
BigDecimal ANa2O = getBigDecimal(resultMap.get("ANa2O").trim());
BigDecimal mR20 = getBigDecimal(resultMap.get("样重R2O").trim());
//计算的核心公式结果
BigDecimal countResult = CNa2O.multiply(V).multiply(ANa2O).divide(mR20,4).divide(param10000,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -208,11 +274,18 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("MnO")){
BigDecimal CMnO = getBigDecimal(resultMap.get("CMnO"));
BigDecimal V = getBigDecimal(resultMap.get("V"));
BigDecimal AMnO = getBigDecimal(resultMap.get("AMnO"));
BigDecimal mR20 = getBigDecimal(resultMap.get("样重R2O"));
if( StringUtils.isNotBlank(resultMap.get("CMnO")) &&
StringUtils.isNotBlank(resultMap.get("V"))&&
StringUtils.isNotBlank(resultMap.get("AMnO"))&&
StringUtils.isNotBlank(resultMap.get("样重R2O"))
){
BigDecimal CMnO = getBigDecimal(resultMap.get("CMnO").trim());
BigDecimal V = getBigDecimal(resultMap.get("V").trim());
BigDecimal AMnO = getBigDecimal(resultMap.get("AMnO").trim());
BigDecimal mR20 = getBigDecimal(resultMap.get("样重R2O").trim());
//计算的核心公式结果
BigDecimal countResult = CMnO.multiply(V).multiply(AMnO).divide(mR20,4).divide(param10000,4);
BigDecimal result1 = countResult.multiply(param100);
......@@ -222,11 +295,18 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("Cl")){
BigDecimal T = getBigDecimal(resultMap.get("T"));
BigDecimal V2 = getBigDecimal(resultMap.get("V2"));
BigDecimal V1 = getBigDecimal(resultMap.get("V1"));
BigDecimal mCl = getBigDecimal(resultMap.get("样重Cl"));
if( StringUtils.isNotBlank(resultMap.get("T")) &&
StringUtils.isNotBlank(resultMap.get("V2"))&&
StringUtils.isNotBlank(resultMap.get("V1"))&&
StringUtils.isNotBlank(resultMap.get("样重Cl"))
){
BigDecimal T = getBigDecimal(resultMap.get("T").trim());
BigDecimal V2 = getBigDecimal(resultMap.get("V2").trim());
BigDecimal V1 = getBigDecimal(resultMap.get("V1").trim());
BigDecimal mCl = getBigDecimal(resultMap.get("样重Cl").trim());
//计算的核心公式结果
BigDecimal countResult = T.multiply(V2.subtract(V1)).divide(mCl,4).divide(param10,4);
BigDecimal result1 = countResult.multiply(param1000);
......@@ -236,42 +316,73 @@ public class CheckCountUtil {
}else{
endResult = countResult.subtract(new BigDecimal(0.00000000001)).setScale(3,BigDecimal.ROUND_HALF_UP);
}
}
}else if(name.equals("Mad1")){
BigDecimal YZ_M1 = getBigDecimal(resultMap.get("样重M1"));
BigDecimal MZ_M1 = getBigDecimal(resultMap.get("皿重M1"));
BigDecimal SZ_M1 = getBigDecimal(resultMap.get("烧重M1"));
if( StringUtils.isNotBlank(resultMap.get("样重M1")) &&
StringUtils.isNotBlank(resultMap.get("皿重M1"))&&
StringUtils.isNotBlank(resultMap.get("烧重M1"))
){
BigDecimal YZ_M1 = getBigDecimal(resultMap.get("样重M1").trim());
BigDecimal MZ_M1 = getBigDecimal(resultMap.get("皿重M1").trim());
BigDecimal SZ_M1 = getBigDecimal(resultMap.get("烧重M1").trim());
//计算的核心公式结果
BigDecimal countResult = YZ_M1.add(MZ_M1).subtract(SZ_M1).divide(YZ_M1,4);
endResult = countResult.multiply(param100);
}
}else if(name.equals("Mad2")){
BigDecimal YZ_M2 = getBigDecimal(resultMap.get("样重M2"));
BigDecimal MZ_M2 = getBigDecimal(resultMap.get("皿重M2"));
BigDecimal SZ_M2 = getBigDecimal(resultMap.get("烧重M2"));
if( StringUtils.isNotBlank(resultMap.get("样重M2")) &&
StringUtils.isNotBlank(resultMap.get("皿重M2"))&&
StringUtils.isNotBlank(resultMap.get("烧重M2"))
){
BigDecimal YZ_M2 = getBigDecimal(resultMap.get("样重M2").trim());
BigDecimal MZ_M2 = getBigDecimal(resultMap.get("皿重M2").trim());
BigDecimal SZ_M2 = getBigDecimal(resultMap.get("烧重M2").trim());
//计算的核心公式结果
BigDecimal countResult = YZ_M2.add(MZ_M2).subtract(SZ_M2).divide(YZ_M2,4);
endResult = countResult.multiply(param100);
}
}else if(name.equals("Aad1")){
BigDecimal SZ_A1 = getBigDecimal(resultMap.get("烧重A1"));
BigDecimal MZ_A1 = getBigDecimal(resultMap.get("皿重A1"));
BigDecimal YZ_A1 = getBigDecimal(resultMap.get("样重A1"));
if( StringUtils.isNotBlank(resultMap.get("烧重A1")) &&
StringUtils.isNotBlank(resultMap.get("皿重A1"))&&
StringUtils.isNotBlank(resultMap.get("样重A1"))
){
BigDecimal SZ_A1 = getBigDecimal(resultMap.get("烧重A1").trim());
BigDecimal MZ_A1 = getBigDecimal(resultMap.get("皿重A1").trim());
BigDecimal YZ_A1 = getBigDecimal(resultMap.get("样重A1").trim());
//计算的核心公式结果
BigDecimal countResult = SZ_A1.subtract(MZ_A1).divide(YZ_A1,4);
endResult = countResult.multiply(param100);
}
}else if(name.equals("Aad2")){
BigDecimal SZ_A2 = getBigDecimal(resultMap.get("烧重A2"));
BigDecimal MZ_A2 = getBigDecimal(resultMap.get("皿重A2"));
BigDecimal YZ_A2 = getBigDecimal(resultMap.get("样重A2"));
if( StringUtils.isNotBlank(resultMap.get("烧重A2")) &&
StringUtils.isNotBlank(resultMap.get("皿重A2"))&&
StringUtils.isNotBlank(resultMap.get("样重A2"))
){
BigDecimal SZ_A2 = getBigDecimal(resultMap.get("烧重A2").trim());
BigDecimal MZ_A2 = getBigDecimal(resultMap.get("皿重A2").trim());
BigDecimal YZ_A2 = getBigDecimal(resultMap.get("样重A2").trim());
//计算的核心公式结果
BigDecimal countResult = SZ_A2.subtract(MZ_A2).divide(YZ_A2,4);
endResult = countResult.multiply(param100);
}
}else if(name.equals("焦渣")){
endResult = getBigDecimal(resultMap.get("焦渣特征"));
}else if(name.equals("St,ad")){
endResult = getBigDecimal(resultMap.get("显示值"));
if( StringUtils.isNotBlank(resultMap.get("焦渣特征"))
){
endResult = getBigDecimal(resultMap.get("焦渣特征").trim());
}
}else if(name.equals("St,ad")){
if( StringUtils.isNotBlank(resultMap.get("显示值"))
){
endResult = getBigDecimal(resultMap.get("显示值").trim());
}
}
return endResult.toString();
return endResult==null?"":endResult.toString();
}
/**
......@@ -281,15 +392,19 @@ public class CheckCountUtil {
* @return
*/
public static String countSO3(Map<String, String> resultMap, Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(resultMap.get("重量法_SO3")) &&
StringUtils.isNotBlank(resultMap.get("显示值"))&&
StringUtils.isNotBlank(resultMap.get("样重SO3"))
){
BigDecimal weightSO3 = getBigDecimal(countMap.get("重量法_SO3"));
BigDecimal displaySO3= getBigDecimal(resultMap.get("显示值"));
BigDecimal mSO3= getBigDecimal(resultMap.get("样重SO3"));
BigDecimal displaySO3= getBigDecimal(resultMap.get("显示值").trim());
BigDecimal mSO3= getBigDecimal(resultMap.get("样重SO3").trim());
BigDecimal elseResult = displaySO3.multiply(new BigDecimal(2.5));
BigDecimal countResult = weightSO3.compareTo(new BigDecimal(0))==1?
weightSO3:elseResult;
BigDecimal result1 = countResult.multiply(param1000);
int resultInt1 = result1.setScale( 0, BigDecimal.ROUND_DOWN ).intValue();
BigDecimal count = null;
if((resultInt1&1) == 1){ //如果结果为奇数
BigDecimal jsResult = weightSO3.compareTo(new BigDecimal(0))==1?
weightSO3:elseResult.multiply(mSO3).divide(mSO3,4);
......@@ -299,7 +414,8 @@ public class CheckCountUtil {
weightSO3:elseResult.multiply(mSO3).divide(mSO3,4);
count = osResult.subtract(new BigDecimal(0.00000000001)).setScale(3,BigDecimal.ROUND_HALF_UP);
}
return count.toString();
}
return count==null?"":count.toString();
}
/**
......@@ -308,20 +424,20 @@ public class CheckCountUtil {
* @return
*/
public static String countHL(Map<String, String> countMap) {
BigDecimal count = new BigDecimal(0);
List<String> list = new ArrayList<>();
list.add(countMap.get("L.O.I"));
list.add(countMap.get("SiO2"));
list.add(StringUtils.isEmpty(countMap.get("L.O.I"))?"0":countMap.get("L.O.I"));
list.add(StringUtils.isEmpty(countMap.get("SiO2"))?"0":countMap.get("SiO2"));
// list.add(countMap.get("Al2O3+TiO2"));
list.add(countMap.get("Al2O3"));
list.add(countMap.get("Fe2O3"));
list.add(countMap.get("CaO"));
list.add(countMap.get("MgO"));
list.add(countMap.get("TiO2"));
list.add(countMap.get("K2O"));
list.add(countMap.get("Na2O"));
list.add(countMap.get("MnO"));
list.add(countMap.get("SO3"));
BigDecimal count=new BigDecimal(0);
list.add(StringUtils.isEmpty(countMap.get("Al2O3"))?"0":countMap.get("Al2O3"));
list.add(StringUtils.isEmpty(countMap.get("Fe2O3"))?"0":countMap.get("Fe2O3"));
list.add(StringUtils.isEmpty(countMap.get("CaO"))?"0":countMap.get("CaO"));
list.add(StringUtils.isEmpty(countMap.get("MgO"))?"0":countMap.get("MgO"));
list.add(StringUtils.isEmpty(countMap.get("TiO2"))?"0":countMap.get("TiO2"));
list.add(StringUtils.isEmpty(countMap.get("K2O"))?"0":countMap.get("K2O"));
list.add(StringUtils.isEmpty(countMap.get("Na2O"))?"0":countMap.get("Na2O"));
list.add(StringUtils.isEmpty(countMap.get("MnO"))?"0":countMap.get("MnO"));
list.add(StringUtils.isEmpty(countMap.get("SO3"))?"0":countMap.get("SO3"));
for(String s:list) {
count = count.add(new BigDecimal(s));
}
......@@ -334,13 +450,19 @@ public class CheckCountUtil {
* @return
*/
public static String countKH(Map<String, String> countMap) {
BigDecimal KH = null;
if( StringUtils.isNotBlank(countMap.get("Cao")) &&
StringUtils.isNotBlank(countMap.get("Al2O3+TiO2"))&&
StringUtils.isNotBlank(countMap.get("Fe2O3"))&&
StringUtils.isNotBlank(countMap.get("SiO2"))
){
BigDecimal CaO = getBigDecimal(countMap.get("Cao"));
BigDecimal Al2O3_TiO2= getBigDecimal(countMap.get("Al2O3+TiO2"));
BigDecimal Fe2O3 = getBigDecimal(countMap.get("Fe2O3"));
BigDecimal SiO2 = getBigDecimal(countMap.get("SiO2"));
BigDecimal KH =
CaO.subtract(new BigDecimal(1.65).multiply(Al2O3_TiO2)).subtract(new BigDecimal(0.35).multiply(Fe2O3)).divide(new BigDecimal(2.8),4).divide(SiO2,4);
return KH.toString();
KH =CaO.subtract(new BigDecimal(1.65).multiply(Al2O3_TiO2)).subtract(new BigDecimal(0.35).multiply(Fe2O3)).divide(new BigDecimal(2.8),4).divide(SiO2,4);
}
return KH==null?"":KH.toString();
}
/**
......@@ -349,11 +471,17 @@ public class CheckCountUtil {
* @return
*/
public static String countSM(Map<String, String> countMap) {
BigDecimal SM = null;
if( StringUtils.isNotBlank(countMap.get("SiO2")) &&
StringUtils.isNotBlank(countMap.get("Al2O3+TiO2"))&&
StringUtils.isNotBlank(countMap.get("Fe2O3"))
){
BigDecimal SiO2 = getBigDecimal(countMap.get("SiO2"));
BigDecimal Al2O3_TiO2= getBigDecimal(countMap.get("Al2O3+TiO2"));
BigDecimal Fe2O3 = getBigDecimal(countMap.get("Fe2O3"));
BigDecimal SM = SiO2.divide(Al2O3_TiO2.add(Fe2O3),4);
return SM.toString();
SM = SiO2.divide(Al2O3_TiO2.add(Fe2O3),4);
}
return SM==null?"":SM.toString();
}
/**
......@@ -362,10 +490,15 @@ public class CheckCountUtil {
* @return
*/
public static String countAM(Map<String, String> countMap) {
BigDecimal AM = null;
if( StringUtils.isNotBlank(countMap.get("Al2O3+TiO2"))&&
StringUtils.isNotBlank(countMap.get("Fe2O3"))
){
BigDecimal Al2O3_TiO2= getBigDecimal(countMap.get("Al2O3+TiO2"));
BigDecimal Fe2O3 = getBigDecimal(countMap.get("Fe2O3"));
BigDecimal AM = Al2O3_TiO2.divide(Fe2O3,4);
return AM.toString();
AM = Al2O3_TiO2.divide(Fe2O3,4);
}
return AM==null?"":AM.toString();
}
/**
......@@ -375,23 +508,32 @@ public class CheckCountUtil {
* @return
*/
public static String countBurnupLevel(Map<String, String> resultMap, Map<String, String> countMap) {
BigDecimal fCaO_1450 = getBigDecimal(resultMap.get("fCaO_1450"));
BigDecimal KH= getBigDecimal(countMap.get("KH"));
String endResult = "";
if( StringUtils.isNotBlank(resultMap.get("fCaO_1450"))&&
StringUtils.isNotBlank(countMap.get("KH"))
){
BigDecimal fCaO_1450 = getBigDecimal(resultMap.get("fCaO_1450").trim());
BigDecimal KH= getBigDecimal(countMap.get("KH").trim());
BigDecimal E = new BigDecimal(45).multiply(KH).subtract(new BigDecimal(37.4));
BigDecimal D = new BigDecimal(35).multiply(KH).subtract(new BigDecimal(29.3));
BigDecimal C = new BigDecimal(26.25).multiply(KH).subtract(new BigDecimal(22.15));
BigDecimal B = new BigDecimal(18.75).multiply(KH).subtract(new BigDecimal(16));
if(fCaO_1450.compareTo(E) == 1){
return "E";
endResult = "E";
}else if (fCaO_1450.compareTo(D) == 1){
return "D";
endResult = "D";
}else if (fCaO_1450.compareTo(C) == 1){
return "C";
endResult = "C";
}else if (fCaO_1450.compareTo(B) == 1){
return "B";
endResult = "B";
}else{
return "A";
endResult = "A";
}
}
return endResult;
}
/**
......@@ -400,11 +542,17 @@ public class CheckCountUtil {
* @return
*/
public static String countBCMad(Map<String, String> countMap) {
BigDecimal BC_Mad = null;
if( StringUtils.isNotBlank(countMap.get("Mad1"))&&
StringUtils.isNotBlank(countMap.get("Mad2"))
){
BigDecimal Mad1= getBigDecimal(countMap.get("Mad1"));
BigDecimal Mad2= getBigDecimal(countMap.get("Mad2"));
//计算Mad1 和 Mad2 的平均值
BigDecimal BC_Mad = Mad1.add(Mad2).divide(new BigDecimal(2),4);
return BC_Mad.toString();
BC_Mad = Mad1.add(Mad2).divide(new BigDecimal(2),4);
}
return BC_Mad==null?"":BC_Mad.toString();
}
/**
......@@ -413,17 +561,21 @@ public class CheckCountUtil {
* @return
*/
public static String countMad(Map<String, String> countMap) {
BigDecimal Mad = null;
if( StringUtils.isNotBlank(countMap.get("报出_Mad"))
){
BigDecimal BC_Mad= getBigDecimal(countMap.get("报出_Mad"));
//判断奇偶数的最终值
BigDecimal result1 = BC_Mad.multiply(param100);
int resultInt1 = result1.setScale( 0, BigDecimal.ROUND_DOWN ).intValue();
BigDecimal Mad = null;
if((resultInt1&1) == 1){ //如果结果为奇数
Mad = BC_Mad.setScale(2,BigDecimal.ROUND_HALF_UP);
}else{
Mad = BC_Mad.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
return Mad.toString();
}
return Mad==null?"":Mad.toString();
}
/**
......@@ -432,11 +584,17 @@ public class CheckCountUtil {
* @return
*/
public static String countBCAad(Map<String, String> countMap) {
BigDecimal BC_Aad = null;
if( StringUtils.isNotBlank(countMap.get("Aad1")) &&
StringUtils.isNotBlank(countMap.get("Aad2"))
){
BigDecimal Aad1= getBigDecimal(countMap.get("Aad1"));
BigDecimal Aad2= getBigDecimal(countMap.get("Aad2"));
//计算Mad1 和 Mad2 的平均值
BigDecimal BC_Aad = Aad1.add(Aad2).divide(new BigDecimal(2),4);
return BC_Aad.toString();
BC_Aad = Aad1.add(Aad2).divide(new BigDecimal(2),4);
}
return BC_Aad==null?"":BC_Aad.toString();
}
/**
......@@ -445,17 +603,20 @@ public class CheckCountUtil {
* @return
*/
public static String countAad(Map<String, String> countMap) {
BigDecimal Aad = null;
if( StringUtils.isNotBlank(countMap.get("报出_Aad"))
){
BigDecimal BC_Aad= getBigDecimal(countMap.get("报出_Aad"));
//判断奇偶数的最终值
BigDecimal result1 = BC_Aad.multiply(param100);
int resultInt1 = result1.setScale( 0, BigDecimal.ROUND_DOWN ).intValue();
BigDecimal Aad = null;
if((resultInt1&1) == 1){ //如果结果为奇数
Aad = BC_Aad.setScale(2,BigDecimal.ROUND_HALF_UP);
}else{
Aad = BC_Aad.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
return Aad.toString();
}
return Aad==null?"":Aad.toString();
}
/**
......@@ -465,14 +626,23 @@ public class CheckCountUtil {
* @return
*/
public static String countVad1(Map<String, String> resultMap, Map<String, String> countMap) {
BigDecimal YZ_V1 = getBigDecimal(resultMap.get("样重V1"));
BigDecimal MZ_V1 = getBigDecimal(resultMap.get("皿重V1"));
BigDecimal SZ_V1 = getBigDecimal(resultMap.get("烧重V1"));
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("样重V1")) &&
StringUtils.isNotBlank(countMap.get("皿重V1")) &&
StringUtils.isNotBlank(countMap.get("烧重V1")) &&
StringUtils.isNotBlank(countMap.get("报出_Mad"))
){
BigDecimal YZ_V1 = getBigDecimal(resultMap.get("样重V1").trim());
BigDecimal MZ_V1 = getBigDecimal(resultMap.get("皿重V1").trim());
BigDecimal SZ_V1 = getBigDecimal(resultMap.get("烧重V1").trim());
BigDecimal BC_Mad = getBigDecimal(countMap.get("报出_Mad"));
//计算的核心公式结果
BigDecimal countResult = YZ_V1.add(MZ_V1).subtract(SZ_V1).divide(YZ_V1,4);
BigDecimal count = countResult.multiply(param100).subtract(BC_Mad);
return count.toString();
count = countResult.multiply(param100).subtract(BC_Mad);
}
return count==null?"":count.toString();
}
/**
......@@ -482,14 +652,21 @@ public class CheckCountUtil {
* @return
*/
public static String countVad2(Map<String, String> resultMap, Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("样重V2")) &&
StringUtils.isNotBlank(countMap.get("皿重V2")) &&
StringUtils.isNotBlank(countMap.get("烧重V2")) &&
StringUtils.isNotBlank(countMap.get("报出_Mad"))
){
BigDecimal YZ_V2 = getBigDecimal(resultMap.get("样重V2"));
BigDecimal MZ_V2 = getBigDecimal(resultMap.get("皿重V2"));
BigDecimal SZ_V2 = getBigDecimal(resultMap.get("烧重V2"));
BigDecimal BC_Mad = getBigDecimal(countMap.get("报出_Mad"));
//计算的核心公式结果
BigDecimal countResult = YZ_V2.add(MZ_V2).subtract(SZ_V2).divide(YZ_V2,4);
BigDecimal count = countResult.multiply(param100).subtract(BC_Mad);
return count.toString();
count = countResult.multiply(param100).subtract(BC_Mad);
}
return count==null?"":count.toString();
}
/**
......@@ -498,11 +675,16 @@ public class CheckCountUtil {
* @return
*/
public static String countBCVad(Map<String, String> countMap) {
BigDecimal BC_Vad = null;
if( StringUtils.isNotBlank(countMap.get("Vad1")) &&
StringUtils.isNotBlank(countMap.get("Vad2"))
){
BigDecimal Vad1= getBigDecimal(countMap.get("Vad1"));
BigDecimal Vad2= getBigDecimal(countMap.get("Vad2"));
//计算Vad1 和 Vad2 的平均值
BigDecimal BC_Vad = Vad1.add(Vad2).divide(new BigDecimal(2),4);
return BC_Vad.toString();
BC_Vad = Vad1.add(Vad2).divide(new BigDecimal(2),4);
}
return BC_Vad==null?"":BC_Vad.toString();
}
/**
......@@ -511,17 +693,21 @@ public class CheckCountUtil {
* @return
*/
public static String countVad(Map<String, String> countMap) {
BigDecimal Vad = null;
if( StringUtils.isNotBlank(countMap.get("报出_Vad"))
){
BigDecimal BC_Vad= getBigDecimal(countMap.get("报出_Vad"));
//判断奇偶数的最终值
BigDecimal result1 = BC_Vad.multiply(param100);
int resultInt1 = result1.setScale( 0, BigDecimal.ROUND_DOWN ).intValue();
BigDecimal Vad = null;
if((resultInt1&1) == 1){ //如果结果为奇数
Vad = BC_Vad.setScale(2,BigDecimal.ROUND_HALF_UP);
}else{
Vad = BC_Vad.subtract(new BigDecimal(0.00000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
return Vad.toString();
}
return Vad==null?"":Vad.toString();
}
/**
......@@ -530,11 +716,17 @@ public class CheckCountUtil {
* @return
*/
public static String countVdaf(Map<String, String> countMap) {
BigDecimal Vdaf = null;
if( StringUtils.isNotBlank(countMap.get("Vad")) &&
StringUtils.isNotBlank(countMap.get("Mad")) &&
StringUtils.isNotBlank(countMap.get("Aad"))
){
BigDecimal Vad= getBigDecimal(countMap.get("Vad"));
BigDecimal Mad= getBigDecimal(countMap.get("Mad"));
BigDecimal Aad= getBigDecimal(countMap.get("Aad"));
BigDecimal Vdaf = Vad.multiply(param100).multiply(param100.subtract(Mad).subtract(Aad));
return Vdaf.toString();
Vdaf = Vad.multiply(param100).multiply(param100.subtract(Mad).subtract(Aad));
}
return Vdaf==null?"":Vdaf.toString();
}
/**
......@@ -543,8 +735,11 @@ public class CheckCountUtil {
* @return
*/
public static String countK1_(Map<String, String> countMap) {
BigDecimal K1_= null;
if( StringUtils.isNotBlank(countMap.get("Vdaf"))
){
BigDecimal Vdaf= getBigDecimal(countMap.get("Vdaf"));
BigDecimal K1_=
K1_=
Vdaf.compareTo(new BigDecimal(62))==1?new BigDecimal(61.5):(
Vdaf.compareTo(new BigDecimal(56))==1?new BigDecimal(63):(
Vdaf.compareTo(new BigDecimal(49))==1?new BigDecimal(65):(
......@@ -552,7 +747,9 @@ public class CheckCountUtil {
Vdaf.compareTo(new BigDecimal(37))==1?new BigDecimal(68.5):
new BigDecimal(0)
))));
return K1_.toString();
}
return K1_==null?"":K1_.toString();
}
/**
......@@ -562,11 +759,14 @@ public class CheckCountUtil {
* @return
*/
public static String countK(Map<String, String> resultMap, Map<String, String> countMap) {
String JZTZ= resultMap.get("焦渣特征");
String count = "";
if( StringUtils.isNotBlank(resultMap.get("焦渣特征")) &&
StringUtils.isNotBlank(countMap.get("Vdaf"))
){
String JZTZ= resultMap.get("焦渣特征").trim();
BigDecimal Vdaf= getBigDecimal(countMap.get("Vdaf"));
//获取焦渣特征序号对应的值
Map<String, String> map = JZTZCountUtil.getJZTZ(Vdaf);
String count = "";
if(JZTZ.equals("1")){
count = map.get(JZTZ);
}else if(JZTZ.equals("1.5")){
......@@ -600,6 +800,7 @@ public class CheckCountUtil {
}else{
count = "false";
}
}
return count;
}
......@@ -610,9 +811,13 @@ public class CheckCountUtil {
* @return
*/
public static String countVdafPD(Map<String, String> countMap) {
Integer VdafPD = null;
if( StringUtils.isNotBlank(countMap.get("Vdaf"))
){
BigDecimal Vdaf= getBigDecimal(countMap.get("Vdaf"));
Integer VdafPD = Vdaf.compareTo(new BigDecimal(35))==-1?1:0;
return VdafPD.toString();
VdafPD = Vdaf.compareTo(new BigDecimal(35))==-1?1:0;
}
return VdafPD==null?"":VdafPD.toString();
}
/**
......@@ -621,9 +826,13 @@ public class CheckCountUtil {
* @return
*/
public static String countMadPD(Map<String, String> countMap) {
Integer MadPD = null;
if( StringUtils.isNotBlank(countMap.get("报出_Mad"))
){
BigDecimal BC_Mad= getBigDecimal(countMap.get("报出_Mad"));
Integer MadPD = BC_Mad.compareTo(new BigDecimal(3))==1?1:0;
return MadPD.toString();
MadPD = BC_Mad.compareTo(new BigDecimal(3))==1?1:0;
}
return MadPD==null?"":MadPD.toString();
}
/**
......@@ -632,10 +841,15 @@ public class CheckCountUtil {
* @return
*/
public static String count40Mad0Or1(Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("Vdaf判断")) &&
StringUtils.isNotBlank(countMap.get("Mad判断"))
){
BigDecimal VdafPD= getBigDecimal(countMap.get("Vdaf判断"));
BigDecimal MadPD= getBigDecimal(countMap.get("Mad判断"));
BigDecimal count = VdafPD.multiply(MadPD);
return count.toString();
count = VdafPD.multiply(MadPD);
}
return count==null?"":count.toString();
}
/**
......@@ -644,10 +858,15 @@ public class CheckCountUtil {
* @return
*/
public static String countAd(Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("报出_Aad")) &&
StringUtils.isNotBlank(countMap.get("报出_Mad"))
){
BigDecimal BC_Aad= getBigDecimal(countMap.get("报出_Aad"));
BigDecimal BC_Mad= getBigDecimal(countMap.get("报出_Mad"));
BigDecimal count = BC_Aad.multiply(param100).divide(param100.subtract(BC_Mad),4);
return count.toString();
count = BC_Aad.multiply(param100).divide(param100.subtract(BC_Mad),4);
}
return count==null?"":count.toString();
}
/**
......@@ -656,15 +875,23 @@ public class CheckCountUtil {
* @return
*/
public static String countAdXS(Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("Ad"))
){
BigDecimal Ad= getBigDecimal(countMap.get("Ad"));
BigDecimal count =
count =
Ad.compareTo(new BigDecimal(20))==1?new BigDecimal(0.1):new BigDecimal(0);
return count.toString();
}
return count==null?"":count.toString();
}
public static String countVdafXS(Map<String, String> countMap) {
Double count = null;
if( StringUtils.isNotBlank(countMap.get("Ad"))
){
BigDecimal Ad= getBigDecimal(countMap.get("Ad"));
Double count =
count =
Ad.compareTo(new BigDecimal(30))==1?0.8:(
Ad.compareTo(new BigDecimal(25))==1?0.85:(
Ad.compareTo(new BigDecimal(20))==1?0.95:(
......@@ -672,7 +899,8 @@ public class CheckCountUtil {
Ad.compareTo(new BigDecimal(10))==1?0.9:
0.95
))));
return count.toString();
}
return count==null?"":count.toString();
}
/**
......@@ -681,12 +909,20 @@ public class CheckCountUtil {
* @return
*/
public static String countV_daf(Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("Vdaf系数0.8~0.95")) &&
StringUtils.isNotBlank(countMap.get("Vdaf")) &&
StringUtils.isNotBlank(countMap.get("Ad系数0.1或0")) &&
StringUtils.isNotBlank(countMap.get("Ad"))
){
BigDecimal VdafXS= getBigDecimal(countMap.get("Vdaf系数0.8~0.95"));
BigDecimal Vdaf= getBigDecimal(countMap.get("Vdaf"));
BigDecimal AdXS= getBigDecimal(countMap.get("Ad系数0.1或0"));
BigDecimal Ad= getBigDecimal(countMap.get("Ad"));
BigDecimal count = VdafXS.multiply(Vdaf).subtract(AdXS.multiply(Ad));
return count.toString();
count = VdafXS.multiply(Vdaf).subtract(AdXS.multiply(Ad));
}
return count==null?"":count.toString();
}
/**
......@@ -695,14 +931,19 @@ public class CheckCountUtil {
* @return
*/
public static String countK0_(Map<String, String> countMap) {
BigDecimal count = null;
if( StringUtils.isNotBlank(countMap.get("V,daf"))
){
BigDecimal V_daf= getBigDecimal(countMap.get("V,daf"));
BigDecimal count =
count =
V_daf.compareTo(new BigDecimal(8))==1?new BigDecimal(8500):(
V_daf.compareTo(new BigDecimal(5.5))==1?new BigDecimal(8400):(
V_daf.compareTo(new BigDecimal(3))==1?new BigDecimal(8300):
new BigDecimal(8200)
));
return count.toString();
}
return count==null?"":count.toString();
}
/**
......@@ -711,7 +952,17 @@ public class CheckCountUtil {
* @return
*/
public static String countQnet_adMJ_kg(Map<String, String> resultMap, Map<String, String> countMap) {
BigDecimal YWH_123= getBigDecimal(resultMap.get("烟无褐123"));
BigDecimal count = null;
if( StringUtils.isNotBlank(resultMap.get("烟无褐123")) &&
StringUtils.isNotBlank(countMap.get("K1,")) &&
StringUtils.isNotBlank(countMap.get("报出_Mad")) &&
StringUtils.isNotBlank(countMap.get("报出_Aad")) &&
StringUtils.isNotBlank(countMap.get("报出_Vad")) &&
StringUtils.isNotBlank(countMap.get("K")) &&
StringUtils.isNotBlank(countMap.get("40Mad 0或1")) &&
StringUtils.isNotBlank(countMap.get("K0,"))
){
BigDecimal YWH_123= getBigDecimal(resultMap.get("烟无褐123").trim());
BigDecimal K1_= getBigDecimal(countMap.get("K1,"));
BigDecimal BC_Mad= getBigDecimal(countMap.get("报出_Mad"));
BigDecimal BC_Aad= getBigDecimal(countMap.get("报出_Aad"));
......@@ -732,8 +983,10 @@ public class CheckCountUtil {
.subtract(new BigDecimal(92).multiply(BC_Aad))
.subtract(new BigDecimal(24).multiply(BC_Vad));
}
BigDecimal count = value.multiply(new BigDecimal(4.1816)).divide(param1000,4);
return count.toString();
count = value.multiply(new BigDecimal(4.1816)).divide(param1000,4);
}
return count==null?"":count.toString();
}
/**
......@@ -742,19 +995,25 @@ public class CheckCountUtil {
* @return
*/
public static String countYMXGrade(Map<String, String> resultMap) {
String count = "";
if( StringUtils.isNotBlank(resultMap.get("易磨性(kWh/t)"))
){
BigDecimal YMX_kWh_t = getBigDecimal(resultMap.get("易磨性(kWh/t)"));
if(YMX_kWh_t.compareTo(new BigDecimal(18))==1){
return "E";
count = "E";
}else if(YMX_kWh_t.compareTo(new BigDecimal(13))==1){
return "D";
count = "D";
}else if(YMX_kWh_t.compareTo(new BigDecimal(10))==1){
return "C";
count = "C";
}else if(YMX_kWh_t.compareTo(new BigDecimal(8))==1){
return "B";
count = "B";
}else{
return "A";
count = "A";
}
}
return count;
}
/**
* 求易磨性校验码
......@@ -762,11 +1021,18 @@ public class CheckCountUtil {
* @return
*/
public static String countYMXCode(Map<String, String> resultMap) {
Double G = Double.valueOf(resultMap.get("G"));
Double P80 = Double.valueOf(resultMap.get("P80"));
Double F80 = Double.valueOf(resultMap.get("F80"));
BigDecimal YMX_kWh_t = getBigDecimal(resultMap.get("易磨性(kWh/t)"));
BigDecimal YMX_MJ_t = getBigDecimal(resultMap.get("易磨性(MJ/t)"));
String count = "";
if( StringUtils.isNotBlank(resultMap.get("G")) &&
StringUtils.isNotBlank(resultMap.get("P80")) &&
StringUtils.isNotBlank(resultMap.get("F80")) &&
StringUtils.isNotBlank(resultMap.get("易磨性(kWh/t)")) &&
StringUtils.isNotBlank(resultMap.get("易磨性(MJ/t)"))
){
Double G = Double.valueOf(resultMap.get("G").trim());
Double P80 = Double.valueOf(resultMap.get("P80").trim());
Double F80 = Double.valueOf(resultMap.get("F80").trim());
BigDecimal YMX_kWh_t = getBigDecimal(resultMap.get("易磨性(kWh/t)").trim());
BigDecimal YMX_MJ_t = getBigDecimal(resultMap.get("易磨性(MJ/t)").trim());
Double countResult =
Math.pow(80,0.23)*Math.pow(G,0.82)*(10/(Math.pow(P80,0.5)- 10/Math.pow(F80,0.5)));
BigDecimal result1 = new BigDecimal(countResult);
......@@ -776,11 +1042,14 @@ public class CheckCountUtil {
if(value1.compareTo(new BigDecimal(0.5) ) == -1 &&
value2.compareTo(new BigDecimal(3.5)) == 1 &&
value2.compareTo(new BigDecimal(3.7)) == -1){
return "OK";
count = "OK";
}else{
return "出错了";
count = "出错了";
}
}
return count;
}
/**
* 计算平行数
......@@ -824,20 +1093,24 @@ public class CheckCountUtil {
minNum = minNum==null?valBD:(valBD.compareTo(minNum) == -1?valBD:minNum);
}
//平均值
BigDecimal ResultsValue = null;
if(resultSum != null){
BigDecimal aveCount = resultSum.divide(new BigDecimal(values.length),2);
BigDecimal result1 = aveCount.multiply(param100);
int resultInt1 = result1.setScale( 0, BigDecimal.ROUND_DOWN ).intValue();
BigDecimal ResultsValue = null;
if((resultInt1&1) == 1){ //如果结果为奇数
ResultsValue = aveCount.setScale(2,BigDecimal.ROUND_HALF_UP);
}else{
ResultsValue = aveCount.subtract(new BigDecimal(0.0000000001)).setScale(2,BigDecimal.ROUND_HALF_UP);
}
}
//最大误差值
BigDecimal errorValue = maxNum.subtract(minNum).setScale(2,BigDecimal.ROUND_HALF_UP);;
countResults.put(entry.getKey(),ResultsValue.toString());
countError.put(entry.getKey(),errorValue.toString());
BigDecimal errorValue = null;
if(maxNum != null && minNum != null){
errorValue = maxNum.subtract(minNum).setScale(2,BigDecimal.ROUND_HALF_UP);
}
countResults.put(entry.getKey(),ResultsValue == null?"":ResultsValue.toString());
countError.put(entry.getKey(),errorValue==null?"":errorValue.toString());
}
map.put("countResults",countResults);
map.put("countError",countError);
......
package cn.wise.sc.cement.business.util;
import cn.hutool.core.collection.CollectionUtil;
import cn.wise.sc.cement.business.model.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -13,6 +14,9 @@ import java.util.List;
public class PageUtil {
public static <T> Page<T> listConvertToPage(List<T> list, PageQuery pageQuery) {
if (CollectionUtil.isEmpty(list)){
return null;
}
int start = pageQuery.getPageNo() > 0 ? pageQuery.getPageNo() : 1;
int pageSize = pageQuery.getPageSize() > 0 ? pageQuery.getPageSize() : 10;
int end = Math.min((start * pageSize), list.size());
......
......@@ -10,22 +10,22 @@ package cn.wise.sc.cement.business.util.weixin;
public interface Global {
//企业应用的id,整型。可在应用的设置页面查看
public final static int agentId = 1000002;
//企业ID
public final static String corpId = "ww348f91b2573c1867";
//企业应用的id,整型。可在应用的设置页面查看
public final static int agentId = 1000002;
public final static int agentIdPC = 1000003;
//应用的凭证密钥
public final static String agentSecret = "gFa_7XvXtCaoeAYERzjRwwz_OTJkJfgBb8weOKjmI3o";
public final static String agentSecretPC = "itCLYcwl9ggA9VfZam_iz96Ikp9StDFfVr4Adb0yY7A";
//编译后的回调地址
public final static String backUrl = "https%3a%2f%2fprogram.oxogroup.com%2flab-system";
//实验室管理系统链接
public final static String systemUrl = "<a href=\"https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpId+"&redirect_uri="+backUrl+"%2f&response_type=code&scope=snsapi_base&state=#wechat_redirect\">天津院实验室管理系统" + "</a>,";
//应用的凭证密钥PC
public final static String agentSecretPC = "itCLYcwl9ggA9VfZam_iz96Ikp9StDFfVr4Adb0yY7A";
public final static String systemUrl =
"<a href=\"https://open.weixin.qq.com/connect/oauth2/authorize?appid="+corpId+"&redirect_uri="+backUrl+"%2f&response_type=code&scope=snsapi_base&state=#wechat_redirect\">天津院实验室管理系统" + "</a>,";
/**
* 微信公众平台,获取AccessToken的接口地址,Https请求方式:GET
......
......@@ -8,7 +8,7 @@ spring:
datasource:
# 192.168.110.85 admin!@#123
url: jdbc:mysql://192.168.110.85:3306/sinoma_tcdri?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false
#url: jdbc:mysql://81.68.92.175:3306/sinoma_tcdri?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false
# url: jdbc:mysql://81.68.92.175:3306/sinoma_tcdri?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&useSSL=false
username: root
password: admin!@#123
driverClassName: com.mysql.cj.jdbc.Driver
......
......@@ -4,7 +4,7 @@ fastdfs.charset=UTF-8
fastdfs.http.tracker_http_port=8888
fastdfs.http.anti_steal_token=no
fastdfs.http.secret_key=FastDFS1234567890
fastdfs.tracker_servers=192.168.110.85:22122
fastdfs.tracker_servers=localhost:22122
#fastdfs.tracker_servers=localhost:22122
......@@ -2126,6 +2126,7 @@
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1754" w:type="dxa"/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment