|
@@ -10,7 +10,9 @@ 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.stockbill.stockbill;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
@@ -47,6 +49,7 @@ public class expressform extends Controller {
|
|
|
String rcv_county = content.getStringValue("rcv_county");
|
|
|
String rcv_address = content.getStringValue("rcv_address");
|
|
|
long expresssdrid = content.getLongValue("expresssdrid");
|
|
|
+ String mailno=content.getStringValue("mailno");
|
|
|
|
|
|
if (expressformid <= 0) {
|
|
|
String orderby="";
|
|
@@ -87,7 +90,8 @@ public class expressform extends Controller {
|
|
|
insertSQL.setValue("rcv_address", rcv_address);
|
|
|
insertSQL.setValue("expresssdrid", expresssdrid);
|
|
|
insertSQL.setValue("remarks", remarks);
|
|
|
- insertSQL.setValue("billno", createBillCode("expressform"));
|
|
|
+ insertSQL.setValue("mailno", mailno);
|
|
|
+ insertSQL.setValue("txlogisticid", createBillCode("expressform"));
|
|
|
|
|
|
insertSQL.setValue("createby", username);
|
|
|
insertSQL.setDateValue("createdate");
|
|
@@ -124,6 +128,7 @@ public class expressform extends Controller {
|
|
|
updateSQL.setValue("rcv_county", rcv_county);
|
|
|
updateSQL.setValue("rcv_address", rcv_address);
|
|
|
updateSQL.setValue("remarks", remarks);
|
|
|
+ updateSQL.setValue("mailno", mailno);
|
|
|
updateSQL.setValue("changeby", username);
|
|
|
updateSQL.setDateValue("changedate");
|
|
|
sqlList.add(updateSQL.getSQL());
|
|
@@ -201,13 +206,13 @@ public class expressform extends Controller {
|
|
|
}
|
|
|
|
|
|
@API(title = "删除", apiversion = R.ID2025080614521603.v1.class)
|
|
|
- @CACHEING_CLEAN(apiClass = {expressform.class})
|
|
|
+ @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
|
|
|
public String delete() throws YosException {
|
|
|
JSONArray expressformids = content.getJSONArray("expressformids");
|
|
|
BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, expressformids.size());
|
|
|
for (Object o : expressformids) {
|
|
|
long expressformid = Long.parseLong(o.toString());
|
|
|
- Rows RowsStatus = dbConnect.runSqlQuery("select expressformid,status from expressform where siteid='"
|
|
|
+ Rows RowsStatus = dbConnect.runSqlQuery("select expressformid,status,success,mailno,txlogisticid from expressform where siteid='"
|
|
|
+ siteid + "' and expressformid='" + expressformid + "'");
|
|
|
|
|
|
if (RowsStatus.isNotEmpty()) {
|
|
@@ -215,12 +220,221 @@ public class expressform extends Controller {
|
|
|
batchDeleteErr.addErr(expressformid, "非新建状态的快递信息无法删除");
|
|
|
continue;
|
|
|
}
|
|
|
+ if (!StringUtils.isNotBlank(RowsStatus.get(0).getString("mailno"))) {
|
|
|
+ batchDeleteErr.addErr(expressformid, "该快递信息单已填写'电子面单号',无法删除!");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (RowsStatus.get(0).getBoolean("success")) {
|
|
|
+ batchDeleteErr.addErr(expressformid, "该快递信息单已成功生成电子面单,无法删除!");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
ArrayList<String> sqllist = new ArrayList<>();
|
|
|
sqllist.add("delete from expressform where siteid='" + siteid + "' and expressformid=" + expressformid);
|
|
|
+ sqllist.add("update st_stockbill set txlogisticid='',mailno='' where siteid='" + siteid + "' and txlogisticid=" + RowsStatus.get(0).getString("txlogisticid"));
|
|
|
//sqllist.add("delete from expressformbillcodes where siteid='" + siteid + "' and expressformid=" + expressformid);
|
|
|
dbConnect.runSqlUpdate(sqllist);
|
|
|
}
|
|
|
return batchDeleteErr.getReturnObject().toString();
|
|
|
}
|
|
|
+
|
|
|
+ @API(title = "可绑定销售出库单查询", apiversion = R.ID2025080711005903.v1.class)
|
|
|
+ @CACHEING
|
|
|
+ public String querycanbindstockbills() throws YosException {
|
|
|
+ long 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("t1.billno like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append("or t1.remarks like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append(")");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill","*");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid",
|
|
|
+ "enterprisename", "abbreviation");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid",
|
|
|
+ "agentnum");
|
|
|
+ querySQL.setWhere("t1.siteid", siteid);
|
|
|
+ querySQL.setWhere("t1.sys_enterpriseid", sys_enterpriseid);
|
|
|
+ querySQL.setWhere("t1.type='销售出库' and t1.status='审核' and t1.rb=1 and ifnull(t1.txlogisticid,'')=''");
|
|
|
+ querySQL.setWhere(where);
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ querySQL.setOrderBy(pageSorting);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "已绑定销售出库单", apiversion = R.ID2025080711063603.v1.class)
|
|
|
+ @CACHEING
|
|
|
+ public String yibindstockbills() throws YosException {
|
|
|
+ String txlogisticid =content.getString("txlogisticid");
|
|
|
+ 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.remarks like'%").append(whereObject.getString("condition")).append("%' ");
|
|
|
+ where.append(")");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "st_stockbill","*");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t2", "t1.sys_enterpriseid = t2.sys_enterpriseid AND t1.siteid = t2.siteid",
|
|
|
+ "enterprisename", "abbreviation");
|
|
|
+ querySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t3", "t1.sys_enterpriseid = t3.sys_enterpriseid AND t1.siteid = t3.siteid",
|
|
|
+ "agentnum");
|
|
|
+ querySQL.setWhere("t1.siteid", siteid);
|
|
|
+ querySQL.setWhere("t1.type='销售出库' and t1.txlogisticid='"+txlogisticid+"'");
|
|
|
+ querySQL.setWhere(where);
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ querySQL.setOrderBy(pageSorting);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "绑定销售出库单", apiversion = R.ID2025080711074703.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
|
|
|
+ public String bindstockbill() throws YosException {
|
|
|
+ long expressformid = content.getLong("expressformid");
|
|
|
+ String txlogisticid =content.getString("txlogisticid");
|
|
|
+ String mailno =content.getString("mailno");
|
|
|
+ JSONArray st_stockbillids = content.getJSONArray("st_stockbillids");
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
|
|
|
+ if(rows.isEmpty()){
|
|
|
+ return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
|
|
|
+ }
|
|
|
+ if(!rows.get(0).getString("status").equals("新建")){
|
|
|
+ return getErrReturnObject().setErrMsg("非新建状态下不能操作").toString();
|
|
|
+ }
|
|
|
+ if(rows.get(0).getLong("sys_enterpriseid")==0){
|
|
|
+ return getErrReturnObject().setErrMsg("必须指定经销商编号,才能关联销售出库单").toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ if(st_stockbillids.size()==0) {
|
|
|
+ return getErrReturnObject().setErrMsg("未选中任何销售出库单!").toString();
|
|
|
+ }
|
|
|
+ String sql="select * from st_stockbill where siteid='"+siteid+"' and st_stockbillid in"+st_stockbillids.toJSONString();
|
|
|
+ sql = sql.replace("[", "(").replace("]", ")");
|
|
|
+ Rows stockbillrows =dbConnect.runSqlQuery(sql);
|
|
|
+ for(Row row :stockbillrows){
|
|
|
+ if(StringUtils.isNotBlank(row.getString("txlogisticid"))){
|
|
|
+ return getErrReturnObject().setErrMsg("销售出库单"+row.getString("billno")+",已关联快递信息单!,不得重复关联!").toString();
|
|
|
+ }
|
|
|
+ sqlList.add("update st_stockbill set txlogisticid='"+txlogisticid+"',mailno='"+mailno+"' where st_stockbillid="+row.getLong("st_stockbillid"));
|
|
|
+ }
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "解绑销售出库单", apiversion = R.ID2025080711235203.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
|
|
|
+ public String unbindstockbill() throws YosException {
|
|
|
+ JSONArray st_stockbillids = content.getJSONArray("st_stockbillids");
|
|
|
+ long expressformid = content.getLong("expressformid");
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
|
|
|
+ if(rows.isEmpty()){
|
|
|
+ return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
|
|
|
+ }
|
|
|
+ if(!rows.get(0).getString("status").equals("新建")){
|
|
|
+ return getErrReturnObject().setErrMsg("非新建状态下不能操作").toString();
|
|
|
+ }
|
|
|
+ if(st_stockbillids.size()==0) {
|
|
|
+ return getErrReturnObject().setErrMsg("未选中任何销售出库单!").toString();
|
|
|
+ }
|
|
|
+ sqlList.add("update st_stockbill set txlogisticid='',mailno='' where st_stockbillid in"+st_stockbillids.toJSONString().replace("[", "(").replace("]", ")"));
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "审核", apiversion = R.ID2025080711271103.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
|
|
|
+ public String check() throws YosException {
|
|
|
+ Long expressformid = content.getLong("expressformid");
|
|
|
+ boolean ischeck =content.getBoolean("ischeck");
|
|
|
+ Rows rows = dbConnect.runSqlQuery("select t1.expressformid,t1.status,t1.mailno,t1.txlogisticid from expressform t1 where t1.expressformid ='"
|
|
|
+ + expressformid + "' and t1.siteid='" + siteid + "'");
|
|
|
+ for (Row row : rows) {
|
|
|
+ if(ischeck){
|
|
|
+ if (!row.getString("status").equals("新建")) {
|
|
|
+ return getErrReturnObject().setErrMsg("非新建状态的【"+row.getString("txlogisticid")+"】快递信息单无法审核")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ if(StringUtils.isBlank(row.getString("mailno"))) {
|
|
|
+ return getErrReturnObject().setErrMsg("面单号未填写,不能审核;请先尝试申请面单号")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if (!row.getString("status").equals("审核")) {
|
|
|
+ return getErrReturnObject().setErrMsg("非审核状态的【"+row.getString("txlogisticid")+"】快递信息单无法反审核")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "expressform");
|
|
|
+ updateSQL.setUniqueid(expressformid);
|
|
|
+ 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());
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "关闭快递信息单", apiversion = R.ID2025080711325203.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {expressform.class, stockbill.class})
|
|
|
+ public String close() throws YosException {
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ String txlogisticid =content.getString("txlogisticid");
|
|
|
+ Long expressformid = content.getLong("expressformid");
|
|
|
+ Rows stockbillrows =dbConnect.runSqlQuery("select * from st_stockbill where txlogisticid='"+txlogisticid+"' and siteid='"+siteid+"'");
|
|
|
+ Rows rows =dbConnect.runSqlQuery("select * from expressform where siteid='"+siteid+"' and expressformid="+expressformid);
|
|
|
+ if(rows.isEmpty()){
|
|
|
+ return getErrReturnObject().setErrMsg("该快递信息不存在").toString();
|
|
|
+ }
|
|
|
+ if(!rows.get(0).getString("status").equals("审核")){
|
|
|
+ return getErrReturnObject().setErrMsg("非审核状态下不能关闭").toString();
|
|
|
+ }
|
|
|
+ if((!rows.get(0).getBoolean("success")) && stockbillrows.size()==0) {
|
|
|
+ return getErrReturnObject().setErrMsg("该快递信息单未生成电子面单,且未关联销售出库单,直接删除即可").toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ for(Row row :stockbillrows){
|
|
|
+ sqlList.add("update st_stockbill set txlogisticid='',mailno='' where st_stockbillid="+row.getLong("st_stockbillid"));
|
|
|
+ }
|
|
|
+ sqlList.add("update expressform set status='关闭' where expressformid="+expressformid);
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "查询快递发件人", apiversion = R.ID2025080713343803.v1.class)
|
|
|
+ public String querysendperson() throws YosException {
|
|
|
+ QuerySQL querySQL = SQLFactory.createQuerySQL(this, "expresssdr","*");
|
|
|
+ querySQL.setTableAlias("t1");
|
|
|
+ querySQL.setWhere("t1.siteid", siteid);
|
|
|
+ querySQL.setPage(pageSize, pageNumber);
|
|
|
+ querySQL.setOrderBy(pageSorting);
|
|
|
+ Rows rows = querySQL.query();
|
|
|
+ return getSucReturnObject().setData(rows).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|