Commit 744b734e authored by qinhu's avatar qinhu

1.优化样品检测统计

2.工作产值统计
parent 1097cf30
...@@ -10,6 +10,7 @@ import cn.wise.sc.cement.business.model.PageQuery; ...@@ -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.NonStandardValueVo;
import cn.wise.sc.cement.business.model.vo.NormProductionVo; 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.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import cn.wise.sc.cement.business.service.INormProductionService; import cn.wise.sc.cement.business.service.INormProductionService;
import cn.wise.sc.cement.business.util.PageUtil; import cn.wise.sc.cement.business.util.PageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -23,8 +24,12 @@ import org.springframework.web.bind.annotation.PutMapping; ...@@ -23,8 +24,12 @@ import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -94,7 +99,7 @@ public class NormProductionController { ...@@ -94,7 +99,7 @@ public class NormProductionController {
@GetMapping("/statistics") @GetMapping("/statistics")
@ApiOperation("标准产值统计") @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 startTime = null;
Long endTime = null; Long endTime = null;
...@@ -119,7 +124,7 @@ public class NormProductionController { ...@@ -119,7 +124,7 @@ public class NormProductionController {
@GetMapping("/statistics/detail") @GetMapping("/statistics/detail")
@ApiOperation("标准产值详情") @ApiOperation("标准产值详情")
public BaseResponse<Page<NormProduction.NormProductionDetail>> normProductionDetails(Integer userId, String start, public BaseResponse<Page<NormProduction.NormProductionDetail>> normProductionDetails(Integer userId, String start,
String end, PageQuery pageQuery) { String end, PageQuery pageQuery) {
Long startTime = null; Long startTime = null;
Long endTime = null; Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) { if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
...@@ -136,7 +141,7 @@ public class NormProductionController { ...@@ -136,7 +141,7 @@ public class NormProductionController {
@GetMapping("/total/production") @GetMapping("/total/production")
@ApiOperation("总产值统计") @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 startTime = null;
Long endTime = null; Long endTime = null;
...@@ -145,18 +150,18 @@ public class NormProductionController { ...@@ -145,18 +150,18 @@ public class NormProductionController {
endTime = DateUtil.parseDate(end).getTime(); endTime = DateUtil.parseDate(end).getTime();
} }
List<ProductionVo> rts = iNormProductionService.production(name, startTime, endTime,groupId); List<ProductionVo> rts = iNormProductionService.production(name, startTime, endTime, groupId);
if (!rts.isEmpty()){ if (!rts.isEmpty()) {
Set<Integer> ids = new HashSet<>(); Set<Integer> ids = new HashSet<>();
for (ProductionVo productionVo:rts) { for (ProductionVo productionVo : rts) {
Integer groupId1 = productionVo.getGroupId(); Integer groupId1 = productionVo.getGroupId();
ids.add(groupId1); ids.add(groupId1);
} }
List<ProductionVo> newRts = new ArrayList<>(); List<ProductionVo> newRts = new ArrayList<>();
for (Integer groupId1:ids){ for (Integer groupId1 : ids) {
ProductionVo finalNormProduction=new ProductionVo(); ProductionVo finalNormProduction = new ProductionVo();
for (ProductionVo productionVo:rts){ for (ProductionVo productionVo : rts) {
if (productionVo.getGroupId().intValue()==groupId1){ if (productionVo.getGroupId().intValue() == groupId1) {
finalNormProduction.setUserId(productionVo.getUserId()); finalNormProduction.setUserId(productionVo.getUserId());
finalNormProduction.setUserName(productionVo.getUserName()); finalNormProduction.setUserName(productionVo.getUserName());
finalNormProduction.setAccount(productionVo.getAccount()); finalNormProduction.setAccount(productionVo.getAccount());
...@@ -166,19 +171,19 @@ public class NormProductionController { ...@@ -166,19 +171,19 @@ public class NormProductionController {
finalNormProduction.setGroupId(productionVo.getGroupId()); finalNormProduction.setGroupId(productionVo.getGroupId());
finalNormProduction.setGroupName(productionVo.getGroupName()); finalNormProduction.setGroupName(productionVo.getGroupName());
Double newFinalValue=productionVo.getProductionTotalValue()+finalNormProduction.getProductionTotalValue(); Double newFinalValue = productionVo.getProductionTotalValue() + finalNormProduction.getProductionTotalValue();
finalNormProduction.setProductionTotalValue(newFinalValue); finalNormProduction.setProductionTotalValue(newFinalValue);
Double newNonProductionValue=productionVo.getNonProductionValue()+finalNormProduction.getNonProductionValue(); Double newNonProductionValue = productionVo.getNonProductionValue() + finalNormProduction.getNonProductionValue();
finalNormProduction.setNonProductionValue(newNonProductionValue); finalNormProduction.setNonProductionValue(newNonProductionValue);
Double newProductionValue=productionVo.getProductionValue()+finalNormProduction.getProductionValue(); Double newProductionValue = productionVo.getProductionValue() + finalNormProduction.getProductionValue();
finalNormProduction.setProductionValue(newProductionValue); finalNormProduction.setProductionValue(newProductionValue);
} }
} }
newRts.add(finalNormProduction); newRts.add(finalNormProduction);
} }
rts=newRts; rts = newRts;
} }
return BaseResponse.okData(PageUtil.listConvertToPage(rts, pageQuery)); return BaseResponse.okData(PageUtil.listConvertToPage(rts, pageQuery));
...@@ -187,7 +192,7 @@ public class NormProductionController { ...@@ -187,7 +192,7 @@ public class NormProductionController {
@PostMapping("/export/statistics") @PostMapping("/export/statistics")
@ApiOperation("导出标准产值列表") @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 startTime = null;
Long endTime = null; Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) { if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
...@@ -212,7 +217,7 @@ public class NormProductionController { ...@@ -212,7 +217,7 @@ public class NormProductionController {
@PostMapping("/export/total/production") @PostMapping("/export/total/production")
@ApiOperation("导出总产值") @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 startTime = null;
Long endTime = null; Long endTime = null;
if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) { if (StrUtil.isNotBlank(start) && StrUtil.isNotBlank(end)) {
...@@ -220,8 +225,23 @@ public class NormProductionController { ...@@ -220,8 +225,23 @@ public class NormProductionController {
endTime = DateUtil.parseDate(end).getTime(); 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; ...@@ -4,6 +4,11 @@ import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import org.apache.tomcat.jni.Local;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
/** /**
* @description: * @description:
...@@ -22,4 +27,5 @@ public class EntrustSample { ...@@ -22,4 +27,5 @@ public class EntrustSample {
private Integer distributionId; private Integer distributionId;
private Integer teamGroupId; private Integer teamGroupId;
private Integer userId; private Integer userId;
private LocalDateTime finishTime;
} }
...@@ -34,4 +34,6 @@ public interface SampleDistributionMapper extends BaseMapper<SampleDistribution> ...@@ -34,4 +34,6 @@ public interface SampleDistributionMapper extends BaseMapper<SampleDistribution>
List<SampleCheckGroupVo> getSampleCheckGroupList(@Param("sampleId") Integer sampleId); List<SampleCheckGroupVo> getSampleCheckGroupList(@Param("sampleId") Integer sampleId);
List<EntrustSample> getEntrustSample(); List<EntrustSample> getEntrustSample();
List<EntrustSample> getSampleDistribution(@Param("params") Map<String, Object> param);
} }
...@@ -23,7 +23,21 @@ ...@@ -23,7 +23,21 @@
</if> </if>
</where> </where>
</sql> </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 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, 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, e.id as entrustId, e.entrust_date as entrustDate, e.sample_num sampleNum,
...@@ -81,6 +95,16 @@ ...@@ -81,6 +95,16 @@
(SELECT user_id, id as distribution_id,sample_id FROM sample_distribution ) d on s.id = d.sample_id ) g (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 ON g.entrust_id = e.id
</select> </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> </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; ...@@ -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.PageQuery;
import cn.wise.sc.cement.business.model.vo.NormProductionVo; 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.ProductionVo;
import cn.wise.sc.cement.business.model.vo.WorkloadStatisticsVo;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -112,4 +114,12 @@ public interface INormProductionService extends IService<NormProduction> { ...@@ -112,4 +114,12 @@ public interface INormProductionService extends IService<NormProduction> {
* @param response 响应体 * @param response 响应体
*/ */
void exportProduction(String name, Long startTime, Long endTime,Integer groupId,HttpServletResponse 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; ...@@ -5,6 +5,7 @@ import cn.wise.sc.cement.business.entity.SampleDistribution;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -21,4 +22,10 @@ public interface ISampleDistributionService extends IService<SampleDistribution> ...@@ -21,4 +22,10 @@ public interface ISampleDistributionService extends IService<SampleDistribution>
*/ */
List<EntrustSample> getEntrustSample(); 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; ...@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -29,4 +30,9 @@ public class SampleDistributionServiceImpl extends ServiceImpl<SampleDistributio ...@@ -29,4 +30,9 @@ public class SampleDistributionServiceImpl extends ServiceImpl<SampleDistributio
public List<EntrustSample> getEntrustSample() { public List<EntrustSample> getEntrustSample() {
return sampleDistributionMapper.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