|
@@ -1,12 +1,5 @@
|
|
|
package com.awspaas.user.apps.donenow_ivt.event;
|
|
package com.awspaas.user.apps.donenow_ivt.event;
|
|
|
|
|
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.HashMap;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
-
|
|
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
-
|
|
|
|
|
import com.actionsoft.bpms.bo.engine.BO;
|
|
import com.actionsoft.bpms.bo.engine.BO;
|
|
|
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
|
|
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
|
|
|
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
|
|
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
|
|
@@ -17,160 +10,169 @@ import com.actionsoft.bpms.util.UUIDGener;
|
|
|
import com.actionsoft.sdk.local.SDK;
|
|
import com.actionsoft.sdk.local.SDK;
|
|
|
import com.awspaas.user.apps.donenow_ivt.constant.IVTConstant;
|
|
import com.awspaas.user.apps.donenow_ivt.constant.IVTConstant;
|
|
|
import com.awspaas.user.apps.donenow_ivt.utils.BigDecimalUtil;
|
|
import com.awspaas.user.apps.donenow_ivt.utils.BigDecimalUtil;
|
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
|
|
|
public class DoWorkThread extends Thread {
|
|
public class DoWorkThread extends Thread {
|
|
|
- private ProcessExecutionContext process;
|
|
|
|
|
- //有参构造方法
|
|
|
|
|
- public DoWorkThread(ProcessExecutionContext process){
|
|
|
|
|
- this.process = process;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public void run() {
|
|
|
|
|
- System.out.println("======================多线程开始分割线====================================");
|
|
|
|
|
- doWork(process);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public String doWork(ProcessExecutionContext process) {
|
|
|
|
|
-
|
|
|
|
|
- UserContext uc = process.getUserContext();
|
|
|
|
|
- BO formData = process.getFormData();
|
|
|
|
|
- String boName = process.getParameterOfString("$BONAME");
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //采购接收主表保存
|
|
|
|
|
- if(IVTConstant.BO_EU_DNIVT_RECEIVE_MAIN.equals(boName)) {
|
|
|
|
|
- String bindId=process.getProcessInstance().getId();
|
|
|
|
|
- List<BO> list = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_RECEIVE_SUB).bindId(bindId).list();
|
|
|
|
|
-
|
|
|
|
|
- //循环开始
|
|
|
|
|
- for(BO bo:list) {
|
|
|
|
|
- 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[] {bo.getString("ORDER_PRODUCT_ID")});
|
|
|
|
|
- BO receiveBo=new BO();
|
|
|
|
|
- receiveBo.set("ORDER_PRODUCT_ID", bo.get("ORDER_PRODUCT_ID"));
|
|
|
|
|
- receiveBo.set("QUANTITY_RECEIVED", bo.getString("BEN_RECEIVE"));
|
|
|
|
|
- String sub = BigDecimalUtil.sub(bo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"),(null==rowMap?"0":rowMap.getString("QUANTITY_RECEIVED")));
|
|
|
|
|
- receiveBo.set("QUANTITY_BACKORDERED",sub);
|
|
|
|
|
- receiveBo.set("UNIT_COST", bo.get("UNIT_COST"));
|
|
|
|
|
- receiveBo.set("EXPORTED_TIME", new Date());
|
|
|
|
|
- receiveBo.set("RECEIVE_BY_ID", uc.getUID());
|
|
|
|
|
- ProcessInstance createBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_60c43c56593d42108be36f3aa8d3f8a2, uc.getUID(), "");
|
|
|
|
|
- receiveBo.setBindId(createBOProcessInstance.getId());
|
|
|
|
|
- SDK.getBOAPI().createDataBO(IVTConstant.BO_EU_DNIVT_RECEIVE, receiveBo, uc);
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //更新产品的库存
|
|
|
|
|
- List<BO> wareHouseList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT).addQuery("WAREHOUSE_ID=", bo.getString("WAREHOUSE_ID")).addQuery("PRODUCT_ID=", bo.getString("PRODUCT_ID")).list();
|
|
|
|
|
- if(wareHouseList.size()>0) {
|
|
|
|
|
- for(BO wareHouseBo:wareHouseList) {
|
|
|
|
|
- String add = BigDecimalUtil.add(wareHouseBo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"));
|
|
|
|
|
- wareHouseBo.set("QUANTITY", add);
|
|
|
|
|
- SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo);
|
|
|
|
|
- }
|
|
|
|
|
- }else{
|
|
|
|
|
- ProcessInstance wareBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_41f06b1e807647db8a69dd10d4be5764, uc.getUID(), "");
|
|
|
|
|
- BO wareHouseBo=new BO();
|
|
|
|
|
- wareHouseBo.setBindId(wareBOProcessInstance.getId());
|
|
|
|
|
- wareHouseBo.set("QUANTITY", bo.getString("BEN_RECEIVE"));
|
|
|
|
|
- wareHouseBo.set("PRODUCT_ID", bo.getString("PRODUCT_ID"));
|
|
|
|
|
- wareHouseBo.set("WAREHOUSE_ID", bo.getString("WAREHOUSE_ID"));
|
|
|
|
|
- wareHouseBo.set("QUANTITY_MINIMUM", 0);
|
|
|
|
|
- wareHouseBo.set("QUANTITY_MAXIMUM", 0);
|
|
|
|
|
- SDK.getBOAPI().create(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo, wareBOProcessInstance, uc);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //更新成本信息
|
|
|
|
|
- if(StringUtils.isNotBlank(bo.getString("CONTRACT_COST_ID"))) {
|
|
|
|
|
- //根据采购项上的CONTRACT_COST_ID查找对应的成本
|
|
|
|
|
- RowMap receiveMap = 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[] {bo.getString("ORDER_PRODUCT_ID")});
|
|
|
|
|
-
|
|
|
|
|
- BO CONTRACT_COST_Detail = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST).detailById(bo.getString("CONTRACT_COST_ID"));
|
|
|
|
|
- if(null!=CONTRACT_COST_Detail) {
|
|
|
|
|
- //根据成本ID找到对应的所有成本产品
|
|
|
|
|
- List<BO> costProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT).addQuery("CONTRACT_COST_ID=", CONTRACT_COST_Detail.getId()).list();
|
|
|
|
|
- //判断成本是否是采购中状态
|
|
|
|
|
- String BEN_RECEIVE = BigDecimalUtil.isNull(bo.getString("BEN_RECEIVE"));
|
|
|
|
|
- int intBenReceive = Integer.valueOf(BEN_RECEIVE).intValue();
|
|
|
|
|
-
|
|
|
|
|
- //采购接收
|
|
|
|
|
- if(intBenReceive>0) {
|
|
|
|
|
- for(BO costProductBo:costProductList) {
|
|
|
|
|
- //采购中
|
|
|
|
|
- if(IVTConstant.STATUS_1235.equals(costProductBo.getString("STATUS_ID"))) {
|
|
|
|
|
- String QUANTITY = BigDecimalUtil.isNull(costProductBo.getString("QUANTITY"));
|
|
|
|
|
-
|
|
|
|
|
- int intQuantity = Integer.valueOf(QUANTITY).intValue();
|
|
|
|
|
-
|
|
|
|
|
- //待配送
|
|
|
|
|
- if(intQuantity==intBenReceive) {
|
|
|
|
|
- costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
|
|
|
|
|
- SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
|
|
|
|
|
- }else if(intBenReceive<intQuantity) {
|
|
|
|
|
- costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
|
|
|
|
|
- costProductBo.set("QUANTITY", intBenReceive);
|
|
|
|
|
- SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
|
|
|
|
|
-
|
|
|
|
|
- //将剩余的数量生成一条新的成本产品,状态为采购中
|
|
|
|
|
- BO newCostProductBo=new BO();
|
|
|
|
|
- newCostProductBo.setAll(costProductBo.asMap());
|
|
|
|
|
- //IVTConstant.obj_6bc913271069455abbd516c556b26d31
|
|
|
|
|
- ProcessInstance processInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_6bc913271069455abbd516c556b26d31, uc.getUID(), "");
|
|
|
|
|
- newCostProductBo.setBindId(processInstance.getId());
|
|
|
|
|
- newCostProductBo.set("QUANTITY", intQuantity-intBenReceive);
|
|
|
|
|
- newCostProductBo.setId(UUIDGener.getUUID());
|
|
|
|
|
- costProductBo.set("STATUS_ID", IVTConstant.STATUS_1235);
|
|
|
|
|
- SDK.getBOAPI().create(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, newCostProductBo, processInstance, uc);
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //采购接收取消
|
|
|
|
|
- else if(intBenReceive<0) {
|
|
|
|
|
-
|
|
|
|
|
- for(BO costProductBo:costProductList) {
|
|
|
|
|
- //如果存在采购中的成本产品,将取消数量加到采购数量中
|
|
|
|
|
|
|
+ private ProcessExecutionContext process;
|
|
|
|
|
+
|
|
|
|
|
+ //有参构造方法
|
|
|
|
|
+ public DoWorkThread(ProcessExecutionContext process) {
|
|
|
|
|
+ this.process = process;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public void run() {
|
|
|
|
|
+ System.out.println("======================多线程开始分割线====================================");
|
|
|
|
|
+ doWork(process);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public String doWork(ProcessExecutionContext process) {
|
|
|
|
|
+
|
|
|
|
|
+ UserContext uc = process.getUserContext();
|
|
|
|
|
+ BO formData = process.getFormData();
|
|
|
|
|
+ String boName = process.getParameterOfString("$BONAME");
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //采购接收主表保存
|
|
|
|
|
+ if (IVTConstant.BO_EU_DNIVT_RECEIVE_MAIN.equals(boName)) {
|
|
|
|
|
+ String bindId = process.getProcessInstance().getId();
|
|
|
|
|
+ List<BO> list = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_RECEIVE_SUB).bindId(bindId).list();
|
|
|
|
|
+
|
|
|
|
|
+ //循环开始
|
|
|
|
|
+ for (BO bo : list) {
|
|
|
|
|
+ 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[]{bo.getString("ORDER_PRODUCT_ID")});
|
|
|
|
|
+ BO receiveBo = new BO();
|
|
|
|
|
+ receiveBo.set("ORDER_PRODUCT_ID", bo.get("ORDER_PRODUCT_ID"));
|
|
|
|
|
+ receiveBo.set("QUANTITY_RECEIVED", bo.getString("BEN_RECEIVE"));
|
|
|
|
|
+ String sub = BigDecimalUtil.sub(bo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"), (null == rowMap ? "0" : rowMap.getString("QUANTITY_RECEIVED")));
|
|
|
|
|
+ receiveBo.set("QUANTITY_BACKORDERED", sub);
|
|
|
|
|
+ receiveBo.set("UNIT_COST", bo.get("UNIT_COST"));
|
|
|
|
|
+ receiveBo.set("EXPORTED_TIME", new Date());
|
|
|
|
|
+ receiveBo.set("RECEIVE_BY_ID", uc.getUID());
|
|
|
|
|
+ ProcessInstance createBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_60c43c56593d42108be36f3aa8d3f8a2, uc.getUID(), "");
|
|
|
|
|
+ receiveBo.setBindId(createBOProcessInstance.getId());
|
|
|
|
|
+ SDK.getBOAPI().createDataBO(IVTConstant.BO_EU_DNIVT_RECEIVE, receiveBo, uc);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //更新产品的库存
|
|
|
|
|
+ List<BO> wareHouseList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT).addQuery("WAREHOUSE_ID=", bo.getString("WAREHOUSE_ID")).addQuery("PRODUCT_ID=", bo.getString("PRODUCT_ID")).list();
|
|
|
|
|
+ if (wareHouseList.size() > 0) {
|
|
|
|
|
+ for (BO wareHouseBo : wareHouseList) {
|
|
|
|
|
+ String add = BigDecimalUtil.add(wareHouseBo.getString("QUANTITY"), bo.getString("BEN_RECEIVE"));
|
|
|
|
|
+ wareHouseBo.set("QUANTITY", add);
|
|
|
|
|
+ SDK.getBOAPI().update(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ProcessInstance wareBOProcessInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_41f06b1e807647db8a69dd10d4be5764, uc.getUID(), "");
|
|
|
|
|
+ BO wareHouseBo = new BO();
|
|
|
|
|
+ wareHouseBo.setBindId(wareBOProcessInstance.getId());
|
|
|
|
|
+ wareHouseBo.set("QUANTITY", bo.getString("BEN_RECEIVE"));
|
|
|
|
|
+ wareHouseBo.set("PRODUCT_ID", bo.getString("PRODUCT_ID"));
|
|
|
|
|
+ wareHouseBo.set("WAREHOUSE_ID", bo.getString("WAREHOUSE_ID"));
|
|
|
|
|
+ wareHouseBo.set("QUANTITY_MINIMUM", 0);
|
|
|
|
|
+ wareHouseBo.set("QUANTITY_MAXIMUM", 0);
|
|
|
|
|
+ SDK.getBOAPI().create(IVTConstant.BO_EU_DNIVT_WAREHOUSE_PRODUCT, wareHouseBo, wareBOProcessInstance, uc);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //更新成本信息
|
|
|
|
|
+ if (StringUtils.isNotBlank(bo.getString("CONTRACT_COST_ID"))) {
|
|
|
|
|
+ //根据采购项上的CONTRACT_COST_ID查找对应的成本
|
|
|
|
|
+ RowMap receiveMap = 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[]{bo.getString("ORDER_PRODUCT_ID")});
|
|
|
|
|
+
|
|
|
|
|
+ BO CONTRACT_COST_Detail = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST).detailById(bo.getString("CONTRACT_COST_ID"));
|
|
|
|
|
+ if (null != CONTRACT_COST_Detail) {
|
|
|
|
|
+ //根据成本ID找到对应的所有成本产品
|
|
|
|
|
+ List<BO> costProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT).addQuery("CONTRACT_COST_ID=", CONTRACT_COST_Detail.getId()).list();
|
|
|
|
|
+ //判断成本是否是采购中状态
|
|
|
|
|
+ String BEN_RECEIVE = BigDecimalUtil.isNull(bo.getString("BEN_RECEIVE"));
|
|
|
|
|
+ int intBenReceive = Integer.valueOf(BEN_RECEIVE).intValue();
|
|
|
|
|
+
|
|
|
|
|
+ //采购接收
|
|
|
|
|
+ if (intBenReceive > 0) {
|
|
|
|
|
+ for (BO costProductBo : costProductList) {
|
|
|
|
|
+ //采购中
|
|
|
|
|
+ if (IVTConstant.STATUS_1235.equals(costProductBo.getString("STATUS_ID"))) {
|
|
|
|
|
+ String QUANTITY = BigDecimalUtil.isNull(costProductBo.getString("QUANTITY"));
|
|
|
|
|
+
|
|
|
|
|
+ int intQuantity = Integer.valueOf(QUANTITY).intValue();
|
|
|
|
|
+
|
|
|
|
|
+ //待配送
|
|
|
|
|
+ if (intQuantity == intBenReceive) {
|
|
|
|
|
+ costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
|
|
|
|
|
+ SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
|
|
|
|
|
+ } else if (intBenReceive < intQuantity) {
|
|
|
|
|
+ costProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);
|
|
|
|
|
+ costProductBo.set("QUANTITY", intBenReceive);
|
|
|
|
|
+ SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, costProductBo);
|
|
|
|
|
+
|
|
|
|
|
+ //将剩余的数量生成一条新的成本产品,状态为采购中
|
|
|
|
|
+ BO newCostProductBo = new BO();
|
|
|
|
|
+ newCostProductBo.setAll(costProductBo.asMap());
|
|
|
|
|
+ //IVTConstant.obj_6bc913271069455abbd516c556b26d31
|
|
|
|
|
+ ProcessInstance processInstance = SDK.getProcessAPI().createBOProcessInstance(IVTConstant.obj_6bc913271069455abbd516c556b26d31, uc.getUID(), "");
|
|
|
|
|
+ newCostProductBo.setBindId(processInstance.getId());
|
|
|
|
|
+ newCostProductBo.set("QUANTITY", intQuantity - intBenReceive);
|
|
|
|
|
+ newCostProductBo.setId(UUIDGener.getUUID());
|
|
|
|
|
+ costProductBo.set("STATUS_ID", IVTConstant.STATUS_1235);
|
|
|
|
|
+ SDK.getBOAPI().create(IVTConstant.BO_EU_DNCTT_CONTRACT_COST_PRODUCT, newCostProductBo, processInstance, uc);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //采购接收取消
|
|
|
|
|
+ else if (intBenReceive < 0) {
|
|
|
|
|
+
|
|
|
|
|
+ for (BO costProductBo : costProductList) {
|
|
|
|
|
+ //如果存在采购中的成本产品,将取消数量加到采购数量中
|
|
|
// if() {
|
|
// if() {
|
|
|
//
|
|
//
|
|
|
// }
|
|
// }
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- //循环结束
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- //更改采购项状态为全部接收、部门接收、已提交
|
|
|
|
|
- String orderBindId=DBSql.getString("SELECT BINDID FROM "+IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT+" WHERE ID='"+list.get(0).getString("ORDER_PRODUCT_ID")+"')");
|
|
|
|
|
- List<BO> orderProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT).bindId(orderBindId).list();
|
|
|
|
|
- int count=0;
|
|
|
|
|
- for(BO bo:orderProductList) {
|
|
|
|
|
- RowMap map = 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[] {bo.getString("ID")});
|
|
|
|
|
- //采购项总共接收数量
|
|
|
|
|
- int QUANTITY_RECEIVED = map.getInt("QUANTITY_RECEIVED");
|
|
|
|
|
- //采购项数量
|
|
|
|
|
- int QUANTITY=Integer.valueOf(BigDecimalUtil.isNull(bo.getString("QUANTITY"))).intValue();
|
|
|
|
|
- if(QUANTITY_RECEIVED==QUANTITY) {
|
|
|
|
|
- count++;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- if(count==orderProductList.size()&&count>0) {
|
|
|
|
|
- DBSql.update("UPDATE "+IVTConstant.BO_EU_DNIVT_ORDER+" SET STATUS_ID="+IVTConstant.STATUS_2150+" WHERE BINDID='"+orderBindId+"'");
|
|
|
|
|
- }else if(count>0) {
|
|
|
|
|
- DBSql.update("UPDATE "+IVTConstant.BO_EU_DNIVT_ORDER+" SET STATUS_ID="+IVTConstant.STATUS_2149+" WHERE BINDID='"+orderBindId+"'");
|
|
|
|
|
- }else {
|
|
|
|
|
- DBSql.update("UPDATE "+IVTConstant.BO_EU_DNIVT_ORDER+" SET STATUS_ID="+IVTConstant.STATUS_2148+" WHERE BINDID='"+orderBindId+"'");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- return "";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //循环结束
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //更改采购项状态为全部接收、部门接收、已提交
|
|
|
|
|
+ String orderBindId = DBSql.getString("SELECT BINDID FROM " + IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT + " WHERE ID='" + list.get(0).getString("ORDER_PRODUCT_ID") + "')");
|
|
|
|
|
+ List<BO> orderProductList = SDK.getBOAPI().query(IVTConstant.BO_EU_DNIVT_ORDER_PRODUCT).bindId(orderBindId).list();
|
|
|
|
|
+ int count = 0;
|
|
|
|
|
+ for (BO bo : orderProductList) {
|
|
|
|
|
+ RowMap map = 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[]{bo.getString("ID")});
|
|
|
|
|
+ //采购项总共接收数量
|
|
|
|
|
+ int QUANTITY_RECEIVED = map.getInt("QUANTITY_RECEIVED");
|
|
|
|
|
+ //采购项数量
|
|
|
|
|
+ int QUANTITY = Integer.valueOf(BigDecimalUtil.isNull(bo.getString("QUANTITY"))).intValue();
|
|
|
|
|
+ if (QUANTITY_RECEIVED == QUANTITY) {
|
|
|
|
|
+ count++;
|
|
|
|
|
+
|
|
|
|
|
+ //采购项全部接收后,更改关联合同产品的状态
|
|
|
|
|
+ BO contractProductBo = SDK.getBOAPI().get(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, bo.getString("CONTRACT_COST_ID"));
|
|
|
|
|
+ contractProductBo.set("STATUS_ID", IVTConstant.STATUS_1236);//待配送
|
|
|
|
|
+ SDK.getBOAPI().update(IVTConstant.BO_EU_DNCTT_CONTRACT_COST, contractProductBo);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if (count == orderProductList.size() && count > 0) {
|
|
|
|
|
+ DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2150 + " WHERE BINDID='" + orderBindId + "'");
|
|
|
|
|
+ } else if (count > 0) {
|
|
|
|
|
+ DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2149 + " WHERE BINDID='" + orderBindId + "'");
|
|
|
|
|
+ } else {
|
|
|
|
|
+ DBSql.update("UPDATE " + IVTConstant.BO_EU_DNIVT_ORDER + " SET STATUS_ID=" + IVTConstant.STATUS_2148 + " WHERE BINDID='" + orderBindId + "'");
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return "";
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|