123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- package restcontroller.webmanage.sale.itempriceadjust;
- 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.Row;
- import common.data.Rows;
- import common.data.RowsMap;
- import common.data.SQLFactory;
- import restcontroller.R;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.Set;
- @API(title = "商品价格调整单")
- public class Itempriceadjust extends Controller {
- /**
- * 构造函数
- *
- * @param content
- */
- public Itempriceadjust(JSONObject content) throws YosException {
- super(content);
- }
- @API(title = "商品价格调整单新增或更新", apiversion = R.ID20221024163804.v1.class,intervaltime = 200)
- @CACHEING_CLEAN(apiversions = {R.ID20221024163504.v1.class})
- public String insert_update() throws YosException {
- ArrayList<String> sqlList = new ArrayList<>();
- Long sa_itempriceadjustid = content.getLong("sa_itempriceadjustid");
- SQLFactory sqlFactory = new SQLFactory(this, "商品价格调整单新增");
- if (sa_itempriceadjustid <= 0 || dbConnect
- .runSqlQuery("select sa_itempriceadjustid from sa_itempriceadjust where sa_itempriceadjustid="
- + sa_itempriceadjustid
- + " and siteid = '"
- + siteid
- + "'")
- .isEmpty()) {
- sa_itempriceadjustid = createTableID("sa_itempriceadjust");
- String itempriceadjust = createBillCode("itempriceadjust");
- sqlFactory.addParameter("billno", itempriceadjust);
- String sql = DataContrlLog.createLog(this, "sa_itempriceadjust", sa_itempriceadjustid, "新增", "商品调价单新增:" + sa_itempriceadjustid).getSQL();
- sqlList.add(sql);
- } else {
- if (dbConnect.runSqlQuery("select status from sa_itempriceadjust where sa_itempriceadjustid="
- + sa_itempriceadjustid
- + " and siteid = '"
- + siteid
- + "'").get(0).getString("status").equals("审核")) {
- return getErrReturnObject().setErrMsg("审核中无法更改").toString();
- }
- sqlFactory = new SQLFactory(this, "商品价格调整单更新");
- String sql = DataContrlLog.createLog(this, "sa_itempriceadjust", sa_itempriceadjustid, "更新", "商品调价单更新:" + sa_itempriceadjustid).getSQL();
- sqlList.add(sql);
- }
- sqlFactory.addParameter("sa_itempriceadjustid", sa_itempriceadjustid);
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("username", username);
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("remarks", content.getString("remarks"));
- sqlList.add(sqlFactory.getSQL());
- dbConnect.runSqlUpdate(sqlList);
- content.put("sa_itempriceadjustid", sa_itempriceadjustid);
- return queryById();
- }
- @API(title = "商品价格调价单列表查询", apiversion = R.ID20221024163504.v1.class)
- @CACHEING
- public String query() 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 (").append("createby like '%").append(whereObject.getString("condition")).append("%'");
- where.append(" or ").append("changeby like '%").append(whereObject.getString("condition")).append("%'");
- where.append(" or ").append("checkby like '%").append(whereObject.getString("condition")).append("%'");
- where.append(" or ").append("billno like '%").append(whereObject.getString("condition")).append("%'");
- where.append(" or ").append("remarks like '%").append(whereObject.getString("condition")).append("%'");
- where.append(" or ").append("status like '%").append(whereObject.getString("condition")).append("%')");
- }
- }
- SQLFactory sqlFactory = new SQLFactory(this, "商品价格调整单列表查询", pageSize, pageNumber, pageSorting);
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter_SQL("where", where);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "删除商品价格调整单", apiversion = R.ID20221025092904.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20221024163504.v1.class})
- public String delete() throws YosException {
- JSONArray sa_itempriceadjustids = content.getJSONArray("sa_itempriceadjustids");
- ArrayList<String> sqlList = new ArrayList<>();
- BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_itempriceadjustids.size());
- for (Object object : sa_itempriceadjustids) {
- Long sa_itempriceadjustid = Long.valueOf(object.toString());
- Rows rows = dbConnect.runSqlQuery("select status from sa_itempriceadjust where sa_itempriceadjustid = " + sa_itempriceadjustid + " and siteid= '" + siteid + "'");
- if (rows.isEmpty()) {
- batchDeleteErr.addErr(sa_itempriceadjustid, "该数据不存在,删除失败");
- continue;
- } else if (rows.get(0).getString("status").equals("审核")) {
- batchDeleteErr.addErr(sa_itempriceadjustid, "该调整单为审核状态,不可删除");
- continue;
- }
- String sql = "delete from sa_itempriceadjust_itemprice where siteid = '" + siteid + "' and sa_itempriceadjustid = " + sa_itempriceadjustid;
- sqlList.add(sql);
- sql = "delete from sa_itempriceadjust_items where siteid = '" + siteid + "' and sa_itempriceadjustid = " + sa_itempriceadjustid;
- sqlList.add(sql);
- sql = "delete from sa_itempriceadjust where siteid = '" + siteid + "' and sa_itempriceadjustid = " + sa_itempriceadjustid;
- sqlList.add(sql);
- sql = DataContrlLog.createLog(this, "sa_itempriceadjust", sa_itempriceadjustid, "删除", "商品调价单删除:" + sa_itempriceadjustid).getSQL();
- sqlList.add(sql);
- }
- dbConnect.runSqlUpdate(sqlList);
- return batchDeleteErr.getReturnObject().toString();
- }
- @API(title = "商品价格调整单审核", apiversion = R.ID20221025094304.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20221024163504.v1.class})
- public String audit() throws YosException {
- Long sa_itempriceadjustid = content.getLong("sa_itempriceadjustid");
- ArrayList<String> sqlList = new ArrayList<>();
- SQLFactory sqlFactory = new SQLFactory(this, "商品调价单商品价格列表查询");
- sqlFactory.addParameter("sa_itempriceadjustid", sa_itempriceadjustid);
- sqlFactory.addParameter("siteid", siteid);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- sqlFactory = new SQLFactory(this, "查询指定商品原价");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter_in("itemids", rows.toArray("itemid"));
- RowsMap itemPriceRowsMap = dbConnect.runSqlQuery(sqlFactory.getSQL()).toRowsMap("itemid");
- sqlFactory = new SQLFactory(this, "查询指定商品");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter_in("itemids", rows.toArray("itemid"));
- RowsMap itemRowsMap = dbConnect.runSqlQuery(sqlFactory.getSQL()).toRowsMap("itemid");
- Set<String> itemidList = itemRowsMap.keySet();
- RowsMap itemrowsmap = rows.toRowsMap("itemid");
- for (String itemid : itemrowsmap.keySet()) {
- Rows itemrows = itemrowsmap.get(itemid);
- BigDecimal marketprice = itemrows.get(0).getBigDecimal("marketprice");
- if (marketprice.compareTo(BigDecimal.ZERO) < 0) {
- return getErrReturnObject().setErrMsg("商品牌价必须大于0").toString();
- } else if (itemRowsMap.get(itemid).get(0).getBigDecimal("marketprice").compareTo(itemrows.get(0).getBigDecimal("oldmarketprice")) != 0) {
- return getErrReturnObject().setErrMsg("部分商品牌价发生修改,请检查").toString();
- }
- sqlList.add("update plm_item set marketprice=" + itemrows.get(0).getBigDecimal("marketprice") + " where siteid='" + siteid + "' and itemid=" + itemid);
- }
- for (Row row : rows) {
- String itemid = row.getString("itemid");
- String pricegrade = row.getString("pricegrade");
- if (!itemidList.contains(itemid)) {
- continue;
- }
- if (row.getBigDecimal("oldprice").compareTo(BigDecimal.ZERO) >= 0 && row.getBigDecimal("price").compareTo(BigDecimal.ZERO) < 0) {
- return getErrReturnObject().setErrMsg("商品调整价必须大于或等于0").toString();
- }
- RowsMap gradePriceRowsMap = itemPriceRowsMap.get(itemid).toRowsMap("pricegrade");
- if (gradePriceRowsMap.containsKey("pricegrade")) {
- Rows priceRows = gradePriceRowsMap.get(pricegrade);
- if (priceRows.get(0).getBigDecimal("price").compareTo(row.getBigDecimal("oldprice")) != 0) {
- return getErrReturnObject().setErrMsg("部分商品原价发生修改,请检查").toString();
- }
- }
- if (!itemPriceRowsMap.containsKey(itemid) || !itemPriceRowsMap.get(itemid).toArrayList("pricegrade").contains(pricegrade)) {
- sqlFactory = new SQLFactory(this, "商品价格新增");
- sqlFactory.addParameter("sa_itempriceid", createTableID("sa_itemprice"));
- sqlFactory.addParameter("itemno", itemRowsMap.get(itemid).get(0).getString("itemno"));
- } else {
- sqlFactory = new SQLFactory(this, "商品价格更新");
- }
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("itemid", itemid);
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("price", row.getBigDecimal("price"));
- sqlFactory.addParameter("pricegrade", pricegrade);
- sqlList.add(sqlFactory.getSQL());
- }
- sqlFactory = new SQLFactory(this, "商品价格调整单审核");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("checkby", username);
- sqlFactory.addParameter("sa_itempriceadjustid", sa_itempriceadjustid);
- sqlList.add(sqlFactory.getSQL());
- sqlList.add(DataContrlLog.createLog(this, "sa_itempriceadjust", sa_itempriceadjustid, "审核", "调价单审核:" + sa_itempriceadjustid).getSQL());
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "商品价格调整单详情查询", apiversion = R.ID20221025093404.v1.class)
- public String queryById() throws YosException {
- SQLFactory sqlFactory = new SQLFactory(this, "商品价格调整单详情查询");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("sa_itempriceadjustid", content.getLong("sa_itempriceadjustid"));
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- return getSucReturnObject().setData(rows).toString();
- }
- }
|