package restcontroller.webmanage.sale.salestarget; import beans.datacontrllog.DataContrlLog; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import common.Controller; import common.YosException; import common.annotation.API; import common.annotation.CACHEING_CLEAN; import common.annotation.cm; import common.data.Rows; import common.data.SQLFactory; import restcontroller.R; import java.util.ArrayList; public class enterprisetarget extends Controller { /** * 构造函数 * * @param content */ public enterprisetarget(JSONObject content) throws YosException { super(content); } @API(title = "新建企业年度", apiversion = R.ID20221229104202.v1.class) @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})}) public String insert() throws YosException { Long year = content.getLong("year"); Long sa_salestargetbillid = content.getLong("sa_salestargetbillid"); Long sys_enterpriseid = content.getLong("sys_enterpriseid"); Long sa_contractid = content.getLong("sa_contractid"); String tradefield = content.getString("tradefield"); ArrayList sqlList = new ArrayList<>(); if (sa_salestargetbillid <= 0) { //查询创建年度是否存在 String sql = "SELECT sa_salestargetbillid FROM sa_salestargetbill WHERE `year` = " + year + " AND targettype ='企业目标' AND siteid = '" + siteid + "' and sys_enterpriseid = " + sys_enterpriseid + " and tradefield='" + tradefield + "'"; Rows rows = dbConnect.runSqlQuery(sql); if (rows.isNotEmpty()) { sa_salestargetbillid = rows.get(0).getLong("sa_salestargetbillid"); } else { sa_salestargetbillid = createTableID("sa_salestargetbill"); SQLFactory sqlFactory = new SQLFactory(this, "创建新年度"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid); sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("year", year); sqlFactory.addParameter("targettype", "企业目标"); sqlFactory.addParameter("tradefield", tradefield); sqlList.add(sqlFactory.getSQL()); } } if (dbConnect.runSqlQuery("SELECT * from sa_salestarget WHERE sa_salestargetbillid = " + sa_salestargetbillid + " and sa_contractid = " + sa_contractid + " and siteid = '" + siteid + "' and tradefield='" + tradefield + "'").isNotEmpty()) { return getErrReturnObject().setErrMsg("当前领域业绩目标已存在,无法添加").toString(); } String[] types = {"年", "季", "月"}; String sql = "SELECT 1 FROM sa_salestargethr WHERE sa_salestargetbillid = " + sa_salestargetbillid + " and siteid = '" + siteid + "' and sys_enterpriseid = " + sys_enterpriseid; Rows rows = dbConnect.runSqlQuery(sql); if (rows.isEmpty()) { SQLFactory saleFactory = new SQLFactory(this, "企业范围新增"); saleFactory.addParameter("siteid", siteid); saleFactory.addParameter("sa_salestargethrid", createTableID("sa_salestargethr")); saleFactory.addParameter("sys_enterpriseid", sys_enterpriseid); saleFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid); sqlList.add(saleFactory.getSQL()); } for (String type : types) { int point; if (type.equals("年")) { point = 1; } else if (type.equals("季")) { point = 4; } else if (type.equals("月")) { point = 12; } else { point = 0; } for (int i = 0; i < point; i++) { SQLFactory targetFactory = new SQLFactory(this, "企业-目标明细新增"); targetFactory.addParameter("siteid", siteid); targetFactory.addParameter("sa_salestargetid", createTableID("sa_salestarget")); targetFactory.addParameter("type", type); targetFactory.addParameter("point", i + 1); targetFactory.addParameter("targettype", "企业目标"); targetFactory.addParameter("sys_enterpriseid", sys_enterpriseid); targetFactory.addParameter("sa_salestargetbillid", sa_salestargetbillid); targetFactory.addParameter("year", year); targetFactory.addParameter("sa_contractid", sa_contractid); targetFactory.addParameter("createby", username); targetFactory.addParameter("target_l", 0); targetFactory.addParameter("target_h", 0); targetFactory.addParameter("tradefield", tradefield); sqlList.add(targetFactory.getSQL()); } } sqlList.add(DataContrlLog.createLog(this, "sa_contract", sa_contractid, "添加业绩目标", "添加业绩目标" + year + "年" + tradefield + "领域目标").getSQL()); dbConnect.runSqlUpdate(sqlList); return getSucReturnObject().toString(); } @API(title = "目标编辑", apiversion = R.ID20221229111502.v1.class) @CACHEING_CLEAN(cms = {@cm(clazz = personnel.class, method = {"queryList", "queryDetailList"}), @cm(clazz = personnelstatistics.class, method = {"queryList"})}) public String edit() throws YosException { Long sa_salestargetbillid = content.getLong("sa_salestargetbillid"); Long sys_enterpriseid = content.getLong("sys_enterpriseid"); Long sa_contractid = content.getLong("sa_contractid"); if (sa_salestargetbillid <= 0) { return getErrReturnObject().setErrMsg("年度目标不存在").toString(); } ArrayList sqlList = new ArrayList<>(); String key_l = "y1l"; String key_h = "y1h"; if (content.containsKey(key_l) && content.containsKey(key_h)) { sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sys_enterpriseid, sa_contractid, "年", 1)); } for (int i = 1; i < 5; i++) { key_l = "s" + i + "l"; key_h = "s" + i + "h"; if (content.containsKey(key_l) && content.containsKey(key_h)) { sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sys_enterpriseid, sa_contractid, "季", i)); } } for (int i = 1; i < 13; i++) { key_l = "m" + i + "l"; key_h = "m" + i + "h"; if (content.containsKey(key_l) && content.containsKey(key_h)) { sqlList.add(getSql(content.getString(key_l), content.getString(key_h), sa_salestargetbillid, sys_enterpriseid, sa_contractid, "月", i)); } } //操作记录 Long year = 0L; String tradefield = ""; Rows rows = dbConnect.runSqlQuery("SELECT year,tradefield from sa_salestargetbill WHERE sa_salestargetbillid =" + sa_salestargetbillid + " and siteid='" + siteid + "'"); if (rows.isNotEmpty()) { year = rows.get(0).getLong("year"); tradefield = rows.get(0).getString("tradefield"); } sqlList.add(DataContrlLog.createLog(this, "sa_contract", sa_contractid, "编辑业绩目标", "编辑业绩目标" + year + "年" + tradefield + "领域目标").getSQL()); dbConnect.runSqlUpdate(sqlList); return getSucReturnObject().toString(); } public String getSql(String target_l, String target_h, Long id, Long sys_enterpriseid, Long sa_contractid, String type, int point) { return " UPDATE sa_salestarget SET target_l=" + target_l + ",target_h = " + target_h + " WHERE sa_salestargetbillid =" + id + " and sys_enterpriseid =" + sys_enterpriseid + " and type ='" + type + "' AND point = " + point + " AND sa_contractid = " + sa_contractid; } @API(title = "删除", apiversion = R.ID20221229141102.v1.class) public String delete() throws YosException { Long sa_salestargetbillid = content.getLong("sa_salestargetbillid"); Long sa_contractid = content.getLong("sa_contractid"); ArrayList sqlList = new ArrayList<>(); sqlList.add("delete from sa_salestarget WHERE siteid = '" + siteid + "' and sa_salestargetbillid = " + sa_salestargetbillid + " and sa_contractid = " + sa_contractid); //操作记录 Long year = 0L; String tradefield = ""; Rows rows = dbConnect.runSqlQuery("SELECT year,tradefield from sa_salestargetbill WHERE sa_salestargetbillid =" + sa_salestargetbillid + " and siteid='" + siteid + "'"); if (rows.isNotEmpty()) { year = rows.get(0).getLong("year"); tradefield = rows.get(0).getString("tradefield"); } sqlList.add(DataContrlLog.createLog(this, "sa_contract", sa_contractid, "删除业绩目标", "删除业绩目标" + year + "年" + tradefield + "领域目标").getSQL()); dbConnect.runSqlUpdate(sqlList); return getSucReturnObject().toString(); } @API(title = "查询对应企业的年度", apiversion = R.ID20230103102302.v1.class) public String getYear() throws YosException { Long sys_enterpriseid = content.getLong("sys_enterpriseid"); Rows rows = dbConnect.runSqlQuery("SELECT year from sa_salestargetbill WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid ='" + siteid + "'"); return getSucReturnObject().setData(rows).toString(); } }