|
|
@@ -8,6 +8,7 @@ import com.actionsoft.bpms.server.UserContext;
|
|
|
import com.actionsoft.bpms.server.bind.annotation.Controller;
|
|
|
import com.actionsoft.bpms.server.bind.annotation.Mapping;
|
|
|
import com.actionsoft.bpms.util.DBSql;
|
|
|
+import com.actionsoft.bpms.util.TypeUtil;
|
|
|
import com.actionsoft.bpms.util.UUIDGener;
|
|
|
import com.actionsoft.sdk.local.SDK;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
@@ -17,10 +18,7 @@ import me.chanjar.weixin.common.util.StringUtils;
|
|
|
|
|
|
import java.sql.Connection;
|
|
|
import java.sql.SQLException;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Controller
|
|
|
public class IVTController extends BaseController {
|
|
|
@@ -225,8 +223,8 @@ public class IVTController extends BaseController {
|
|
|
Set<String> set = new HashSet<String>();
|
|
|
List<BO> list = new ArrayList<BO>();
|
|
|
for (RowMap map : maps) {
|
|
|
- if (StringUtils.isNotBlank(map.getString("purchase_order_no")) && StringUtils.isNotBlank(map.getString("purchase_order_no").trim())) {
|
|
|
- set.add(map.getString("purchase_order_no"));
|
|
|
+ if (StringUtils.isNotBlank(map.getString("PURCHASE_ORDER_NO")) && StringUtils.isNotBlank(map.getString("PURCHASE_ORDER_NO").trim())) {
|
|
|
+ set.add(map.getString("PURCHASE_ORDER_NO"));
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -235,39 +233,45 @@ public class IVTController extends BaseController {
|
|
|
|
|
|
return fail("一次只能接收同一个采购订单的采购项");
|
|
|
}
|
|
|
- for (RowMap map : maps) {
|
|
|
+ for (RowMap orgMap : maps) {
|
|
|
+
|
|
|
+ System.out.println("map:" + orgMap);
|
|
|
+
|
|
|
+ Map<String, Object> map = convertKeysToUppercase(orgMap);
|
|
|
|
|
|
//采购数量不能为空,也不能小于0
|
|
|
- Object purchaseQuantity = map.get("quantity");
|
|
|
+ Object purchaseQuantity = map.get("QUANTITY");
|
|
|
+
|
|
|
+ System.out.println("purchaseQuantity:" + purchaseQuantity);
|
|
|
if (purchaseQuantity == null || StringUtils.isBlank(purchaseQuantity.toString()) || Double.parseDouble(purchaseQuantity.toString()) <= 0) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
String unBack = "0";
|
|
|
BO subBo = new BO();
|
|
|
- set.add(map.getString("purchase_order_no"));
|
|
|
- RowMap rowMap = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[]{map.getString("id")});
|
|
|
+ set.add(getString(map,"PURCHASE_ORDER_NO"));
|
|
|
+ RowMap rowMap = DBSql.getMap("select ORDER_PRODUCT_ID,sum(QUANTITY_RECEIVED) QUANTITY_RECEIVED from BO_EU_DNIVT_RECEIVE WHERE ORDER_PRODUCT_ID=? group by ORDER_PRODUCT_ID", new Object[]{getString(map,"ID")});
|
|
|
if (null != rowMap) {
|
|
|
- unBack = getUnBack(map.getString("quantity"), rowMap.getString("QUANTITY_RECEIVED"));
|
|
|
+ unBack = getUnBack(getString(map,"QUANTITY"), rowMap.getString("QUANTITY_RECEIVED"));
|
|
|
if (Integer.valueOf(unBack) <= 0) {
|
|
|
- System.out.println("采购数量小于已接收数量:" + map.getString("quantity") + "-----" + rowMap.getString("QUANTITY_RECEIVED"));
|
|
|
- continue;
|
|
|
+ // System.out.println("采购数量小于已接收数量:" +getString(map,"QUANTITY") + "-----" + rowMap.getString("QUANTITY_RECEIVED"));
|
|
|
+ // continue;
|
|
|
}
|
|
|
subBo.set("QUANTITY_RECEIVED", rowMap.get("QUANTITY_RECEIVED"));
|
|
|
subBo.set("QUANTITY_BACKORDERED", unBack);
|
|
|
} else {
|
|
|
subBo.set("QUANTITY_RECEIVED", 0);
|
|
|
- subBo.set("QUANTITY_BACKORDERED", map.get("quantity"));
|
|
|
+ subBo.set("QUANTITY_BACKORDERED", map.get("QUANTITY"));
|
|
|
}
|
|
|
- subBo.set("PRODUCT_NAME", map.get("product_name"));
|
|
|
+ subBo.set("PRODUCT_NAME", map.get("PRODUCT_NAME"));
|
|
|
subBo.set("IS_SERIALIZED", map.get("IS_SERIALIZED"));
|
|
|
subBo.set("WAREHOUSE_ID", map.get("WAREHOUSE_ID"));
|
|
|
- subBo.set("ACCOUNT_NAME", map.get("account_name"));
|
|
|
- subBo.set("CONTRAC_PROJECT_TASK_NAME", map.get("contrac_project_task_name"));
|
|
|
- subBo.set("QUANTITY", map.get("quantity"));
|
|
|
- subBo.set("ON_HAND", map.get("on_hand"));
|
|
|
- subBo.set("PRODUCT_ID", map.get("product_id"));
|
|
|
- subBo.set("ORDER_PRODUCT_ID", map.get("id"));
|
|
|
+ subBo.set("ACCOUNT_NAME", map.get("ACCOUNT_NAME"));
|
|
|
+ subBo.set("CONTRAC_PROJECT_TASK_NAME", map.get("CONTRAC_PROJECT_TASK_NAME"));
|
|
|
+ subBo.set("QUANTITY", map.get("QUANTITY"));
|
|
|
+ subBo.set("ON_HAND", map.get("ON_HAND"));
|
|
|
+ subBo.set("PRODUCT_ID", map.get("PRODUCT_ID"));
|
|
|
+ subBo.set("ORDER_PRODUCT_ID", map.get("ID"));
|
|
|
subBo.set("NOW_COUNT", 0);
|
|
|
subBo.set("CONTRACT_COST_ID", map.get("CONTRACT_COST_ID"));
|
|
|
subBo.setBindId(createBOProcessInstance.getId());
|
|
|
@@ -301,6 +305,45 @@ public class IVTController extends BaseController {
|
|
|
return success(url);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 将Map中的所有key转换为大写
|
|
|
+ * @param originalMap 原Map(key需为String类型)
|
|
|
+ * @return 转换后的新Map
|
|
|
+ */
|
|
|
+ private static Map<String, Object> convertKeysToUppercase(RowMap originalMap) {
|
|
|
+ // 创建新Map存储结果
|
|
|
+ Map<String, Object> newMap = new HashMap<>();
|
|
|
+
|
|
|
+ if (originalMap == null || originalMap.isEmpty()) {
|
|
|
+ return newMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历原Map的键值对
|
|
|
+ Set<Map.Entry<String, Object>> entrySet = originalMap.entrySet();
|
|
|
+ for (Map.Entry<String, Object> entry : entrySet) {
|
|
|
+ String originalKey = entry.getKey();
|
|
|
+ Object value = entry.getValue();
|
|
|
+
|
|
|
+ // 将key转换为大写(若原key为null,转换后仍为null)
|
|
|
+ String upperKey = originalKey != null ? originalKey.toUpperCase() : null;
|
|
|
+
|
|
|
+ // 存入新Map
|
|
|
+ newMap.put(upperKey, value);
|
|
|
+ }
|
|
|
+
|
|
|
+ return newMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 转string
|
|
|
+ * @param map
|
|
|
+ * @param var1
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String getString(Map<String, Object> map,String var1) {
|
|
|
+ Object var2;
|
|
|
+ return (var2 = map.get(var1)) == null ? "" : TypeUtil.convert(var2, String.class);
|
|
|
+ }
|
|
|
|
|
|
public String getUnBack(String param1, String param2) {
|
|
|
// TODO Auto-generated method stub
|