|
|
|
@ -0,0 +1,202 @@
|
|
|
|
|
package com.dsic.gj_erp.controller.kban;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.dsic.gj_erp.bean.ResultBean;
|
|
|
|
|
import com.dsic.gj_erp.bean.jhgk.DmYdjh;
|
|
|
|
|
import com.dsic.gj_erp.bean.jhgk.dto.RjhDto;
|
|
|
|
|
import com.dsic.gj_erp.mapper.jhgk.DmYdjhMapper;
|
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmGcrlService;
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* <p>
|
|
|
|
|
* 前端控制器
|
|
|
|
|
* </p>
|
|
|
|
|
*
|
|
|
|
|
* @author xn
|
|
|
|
|
* @since 2023-11-09
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/YdjhKban")
|
|
|
|
|
public class YdjhKbanController {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private DmYdjhMapper dmYdjhMapper;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private RedisTemplate<String,Object> redisTemplate;
|
|
|
|
|
|
|
|
|
|
private String key="YdjhKban::";
|
|
|
|
|
private String[] months={"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月",};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 月度计划完成情况
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getYdjhwcl")
|
|
|
|
|
public ResultBean<?> getYdjhwcl(){
|
|
|
|
|
List<Map<String,Object>> list=new ArrayList<>();
|
|
|
|
|
for (String month : months) {
|
|
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
|
|
map.put("month",month);
|
|
|
|
|
map.put("wcl",0.0);
|
|
|
|
|
list.add(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//查询月份
|
|
|
|
|
List<DateTime> dateTimes=DateUtil.rangeToList(DateUtil.beginOfYear(new Date())
|
|
|
|
|
, DateUtil.endOfMonth(new Date())
|
|
|
|
|
, DateField.MONTH);
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < dateTimes.size(); i++) {
|
|
|
|
|
String yf=dateTimes.get(i).toString("yyyy/MM");
|
|
|
|
|
DmYdjh ydjh= dmYdjhMapper.selectOne(new QueryWrapper<DmYdjh>().select(
|
|
|
|
|
"CONVERT(decimal(10,2),\n" +
|
|
|
|
|
"SUM(CASE WHEN substring(qgfkrq,0,8)='"+yf+"' THEN 1.0 ELSE 0.0 END) /\n" +
|
|
|
|
|
"SUM(CASE WHEN substring(qgjhrq,0,8)='"+yf+"' THEN 1.0 ELSE 0.0 END)) as qgcd"));
|
|
|
|
|
list.get(i).replace("wcl",ydjh.getQgcd());
|
|
|
|
|
}
|
|
|
|
|
return new ResultBean<>(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 本月生产计划完成率
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getByjhwcl")
|
|
|
|
|
public ResultBean<?> getByjhwcl(){
|
|
|
|
|
String yf=new DateTime().toString("yyyy/MM");
|
|
|
|
|
DmYdjh ydjh= dmYdjhMapper.selectOne(new QueryWrapper<DmYdjh>().select(
|
|
|
|
|
"CONVERT(decimal(10,2),\n" +
|
|
|
|
|
"SUM(CASE WHEN substring(qgfkrq,0,8)='"+yf+"' THEN 1.0 ELSE 0.0 END) /\n" +
|
|
|
|
|
"SUM(CASE WHEN substring(qgjhrq,0,8)='"+yf+"' THEN 1.0 ELSE 0.0 END)) as qgcd"));
|
|
|
|
|
Map<String,Double> map=new HashMap<>();
|
|
|
|
|
Double wc=ydjh.getQgcd();
|
|
|
|
|
map.put("wcl",wc);
|
|
|
|
|
map.put("wwcl",wc>=1?0.0:new BigDecimal(1-wc).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
|
return new ResultBean<>(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 本年度加工统计
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getNdjgtj")
|
|
|
|
|
public ResultBean<?> getNdjgtj(){
|
|
|
|
|
String year=new DateTime().toString("yyyy");
|
|
|
|
|
//船号: ;完成率: ;
|
|
|
|
|
//月度计划 年度计划 完成
|
|
|
|
|
List<DmYdjh> list= dmYdjhMapper.selectList(new QueryWrapper<DmYdjh>().select(
|
|
|
|
|
"dc_ch," +
|
|
|
|
|
"SUM(CASE WHEN substring(qgfkrq,0,5)='"+year+"' THEN 1.0 ELSE 0.0 END) as hxcd," +
|
|
|
|
|
"SUM(CASE WHEN substring(qgjhrq,0,5)='"+year+"' THEN 1.0 ELSE 0.0 END) as qgcd")
|
|
|
|
|
.like("qgfkrq",year).or().like("qgjhrq",year)
|
|
|
|
|
.groupBy("dc_ch"));
|
|
|
|
|
|
|
|
|
|
List<Map<String,Object>> maps=new ArrayList<>();
|
|
|
|
|
for (DmYdjh ydjh : list) {
|
|
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
|
|
map.put("dc_ch",ydjh.getDcCh());
|
|
|
|
|
if (ydjh.getQgcd()!=0.0){
|
|
|
|
|
BigDecimal wcl=new BigDecimal(ydjh.getHxcd()/ydjh.getQgcd()).setScale(2,BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
map.put("wcl",wcl);
|
|
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
map.put("wcl",0.0);
|
|
|
|
|
}
|
|
|
|
|
maps.add(map);
|
|
|
|
|
}
|
|
|
|
|
return new ResultBean<>(maps);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 手动录入
|
|
|
|
|
* 钢加公司目标达成率统计
|
|
|
|
|
* @param map 年度钢材加工ndgc 年度计划完成率jhwc
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping ("/saveMbdc")
|
|
|
|
|
public ResultBean<?> saveMbdc(@RequestBody Map<String,Double> map){
|
|
|
|
|
//年度钢材加工
|
|
|
|
|
Double ndgc= map.get("ndgc");
|
|
|
|
|
//年度计划完成率
|
|
|
|
|
Double jhwc= map.get("jhwc");
|
|
|
|
|
redisTemplate.opsForValue().set(key+"ndgc", ndgc);
|
|
|
|
|
redisTemplate.opsForValue().set(key+"jhwc", jhwc);
|
|
|
|
|
return new ResultBean<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取
|
|
|
|
|
* 钢加公司目标达成率统计
|
|
|
|
|
* @return 年度钢材加工ndgc 年度计划完成率jhwc
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getMbdc")
|
|
|
|
|
public ResultBean<?> getMbdc(){
|
|
|
|
|
Map map=new HashMap<>();
|
|
|
|
|
//年度钢材加工
|
|
|
|
|
map.put("ndgc",redisTemplate.opsForValue().get(key+"ndgc"));
|
|
|
|
|
//年度计划完成lv
|
|
|
|
|
map.put("jhwc",redisTemplate.opsForValue().get(key+"jhwc"));
|
|
|
|
|
return new ResultBean<>(map);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 手动录入
|
|
|
|
|
* 钢加公司双周作业任务达成率
|
|
|
|
|
* @param list [{"xh":1,"ch":"g175k-3","wcl":80},{"xh":2,"ch":"g175k-5","wcl":20}]
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping ("/saveSzdc")
|
|
|
|
|
public ResultBean<?> saveSzdc(@RequestBody List<Map<String,Object>> list){
|
|
|
|
|
redisTemplate.opsForValue().set(key+"szdc", list);
|
|
|
|
|
return new ResultBean<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取
|
|
|
|
|
* 钢加公司双周作业任务达成率
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getSzdc")
|
|
|
|
|
public ResultBean<?> geSzdc(){
|
|
|
|
|
Object list=redisTemplate.opsForValue().get(key+"szdc");
|
|
|
|
|
return new ResultBean<>(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 手动录入
|
|
|
|
|
* 配送计划达成统计
|
|
|
|
|
* @param list [{"ch":"g175k-3","wcl":80},{"ch":"g175k-5","wcl":20}]
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@PostMapping ("/savePsdc")
|
|
|
|
|
public ResultBean<?> savePsdc(@RequestBody List<Map<String,Object>> list){
|
|
|
|
|
redisTemplate.opsForValue().set(key+"psdc", list);
|
|
|
|
|
return new ResultBean<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取
|
|
|
|
|
* 配送计划达成统计
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/getPsdc")
|
|
|
|
|
public ResultBean<?> gePsdc(){
|
|
|
|
|
Object list=redisTemplate.opsForValue().get(key+"psdc");
|
|
|
|
|
return new ResultBean<>(list);
|
|
|
|
|
}
|
|
|
|
|
}
|