package com.engine.hty.web; import cn.hutool.core.convert.Convert; import com.engine.common.util.ParamUtil; import com.weaver.general.Util; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import weaver.conn.RecordSet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.math.BigDecimal; import java.math.RoundingMode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author:dxfeng * @createTime: 2024/09/08 * @version: 1.0 */ public class HtyController { @GET @Path("/getTotalScore") @Produces(MediaType.APPLICATION_JSON) public Map getTotalScore(@Context HttpServletRequest request, @Context HttpServletResponse response) { Map map = ParamUtil.request2Map(request); Map returnMap = new HashMap<>(); returnMap.put("api_status", true); String khzq = Util.null2String((String) map.get("khzq")); String xmkhry = Util.null2String((String) map.get("xmkhry")); String xmpfqz = Util.null2String((String) map.get("xmpfqz")); String gwzzpfqz = Util.null2String((String) map.get("gwzzpfqz")); String gwzzpf = Util.null2String((String) map.get("gwzzpf")); String billId = Util.null2String((String) map.get("billId")); RecordSet rs = new RecordSet(); List list = new ArrayList<>(); // 考核周期。考核人员 rs.executeQuery("select xmjldf from uf_xmkhpf where khzq = ? and xmkhry = ?", khzq, xmkhry); while (rs.next()) { list.add(Convert.toDouble(rs.getString("xmjldf"), 0D)); } if (CollectionUtils.isNotEmpty(list)) { Double total = 0D; for (Double i : list) { total += i; } BigDecimal totalDecimal = BigDecimal.valueOf(total); BigDecimal sizeDecimal = BigDecimal.valueOf(list.size()); // 保留两位小数 BigDecimal average = totalDecimal.divide(sizeDecimal, 2, RoundingMode.HALF_UP); returnMap.put("average", average); // Double xmpfqzInt = Convert.toDouble(xmpfqz, 0D); if (xmpfqzInt == 0D) { returnMap.put("api_status", false); returnMap.put("msg", "项目评分权重转换失败"); } Double gwzzpfqzInt = Convert.toDouble(gwzzpfqz, 0D); if (gwzzpfqzInt == 0D) { returnMap.put("api_status", false); returnMap.put("msg", "岗位职责评分权重转换失败"); } Double gwzzpfInt = Convert.toDouble(gwzzpf, 0D); if (gwzzpfInt == 0D) { returnMap.put("api_status", false); returnMap.put("msg", "岗位职责评分转换失败"); } BigDecimal xmpfqzBig = BigDecimal.valueOf(xmpfqzInt).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); BigDecimal gwzzpfqzBig = BigDecimal.valueOf(gwzzpfqzInt).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP); BigDecimal result1 = average.multiply(xmpfqzBig).setScale(2, RoundingMode.HALF_UP); BigDecimal result2 = gwzzpfqzBig.multiply(BigDecimal.valueOf(gwzzpfInt)).setScale(2, RoundingMode.HALF_UP); BigDecimal add = result1.add(result2); returnMap.put("result", add); // 更新表中的数据 rs.executeUpdate("update uf_xmzkh set khzdf = ? where id = ? ", add, billId); } return returnMap; } @GET @Path("/getData") @Produces(MediaType.APPLICATION_JSON) public Map getData(@Context HttpServletRequest request, @Context HttpServletResponse response) { Map map = ParamUtil.request2Map(request); Map returnMap = new HashMap<>(); returnMap.put("api_status", true); String ffyf = Util.null2String((String) map.get("ffyf")); String ffry = Util.null2String((String) map.get("ffry")); String bm = Util.null2String((String) map.get("bm")); if (StringUtils.isBlank(bm)) { } String billId = Util.null2String((String) map.get("billId")); RecordSet rs = new RecordSet(); String year = ffyf.substring(0, 4); // 年月转化为季度 String month = ffyf.substring(4, 6); // 月份转化为季度 String quarter = ""; if (month.equals("01") || month.equals("02") || month.equals("03")) { quarter = "0"; } else if (month.equals("04") || month.equals("05") || month.equals("06")) { quarter = "1"; } else if (month.equals("07") || month.equals("08") || month.equals("09")) { quarter = "2"; } else if (month.equals("10") || month.equals("11") || month.equals("12")) { quarter = "3"; } String sql = "select * from uf_htyjxhd where khnd =" + year + " and khjd =" + quarter + " and concat(',',khry,',') like '%," + ffry + ",%' order by id desc "; rs.executeQuery(sql); if (rs.next()) { String id = rs.getString("id"); rs.executeQuery("select * from uf_jxdjfb_dt2 where jxhd = ? and khry = ?", id, ffry); if (rs.next()) { map.put("khzzdf", rs.getString("khzzdf")); map.put("khdj", rs.getString("khdj")); } } rs.executeQuery("select * from uf_jcl_yjjx where yjyf = ?", ffyf); String jxyj = ""; if (rs.next()) { jxyj = rs.getString("jxyj"); } map.put("jxyj", jxyj); String xs = ""; rs.executeQuery("select a.jjxs,b.mrjjxs from uf_jcl_jjfpfa_dt1 a inner join uf_jcl_jjfpfa b on a.mainid = b.id where a.ry = ?", ffry); if (rs.next()) { xs = rs.getString("jjxs"); if (StringUtils.isBlank(xs)) { xs = rs.getString("mrjjxs"); } } if (StringUtils.isBlank(xs)) { rs.executeQuery("select a.jjxs,b.mrjjxs from uf_jcl_jjfpfa_dt1 a inner join uf_jcl_jjfpfa b on a.mainid = b.id where a.bm =?", bm); if (rs.next()) { xs = rs.getString("jjxs"); if (StringUtils.isBlank(xs)) { xs = rs.getString("mrjjxs"); } } } map.put("xs", xs); if (StringUtils.isNotBlank(xs) && StringUtils.isNotBlank(jxyj)) { BigDecimal decimal = new BigDecimal(xs).multiply(new BigDecimal(jxyj)).setScale(2, RoundingMode.HALF_UP); map.put("bzjjje", decimal); } return returnMap; } }