Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
25ce2a3164
|
|
@ -1,6 +1,9 @@
|
|||
package tqq9.lc123.cloud.app.api.controller;
|
||||
|
||||
import com.drew.lang.annotations.NotNull;
|
||||
import kd.bos.algo.DataSet;
|
||||
import kd.bos.algo.GroupbyDataSet;
|
||||
import kd.bos.algo.Row;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiController;
|
||||
import kd.bos.openapi.common.custom.annotation.ApiParam;
|
||||
|
|
@ -9,6 +12,7 @@ import kd.bos.openapi.common.result.CustomApiResult;
|
|||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
import kd.bos.servicehelper.QueryServiceHelper;
|
||||
import oadd.org.apache.commons.lang3.StringUtils;
|
||||
import tqq9.lc123.cloud.app.api.model.FWInvQueryModel;
|
||||
import tqq9.lc123.cloud.app.api.result.FWInvQueryResult;
|
||||
|
|
@ -33,17 +37,37 @@ public class FWInvQueryController {
|
|||
String warehouseNumber = queryModel.getWarehouseNumber();
|
||||
Date producedate = queryModel.getProducedate();
|
||||
Date expirydate = queryModel.getExpirydate();
|
||||
String orgNumber = queryModel.getOrgNumber();
|
||||
|
||||
String orgName = "";
|
||||
if("SHLC".equals(orgNumber)){
|
||||
orgName = "上海励齿";
|
||||
}else if("BJLC".equals(orgNumber)){
|
||||
orgName = "北京励齿";
|
||||
}else if("GZLC".equals(orgNumber)){
|
||||
orgName = "广州励齿";
|
||||
}else{
|
||||
|
||||
}
|
||||
|
||||
boolean existLot = false;
|
||||
boolean existWh = false;
|
||||
|
||||
String key = materialNumber;
|
||||
List<QFilter> list = new ArrayList<>();
|
||||
QFilter qf1 = new QFilter("material.number", QCP.equals, materialNumber);
|
||||
QFilter qf0 = new QFilter("material.number", QCP.equals, materialNumber);
|
||||
QFilter qf1 = new QFilter("org.number", QCP.equals, orgNumber);
|
||||
list.add(qf0);
|
||||
list.add(qf1);
|
||||
if(StringUtils.isNotBlank(lot)){
|
||||
QFilter qf2 = new QFilter("lotnum", QCP.equals, lot);
|
||||
list.add(qf2);
|
||||
existLot = true;
|
||||
}
|
||||
if(StringUtils.isNotBlank(warehouseNumber)){
|
||||
QFilter qf3 = new QFilter("warehouse.number", QCP.equals, warehouseNumber);
|
||||
list.add(qf3);
|
||||
existWh = true;
|
||||
}
|
||||
if(producedate != null){
|
||||
QFilter qf4 = new QFilter("producedate", QCP.equals, producedate);
|
||||
|
|
@ -53,49 +77,49 @@ public class FWInvQueryController {
|
|||
QFilter qf5 = new QFilter("expirydate", QCP.equals, expirydate);
|
||||
list.add(qf5);
|
||||
}
|
||||
|
||||
String groupbyStr = "material,org";
|
||||
if(existLot){
|
||||
groupbyStr = groupbyStr + ",lotnum,producedate,expirydate";
|
||||
}
|
||||
if(existWh){
|
||||
groupbyStr = groupbyStr + ",warehouse";
|
||||
}
|
||||
|
||||
|
||||
|
||||
QFilter[] filterArr = new QFilter[list.size()];
|
||||
filterArr = list.toArray(filterArr);
|
||||
DynamicObject[] realbalances = BusinessDataServiceHelper.load("im_inv_realbalance",
|
||||
"id,material,org,warehouse,lotnum,avbbaseqty,qty", filterArr);
|
||||
if(realbalances != null && realbalances.length > 0){
|
||||
Map<String, BigDecimal> map = new HashMap<>();
|
||||
for (DynamicObject realbalance : realbalances) {
|
||||
//获取数量
|
||||
BigDecimal qty = realbalance.getBigDecimal("qty");
|
||||
//获取组织数据
|
||||
DynamicObject org = realbalance.getDynamicObject("org");
|
||||
String orgCode = org.getString("number");
|
||||
String orgName = org.getString("name");
|
||||
//获取仓库数据
|
||||
DynamicObject warehouse = realbalance.getDynamicObject("warehouse");
|
||||
String warehouseCode = warehouse.getString("number");
|
||||
String warehouseName = warehouse.getString("name");
|
||||
//批号
|
||||
String lotnum = realbalance.getString("lotnum");
|
||||
DataSet dataSet = QueryServiceHelper.queryDataSet(this.getClass().getName(), "im_inv_realbalance",
|
||||
"qty,"+groupbyStr, filterArr, null);
|
||||
DataSet groupbyDataSet = dataSet.groupBy(groupbyStr.split(",")).count("qty").finish();
|
||||
for (Row row : groupbyDataSet) {
|
||||
FWInvQueryResult.ResultBean resultBean = new FWInvQueryResult.ResultBean();
|
||||
Long orgId = row.getLong("org");
|
||||
DynamicObject org = BusinessDataServiceHelper.loadSingle(orgId, "bos_org");
|
||||
BigDecimal qty = row.getBigDecimal("qty");
|
||||
|
||||
String key = orgCode+"<>"+orgName+"<>"+warehouseCode+"<>"+warehouseName+"<>"+lotnum+"<>"+materialNumber;
|
||||
if(map.containsKey(key)){
|
||||
BigDecimal sl = map.get(key);
|
||||
map.put(key, qty.add(sl));
|
||||
}else{
|
||||
map.put(key, qty);
|
||||
}
|
||||
if(existLot){
|
||||
String lotnum = row.getString("lotnum");
|
||||
Date producedate1 = row.getDate("producedate");
|
||||
Date expirydate1 = row.getDate("expirydate");
|
||||
|
||||
resultBean.setLot(lotnum);
|
||||
resultBean.setProducedate(producedate1);
|
||||
resultBean.setExpirydate(expirydate1);
|
||||
}
|
||||
if(map.size() > 0){
|
||||
for (String s : map.keySet()) {
|
||||
String[] split = s.split("<>");
|
||||
FWInvQueryResult.ResultBean resultBean = new FWInvQueryResult.ResultBean();
|
||||
resultBean.setOrgCode(split[0]);
|
||||
resultBean.setOrgName(split[1]);
|
||||
resultBean.setWarehouseCode(split[2]);
|
||||
resultBean.setWarehouseName(split[3]);
|
||||
resultBean.setLot(split[4]);
|
||||
resultBean.setNumber(split[5]);
|
||||
resultBean.setQty(map.get(s));
|
||||
resultBeanList.add(resultBean);
|
||||
}
|
||||
if(existWh){
|
||||
Long warehouseId = row.getLong("warehouse");
|
||||
DynamicObject warehouse = BusinessDataServiceHelper.loadSingle(warehouseId, "bd_warehouse");
|
||||
resultBean.setWarehouseCode(warehouse.getString("number"));
|
||||
resultBean.setWarehouseName(warehouse.getString("name"));
|
||||
}
|
||||
|
||||
resultBean.setOrgCode(orgNumber);
|
||||
resultBean.setOrgName(org.getString("name"));
|
||||
resultBean.setNumber(materialNumber);
|
||||
resultBean.setQty(qty);
|
||||
resultBeanList.add(resultBean);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
package tqq9.lc123.cloud.app.api.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.drew.lang.annotations.NotNull;
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
|
|
@ -19,14 +18,11 @@ import tqq9.lc123.cloud.app.api.utils.Constants;
|
|||
import tqq9.lc123.cloud.app.plugin.form.result.CloneBill;
|
||||
import tqq9.lc123.cloud.app.plugin.utils.BillCloseCancelUtils;
|
||||
import tqq9.lc123.cloud.app.plugin.utils.ConfigUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static tqq9.lc123.cloud.app.plugin.form.result.CloneBill.cloneOperation;
|
||||
|
||||
/**
|
||||
* 销售退货申请接口
|
||||
*/
|
||||
|
|
@ -52,9 +48,12 @@ public class SmReturnApplyController {
|
|||
resultBean.setKeys(key);
|
||||
resultBean.setNumber(orderBillNo);
|
||||
resultBean.setType(Constants.TYPE_CLOSE);
|
||||
|
||||
String message = null;
|
||||
DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("sm_returnapply", new QFilter[]{new QFilter("billno", QCP.equals, orderBillNo)});
|
||||
if(dataEntity==null){
|
||||
resultExt = ApiResultExt.errorRetrun("sm_returnapply", "没查询到单据", error, resultExt);
|
||||
return CustomApiResult.success(resultExt);
|
||||
}
|
||||
boolean tqq9_isclose = dataEntity.getBoolean("tqq9_isclose");
|
||||
if (tqq9_isclose) {
|
||||
resultExt = ApiResultExt.errorRetrun("sm_returnapply", "该单据已关闭", error, resultExt);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ public class FWInvQueryModel implements Serializable {
|
|||
@ApiParam(value = "物料编码", example = "WL001", required = true)
|
||||
private String materialNumber;
|
||||
|
||||
@ApiParam(value = "业务归属编码", example = "SHLC", required = true)
|
||||
private String orgNumber;
|
||||
|
||||
@ApiParam(value = "批次号", example = "20250101")
|
||||
private String lot;
|
||||
|
||||
|
|
@ -79,5 +82,13 @@ public class FWInvQueryModel implements Serializable {
|
|||
public void setExpirydate(Date expirydate) {
|
||||
this.expirydate = expirydate;
|
||||
}
|
||||
|
||||
public String getOrgNumber() {
|
||||
return orgNumber;
|
||||
}
|
||||
|
||||
public void setOrgNumber(String orgNumber) {
|
||||
this.orgNumber = orgNumber;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import kd.bos.openapi.common.custom.annotation.ApiParam;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ApiModel
|
||||
|
|
@ -39,16 +40,10 @@ public class FWInvQueryResult implements Serializable {
|
|||
public List<ResultBean> getResult() {
|
||||
return result;
|
||||
}
|
||||
// public List<List<ResultBean>> getResult() {
|
||||
// return result;
|
||||
// }
|
||||
|
||||
public void setResult(List<ResultBean> result) {
|
||||
this.result = result;
|
||||
}
|
||||
// public void setResult(List<List<ResultBean>> result) {
|
||||
// this.result = result;
|
||||
// }
|
||||
|
||||
@ApiModel
|
||||
public static class ResultBean implements Serializable {
|
||||
|
|
@ -66,14 +61,18 @@ public class FWInvQueryResult implements Serializable {
|
|||
@ApiParam("仓库名称")
|
||||
private String warehouseName;
|
||||
|
||||
|
||||
|
||||
@ApiParam("物料编码")
|
||||
private String number;
|
||||
|
||||
@ApiParam("批号")
|
||||
private String lot;
|
||||
|
||||
@ApiParam("生产日期")
|
||||
private Date producedate;
|
||||
|
||||
@ApiParam("有效期至")
|
||||
private Date expirydate;
|
||||
|
||||
@ApiParam("可用库存数量")
|
||||
private BigDecimal qty;
|
||||
|
||||
|
|
@ -132,6 +131,22 @@ public class FWInvQueryResult implements Serializable {
|
|||
public void setLot(String lot) {
|
||||
this.lot = lot;
|
||||
}
|
||||
|
||||
public Date getProducedate() {
|
||||
return producedate;
|
||||
}
|
||||
|
||||
public void setProducedate(Date producedate) {
|
||||
this.producedate = producedate;
|
||||
}
|
||||
|
||||
public Date getExpirydate() {
|
||||
return expirydate;
|
||||
}
|
||||
|
||||
public void setExpirydate(Date expirydate) {
|
||||
this.expirydate = expirydate;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6114,9 +6114,6 @@ public class FWImpl {
|
|||
tableName_2 = "formtable_main_105_dt2";
|
||||
wfID = ConfigUtils.getThirdConfigByNumber("FW_WFID_GYSBG");
|
||||
requestid = bill.getString("tqq9_fwupdid");
|
||||
if(StringUtils.isBlank(requestid)){
|
||||
requestid = bill.getString("tqq9_fwrequestid");
|
||||
}
|
||||
|
||||
//修改供应商时,有可能修改供应商区域资质字段
|
||||
if(StringUtils.isNotBlank(gysqyzzbg)){
|
||||
|
|
@ -6585,9 +6582,6 @@ public class FWImpl {
|
|||
requestName = "变更物料流程";
|
||||
wfID = ConfigUtils.getThirdConfigByNumber("FW_WFID_WLBG");
|
||||
requestid = bill.getString("tqq9_fwupdid");
|
||||
if(StringUtils.isBlank(requestid)){
|
||||
requestid = bill.getString("tqq9_fwrequestid");
|
||||
}
|
||||
|
||||
JSONObject detail_change = new JSONObject();
|
||||
JSONArray recordsArr_change = new JSONArray();
|
||||
|
|
|
|||
Loading…
Reference in New Issue