| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990 |
- package restcontroller.webmanage.sale.aftersalesmag;
- import beans.accountbalance.Accountbalance;
- import beans.accountbalance.CashbillEntity;
- import beans.aftersalesmag.Aftersalesmag;
- import beans.data.BatchDeleteErr;
- import beans.datacontrllog.DataContrlLog;
- import beans.hr.Hr;
- import beans.parameter.Parameter;
- import beans.remind.Remind;
- import beans.salesforecast.Salesforecast;
- 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 org.apache.commons.lang.StringUtils;
- import restcontroller.R;
- import restcontroller.sale.cashbill.cashbill;
- import restcontroller.webmanage.executorService.Executor;
- import restcontroller.webmanage.sale.enterprisetradefield.EnterpriseTradeField;
- import restcontroller.webmanage.sale.itemgroup.itemgroup;
- import utility.ERPDocking;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.HashMap;
- /**
- * 返退单
- */
- @API(title = "返退管理")
- public class aftersalesmag extends Controller {
- public aftersalesmag(JSONObject arg0) throws YosException {
- super(arg0);
- // TODO Auto-generated constructor stub
- }
- @API(title = "返退单新增更新", apiversion = R.ID20230104160503.v1.class, intervaltime = 200)
- @CACHEING_CLEAN(apiClass = {aftersalesmag.class})
- public String insertormodify_aftersalesmag() throws YosException {
- ArrayList<String> sqlList = new ArrayList<>();
- // 表名
- String tableName = "sa_aftersalesmag";
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- // String type = content.getString("type");
- // String typemx = content.getStringValue("typemx");
- // Long sa_orderid = content.getLong("sa_orderid");
- if (content.containsKey("sys_enterpriseid")) {
- sys_enterpriseid = content.getLong("sys_enterpriseid");
- }
- // BigDecimal rebate_userate =content.getBigDecimalValue("rebate_userate");
- // BigDecimal returnamount = content.getBigDecimalValue("returnamount");
- // Long sa_accountclassid = content.getLong("sa_accountclassid");
- // String reason = content.getStringValue("reason");
- // boolean isitemreturn = content.getBooleanValue("isitemreturn");
- //// String logisticno = content.getStringValue("logisticno");
- String billdate = content.getStringValue("billdate");
- if (sa_aftersalesmagid <= 0 || dbConnect.runSqlQuery(
- "select sa_aftersalesmagid from sa_aftersalesmag where sa_aftersalesmagid=" + sa_aftersalesmagid)
- .isEmpty()) {
- sa_aftersalesmagid = createTableID(tableName);
- InsertSQL insertSQL = SQLFactory.createInsertSQL(this, tableName);
- insertSQL.setUniqueid(sa_aftersalesmagid);
- insertSQL.setSiteid(siteid);
- insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
- if (usertype == 21 || usertype == 22) {
- insertSQL.setValue("createflag", 0);
- } else {
- insertSQL.setValue("createflag", 1);
- }
- insertSQL.setValue("remarks", content.getStringValue("remarks"));
- insertSQL.setValue("billno", createBillCode("aftersalesmagbill"));
- insertSQL.setValue("billdate", billdate);
- insertSQL.setValue("createby", username);
- insertSQL.setDateValue("createdate");
- insertSQL.setValue("changeby", username);
- insertSQL.setDateValue("changedate");
- insertSQL.setValue("status", "新建");
- sqlList.add(insertSQL.getSQL());
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "新增", "返退单新增成功").getSQL());
- } else {
- Rows rows = dbConnect.runSqlQuery(
- "SELECT status from sa_aftersalesmag WHERE sa_aftersalesmagid = "
- + sa_aftersalesmagid);
- if (rows.isNotEmpty()) {
- if (rows.get(0).getString("status").equals("新建")) {
- UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, tableName);
- updateSQL.setUniqueid(sa_aftersalesmagid);
- updateSQL.setSiteid(siteid);
- updateSQL.setValue("sys_enterpriseid", sys_enterpriseid);
- updateSQL.setValue("remarks", content.getStringValue("remarks"));
- updateSQL.setValue("billdate", billdate);
- updateSQL.setValue("changeby", username);
- updateSQL.setDateValue("changedate");
- sqlList.add(updateSQL.getSQL());
- sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "更新", "返退单更新成功")
- .getSQL());
- } else {
- return getErrReturnObject().setErrMsg("非新建状态下无法编辑").toString();
- }
- } else {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- }
- }
- dbConnect.runSqlUpdate("delete from sa_aftersalesmag_items where siteid='"+siteid+"' and sa_aftersalesmagid="+sa_aftersalesmagid);
- InsertSQL insertSQLdetail = SQLFactory.createInsertSQL(this, "sa_aftersalesmag_items");
- insertSQLdetail.setUniqueid(createTableID("sa_aftersalesmag_items"));
- insertSQLdetail.setSiteid(siteid);
- insertSQLdetail.setValue("sa_aftersalesmagid", sa_aftersalesmagid);
- insertSQLdetail.setValue("name", content.getStringValue("name"));
- insertSQLdetail.setValue("phonenumber", content.getStringValue("phonenumber"));
- insertSQLdetail.setValue("address", content.getStringValue("address"));
- insertSQLdetail.setValue("stockdate", StringUtils.isBlank(content.getStringValue("stockdate")) ? "null" : content.getStringValue("stockdate"));
- insertSQLdetail.setValue("enddate", StringUtils.isBlank(content.getStringValue("enddate")) ? "null" : content.getStringValue("enddate"));
- insertSQLdetail.setValue("model", content.getStringValue("model"));
- insertSQLdetail.setValue("spec", content.getStringValue("spec"));
- insertSQLdetail.setValue("unitname", content.getStringValue("unitname"));
- insertSQLdetail.setValue("itemname", content.getStringValue("itemname"));
- insertSQLdetail.setValue("itemno", content.getStringValue("itemno"));
- insertSQLdetail.setValue("duty", content.getStringValue("duty"));
- insertSQLdetail.setValue("demand", content.getStringValue("demand"));
- insertSQLdetail.setValue("machinecode", content.getStringValue("machinecode"));
- insertSQLdetail.setValue("qty", content.containsKey("qty")?content.getIntValue("qty"):1);
- insertSQLdetail.setValue("itemid", content.getLongValue("itemid"));
- sqlList.add(insertSQLdetail.getSQL());
- dbConnect.runSqlUpdate(sqlList);
- content.put("sa_aftersalesmagid", sa_aftersalesmagid);
- return queryaftersalesmagMain();
- }
- @API(title = "返退单更新退货金额及物流单号", apiversion = R.ID20230105100203.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105161503.v1.class})
- public String updateaftersalesmag() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- String logisticno = content.getStringValue("logisticno");
- BigDecimal returnamount = content.getBigDecimal("returnamount");
- BigDecimal payamount = content.getBigDecimal("payamount");
- Rows rows = dbConnect
- .runSqlQuery("SELECT status from sa_aftersalesmag WHERE sa_aftersalesmagid = " + sa_aftersalesmagid);
- if (rows.isNotEmpty()) {
- if (rows.get(0).getString("status").equals("复核")) {
- return getErrReturnObject().setErrMsg("复核状态下无法编辑退货金额及物流单号").toString();
- }
- } else {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- }
- SQLFactory sqlFactory = new SQLFactory(this, "更新返退单更新退货金额及物流单号");
- sqlFactory.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("returnamount", returnamount);
- sqlFactory.addParameter("payamount", payamount);
- sqlFactory.addParameter("logisticno", logisticno);
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("username", username);
- dbConnect.runSqlUpdate(sqlFactory);
- return queryaftersalesmagMain();
- }
- @API(title = "可选择商品列表查询", apiversion = R.ID20230105110003.v1.class)
- @CACHEING
- public String queryCheckOrderList() throws YosException {
- if (content.containsKey("sys_enterpriseid")) {
- sys_enterpriseid = content.getLong("sys_enterpriseid");
- }
- /*
- * 过滤条件设置
- */
- 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("t2.itemname like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t2.itemno like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t1.sku like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- }
- // String hrid = content.getString("hrid");
- // SQLFactory sqlFactory = new SQLFactory(this, "审核订单列表查询", pageSize, pageNumber, pageSorting);
- // sqlFactory.addParameter_SQL("where", where);
- // sqlFactory.addParameter("siteid", siteid);
- // sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
- // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL(false));
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_itemsku ", "sku");
- querySQL.setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.left, "plm_item", "t2", "t1.itemid=t2.itemid and t1.siteid=t2.siteid","itemid","itemno","itemname","model","spec");
- querySQL.addJoinTable(JOINTYPE.left, "plm_unit", "t3", "t3.unitid=t2.unitid and t3.siteid=t2.siteid","unitname");
- querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t4", "t4.sa_agentsid=t1.sa_agentsid and t4.siteid=t1.siteid");
- querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid","contact","phonenumber","address");
- querySQL.addJoinTable(JOINTYPE.left, "sa_warrantycard", "t6", "t6.sku=t1.sku and t6.siteid=t1.siteid","cardno","begdate","enddate");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("t1.sa_agentsid in (select sa_agentsid from sa_agents where sys_enterpriseid="+sys_enterpriseid+")");
- querySQL.setWhere("t1.sku not in (select distinct machinecode from sa_aftersalesmag_items where siteid='"+siteid+"' and ifnull(machinecode,'')!='')");
- querySQL.setWhere(where.toString());
- querySQL.setDistinct(true);
- querySQL.setPage(pageSize, pageNumber);
- querySQL.setOrderBy(pageSorting);
- Rows rows = querySQL.query();
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "返退单详情", apiversion = R.ID20230104160603.v1.class)
- @CACHEING
- public String queryaftersalesmagMain() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_aftersalesmag", "*");
- querySQL.setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid","enterprisename");
- querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid","agentnum");
- querySQL.addJoinTable(JOINTYPE.left, "sa_aftersalesmag_items", "t4", "t1.sa_aftersalesmagid = t4.sa_aftersalesmagid AND t1.siteid = t4.siteid","name","phonenumber","address",
- "stockdate","enddate","model","spec","unitname","itemname","itemno","duty","demand","machinecode","qty","itemid");
- querySQL.addJoinTable(JOINTYPE.left, "sa_warrantycard", "t5", "t5.sku = t4.machinecode AND t5.siteid = t4.siteid","cardno");
- querySQL.addQueryFields("remarksdetail","t4.remarks");
- querySQL.addQueryFields("reasondetail","t4.reason");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("t1.sa_aftersalesmagid",sa_aftersalesmagid);
- querySQL.setPage(pageSize, pageNumber);
- Rows rows = querySQL.query();
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "查询返退单列表", apiversion = R.ID20230104160703.v1.class)
- @CACHEING
- public String queryaftersalesmagList() 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 t2.enterprisename 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.billdate >='" + 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.billdate <='" + 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_aftersalesmag", "*");
- querySQL.setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid","enterprisename");
- querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid","agentnum");
- querySQL.addJoinTable(JOINTYPE.left, "sa_aftersalesmag_items", "t4", "t1.sa_aftersalesmagid = t4.sa_aftersalesmagid AND t1.siteid = t4.siteid","name","phonenumber","address",
- "stockdate","enddate","model","unitname","itemname","itemno","duty","demand","machinecode","qty","itemid");
- querySQL.addQueryFields("remarksdetail","t4.remarks");
- querySQL.addQueryFields("reasondetail","t4.reason");
- querySQL.setSiteid(siteid);
- querySQL.setWhere(where.toString());
- querySQL.setWhere("t1.createflag=1 or t1.status !='新建'");
- querySQL.setPage(pageSize, pageNumber);
- Rows rows = querySQL.query();
- // ArrayList<Long> ids = rows.toArrayList("sa_aftersalesmagid", new ArrayList<>());
- // //查询反退金额
- // RowsMap aftersalesmagReturnAmountRowsMap = Aftersalesmag.getAftersalesmagReturnAmount(this, ids);
- // for (Row row : rows) {
- //
- // Long id = row.getLong("sa_aftersalesmagid");
- // if (aftersalesmagReturnAmountRowsMap.get(id.toString()).isNotEmpty()) {
- // row.put("returnamount", aftersalesmagReturnAmountRowsMap.get(id.toString()).get(0).getBigDecimal("returnamount").toPlainString());
- // } else {
- // row.put("returnamount", 0);
- // }
- //
- // }
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "删除", apiversion = R.ID20230104160803.v1.class)
- @CACHEING_CLEAN(apiClass = {aftersalesmag.class})
- public String delete() throws YosException {
- JSONArray sa_aftersalesmagids = content.getJSONArray("sa_aftersalesmagids");
- BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sa_aftersalesmagids.size());
- for (Object o : sa_aftersalesmagids) {
- long sa_aftersalesmagid = Long.parseLong(o.toString());
- Rows RowsStatus = dbConnect
- .runSqlQuery("select sa_aftersalesmagid,status from sa_aftersalesmag where siteid='" + siteid
- + "' and sa_aftersalesmagid='" + sa_aftersalesmagid + "'");
- if (RowsStatus.isNotEmpty()) {
- if (!RowsStatus.get(0).getString("status").equals("新建")) {
- batchDeleteErr.addErr(sa_aftersalesmagid, "非新建状态的返退单无法删除");
- continue;
- }
- }
- dbConnect.runSqlUpdate("delete from sa_aftersalesmag where siteid='" + siteid + "' and sa_aftersalesmagid="
- + sa_aftersalesmagid);
- dbConnect.runSqlUpdate("delete from sa_aftersalesmag_items where siteid='" + siteid + "' and sa_aftersalesmagid="
- + sa_aftersalesmagid);
- }
- return batchDeleteErr.getReturnObject().toString();
- }
- @API(title = "撤回反撤回", apiversion = R.ID2025061316113303.v1.class)
- @CACHEING_CLEAN( apiClass = {aftersalesmag.class, aftersalesmagItems.class,restcontroller.sale.aftersalesmag.aftersalesmag.class})
- public String chehui() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- boolean ischehui = content.getBooleanValue("ischehui");
- Rows rows = dbConnect.runSqlQuery("select t1.*,t3.agentnum,t2.enterprisename from sa_aftersalesmag t1 left join sys_enterprise t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid left join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t1.siteid=t3.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- for (Row row : rows) {
- if (ischehui) {
- if (!row.getString("status").equals("提交")) {
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单为非提交状态,无法撤回")
- .toString();
- }
- } else {
- if (!row.getString("status").equals("已撤回")) {
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单为非撤回状态,无法反撤回")
- .toString();
- }
- }
- }
- ArrayList<String> sqlList = new ArrayList<>();
- SQLFactory sqlFactoryupdate;
- if (ischehui) {
- if(StringUtils.isBlank(content.getStringValue("reason"))){
- return getErrReturnObject().setErrMsg("请填写撤回原因")
- .toString();
- }
- sqlFactoryupdate = new SQLFactory(this, "返退单撤回");
- sqlFactoryupdate.addParameter("reason", content.getStringValue("reason"));
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "撤回", "返退单撤回成功").getSQL());
- } else {
- sqlFactoryupdate = new SQLFactory(this, "返退单反撤回");
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "反撤回", "返退单反撤回成功").getSQL());
- }
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("checkby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "确认反确认", apiversion = R.ID2025061316240103.v1.class)
- public String confirm() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- boolean isconfirm = content.getBooleanValue("isconfirm");
- Rows rows = dbConnect.runSqlQuery("select t1.*,t3.agentnum,t2.enterprisename from sa_aftersalesmag t1 left join sys_enterprise t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid left join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t1.siteid=t3.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- for (Row row : rows) {
- if (isconfirm) {
- if (!row.getString("status").equals("提交")) {
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单为非提交状态,无法确认")
- .toString();
- }
- } else {
- if (!row.getString("status").equals("确认")) {
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单为非确认状态,无法反确认")
- .toString();
- }
- }
- }
- ArrayList<String> sqlList = new ArrayList<>();
- SQLFactory sqlFactoryupdate;
- if (isconfirm) {
- sqlFactoryupdate = new SQLFactory(this, "返退单确认");
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "确认", "返退单确认成功").getSQL());
- } else {
- sqlFactoryupdate = new SQLFactory(this, "返退单反确认");
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "反确认", "返退单反确认成功").getSQL());
- }
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("confirmby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "审核反审核", apiversion = R.ID20230104161103.v1.class)
- @CACHEING_CLEAN(apiClass = {aftersalesmag.class, aftersalesmagItems.class,restcontroller.sale.aftersalesmag.aftersalesmag.class})
- public String check() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- boolean ischeck = content.getBooleanValue("ischeck");
- // Rows rows = dbConnect
- // .runSqlQuery("select sa_aftersalesmagid,status,billno from sa_aftersalesmag where sa_aftersalesmagid ='"
- // + sa_aftersalesmagid + "' and siteid='" + siteid + "'");
- long stockid=0;
- long st_stockbillidold=0;
- Rows stockrows = dbConnect.runSqlQuery("select t1.stockid from st_stock t1 where t1.stockname ='返修仓库' and t1.siteid='" + siteid + "'");
- if(!stockrows.isEmpty()){
- stockid=stockrows.get(0).getLong("stockid");
- }
- Rows rows = dbConnect.runSqlQuery("select t1.*,t3.agentnum,t2.enterprisename from sa_aftersalesmag t1 left join sys_enterprise t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid left join sa_agents t3 on t1.sys_enterpriseid=t3.sys_enterpriseid and t1.siteid=t3.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- Rows rowsdetail = dbConnect.runSqlQuery("select t1.sa_aftersalesmag_itemsid,t1.machinecode,t1.itemid,t4.itemno,t4.model,t2.batchno,t1.qty,t1.price,t1.reason from sa_aftersalesmag_items t1 left join sa_orderitems t2 on t1.sa_orderitemsid=t2.sa_orderitemsid and t1.siteid=t2.siteid left join plm_item t4 on t1.itemid=t4.itemid and t1.siteid=t4.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if(rows.isEmpty()){
- return getErrReturnObject().setErrMsg("返退单不存在")
- .toString();
- }
- if(rowsdetail.isEmpty()){
- return getErrReturnObject().setErrMsg("返退单明细为空,无法审核反审核")
- .toString();
- }
- for (Row row : rows) {
- if (ischeck) {
- if (!row.getString("status").equals("确认")) {
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单为非确认状态,无法审核")
- .toString();
- }
- } else {
- if (!row.getString("status").equals("审核")) {
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单为非审核状态,无法反审核")
- .toString();
- }
- Rows stockbillrows =dbConnect.runSqlQuery("select st_stockbillid,status from st_stockbill where sourceobject ='sa_aftersalesmag' and sourceid="+sa_aftersalesmagid+" and siteid='"+siteid+"'");
- if(stockbillrows.isNotEmpty()){
- st_stockbillidold=stockbillrows.get(0).getLong("st_stockbillid");
- if(!stockbillrows.get(0).getString("status").equals("新建")){
- return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的返退单对应的返退入库单为非新建状态,无法反审核")
- .toString();
- }
- }
- }
- }
- ArrayList<String> sqlList = new ArrayList<>();
- SQLFactory sqlFactoryupdate;
- if (ischeck) {
- InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill");
- long st_stockbillid = createTableID("st_stockbill");
- insertSQL.setUniqueid(st_stockbillid);
- insertSQL.setSiteid(siteid);
- insertSQL.setValue("billno", createBillCode("stockbill"));
- insertSQL.setValue("type", "返修入库");
- // insertSQL.setValue("typemx", "");
- insertSQL.setValue("sys_enterpriseid",rows.get(0).getLong("sys_enterpriseid"));
- insertSQL.setValue("rb", 1);
- insertSQL.setValue("sourceobject", "sa_aftersalesmag");
- insertSQL.setValue("sourceid", sa_aftersalesmagid);
- insertSQL.setValue("stockid", stockid);
- insertSQL.setValue("remarks", rows.get(0).getString("remarks"));
- insertSQL.setValue("status", "新建");
- insertSQL.setValue("createby",username);
- insertSQL.setDateValue("createdate");
- insertSQL.setDateValue("billdate");
- sqlList.add(insertSQL.getSQL());
- int i=1;
- for(Row row :rowsdetail){
- insertSQL = SQLFactory.createInsertSQL(this, "st_stockbill_items");
- long st_stockbill_itemsid = createTableID("st_stockbill_items");
- insertSQL.setUniqueid(st_stockbill_itemsid);
- insertSQL.setSiteid(siteid);
- insertSQL.setValue("rowno",i);
- insertSQL.setValue("sa_dispatch_itemsid",0);
- insertSQL.setValue("sourceobject", "sa_aftersalesmag_items");
- insertSQL.setValue("sourceid", row.getLong("sa_aftersalesmag_itemsid"));
- insertSQL.setValue("stockid", row.getLong("outstockid"));
- insertSQL.setValue("itemid",row.getLong("itemid"));
- insertSQL.setValue("itemno",row.getString("itemno"));
- insertSQL.setValue("itemname",row.getString("itemname"));
- insertSQL.setValue("model",row.getString("model"));
- insertSQL.setValue("sku",row.getString("machinecode"));
- insertSQL.setValue("qty",row.getBigDecimal("qty"));
- insertSQL.setValue("isrepair",false);
- insertSQL.setValue("st_stockbillid",st_stockbillid);
- i++;
- sqlList.add(insertSQL.getSQL());
- }
- sqlFactoryupdate = new SQLFactory(this, "返退单审核");
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "审核", "返退单审核成功").getSQL());
- } else {
- sqlList.add("delete from st_stockbill where sourceobject ='sa_aftersalesmag' and sourceid="+sa_aftersalesmagid+" and siteid='"+siteid+"'");
- sqlList.add("delete from st_stockbill_items where st_stockbillid="+st_stockbillidold+" and siteid='"+siteid+"'");
- sqlFactoryupdate = new SQLFactory(this, "返退单反审核");
- sqlList.add(
- DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "反审核", "返退单反审核成功").getSQL());
- }
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("checkby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "更新退货单退款账户", apiversion = R.ID20230706103703.v1.class)
- public String updateAccountclass() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- Long sa_accountclassid = content.getLong("sa_accountclassid");
- Rows rows = dbConnect.runSqlQuery("select * from sa_aftersalesmag where sa_aftersalesmagid=" + sa_aftersalesmagid + " and siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- } else {
- if (!(rows.get(0).getString("status").equals("新建") || rows.get(0).getString("status").equals("审核"))) {
- return getErrReturnObject().setErrMsg("非新建、审核状态无法修改退款账户").toString();
- }
- }
- SQLFactory sqlFactory = new SQLFactory(this, "更新退货单退款账户");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("username", username);
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactory.addParameter("sa_accountclassid", sa_accountclassid);
- dbConnect.runSqlUpdate(sqlFactory);
- return queryaftersalesmagMain();
- }
- @API(title = "复核", apiversion = R.ID20230104160903.v1.class)
- @CACHEING_CLEAN(apiClass = {aftersalesmag.class, aftersalesmagItems.class, cashbill.class,restcontroller.sale.aftersalesmag.aftersalesmag.class})
- public String recheck() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- Long sa_accountclassid = content.getLongValue("sa_accountclassid");
- Long sa_orderid = 0L;
- Rows rows = dbConnect.runSqlQuery(
- "select t1.sa_aftersalesmagid,t1.status,t1.billno,ifnull(t1.sa_orderid,0) sa_orderid ,t1.returnamount,t1.payamount,t1.sys_enterpriseid,t1.sa_accountclassid,t2.sonum,t1.type from sa_aftersalesmag t1 left join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- } else {
- sa_orderid = rows.get(0).getLong("sa_orderid");
- if (!rows.get(0).getString("status").equals("审核")) {
- return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非审核状态,无法复核")
- .toString();
- }
- }
- // Rows stockbillRows = dbConnect.runSqlQuery("select * from st_stockbill_items t1 inner join st_stockbill t2 on t1.st_stockbillid=t2.st_stockbillid and t1.siteid=t2.siteid inner join sa_aftersalesmag_items t3 on t1.sa_dispatch_itemsid=t3.sa_aftersalesmag_itemsid and t1.siteid=t3.siteid where t2.status='审核' and t2.rb=0 and t1.siteid='" + siteid + "' and t3.sa_aftersalesmagid=" + sa_aftersalesmagid);
- // if (stockbillRows.isEmpty()) {
- // return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单在K3中还未退货,无法复核")
- // .toString();
- // }
- Long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
- if(dbConnect.runSqlQuery("SELECT 1 from sa_agents WHERE sys_enterpriseid="+sys_enterpriseid+" and status='启用'").isEmpty()){
- return getErrReturnObject().setErrMsg("经销商已禁用,请启用后再试。").toString();
- }
- ArrayList<String> sqlList = new ArrayList<>();
- Rows sa_aftersalesmag_itemsByOrderRows = dbConnect.runSqlQuery("select sum(t1.qty) qty,t1.itemid from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid +" group by t1.itemid");
- for (Row row : sa_aftersalesmag_itemsByOrderRows) {
- BigDecimal qty = row.getBigDecimal("qty");
- if (rows.get(0).getString("type").equals("退货单")) {
- sqlList.add("update plm_item set saleqty=if((saleqty-"+qty+")>0,saleqty-"+qty+",0) where itemid=" + row.getLong("itemid"));
- }
- }
- Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname,t2.skucontrol from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
- for (Row row : sa_aftersalesmag_itemsRows) {
- BigDecimal returnqty = row.getBigDecimal("qty");
- if (rows.get(0).getString("type").equals("退货单")) {
- sqlList.add("update sa_orderitems set returnqty=returnqty+" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
- }
- }
- if (Parameter.getBoolean("system.ccerp_dockswitch")) {
- ERPDocking erpDocking =new ERPDocking(siteid);
- if (!erpDocking.getUrl().isEmpty()) {
- String billno = rows.get(0).getString("billno");
- String result =erpDocking.recheckErpSareturn(billno,false,this,sa_aftersalesmagid);
- if(!result.equals("true")){
- return getErrReturnObject().setErrMsg(result).toString();
- }
- }
- }
- Long sa_cashbillid = 0L;
- if (rows.get(0).getString("type").equals("退货单")) {
- if (rows.get(0).getDouble("returnamount") > 0) {
- /******** 生成支出凭证 ********/
- BigDecimal returnamount = rows.get(0).getBigDecimal("returnamount").negate();
- CashbillEntity cashbillEntity = new CashbillEntity();
- cashbillEntity.setAmount(returnamount);
- cashbillEntity.setOwnerid(sa_aftersalesmagid);
- cashbillEntity.setOwnertable("sa_aftersalesmag");
- cashbillEntity.setRemarks("由返退单号" + rows.get(0).getString("billno") + "复核时生成");
- cashbillEntity.setSource("退货单复核");
- if (sa_accountclassid == 0) {
- JSONObject cashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, rows.get(0).getLong("sa_accountclassid"), cashbillEntity, true);
- sqlList.addAll(cashbillPay.getJSONArray("sqlList").toJavaList(String.class));
- sa_cashbillid = cashbillPay.getLong("sa_cashbillid");
- } else {
- sqlList.add("update sa_aftersalesmag set sa_accountclassid=" + sa_accountclassid + " where sa_aftersalesmagid=" + sa_aftersalesmagid + " and siteid='" + siteid + "'");
- JSONObject cashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, sa_accountclassid, cashbillEntity, true);
- sqlList.addAll(cashbillPay.getJSONArray("sqlList").toJavaList(String.class));
- sa_cashbillid = cashbillPay.getLong("sa_cashbillid");
- }
- }
- // /**
- // * * 核销对冲计算
- // */
- // {
- // HashMap<Long, Row> orderdetailmap = new HashMap<>();
- // HashMap<Long, BigDecimal> orderdetailchangeamount = new HashMap<>();
- // Rows rowsOrder = dbConnect.runSqlQuery("select * from sa_order t1 where t1.sa_orderid=" + sa_orderid);
- // Rows rowsOrderDetail = dbConnect.runSqlQuery("select t1.undeliqty,t1.deliedqty,t1.qty,t1.price,t1.returnqty,t1.amount,t1.sa_orderitemsid,t1.writeoffamount from sa_orderitems t1 where t1.sa_orderid=" + sa_orderid);
- // RowsMap rowsMap = rowsOrderDetail.toRowsMap("sa_orderitemsid");
- // Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
- // for (Row row : sa_aftersalesmag_itemsRows) {
- // Rows orderitemsRows = rowsMap.get(row.getString("sa_orderitemsid"));
- // BigDecimal price = orderitemsRows.get(0).getBigDecimal("price");
- // BigDecimal qty = row.getBigDecimal("qty");
- // BigDecimal returnamount_detail = qty.multiply(price);//退货金额
- // BigDecimal writeoffamount = orderitemsRows.get(0).getBigDecimal("writeoffamount");//订单行已核销金额
- // if (writeoffamount.compareTo(BigDecimal.ZERO) > 0 && (orderitemsRows.get(0).getBigDecimal("amount").subtract(returnamount_detail)).compareTo(writeoffamount) < 0) {
- // //如果已核销金额大于0 且调整后折后金额小于已核销金额,则需要将差价进行回冲
- // orderdetailmap.put(orderitemsRows.get(0).getLong("sa_orderitemsid"), orderitemsRows.get(0));
- // orderdetailchangeamount.put(orderitemsRows.get(0).getLong("sa_orderitemsid"), writeoffamount.subtract(orderitemsRows.get(0).getBigDecimal("amount").subtract(returnamount_detail)));
- // }
- // }
- //
- // /**
- // * * 核销对冲
- // */
- // if (!orderdetailmap.isEmpty()) {
- // sqlList.addAll(new twriteoffbill_orderchange(rowsOrder.get(0), orderdetailmap, orderdetailchangeamount).hedging());
- // }
- // }
- }
- SQLFactory sqlFactoryupdate = new SQLFactory(this, "返退单复核");
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("recheckby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "复核", "返退单复核成功").getSQL());
- dbConnect.runSqlUpdate(sqlList);
- String type = rows.get(0).getString("type");
- Rows aftersalesmagrows = dbConnect.runSqlQuery(
- "select t1.sa_aftersalesmagid,t1.sa_accountclassid,t2.accountname,t1.returnamount from sa_aftersalesmag t1 left join sa_accountclass t2 on t1.sa_accountclassid=t2.sa_accountclassid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if (type.equals("退货单")) {
- String message = "您的返退申请单" + rows.get(0).getString("billno") + "已复核,,您的【" + aftersalesmagrows.get(0).getString("accountname") + "】账户已收入【" + aftersalesmagrows.get(0).getString("returnamount") + "】元!";
- sendMsg(message, sa_aftersalesmagid, sys_enterpriseid);
- Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
- ArrayList<Long> userIdList = dbConnect.runSqlQuery("select userid from sys_enterprise_hr where siteid='" + siteid + "' and isleader=1 and sys_enterpriseid=" + sys_enterpriseid).toArrayList("userid", new ArrayList<>());
- Executor.sendEml(this, "aftersale_check", sa_aftersalesmagid, siteid, userIdList);
- }
- return getSucReturnObject().toString();
- }
- @API(title = "反复核", apiversion = R.ID20230523085403.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class}, apiClass = {aftersalesmag.class, aftersalesmagItems.class, cashbill.class})
- public String unrecheck() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- Long sa_orderid = 0L;
- Rows rows = dbConnect.runSqlQuery(
- "select t1.sa_aftersalesmagid,t1.status,t1.billno,ifnull(t1.sa_orderid,0) sa_orderid ,t1.returnamount,t1.payamount,t1.sys_enterpriseid,t1.sa_accountclassid,t2.sonum,t1.type from sa_aftersalesmag t1 left join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- } else {
- sa_orderid = rows.get(0).getLong("sa_orderid");
- if (!rows.get(0).getString("status").equals("复核")) {
- return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非复核状态,无法反复核")
- .toString();
- }
- }
- Rows stockbillRows = dbConnect.runSqlQuery("select * from st_stockbill_items t1 inner join st_stockbill t2 on t1.st_stockbillid=t2.st_stockbillid and t1.siteid=t2.siteid inner join sa_aftersalesmag_items t3 on t1.sa_dispatch_itemsid=t3.sa_aftersalesmag_itemsid and t1.siteid=t3.siteid where t2.status='审核' and t2.rb=0 and t1.siteid='" + siteid + "' and t3.sa_aftersalesmagid=" + sa_aftersalesmagid);
- if (stockbillRows.isNotEmpty()) {
- return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单在K3中的红字出库单还未删除,无法复核")
- .toString();
- }
- ArrayList<String> sqlList = new ArrayList<>();
- Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
- for (Row row : sa_aftersalesmag_itemsRows) {
- BigDecimal returnqty = row.getBigDecimal("qty");
- if (rows.get(0).getString("type").equals("退货单")) {
- sqlList.add("update sa_orderitems set returnqty=returnqty-" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
- }
- }
- // if (Parameter.get("system.ccerp_dockswitch").equalsIgnoreCase("true") ) {
- // ERPDocking erpDocking =new ERPDocking(siteid);
- // if (!erpDocking.getUrl().isEmpty()) {
- // String billno = rows.get(0).getString("billno");
- // String result =erpDocking.recheckErpSareturn(billno,true,this,sa_aftersalesmagid);
- // if(!result.equals("true")){
- // return getErrReturnObject().setErrMsg(result).toString();
- // }
- // }
- //
- // }
- Long sa_cashbillid = 0L;
- long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
- String type = rows.get(0).getString("type");
- if (type.equals("退货单")) {
- if (rows.get(0).getDouble("returnamount") > 0) {
- /******** 生成支出凭证 ********/
- BigDecimal returnamount = rows.get(0).getBigDecimal("returnamount");
- CashbillEntity cashbillEntity = new CashbillEntity();
- cashbillEntity.setAmount(returnamount);
- cashbillEntity.setOwnerid(sa_aftersalesmagid);
- cashbillEntity.setOwnertable("sa_aftersalesmag");
- cashbillEntity.setRemarks("由返退单号" + rows.get(0).getString("billno") + "反复核时生成" );
- cashbillEntity.setSource("退货单反复核");
- if (!Accountbalance.judgeBalance(this, sys_enterpriseid, rows.get(0).getLong("sa_accountclassid"), returnamount)) {
- return getErrReturnObject().setErrMsg("经销商账户余额不足无法反复核")
- .toString();
- }
- // Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname,t2.skucontrol from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
- // for (Row row : sa_aftersalesmag_itemsRows) {
- // BigDecimal returnqty = row.getBigDecimal("qty");
- // if(rows.get(0).getString("type").equals("退货单")){
- // sqlList.add("update sa_orderitems set returnqty=returnqty-" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
- // }
- // }
- JSONObject cashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, rows.get(0).getLong("sa_accountclassid"), cashbillEntity, true);
- sqlList.addAll(cashbillPay.getJSONArray("sqlList").toJavaList(String.class));
- sa_cashbillid = cashbillPay.getLong("sa_cashbillid");
- }
- }
- SQLFactory sqlFactoryupdate = new SQLFactory(this, "返退单反复核");
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("recheckby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "反复核", "返退单反复核成功").getSQL());
- dbConnect.runSqlUpdate(sqlList);
- if (type.equals("退货单")) {
- String message = "您的退货单" + rows.get(0).getString("billno") + "已反复核,,退款已从账户扣除,请及时查看!";
- sendMsg(message, sa_aftersalesmagid, sys_enterpriseid);
- Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
- }
- return getSucReturnObject().toString();
- }
- @API(title = "关闭", apiversion = R.ID20230522090403.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class}, apiClass = {aftersalesmag.class, aftersalesmagItems.class, cashbill.class})
- public String close() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- Long sa_orderid = 0L;
- Rows rows = dbConnect.runSqlQuery(
- "select t1.sa_aftersalesmagid,t1.status,t1.billno,ifnull(t1.sa_orderid,0) sa_orderid ,t1.returnamount,t1.payamount,t1.sys_enterpriseid,t1.sa_accountclassid,t2.sonum,t1.type from sa_aftersalesmag t1 left join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- } else {
- sa_orderid = rows.get(0).getLong("sa_orderid");
- if (!rows.get(0).getString("status").equals("审核")) {
- return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非审核状态,无法关闭")
- .toString();
- }
- }
- ArrayList<String> sqlList = new ArrayList<>();
- if (Parameter.getBoolean("system.ccerp_dockswitch")) {
- ERPDocking erpDocking = new ERPDocking(siteid);
- if (!erpDocking.getUrl().isEmpty()) {
- String billno = rows.get(0).getString("billno");
- String result = erpDocking.recheckErpSareturn(billno, true, this, sa_aftersalesmagid);
- if (!result.equals("true")) {
- return getErrReturnObject().setErrMsg(result).toString();
- }
- }
- }
- if (rows.get(0).getString("type").equals("退货单")) {
- Rows sa_aftersalesmag_itemsRows = dbConnect.runSqlQuery("select t1.qty,t1.sa_orderitemsid,t2.itemno,t2.itemname,t2.skucontrol from sa_aftersalesmag_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid=" + sa_aftersalesmagid);
- for (Row row : sa_aftersalesmag_itemsRows) {
- BigDecimal returnqty = row.getBigDecimal("qty");
- if (rows.get(0).getString("type").equals("退货单")) {
- sqlList.add("update sa_orderitems set returnqty=returnqty-" + returnqty + " where sa_orderitemsid=" + row.getString("sa_orderitemsid"));
- }
- }
- }
- SQLFactory sqlFactoryupdate = new SQLFactory(this, "返退单关闭");
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("closeby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "关闭", "返退单关闭成功").getSQL());
- dbConnect.runSqlUpdate(sqlList);
- String type = rows.get(0).getString("type");
- Long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
- if (type.equals("退货单")) {
- String message = "您的退货单" + rows.get(0).getString("billno") + "已关闭,请及时查收!";
- sendMsg(message, sa_aftersalesmagid, sys_enterpriseid);
- }
- return getSucReturnObject().toString();
- }
- public void sendMsg(String content, Long sa_aftersalesmagid, Long sys_enterpriseid) throws YosException {
- ArrayList<Long> userList = getEnterpriseHrs(sys_enterpriseid).toArrayList("userid", new ArrayList<>());
- Remind remind = new Remind(this);
- remind.setTitle("退/换货单消息");
- remind.setContent(content);
- remind.setType("应用");
- remind.setObjectid(sa_aftersalesmagid);
- remind.setObjectname("sa_aftersalesmag");
- remind.setTouserid(userList);
- remind.sendByDialogMsg().createSys_message();
- }
- @API(title = "查询企业", apiversion = R.ID20230221170804.v1.class)
- public String queryenter() 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.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t1.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- }
- ArrayList<Long> agents = Hr.getAgents(this, hrid);
- // SQLFactory sqlFactory = new SQLFactory(this, "企业查询", pageSize, pageNumber, pageSorting);
- // sqlFactory.addParameter("siteid", siteid);
- // sqlFactory.addParameter_in("ids", agents.toArray());
- // sqlFactory.addParameter_SQL("where", where);
- // Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterpriseid", "enterprisename", "contact",
- "address","phonenumber","province","city","county","grade");
- querySQL.setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.inner, "sa_agents", "t2", "t1.siteid = t2.siteid and t1.sys_enterpriseid = t2.sys_enterpriseid","isservice","sa_agentsid","agentnum"
- ,"type","signdate","createby","createdate","status");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("t1.sys_enterpriseid",agents.toArray());
- querySQL.setWhere(where.toString());
- querySQL.setPage(pageSize, pageNumber);
- querySQL.setOrderBy(pageSorting);
- Rows rows = querySQL.query();
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "反复核", apiversion = R.ID20230104161003.v1.class)
- @CACHEING_CLEAN(apiversions = {R.ID20230104160603.v1.class, R.ID20230104160703.v1.class, R.ID20230105110903.class, R.ID20230105161503.v1.class}, apiClass = {aftersalesmag.class, aftersalesmagItems.class, cashbill.class})
- public String uncheck() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- Long sa_orderid = 0L;
- Rows rows = dbConnect.runSqlQuery(
- "select t1.sa_aftersalesmagid,t1.status,t1.billno,ifnull(t1.sa_orderid,0) sa_orderid ,t1.returnamount,t1.payamount,t1.sys_enterpriseid,t1.sa_accountclassid,t2.sonum,t1.type from sa_aftersalesmag t1 left join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- } else {
- sa_orderid = rows.get(0).getLong("sa_orderid");
- if (!rows.get(0).getString("status").equals("复核")) {
- return getErrReturnObject().setErrMsg("单号为:【" + rows.get(0).getString("billno") + "】的返退单为非复核状态,无法反复核")
- .toString();
- }
- }
- ArrayList<String> sqlList = new ArrayList<>();
- if (Parameter.getBoolean("system.ccerp_dockswitch")) {
- ERPDocking erpDocking = new ERPDocking(siteid);
- if (!erpDocking.getUrl().isEmpty()) {
- String billno = rows.get(0).getString("billno");
- JSONArray jsonArray = erpDocking.queryErpSareturn(billno);
- if (!jsonArray.isEmpty()) {
- return getErrReturnObject().setErrMsg("请在erp中删除该返退单后进行此反复核操作").toString();
- }
- }
- }
- Long sa_cashbillid = 0L;
- long sys_enterpriseid = rows.get(0).getLong("sys_enterpriseid");
- String type = rows.get(0).getString("type");
- if (type.equals("退货单")) {
- if (rows.get(0).getDouble("returnamount") != 0) {
- /******** 生成支出凭证 ********/
- BigDecimal returnamount = rows.get(0).getBigDecimal("returnamount");
- CashbillEntity cashbillEntity = new CashbillEntity();
- cashbillEntity.setAmount(returnamount);
- cashbillEntity.setOwnerid(sa_aftersalesmagid);
- cashbillEntity.setOwnertable("sa_aftersalesmag");
- cashbillEntity.setRemarks("退货单号:" + rows.get(0).getString("billno") + ";订单号:" + rows.get(0).getString("sonum"));
- cashbillEntity.setSource("退货单反复核");
- JSONObject cashbillPay = Accountbalance.createCashbillPay(this, sys_enterpriseid, rows.get(0).getLong("sa_accountclassid"), cashbillEntity, true);
- sqlList.addAll(cashbillPay.getJSONArray("sqlList").toJavaList(String.class));
- sa_cashbillid = cashbillPay.getLong("sa_cashbillid");
- }
- }
- SQLFactory sqlFactoryupdate = new SQLFactory(this, "返退单反复核");
- sqlFactoryupdate.addParameter("siteid", siteid);
- sqlFactoryupdate.addParameter("sa_aftersalesmagid", sa_aftersalesmagid);
- sqlFactoryupdate.addParameter("recheckby", username);
- sqlList.add(sqlFactoryupdate.getSQL());
- sqlList.add(DataContrlLog.createLog(this, "sa_aftersalesmag", sa_aftersalesmagid, "反复核", "返退单反复核成功").getSQL());
- dbConnect.runSqlUpdate(sqlList);
- if (type.equals("退货单")) {
- Accountbalance.remindSend(this, sys_enterpriseid, sa_cashbillid);
- }
- return getSucReturnObject().toString();
- }
- @API(title = "判断当前账户余额是否足够", apiversion = R.ID20230417141103.v1.class)
- public String judgeBalance() throws YosException {
- Long sa_aftersalesmagid = content.getLong("sa_aftersalesmagid");
- Rows rows = dbConnect.runSqlQuery(
- "select t1.sa_aftersalesmagid,t1.status,t1.billno,ifnull(t1.sa_orderid,0) sa_orderid ,t1.returnamount,t1.payamount,t1.sys_enterpriseid,t1.sa_accountclassid,t2.sonum,t1.type from sa_aftersalesmag t1 left join sa_order t2 on t1.sa_orderid=t2.sa_orderid and t1.siteid=t2.siteid where t1.sa_aftersalesmagid ='"
- + sa_aftersalesmagid + "' and t1.siteid='" + siteid + "'");
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("该返退单不存在").toString();
- }
- boolean flag = Accountbalance.judgeBalance(this, rows.get(0).getLong("sys_enterpriseid"), rows.get(0).getLong("sa_accountclassid"), rows.get(0).getBigDecimal("returnamount"));
- return getSucReturnObject().setData(flag).toString();
- }
- }
|