|
|
@@ -20,7 +20,10 @@ import restcontroller.webmanage.sale.serviceorder.serviceorder;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
|
|
|
|
/**
|
|
|
@@ -359,11 +362,17 @@ public class workorder extends Controller {
|
|
|
row.put("team", workorderteamRows);
|
|
|
|
|
|
/** 工单节点物料查询 **/
|
|
|
- Rows workorderitemRows = dbConnect.runSqlQuery(
|
|
|
+ Rows oldworkorderitemRows = dbConnect.runSqlQuery(
|
|
|
"select t1.*,t2.itemno,t2.model,t2.itemname,t2.spec from sa_workorder_node_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_workorder_nodeid="
|
|
|
- + sa_workorder_nodeid + " and t1.sa_workorderid=" + sa_workorderid + " and t1.siteid='"
|
|
|
+ + sa_workorder_nodeid + " and t1.sa_workorderid=" + sa_workorderid + " and ifnull(t1.isnew,0)=0 and t1.siteid='"
|
|
|
+ siteid + "'");
|
|
|
- row.put("titems", workorderitemRows);
|
|
|
+ row.put("oldtitems", oldworkorderitemRows);
|
|
|
+
|
|
|
+ Rows newworkorderitemRows = dbConnect.runSqlQuery(
|
|
|
+ "select t1.*,t2.itemno,t2.model,t2.itemname,t2.spec from sa_workorder_node_items t1 left join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_workorder_nodeid="
|
|
|
+ + sa_workorder_nodeid + " and t1.sa_workorderid=" + sa_workorderid + " and ifnull(t1.isnew,0)=1 and t1.siteid='"
|
|
|
+ + siteid + "'");
|
|
|
+ row.put("newtitems", newworkorderitemRows);
|
|
|
|
|
|
// /** 节点关联培训物料查询 **/
|
|
|
// Rows traintitem = dbConnect.runSqlQuery("select * from sa_workorder_node_items where sa_workorder_nodeid="+sa_workorder_nodeid+" and sa_workorderid="
|
|
|
@@ -481,6 +490,7 @@ public class workorder extends Controller {
|
|
|
addtraintitemsqlFactory.addParameter("sa_workorderid", sa_workorderid);
|
|
|
addtraintitemsqlFactory.addParameter("sa_workorder_nodeid", sa_workorder_nodeid);
|
|
|
addtraintitemsqlFactory.addParameter("itemid", jsonObject.getLongValue("itemid"));
|
|
|
+ addtraintitemsqlFactory.addParameter("isnew", jsonObject.getBooleanValue("isnew"));
|
|
|
addtraintitemsqlFactory.addParameter("qty", jsonObject.getBigDecimal("qty"));
|
|
|
addtraintitemsqlFactory.addParameter("userid", userid);
|
|
|
addtraintitemsqlFactory.addParameter("username", username);
|
|
|
@@ -678,6 +688,31 @@ public class workorder extends Controller {
|
|
|
return getSucReturnObject().toString();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ @API(title = "提交工单", apiversion = R.ID2025072315401603.v1.class)
|
|
|
+ @CACHEING_CLEAN(apiversions = {workorder.class, serviceorder.class})
|
|
|
+ public String submit() throws YosException {
|
|
|
+ Long sa_workorderid = content.getLong("sa_workorderid");
|
|
|
+
|
|
|
+ Rows rows = dbConnect
|
|
|
+ .runSqlQuery("select sa_serviceorderid,status,billno from sa_workorder where sa_workorderid ='"
|
|
|
+ + sa_workorderid + "' and siteid='" + siteid + "'");
|
|
|
+ for (Row row : rows) {
|
|
|
+ if (!row.getString("status").equals("进行中")) {
|
|
|
+ return getErrReturnObject().setErrMsg("单号为:【" + row.getString("billno") + "】的工单为非进行中状态,无法提交工单")
|
|
|
+ .toString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ArrayList<String> sqlList = new ArrayList<>();
|
|
|
+ sqlList.add(
|
|
|
+ "update sa_workorder set status='提交' where sa_workorderid=" + sa_workorderid);
|
|
|
+ sqlList.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "工单提交", "服务工单提交成功").getSQL());
|
|
|
+
|
|
|
+ dbConnect.runSqlUpdate(sqlList);
|
|
|
+ return getSucReturnObject().toString();
|
|
|
+ }
|
|
|
+
|
|
|
@API(title = "完结工单", apiversion = R.ID20230209144903.v1.class)
|
|
|
@CACHEING_CLEAN(apiversions = {R.ID20230208140103.v1.class, R.ID20230208140203.v1.class,
|
|
|
R.ID20230209091103.v1.class, R.ID20230206091603.v1.class, R.ID20230206101303.v1.class,
|
|
|
@@ -686,11 +721,11 @@ public class workorder extends Controller {
|
|
|
Long sa_workorderid = content.getLong("sa_workorderid");
|
|
|
|
|
|
Rows rows = dbConnect
|
|
|
- .runSqlQuery("select sa_serviceorderid,status,billno from sa_workorder where sa_workorderid ='"
|
|
|
+ .runSqlQuery("select sa_serviceorderid,status,billno,type from sa_workorder where sa_workorderid ='"
|
|
|
+ sa_workorderid + "' and siteid='" + siteid + "'");
|
|
|
if (!rows.isEmpty()) {
|
|
|
- if (!rows.get(0).getString("status").equals("进行中")) {
|
|
|
- return getErrReturnObject().setErrMsg("非进行中状态无法完结工单").toString();
|
|
|
+ if (!rows.get(0).getString("status").equals("提交")) {
|
|
|
+ return getErrReturnObject().setErrMsg("非提交状态无法完结工单").toString();
|
|
|
}
|
|
|
} else {
|
|
|
return getErrReturnObject().setErrMsg("该工单不存在").toString();
|
|
|
@@ -738,6 +773,32 @@ public class workorder extends Controller {
|
|
|
.toString();
|
|
|
}
|
|
|
|
|
|
+ if(rows.get(0).getString("type").equals("安装")){
|
|
|
+ Rows itemrows =dbConnect.runSqlQuery("select t1.sku,ifnull(t2.warrantyday,0) warrantyday,t4.sa_agentsid from sa_serviceorderitems t1 inner join plm_item t2 on t1.itemid=t2.itemid and t1.siteid=t2.siteid where t1.sa_serviceorderid="+rows.get(0).getLong("sa_serviceorderid")+" and t1.siteid='"+siteid+"' left join sa_serviceorder t3 on t1.sa_serviceorderid=t3.sa_serviceorderid and t1.siteid=t3.siteid left join sa_agents t4 on t3.sys_enterpriseid=t4.sys_enterpriseid and t3.siteid=t4.siteid");
|
|
|
+ if(itemrows.isNotEmpty()){
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+
|
|
|
+ // 将当前日期加上3年
|
|
|
+ LocalDate futureDate = now.plusYears(itemrows.get(0).getInteger("warrantyday"));
|
|
|
+
|
|
|
+ // 定义日期格式
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+
|
|
|
+ // 格式化日期
|
|
|
+ String formattedDate = futureDate.format(formatter);
|
|
|
+
|
|
|
+ InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_warrantycard");
|
|
|
+ insertSQL.setUniqueid(createTableID("sa_warrantycard"));
|
|
|
+ insertSQL.setSiteid(siteid);
|
|
|
+ insertSQL.setValue("sa_agentsid", itemrows.get(0).getLong("sa_agentsid"));
|
|
|
+ insertSQL.setValue("cardno", "");
|
|
|
+ insertSQL.setValue("enddate", formattedDate);
|
|
|
+ insertSQL.setValue("begdate", getDateTime_Str());
|
|
|
+ sqlList.add(insertSQL.getSQL());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
sqlList.add("update sa_workorder set status='已完成',finishby='" + username
|
|
|
+ "',finishdate=CURRENT_TIME where sa_workorderid=" + sa_workorderid);
|
|
|
sqlList.add(DataContrlLog.createLog(this, "sa_workorder", sa_workorderid, "工单完结", "服务工单完结成功").getSQL());
|