Commit 744b734e authored by qinhu's avatar qinhu

1.优化样品检测统计

2.工作产值统计
parent 1097cf30
......@@ -10,6 +10,7 @@ import cn.wise.sc.cement.business.model.PageQuery;
import cn.wise.sc.cement.business.model.vo.NonStandardValueVo;
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.INormProductionService;
import cn.wise.sc.cement.business.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -23,8 +24,12 @@ 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.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
......@@ -94,7 +99,7 @@ public class NormProductionController {
@GetMapping("/statistics")
@ApiOperation("标准产值统计")
public BaseResponse<Page<NormProductionStatistics>> normProductionStatistics(String start, String end, String name,Integer groupId, PageQuery pageQuery) {
public BaseResponse<Page<NormProductionStatistics>> normProductionStatistics(String start, String end, String name, Integer groupId, PageQuery pageQuery) {
Long startTime = null;
Long endTime = null;
......@@ -136,7 +141,7 @@ public class NormProductionController {
@GetMapping("/total/production")
@ApiOperation("总产值统计")
public BaseResponse<Page<ProductionVo>> production(PageQuery pageQuery, String name, String start, String end,Integer groupId) {
public BaseResponse<Page<ProductionVo>> production(PageQuery pageQuery, String name, String start, String end, Integer groupId) {
Long startTime = null;
Long endTime = null;
......@@ -145,18 +150,18 @@ public class NormProductionController {
endTime = DateUtil.parseDate(end).getTime();
}
List<ProductionVo> rts = iNormProductionService.production(name, startTime, endTime,groupId);
if (!rts.isEmpty()){
List<ProductionVo> rts = iNormProductionService.production(name, startTime, endTime, groupId);
if (!rts.isEmpty()) {
Set<Integer> ids = new HashSet<>();
for (ProductionVo productionVo:rts) {
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){
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());
......@@ -166,19 +171,19 @@ public class NormProductionController {
finalNormProduction.setGroupId(productionVo.getGroupId());
finalNormProduction.setGroupName(productionVo.getGroupName());
Double newFinalValue=productionVo.getProductionTotalValue()+finalNormProduction.getProductionTotalValue();
Double newFinalValue = productionVo.getProductionTotalValue() + finalNormProduction.getProductionTotalValue();
finalNormProduction.setProductionTotalValue(newFinalValue);
Double newNonProductionValue=productionVo.getNonProductionValue()+finalNormProduction.getNonProductionValue();
Double newNonProductionValue = productionVo.getNonProductionValue() + finalNormProduction.getNonProductionValue();
finalNormProduction.setNonProductionValue(newNonProductionValue);
Double newProductionValue=productionVo.getProductionValue()+finalNormProduction.getProductionValue();
Double newProductionValue = productionVo.getProductionValue() + finalNormProduction.getProductionValue();
finalNormProduction.setProductionValue(newProductionValue);
}
}
newRts.add(finalNormProduction);
}
rts=newRts;
rts = newRts;
}
return BaseResponse.okData(PageUtil.listConvertToPage(rts, pageQuery));
......@@ -187,7 +192,7 @@ public class NormProductionController {
@PostMapping("/export/statistics")
@ApiOperation("导出标准产值列表")
public void exportNormProductionStatistics(String start, String end, String name,Integer groupId, HttpServletResponse response) {
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)) {
......@@ -212,7 +217,7 @@ public class NormProductionController {
@PostMapping("/export/total/production")
@ApiOperation("导出总产值")
public void exportProduction(String name, String start, String end,Integer groupId, HttpServletResponse response) {
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)) {
......@@ -220,8 +225,23 @@ public class NormProductionController {
endTime = DateUtil.parseDate(end).getTime();
}
iNormProductionService.exportProduction(name, startTime, endTime,groupId, response);
iNormProductionService.exportProduction(name, startTime, endTime, groupId, response);
}
@GetMapping("/workload/statistics")
@ApiOperation("工作量统计")
public BaseResponse<List<WorkloadStatisticsVo>> workloadStatistics(String start, String end) {
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));
}
}
......@@ -4,6 +4,11 @@ import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.tomcat.jni.Local;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
/**
* @description:
......@@ -22,4 +27,5 @@ public class EntrustSample {
private Integer distributionId;
private Integer teamGroupId;
private Integer userId;
private LocalDateTime finishTime;
}
......@@ -34,4 +34,6 @@ public interface SampleDistributionMapper extends BaseMapper<SampleDistribution>
List<SampleCheckGroupVo> getSampleCheckGroupList(@Param("sampleId") Integer sampleId);
List<EntrustSample> getEntrustSample();
List<EntrustSample> getSampleDistribution(@Param("params") Map<String, Object> param);
}
......@@ -23,7 +23,21 @@
</if>
</where>
</sql>
<sql id="sampleDisWhere">
<where>
`status` > 5
<if test="params.start_time != null and params.start_time != ''">
and d.finish_time <![CDATA[>=]]> #{params.start_time}
</if>
<if test="params.end_time != null and params.end_time != ''">
and d.finish_time <![CDATA[<=]]> #{params.end_time}
</if>
<if test="params.user_id != null and params.user_id != ''">
and d.user_id = #{params.user_id}
</if>
</where>
</sql>
<select id="getPage" resultType="cn.wise.sc.cement.business.model.vo.SampleDistributionVo">
select t.*, p.id as projectId, p.name as projectName, p.code as projectCode,
e.id as entrustId, e.entrust_date as entrustDate, e.sample_num sampleNum,
......@@ -81,6 +95,16 @@
(SELECT user_id, id as distribution_id,sample_id FROM sample_distribution ) d on s.id = d.sample_id ) g
ON g.entrust_id = e.id
</select>
<select id="getSampleDistribution" resultType="cn.wise.sc.cement.business.entity.EntrustSample">
SELECT project_name,entrust_code,id,d.distribution_id,s.sample_name,d.user_id,s.sample_id,d.team_group_id,d.finish_time,`status` FROM entrust e
LEFT JOIN
(SELECT `name` as sample_name,entrust_id,id as sample_id FROM sample) as s
ON e.id = s.entrust_id
LEFT JOIN
(SELECT user_id, id as distribution_id,sample_id as dis_sample_id,team_group_id,finish_time FROM sample_distribution) as d
ON s.sample_id = d.dis_sample_id
<include refid="sampleDisWhere"/>
</select>
</mapper>
package cn.wise.sc.cement.business.model.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* @description: 工作量统计
* @author: qh
* @create: 2020-10-20 14:29
**/
@Data
@ApiModel("工作量统计(按月)")
public class WorkloadStatisticsVo implements Serializable {
private static final long serialVersionUID = 42L;
@ApiModelProperty("工作类型 0:标准工作量 1:非标工作量")
private Integer type;
private Map<String, Integer> map;
}
......@@ -6,10 +6,12 @@ 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.service.IService;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
/**
......@@ -112,4 +114,12 @@ public interface INormProductionService extends IService<NormProduction> {
* @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);
}
......@@ -5,6 +5,7 @@ import cn.wise.sc.cement.business.entity.SampleDistribution;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -21,4 +22,10 @@ public interface ISampleDistributionService extends IService<SampleDistribution>
*/
List<EntrustSample> getEntrustSample();
/**
* 获取样品分析数据
* @param param 时间/用户
* @return EntrustSample
*/
List<EntrustSample> getSampleDistribution(Map<String, Object> param);
}
......@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -29,4 +30,9 @@ public class SampleDistributionServiceImpl extends ServiceImpl<SampleDistributio
public List<EntrustSample> getEntrustSample() {
return sampleDistributionMapper.getEntrustSample();
}
@Override
public List<EntrustSample> getSampleDistribution(Map<String, Object> param) {
return sampleDistributionMapper.getSampleDistribution(param);
}
}
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