|
@@ -0,0 +1,250 @@
|
|
|
+package restcontroller.webmanage.sale.aftersalesbom;
|
|
|
+
|
|
|
+import beans.data.BatchDeleteErr;
|
|
|
+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;
|
|
|
+import common.annotation.CACHEING_CLEAN;
|
|
|
+import common.data.*;
|
|
|
+import restcontroller.R;
|
|
|
+import restcontroller.webmanage.sale.supplier.supplier;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+
|
|
|
+@API(title = "售后bom管理")
|
|
|
+public class aftersalesbom extends Controller {
|
|
|
+ public aftersalesbom(JSONObject content) throws YosException {
|
|
|
+ super(content);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "售后bom新增更新", apiversion = R.ID2025071409365103.v1.class, intervaltime = 200)
|
|
|
+ @CACHEING_CLEAN(apiClass = {aftersalesbom.class})
|
|
|
+ public String insertormodify_aftersalesbom() throws YosException {
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ // 表名
|
|
|
+ String tableName = "sa_aftersalesbom";
|
|
|
+ Long sa_aftersalesbomid = content.getLong("sa_aftersalesbomid");
|
|
|
+ String name = content.getString("name");
|
|
|
+ String productcategories = content.getString("productcategories");
|
|
|
+
|
|
|
+ if (sa_aftersalesbomid > 0 && dbConnect.runSqlQuery(
|
|
|
+ "select sa_aftersalesbomid from sa_aftersalesbom where sa_aftersalesbomid=" + sa_aftersalesbomid)
|
|
|
+ .isNotEmpty()) {
|
|
|
+ Rows rows = dbConnect.runSqlQuery(
|
|
|
+ "SELECT status from sa_aftersalesbom WHERE sa_aftersalesbomid = "
|
|
|
+ + sa_aftersalesbomid);
|
|
|
+ if (rows.isNotEmpty()) {
|
|
|
+ if (rows.get(0).getString("status").equals("新建")) {
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, tableName);
|
|
|
+ updateSQL.setUniqueid(sa_aftersalesbomid);
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
+ updateSQL.setValue("name", name);
|
|
|
+ updateSQL.setValue("productcategories", productcategories);
|
|
|
+ updateSQL.setDateValue("changedate");
|
|
|
+ updateSQL.setValue("changeby", username);
|
|
|
+ sqlList.add(updateSQL.getSQL());
|
|
|
+ if(!rows.get(0).getString("productcategories").equals(productcategories)){
|
|
|
+ sqlList.add("delete from sa_aftersalesbom_items where siteid='"+siteid+"' and sa_aftersalesbomid="+sa_aftersalesbomid);
|
|
|
+ sqlList.add("delete from sa_aftersalesbom_pjs where siteid='"+siteid+"' and sa_aftersalesbomid="+sa_aftersalesbomid);
|
|
|
+ }
|
|
|
+ sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesbom", sa_aftersalesbomid, "更新", "售后bom更新成功")
|
|
|
+ .getSQL());
|
|
|
+ } else {
|
|
|
+ return getErrReturnObject().setErrMsg("非新建状态下无法编辑").toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ return getErrReturnObject().setErrMsg("该售后bom不存在").toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ InsertSQL insertSQL = SQLFactory.createInsertSQL(this, tableName);
|
|
|
+ sa_aftersalesbomid=createTableID(tableName);
|
|
|
+ insertSQL.setUniqueid(sa_aftersalesbomid);
|
|
|
+ insertSQL.setSiteid(siteid);
|
|
|
+ insertSQL.setValue("name", name);
|
|
|
+ insertSQL.setValue("productcategories", productcategories);
|
|
|
+ insertSQL.setValue("billno", createBillCode("aftersalesbom"));
|
|
|
+ insertSQL.setValue("createby", username);
|
|
|
+ insertSQL.setDateValue("createdate");
|
|
|
+ insertSQL.setValue("changeby", username);
|
|
|
+ insertSQL.setDateValue("changedate");
|
|
|
+ insertSQL.setValue("status", "新建");
|
|
|
+ sqlList.add(insertSQL.getSQL());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ content.put("sa_aftersalesbomid", sa_aftersalesbomid);
|
|
|
+
|
|
|
+ return queryaftersalesbomMain();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "售后bom详情", apiversion = R.ID2025071409370003.v1.class)
|
|
|
+ @CACHEING
|
|
|
+ public String queryaftersalesbomMain() throws YosException {
|
|
|
+ Long sa_aftersalesbomid = content.getLong("sa_aftersalesbomid");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_aftersalesbom", "*");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+ querySQL.setSiteid(siteid);
|
|
|
+ querySQL.setWhere("t1.sa_aftersalesbomid",sa_aftersalesbomid);
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "查询售后bom列表", apiversion = R.ID2025071409371303.v1.class)
|
|
|
+ @CACHEING
|
|
|
+ public String queryaftersalesbomList() throws YosException {
|
|
|
+ StringBuffer where = new StringBuffer(" 1=1 ");
|
|
|
+ if (content.containsKey("where")) {
|
|
|
+ JSONObject whereObject = content.getJSONObject("where");
|
|
|
+ if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
|
|
|
+ where.append(" and(");
|
|
|
+ where.append("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append("or t1.name like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append(")");
|
|
|
+ }
|
|
|
+ if (whereObject.containsKey("begindate") && !"".equals(whereObject.getString("begindate"))) {
|
|
|
+// if(content.getString("type").equals("借用归还单")) {
|
|
|
+// where.append(" and t1.createdate >='" + whereObject.getString("startdate")).append("' ");
|
|
|
+// }else if(content.getString("type").equals("退货单")) {
|
|
|
+// where.append(" and t1.checkdate >='" + whereObject.getString("startdate")).append("' ");
|
|
|
+// }
|
|
|
+ where.append(" and t1.createdate >='" + whereObject.getString("begindate")).append("' ");
|
|
|
+ }
|
|
|
+ if (whereObject.containsKey("enddate") && !"".equals(whereObject.getString("enddate"))) {
|
|
|
+// if(content.getString("type").equals("借用归还单")) {
|
|
|
+// where.append(" and t1.createdate <='" + whereObject.getString("enddate")).append("' ");
|
|
|
+// }else if(content.getString("type").equals("退货单")) {
|
|
|
+// where.append(" and t1.checkdate <='" + whereObject.getString("enddate")).append("' ");
|
|
|
+// }
|
|
|
+ where.append(" and t1.createdate <='" + whereObject.getString("enddate")).append(" 23:59:59'");
|
|
|
+ }
|
|
|
+ if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
|
|
|
+ where.append(" and t1.status ='").append(whereObject.getString("status")).append("' ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_aftersalesbom", "*");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+
|
|
|
+ querySQL.setSiteid(siteid);
|
|
|
+ querySQL.setWhere(where.toString());
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "删除", apiversion = R.ID2025071409372803.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {aftersalesbom.class})
|
|
|
+ public String delete() throws YosException {
|
|
|
+
|
|
|
+ JSONArray sa_aftersalesbomids = content.getJSONArray("sa_aftersalesbomids");
|
|
|
+ BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_aftersalesbomids.size());
|
|
|
+ for (Object o : sa_aftersalesbomids) {
|
|
|
+ long sa_aftersalesbomid = Long.parseLong(o.toString());
|
|
|
+ Rows RowsStatus = dbConnect
|
|
|
+ .runSqlQuery("select sa_aftersalesbomid,status from sa_aftersalesbom where siteid='" + siteid
|
|
|
+ + "' and sa_aftersalesbomid='" + sa_aftersalesbomid + "'");
|
|
|
+
|
|
|
+ if (RowsStatus.isNotEmpty()) {
|
|
|
+ if (!RowsStatus.get(0).getString("status").equals("新建")) {
|
|
|
+ batchDeleteErr.addErr(sa_aftersalesbomid, "非新建状态的售后bom无法删除");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_aftersalesbom where siteid='" + siteid + "' and sa_aftersalesbomid="
|
|
|
+ + sa_aftersalesbomid);
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_aftersalesbom_items where siteid='" + siteid + "' and sa_aftersalesbomid="
|
|
|
+ + sa_aftersalesbomid);
|
|
|
+ dbConnect.runSqlUpdate("delete from sa_aftersalesbom_pjs where siteid='" + siteid + "' and sa_aftersalesbomid="
|
|
|
+ + sa_aftersalesbomid);
|
|
|
+ }
|
|
|
+ return batchDeleteErr.getReturnObject().toString();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "审核反审核", apiversion = R.ID2025071409541703.v1.class)
|
|
|
+ @CACHEING_CLEAN( apiClass = {supplier.class})
|
|
|
+ public String check() throws YosException {
|
|
|
+ Long sa_aftersalesbomid = content.getLong("sa_aftersalesbomid");
|
|
|
+ boolean ischeck = content.getBooleanValue("ischeck");
|
|
|
+ Rows rows = dbConnect.runSqlQuery("select t1.sa_aftersalesbomid,t1.status,t1.name from sa_aftersalesbom t1 where t1.sa_aftersalesbomid ='"
|
|
|
+ + sa_aftersalesbomid + "' and t1.siteid='" + siteid + "'");
|
|
|
+ for (Row row : rows) {
|
|
|
+ if(ischeck){
|
|
|
+ if (!row.getString("status").equals("新建")) {
|
|
|
+ return getErrReturnObject().setErrMsg("非新建状态的【"+row.getString("name")+"】售后bom无法审核")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if (!row.getString("status").equals("审核")) {
|
|
|
+ return getErrReturnObject().setErrMsg("非审核状态的【"+row.getString("name")+"】售后bom无法反审核")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_aftersalesbom");
|
|
|
+ updateSQL.setUniqueid(sa_aftersalesbomid);
|
|
|
+ updateSQL.setSiteid(siteid);
|
|
|
+ updateSQL.setValue("status", ischeck?"审核":"新建");
|
|
|
+ updateSQL.setValue("checkby", ischeck?username:"null");
|
|
|
+ if(ischeck){
|
|
|
+ updateSQL.setDateValue("checkdate");
|
|
|
+ }else{
|
|
|
+ updateSQL.setValue("checkdate","null");
|
|
|
+ }
|
|
|
+
|
|
|
+ sqlList.add(updateSQL.getSQL());
|
|
|
+ if (ischeck) {
|
|
|
+ sqlList.add(
|
|
|
+ DataContrlLog.createLog(this, "sa_aftersalesbom", sa_aftersalesbomid, "审核", "售后bom审核成功").getSQL());
|
|
|
+ } else {
|
|
|
+ sqlList.add(
|
|
|
+ DataContrlLog.createLog(this, "sa_aftersalesbom", sa_aftersalesbomid, "反审核", "售后bom反审核成功").getSQL());
|
|
|
+ }
|
|
|
+
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "查询顶层bom列表", apiversion = R.ID2025071409572003.v1.class)
|
|
|
+ public String querytopbomname() throws YosException {
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_bom", "*");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+ querySQL.setWhere("ifnull(t1.parentid,0)=0");
|
|
|
+ querySQL.setSiteid(siteid);
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "根据上层名称查询下级bom列表", apiversion = R.ID2025071410052703.v1.class)
|
|
|
+ public String querylowerbombyname() throws YosException {
|
|
|
+ String bomname=content.getString("bomname");
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "plm_bom", "bomname");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.inner, "plm_bom", "t2", "t1.parentid = t2.plm_bomid AND t1.siteid = t2.siteid and t2.bomname='"+bomname+"'");
|
|
|
+ querySQL.setSiteid(siteid);
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|