|
|
@@ -19,13 +19,17 @@ import org.apache.poi.ss.usermodel.CellStyle;
|
|
|
import org.apache.poi.ss.usermodel.DataFormat;
|
|
|
import org.apache.poi.xssf.usermodel.*;
|
|
|
import restcontroller.R;
|
|
|
+import restcontroller.sale.stockbill.stockbill;
|
|
|
import restcontroller.webmanage.executorService.Executor;
|
|
|
import restcontroller.webmanage.sale.bankabcxccard.bankabcxccard;
|
|
|
+import restcontroller.webmanage.sale.customer.Customer;
|
|
|
import restcontroller.webmanage.sale.enterprisesaleclass.EnterpriseSaleClass;
|
|
|
import restcontroller.webmanage.sale.enterprisetradefield.EnterpriseTradeField;
|
|
|
+import restcontroller.webmanage.sale.expressform.expressform;
|
|
|
import restcontroller.webmanage.sale.salearea.salearea;
|
|
|
import restcontroller.webmanage.sale.tpartreimbursement.tpartreimbursement;
|
|
|
import restcontroller.webmanage.sale.tpartreimbursement.tpartreimbursementdetail;
|
|
|
+import restcontroller.webmanage.sale.warrantycard.warrantycard;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
|
@@ -118,6 +122,144 @@ public class agents extends Controller {
|
|
|
return getSucReturnObject().setData(agentRows.isNotEmpty() ? agentRows.get(0) : new Row()).toString();
|
|
|
}
|
|
|
|
|
|
+ public void changeagentvalidate(boolean ischange,long sa_agentsid,String toagentnum,Rows agents_toagentslogRows,String agentnum,Rows agentsRows) throws YosException {
|
|
|
+ if (ischange) {
|
|
|
+ if (StringUtils.isBlank(toagentnum)) {
|
|
|
+ throw new YosException("授权经销商编号不能为空");
|
|
|
+ }
|
|
|
+ if (agentnum.equals(toagentnum)) {
|
|
|
+ throw new YosException( "授权经销商不可等于当前经销商");
|
|
|
+ }
|
|
|
+ if (!agents_toagentslogRows.isEmpty()) {
|
|
|
+ throw new YosException("已授权,不能重复授权,如需变更,请先取消授权");
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotBlank(agentsRows.get(0).getString("toagentnum"))){
|
|
|
+ throw new YosException("已授权,不能重复授权");
|
|
|
+ }
|
|
|
+ } else {// 取消授权
|
|
|
+ if(StringUtils.isBlank(agentsRows.get(0).getString("toagentnum"))){
|
|
|
+ throw new YosException("未授权,无法取消授权");
|
|
|
+ }
|
|
|
+ if (agents_toagentslogRows.isEmpty()) {
|
|
|
+ throw new YosException("不存在授权其他经销商变更记录,无法取消授权");
|
|
|
+ }
|
|
|
+ ArrayList sa_warrantycardids= agents_toagentslogRows.toRowsMap("sourceobject").get("sa_warrantycard").toArrayList("sourceid");
|
|
|
+ ArrayList sa_customersids= agents_toagentslogRows.toRowsMap("sourceobject").get("sa_customers").toArrayList("sourceid");
|
|
|
+
|
|
|
+ QuerySQL warrantycardquerySQL=SQLFactory.createQuerySQL(this,"sa_warrantycard","*");
|
|
|
+ warrantycardquerySQL.setTableAlias("t1");
|
|
|
+ warrantycardquerySQL.setWhere("t1.siteid",siteid);
|
|
|
+ warrantycardquerySQL.setWhere("t1.sa_warrantycardid",sa_warrantycardids);
|
|
|
+ Rows warrantycardrows=warrantycardquerySQL.query();
|
|
|
+ RowsMap warrantycardrowsMap =warrantycardrows.toRowsMap("sa_warrantycardid");
|
|
|
+
|
|
|
+ QuerySQL customersquerySQL=SQLFactory.createQuerySQL(this,"sa_customers","*");
|
|
|
+ customersquerySQL.setTableAlias("t1");
|
|
|
+ customersquerySQL.addJoinTable(JOINTYPE.left, "sa_agents", "t2", " t1.sa_agentsid_to = t2.sa_agentsid and t1.siteid = t2.siteid");
|
|
|
+ customersquerySQL.setWhere("t1.siteid",siteid);
|
|
|
+ customersquerySQL.setWhere("t1.sa_customersid",sa_customersids);
|
|
|
+ customersquerySQL.addQueryFields("toagentnum","t2.agentnum");
|
|
|
+ Rows customersrows=customersquerySQL.query();
|
|
|
+ RowsMap customersrowsMap = customersrows.toRowsMap("sa_customersid");
|
|
|
+ for(Row row : agents_toagentslogRows){
|
|
|
+ if(row.getString("sourceobject").equals("sa_warrantycard")){
|
|
|
+ if(warrantycardrowsMap.containsKey(row.getString("sourceid"))){
|
|
|
+ if(!warrantycardrowsMap.get(row.getString("sourceid")).get(0).getString("toagentnum").equals(agentsRows.get(0).getString("toagentnum"))){
|
|
|
+ throw new YosException("保修卡的授权经销商已变为"
|
|
|
+ + warrantycardrowsMap.get(row.getString("sourceid")).get(0).getString("toagentnum")
|
|
|
+ + "不可取消授权");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(row.getString("sourceobject").equals("sa_customers")){
|
|
|
+ if(customersrowsMap.containsKey(row.getString("sourceid"))){
|
|
|
+ if(!customersrowsMap.get(row.getString("sourceid")).get(0).getString("toagentnum").equals(agentsRows.get(0).getString("toagentnum"))){
|
|
|
+ throw new YosException("客户档案的授权经销商已变为"
|
|
|
+ + customersrowsMap.get(row.getString("sourceid")).get(0).getString("toagentnum")
|
|
|
+ + "不可取消授权");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @API(title = "经销商客户保修卡转移", apiversion = R.ID2025122416185003.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiClass = {agents.class, warrantycard.class, Customer.class})
|
|
|
+ public String changeagent() throws YosException {
|
|
|
+ boolean ischange = content.getBoolean("ischange");
|
|
|
+ String toagentnum=content.getString("toagentnum");
|
|
|
+ long sa_agentsid_to=content.getLong("sa_agentsid_to");
|
|
|
+ long sa_agentsid=content.getLong("sa_agentsid");
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ Rows agents_toagentslogRows =dbConnect.runSqlQuery("select * from sa_agents_toagentslog where isvoid=0 and sa_agentsid="+sa_agentsid);
|
|
|
+ String agentnum = "";
|
|
|
+
|
|
|
+ Rows agentsRows =dbConnect.runSqlQuery("select agentnum,toagentnum from sa_agents where sa_agentsid="+sa_agentsid);
|
|
|
+ if(agentsRows.isEmpty()){
|
|
|
+ throw new YosException("该经销商不存在");
|
|
|
+ }else{
|
|
|
+ agentnum=agentsRows.get(0).getString("agentnum");
|
|
|
+ }
|
|
|
+
|
|
|
+ changeagentvalidate(ischange,sa_agentsid,toagentnum,agents_toagentslogRows,agentnum,agentsRows);
|
|
|
+
|
|
|
+
|
|
|
+ if (ischange) {
|
|
|
+ sqlList.add("update sa_agents set toagentnum ='"+toagentnum+"' where sa_agentsid="+sa_agentsid);
|
|
|
+
|
|
|
+ Rows customersRows=dbConnect.runSqlQuery("select * from sa_customers where sa_agentsid=sa_agentsid_to and sa_agentsid="+sa_agentsid);
|
|
|
+ Rows warrantycardRows=dbConnect.runSqlQuery("select * from sa_warrantycard where toagentnum='"+agentnum+"' and sa_agentsid="+sa_agentsid);
|
|
|
+
|
|
|
+ long[] sa_agents_toagentslogsid = createTableID("sa_agents_toagentslog", customersRows.size()+warrantycardRows.size());
|
|
|
+ int i = 0;
|
|
|
+ for(Row row :customersRows){
|
|
|
+ sqlList.add("update sa_customers set sa_agentsid_to="+sa_agentsid_to+" where sa_customersid="+row.getLong("sa_customersid"));
|
|
|
+ InsertSQL insertSQL =SQLFactory.createInsertSQL(this,"sa_agents_toagentslog");
|
|
|
+ insertSQL.setUniqueid(sa_agents_toagentslogsid[i]);
|
|
|
+ insertSQL.setSiteid(siteid);
|
|
|
+ insertSQL.setValue("sa_agentsid", sa_agentsid);
|
|
|
+ insertSQL.setValue("toagentnum", toagentnum);
|
|
|
+ insertSQL.setValue("sourceobject", "sa_customers");
|
|
|
+ insertSQL.setValue("sourceid", row.getLong("sa_customersid"));
|
|
|
+ insertSQL.setValue("isvoid", 0);
|
|
|
+ insertSQL.setValue("createby", username);
|
|
|
+ insertSQL.setDateValue("createdate");
|
|
|
+ sqlList.add(insertSQL.getSQL());
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+
|
|
|
+ for(Row row :warrantycardRows){
|
|
|
+ sqlList.add("update sa_warrantycard set toagentnum="+toagentnum+" where sa_warrantycardid="+row.getLong("sa_warrantycardid"));
|
|
|
+ InsertSQL insertSQL =SQLFactory.createInsertSQL(this,"sa_agents_toagentslog");
|
|
|
+ insertSQL.setUniqueid(sa_agents_toagentslogsid[i]);
|
|
|
+ insertSQL.setSiteid(siteid);
|
|
|
+ insertSQL.setValue("sa_agentsid", sa_agentsid);
|
|
|
+ insertSQL.setValue("toagentnum", toagentnum);
|
|
|
+ insertSQL.setValue("sourceobject", "sa_warrantycard");
|
|
|
+ insertSQL.setValue("sourceid", row.getLong("sa_warrantycardid"));
|
|
|
+ insertSQL.setValue("isvoid", 0);
|
|
|
+ insertSQL.setValue("createby", username);
|
|
|
+ insertSQL.setDateValue("createdate");
|
|
|
+ sqlList.add(insertSQL.getSQL());
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ } else {// 取消授权
|
|
|
+ for(Row row : agents_toagentslogRows){
|
|
|
+ if(row.getString("sourceobject").equals("sa_warrantycard")){
|
|
|
+ sqlList.add("update sa_warrantycard set toagentnum='"+agentnum+"' where sa_warrantycardid="+row.getLong("sourceid"));
|
|
|
+ }
|
|
|
+ if(row.getString("sourceobject").equals("sa_customers")){
|
|
|
+ sqlList.add("update sa_customers set sa_agentsid_to="+sa_agentsid+" where sa_customersid="+row.getLong("sourceid"));
|
|
|
+ }
|
|
|
+ sqlList.add("update sa_agents_toagentslog set isvoid=1 where sa_agents_toagentslogid="+row.getLong("sa_agents_toagentslogid"));
|
|
|
+ }
|
|
|
+ sqlList.add("update sa_agents set toagentnum ='' where sa_agentsid="+sa_agentsid);
|
|
|
+ }
|
|
|
+
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
|
|
|
@API(title = "经销商新增修改", intervaltime = 200)
|
|
|
@CACHEING_CLEAN(apiClass = {EnterpriseTradeField.class}, cms = {@cm(clazz = agents.class, method = {"query_agentList", "query_agentMain"}), @cm(clazz = salearea.class, method = {"query_agent"}), @cm(clazz = salearea.class, method = {"query_agent"})})
|