|
|
@@ -0,0 +1,140 @@
|
|
|
+package restcontroller.webmanage.sale.itemrequest;
|
|
|
+
|
|
|
+import beans.datacontrllog.DataContrlLog;
|
|
|
+import com.alibaba.fastjson2.JSONArray;
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
+import common.Controller;
|
|
|
+import common.YosException;
|
|
|
+import common.annotation.API;
|
|
|
+import common.data.*;
|
|
|
+import restcontroller.R;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+
|
|
|
+@API(title = "配件领料单表体")
|
|
|
+public class itemrequestitems extends Controller {
|
|
|
+ public itemrequestitems(JSONObject content) throws YosException {
|
|
|
+ super(content);
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "其他入库单配件领料单选择", apiversion = R.ID2026020309241501.v1.class)
|
|
|
+ public String itemrequestselect() throws YosException {
|
|
|
+ long st_stockbillid = content.getLongValue("st_stockbillid");
|
|
|
+ ArrayList<Long> ids = dbConnect.runSqlQuery("select sa_itemrequestitemsid from st_stockbill_items where st_stockbillid=" + st_stockbillid + " and sourceobject='sa_itemrequestitems'").toArrayList("sa_itemrequestitemsid", new ArrayList<>());
|
|
|
+
|
|
|
+ QuerySQL saItemrequest = SQLFactory.createQuerySQL(this, "sa_itemrequestitems", "sa_itemrequestitemsid", "itemid", "qty", "instockqty").setTableAlias("t1");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.left, "plm_item", "t2", "itemid=:itemid", "itemno", "itemname", "model", "standards");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.left, "plm_itemextend", "t3", "itemid=:itemid", "erpitemno", "erpitemname", "erpmodel");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.left, "plm_unit", "t4", "t2.unitid=:unitid", "unitid", "unitname");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.inner, "sa_itemrequest", "t5", "t1.sa_itemrequestid=:sa_itemrequestid", "sa_itemrequestid", "billno", "billdate", "suppname", "remarks");
|
|
|
+ saItemrequest.addQueryFields("canaddqty", "(t1.qty-ifnull(t1.instockqty,0))");
|
|
|
+ saItemrequest.setWhere("t1.isclose", false);
|
|
|
+ saItemrequest.setWhere("t1.qty>ifnull(t1.instockqty,0)");
|
|
|
+ saItemrequest.setWhere("t5.status", "审核");
|
|
|
+ saItemrequest.setWhere("t1.sa_itemrequestitemsid", Op.NOT_IN, ids);
|
|
|
+ saItemrequest.setPage(pageSize, pageNumber).setSiteid(siteid);
|
|
|
+ saItemrequest.setOrderBy("sa_itemrequestitemsid desc");
|
|
|
+ Rows rows = saItemrequest.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "配件领料单表体查询", apiversion = R.ID2026020216484501.v1.class)
|
|
|
+ public String itemrequestitemsquery() throws YosException {
|
|
|
+ long sa_itemrequestid = content.getLongValue("sa_itemrequestid");
|
|
|
+ QuerySQL saItemrequest = SQLFactory.createQuerySQL(this, "sa_itemrequestitems", "*").setTableAlias("t1");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.left, "plm_item", "t2", "itemid=:itemid", "itemno", "itemname", "model", "standards");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.left, "plm_itemextend", "t3", "itemid=:itemid", "erpitemno", "erpitemname");
|
|
|
+ saItemrequest.addJoinTable(JOINTYPE.left, "plm_unit", "t4", "t2.unitid=:itemid", "unitname");
|
|
|
+ saItemrequest.setWhere("sa_itemrequestid", sa_itemrequestid);
|
|
|
+ saItemrequest.setPage(pageSize, pageNumber).setSiteid(siteid);
|
|
|
+ saItemrequest.setOrderBy("sa_itemrequestitemsid desc");
|
|
|
+ Rows rows = saItemrequest.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "配件领料单表体保存", apiversion = R.ID2026020216495701.v1.class)
|
|
|
+ public String itemrequestitemssave() throws YosException {
|
|
|
+ long sa_itemrequestid = content.getLongValue("sa_itemrequestid");
|
|
|
+ Row row = dbConnect.runSqlQuery(0, "select * from sa_itemrequest where sa_itemrequestid=" + sa_itemrequestid);
|
|
|
+ if (row == null) {
|
|
|
+ return getErrReturnObject().setErrMsg("配件领料单不存在").toString();
|
|
|
+ }
|
|
|
+ if (!"新建".equals(row.getString("status"))) {
|
|
|
+ return getErrReturnObject().setErrMsg("配件领料单非新建状态,不能修改表体物料").toString();
|
|
|
+ }
|
|
|
+ SQLDump sqlDump = new SQLDump();
|
|
|
+ JSONArray items = content.getJSONArray("items");
|
|
|
+ for (int i = 0; i < items.size(); i++) {
|
|
|
+ JSONObject item = items.getJSONObject(i);
|
|
|
+ long sa_itemrequestitemsid = item.getLongValue("sa_itemrequestitemsid");
|
|
|
+ long itemid = item.getLong("itemid");
|
|
|
+ double qty = item.getDouble("qty");
|
|
|
+ if (qty <= 0) {
|
|
|
+ return getErrReturnObject().setErrMsg("领料单数量必须大于0").toString();
|
|
|
+ }
|
|
|
+ String remarks = item.getStringValue("remarks");
|
|
|
+ if (sa_itemrequestitemsid <= 0) {
|
|
|
+ InsertSQL itemInsert = SQLFactory.createInsertSQL(this, "sa_itemrequestitems");
|
|
|
+ itemInsert.setValue("sa_itemrequestid", sa_itemrequestid);
|
|
|
+ itemInsert.setValue("itemid", itemid);
|
|
|
+ itemInsert.setValue("qty", qty);
|
|
|
+ itemInsert.setValue("remarks", remarks);
|
|
|
+ itemInsert.setValue("siteid", siteid);
|
|
|
+ sqlDump.add(itemInsert).add(DataContrlLog.createLog(this, "sa_itemrequest", sa_itemrequestid, "修改", "配件领料单表体新增成功"));
|
|
|
+ } else {
|
|
|
+ UpdateSQL itemUpdate = SQLFactory.createUpdateSQL(this, "sa_itemrequestitems");
|
|
|
+ itemUpdate.setValue("itemid", itemid);
|
|
|
+ itemUpdate.setValue("qty", qty);
|
|
|
+ itemUpdate.setValue("remarks", remarks);
|
|
|
+ itemUpdate.setUniqueid(sa_itemrequestitemsid);
|
|
|
+ itemUpdate.setWhere("sa_itemrequestid", sa_itemrequestid);
|
|
|
+ sqlDump.add(itemUpdate).add(DataContrlLog.createLog(this, "sa_itemrequest", sa_itemrequestid, "修改", "配件领料单表体修改成功"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sqlDump.commit(this);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "配件领料单表体删除", apiversion = R.ID2026020308374601.v1.class)
|
|
|
+ public String itemrequestitemsdelete() throws YosException {
|
|
|
+ long sa_itemrequestid = content.getLongValue("sa_itemrequestid");
|
|
|
+ JSONArray sa_itemrequestitemsids = content.getJSONArray("sa_itemrequestitemsids");
|
|
|
+ Row row = dbConnect.runSqlQuery(0, "select * from sa_itemrequest where sa_itemrequestid=" + sa_itemrequestid);
|
|
|
+ if (row != null) {
|
|
|
+ if (!"新建".equals(row.getString("status"))) {
|
|
|
+ return getErrReturnObject().setErrMsg("配件领料单非新建状态,不能删除").toString();
|
|
|
+ }
|
|
|
+ SQLDump sqlDump = new SQLDump();
|
|
|
+ sqlDump.add(SQLFactory.createDeleteSQL(this, "sa_itemrequestitems").setWhere("sa_itemrequestid", sa_itemrequestid).setWhere("sa_itemrequestitemsid", sa_itemrequestitemsids));
|
|
|
+ sqlDump.add(DataContrlLog.createLog(this, "sa_itemrequest", sa_itemrequestid, "修改", "配件领料单表体删除成功"));
|
|
|
+ sqlDump.commit(this);
|
|
|
+ }
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "配件领料单表体行关闭", apiversion = R.ID2026020309035801.v1.class)
|
|
|
+ public String itemrequestitemsclose() throws YosException {
|
|
|
+ long sa_itemrequestid = content.getLongValue("sa_itemrequestid");
|
|
|
+ JSONArray sa_itemrequestitemsids = content.getJSONArray("sa_itemrequestitemsids");
|
|
|
+ boolean isclose = content.getBooleanValue("isclose");
|
|
|
+ Row row = dbConnect.runSqlQuery(0, "select * from sa_itemrequest where sa_itemrequestid=" + sa_itemrequestid);
|
|
|
+ if (row != null) {
|
|
|
+ if (!"审核".equals(row.getString("status"))) {
|
|
|
+ return getErrReturnObject().setErrMsg("配件领料单非审核状态,不能进行行关闭或反关闭操作").toString();
|
|
|
+ }
|
|
|
+ SQLDump sqlDump = new SQLDump();
|
|
|
+
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_itemrequestitems");
|
|
|
+ updateSQL.setValue("isclose", isclose);
|
|
|
+ updateSQL.setValue("closeby", isclose ? username : null);
|
|
|
+ updateSQL.setValue("closedate", isclose ? getDateTime_Str() : null);
|
|
|
+ updateSQL.setWhere("sa_itemrequestid", sa_itemrequestid);
|
|
|
+ updateSQL.setWhere("sa_itemrequestitemsid", sa_itemrequestitemsids);
|
|
|
+ updateSQL.setWhere("isclose", !isclose);
|
|
|
+ sqlDump.add(updateSQL);
|
|
|
+ sqlDump.add(DataContrlLog.createLog(this, "sa_itemrequest", sa_itemrequestid, "行关闭", "配件领料单表体行关闭成功"));
|
|
|
+ sqlDump.commit(this);
|
|
|
+ }
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+}
|