fix:代码找回
This commit is contained in:
@@ -18,7 +18,9 @@ import org.nl.pda.pdm.service.PdmWorkTaskService;
|
||||
import org.nl.pda.st.vehicle.service.impl.EmptyVehicleServiceImpl;
|
||||
import org.nl.utils.SecurityUtils;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
||||
import org.nl.wms.basedata.master.service.ClassstandardService;
|
||||
import org.nl.wms.basedata.master.service.MaterialbaseService;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.st.core.task.InTask;
|
||||
import org.nl.wms.st.vehicle.task.ProductTask;
|
||||
@@ -44,6 +46,8 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService {
|
||||
private WmsToAcsService wmsToAcsService;
|
||||
@Autowired
|
||||
private ClassstandardService classstandardService;
|
||||
@Autowired
|
||||
private MaterialbaseService materialbaseService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryWorkTask(Map jsonObject) {
|
||||
@@ -805,6 +809,9 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Map<String, Object> issueQM(Map jsonObject) {
|
||||
WQLObject formDtlTab = WQLObject.getWQLObject("pdm_bi_formuladtl"); // 配方明细表
|
||||
WQLObject materExtTab = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); // 成品扩展属性表
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonObject)) {
|
||||
throw new PdaRequestException("传入参数不能为空!");
|
||||
}
|
||||
@@ -866,7 +873,55 @@ public class PdmWorkTaskServiceImpl implements PdmWorkTaskService {
|
||||
data2.put("code", para.getString("ext_name"));
|
||||
data2.put("value", row.getString("value"));
|
||||
//预磨1酒精设定值:开单重量*工艺参数"预磨1酒精设定值(改为比例)"
|
||||
double masterbucket_qty = form_jo.getDoubleValue("masterbucket_qty");
|
||||
// double masterbucket_qty = form_jo.getDoubleValue("masterbucket_qty");
|
||||
|
||||
/*
|
||||
计算开单重量:
|
||||
配方明细中【是否需要配粉】为是的和,其中若为软废,需要乘以物料扩展属性的纯粉系数
|
||||
*/
|
||||
// 1. 找出所有明细
|
||||
List<JSONObject> jsonDtlAll = formDtlTab.query("formula_id = '" + form_jo.getString("formula_id") + "' and is_need_manage = '1'").getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonDtlAll)) throw new BadRequestException("开单重量异常,请检查!");
|
||||
|
||||
// 2.过滤出是物料的
|
||||
List<JSONObject> jsonDtlAll_mater = jsonDtlAll.stream()
|
||||
.filter(item -> item.getString("material_type").equals("01"))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 3.计算物料分类重量
|
||||
double class_qty = jsonDtlAll.stream()
|
||||
.filter(item -> item.getString("material_type").equals("02"))
|
||||
.collect(Collectors.summarizingDouble(item -> item.getDoubleValue("formula_qty")))
|
||||
.getSum();
|
||||
|
||||
String masterbucket_qty1 = String.valueOf(class_qty);
|
||||
try {
|
||||
for (JSONObject jsonDtl : jsonDtlAll_mater) {
|
||||
String formula_qty = jsonDtl.getString("formula_qty");
|
||||
|
||||
// 判断是否是软废
|
||||
boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), jsonDtl.getString("material_id"), null);
|
||||
|
||||
if (is_rf) {
|
||||
// 软废:重量*纯粉系数
|
||||
String net_rate = materExtTab.query("material_id ='" + jsonDtl.getString("material_id") + "'").uniqueResult(0).getString("net_rate");
|
||||
|
||||
// 软废纯粉计算
|
||||
String rf_qty = NumberUtil.mul(formula_qty, NumberUtil.div(net_rate, "100").toString()).toString();
|
||||
|
||||
masterbucket_qty1 = NumberUtil.add(masterbucket_qty1,rf_qty).toString();
|
||||
} else {
|
||||
// 直接相加
|
||||
masterbucket_qty1 = NumberUtil.add(masterbucket_qty1,formula_qty).toString();
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("计算有误:"+e.getMessage());
|
||||
}
|
||||
double masterbucket_qty = Double.valueOf(masterbucket_qty1);
|
||||
|
||||
if (para.getString("para_code").equals("QM006")) {
|
||||
QM006_qty = NumberUtil.round(data2.getDoubleValue("value") * 0.01 * masterbucket_qty, 3);
|
||||
data2.put("value", NumberUtil.round(data2.getDoubleValue("value") * 0.01 * masterbucket_qty, 3));
|
||||
|
||||
@@ -567,9 +567,9 @@ public class HandNewMaterialServiceImpl implements HandNewMaterialService {
|
||||
if (unin <= 0) {
|
||||
throw new PdaRequestException("收货明细未入库数为0!");
|
||||
}
|
||||
if(bucket_now.getDouble("storage_qty") > unin){
|
||||
throw new PdaRequestException("当前组盘入库数"+bucket_now.getDouble("storage_qty")+"大于收货明细未入库数"+unin+"!");
|
||||
}
|
||||
if(bucket_now.getDouble("storage_qty") > unin){
|
||||
throw new PdaRequestException("当前组盘入库数"+bucket_now.getDouble("storage_qty")+"大于收货明细未入库数"+unin+"!");
|
||||
}
|
||||
bucket_now.put("source_billdtl_id", bill.get("source_billdtl_id"));
|
||||
bucket_now.put("source_bill_type", bill.get("source_bill_type"));
|
||||
bucket_now.put("source_bill_code", bill.get("source_bill_code"));
|
||||
@@ -643,6 +643,18 @@ public class HandNewMaterialServiceImpl implements HandNewMaterialService {
|
||||
total_qty = total_qty + bucket_now.getDoubleValue("storage_qty");
|
||||
}
|
||||
|
||||
// 判断等级是否一致
|
||||
JSONArray jsonDtlArr = io_dtl.query("iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0);
|
||||
String ivt_level = jsonDtlArr.getJSONObject(0).getString("ivt_level");
|
||||
|
||||
boolean is_level = jsonDtlArr.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.allMatch(row -> row.getString("ivt_level").equals(ivt_level));
|
||||
|
||||
if (!is_level) {
|
||||
throw new PdaRequestException("库存等级不一致,请检查!");
|
||||
}
|
||||
|
||||
HashMap<String, String> mst_map = new HashMap<>();
|
||||
mst_map.put("total_qty", total_qty + "");
|
||||
mst_map.put("detail_count", detail_count + "");
|
||||
|
||||
@@ -164,7 +164,7 @@ public class HandPFOutIvtServiceImpl implements HandPFOutIvtService {
|
||||
}
|
||||
String area_type = pointObj.getString("area_type");
|
||||
String bucketunique = jsonObject.get("bucketunique");
|
||||
String out_qty = jsonObject.get("out_qty");
|
||||
String out_qty = NumberUtil.round(jsonObject.get("out_qty"), 3).toString();
|
||||
//根据桶查询物料批次信息
|
||||
JSONObject bucketObj = WQLObject.getWQLObject("md_pb_bucketrecord").query("bucketunique='" + bucketunique + "'").uniqueResult(0);
|
||||
String material_id = bucketObj.getString("material_id");
|
||||
|
||||
@@ -83,4 +83,11 @@ public class PdaBucketController {
|
||||
public ResponseEntity<Object> delete(@RequestBody Map<String, String> whereJson) {
|
||||
return new ResponseEntity<>(bucketService.delete(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getLevel")
|
||||
@Log("获取等级下拉框")
|
||||
@ApiOperation("获取等级下拉框")
|
||||
public ResponseEntity<Object> delete() {
|
||||
return new ResponseEntity<>(bucketService.getLevel(), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,4 +53,9 @@ public interface PdaBucketService {
|
||||
*/
|
||||
Map<String, Object> delete(Map<String, String> jsonObject);
|
||||
|
||||
/**
|
||||
* 获取等级下拉框
|
||||
* @return /
|
||||
*/
|
||||
JSONObject getLevel();
|
||||
}
|
||||
|
||||
@@ -149,6 +149,7 @@ public class PdaBucketServiceImpl implements PdaBucketService {
|
||||
UserDto userDto = userService.findById(currentUserId);
|
||||
String input_optname = mst.getString("user");
|
||||
String pcsn = mst.getString("pcsn");
|
||||
String ivt_level = mst.getString("ivt_level");
|
||||
|
||||
if (StrUtil.isEmpty(material_id)) {
|
||||
throw new PdaRequestException("物料标识不能为空!");
|
||||
@@ -156,6 +157,20 @@ public class PdaBucketServiceImpl implements PdaBucketService {
|
||||
//2.假如桶码没有就插入,有就更新 桶记录表
|
||||
JSONObject bucketJo = new JSONObject();
|
||||
if (StrUtil.isNotEmpty(bucketunique)) {
|
||||
// 校验此桶是否有未完成的单据
|
||||
JSONObject map = new JSONObject();
|
||||
map.put("flag", "16");
|
||||
map.put("bucketunique", bucketunique);
|
||||
JSONArray iosList = WQL.getWO("QPADSTSETSERVICE").addParamMap(map).process().getResultJSONArray(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(iosList)) {
|
||||
boolean is_emp = iosList.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.allMatch(row -> row.getString("is_active").equals(is_active));
|
||||
|
||||
if (!is_emp) throw new PdaRequestException("此桶库存是否可用与选择是否可用不一致"+bucketunique+"!");
|
||||
}
|
||||
|
||||
bucketJo = bucketRecordTable.query("bucketunique='" + bucketunique + "'").uniqueResult(0);
|
||||
String before_storage_qty = bucketJo.getString("storage_qty");
|
||||
bucketJo.put("storagevehicle_type", "04");
|
||||
@@ -163,7 +178,7 @@ public class PdaBucketServiceImpl implements PdaBucketService {
|
||||
bucketJo.put("pcsn", pcsn);
|
||||
bucketJo.put("qty_unit_id", materDto.getBase_unit_id());
|
||||
bucketJo.put("qty_unit_name", materDto.getBase_unit_name());
|
||||
bucketJo.put("ivt_level", "01");
|
||||
bucketJo.put("ivt_level", ivt_level);
|
||||
bucketJo.put("quality_scode", "02");
|
||||
bucketJo.put("storage_qty", mst.getString("storage_qty"));
|
||||
bucketJo.put("is_active", is_active);
|
||||
@@ -185,7 +200,7 @@ public class PdaBucketServiceImpl implements PdaBucketService {
|
||||
bucketJo.put("pcsn", pcsn);
|
||||
bucketJo.put("qty_unit_id", materDto.getBase_unit_id());
|
||||
bucketJo.put("qty_unit_name",materDto.getBase_unit_name());
|
||||
bucketJo.put("ivt_level", "01");
|
||||
bucketJo.put("ivt_level", ivt_level);
|
||||
bucketJo.put("quality_scode", "02");
|
||||
bucketJo.put("storage_qty", mst.getString("storage_qty"));
|
||||
bucketJo.put("is_active", is_active);
|
||||
@@ -231,7 +246,7 @@ public class PdaBucketServiceImpl implements PdaBucketService {
|
||||
changeObj.put("bucket_code", bucketunique);
|
||||
changeObj.put("material_id", material_id);
|
||||
changeObj.put("pcsn", pcsn);
|
||||
changeObj.put("ivt_level", "01");
|
||||
changeObj.put("ivt_level", ivt_level);
|
||||
changeObj.put("is_active", is_active);
|
||||
changeObj.put("quality_scode", "02");
|
||||
String change_type_scode = "";
|
||||
@@ -356,5 +371,17 @@ public class PdaBucketServiceImpl implements PdaBucketService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getLevel() {
|
||||
|
||||
JSONArray resultJSONArray = WQL.getWO("QPADSTSETSERVICE").addParam("flag", "17").process().getResultJSONArray(0);
|
||||
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("code", "1");
|
||||
returnjo.put("desc", "查询成功!");
|
||||
returnjo.put("result", resultJSONArray);
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -478,3 +478,32 @@
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "16"
|
||||
QUERY
|
||||
SELECT
|
||||
dis.*
|
||||
FROM
|
||||
st_ivt_iostorinvdisdtl dis
|
||||
LEFT JOIN ST_IVT_IOStorInv mst ON mst.iostorinv_id = dis.iostorinv_id
|
||||
WHERE
|
||||
mst.io_type = '0'
|
||||
|
||||
OPTION 输入.bucketunique <> ""
|
||||
dis.bucketunique = 输入.bucketunique
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "17"
|
||||
QUERY
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
sys_dict_detail
|
||||
WHERE
|
||||
name = 'ST_IVT_LEVEL'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -105,4 +105,11 @@ public class DailyplanController {
|
||||
public void download(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
|
||||
dailyplanService.download(whereJson, response);
|
||||
}
|
||||
|
||||
@PostMapping("/querytable")
|
||||
@Log("查看明细")
|
||||
@ApiOperation("查看明细")
|
||||
public ResponseEntity<Object> querytable(@RequestBody JSONObject whereJson){
|
||||
return new ResponseEntity<>(dailyplanService.querytable(whereJson),HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,18 +12,18 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @description 服务接口
|
||||
* @author Liuxy
|
||||
* @date 2021-12-13
|
||||
**/
|
||||
* @description 服务接口
|
||||
* @author Liuxy
|
||||
* @date 2021-12-13
|
||||
**/
|
||||
public interface DailyplanService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
* 查询数据分页
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll2(Map whereJson);
|
||||
/**
|
||||
* 查询数据分页
|
||||
@@ -46,10 +46,10 @@ public interface DailyplanService {
|
||||
void create(JSONObject json);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
* @param whereJson 条件参数
|
||||
* @return List<ProductplanprocDto>
|
||||
*/
|
||||
* 查询所有数据不分页
|
||||
* @param whereJson 条件参数
|
||||
* @return List<ProductplanprocDto>
|
||||
*/
|
||||
JSONArray queryAll(Map whereJson);
|
||||
|
||||
/**
|
||||
@@ -60,10 +60,10 @@ public interface DailyplanService {
|
||||
ProductplanprocDto findById(Long plan_id);
|
||||
|
||||
/**
|
||||
* 根据编码查询
|
||||
* @param code code
|
||||
* @return Productplanproc
|
||||
*/
|
||||
* 根据编码查询
|
||||
* @param code code
|
||||
* @return Productplanproc
|
||||
*/
|
||||
ProductplanprocDto findByCode(String code);
|
||||
|
||||
/**
|
||||
@@ -73,9 +73,9 @@ public interface DailyplanService {
|
||||
void update(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
* @param ids /
|
||||
*/
|
||||
* 多选删除
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
/**
|
||||
@@ -96,4 +96,10 @@ public interface DailyplanService {
|
||||
* @throws IOException
|
||||
*/
|
||||
void download(Map whereJson, HttpServletResponse response) throws IOException;
|
||||
|
||||
/**
|
||||
* 查看明细
|
||||
* @param whereJson /
|
||||
*/
|
||||
JSONArray querytable(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package org.nl.wms.pdm.service.eum;
|
||||
|
||||
/**
|
||||
* 任务状态枚举
|
||||
*/
|
||||
public enum MaterTypeEnum {
|
||||
// 物料分类
|
||||
THW(1, "1503644361664106496", "碳化钨粉"),
|
||||
GF(2, "1503644362192588800", "钴粉"),
|
||||
WF(3, "1503644362234531840", "钨粉"),
|
||||
TF(4, "1503644362788179968", "碳粉"),
|
||||
RF(5, "1503644362150645760", "软废"),
|
||||
BY(6, "1503644361974484992", "切削油"),
|
||||
TJJ(7, "1503644361697660928", "添加剂"),
|
||||
HG(8, "1503644361571831808", "一般化工"),
|
||||
PG(9, "1503644362108702720", "PG粉"),
|
||||
|
||||
// 物料id
|
||||
THG(10, "('1510099925482999808')", "碳化铬 0.8"),
|
||||
THF(11, "('1510099925420085251')", "碳化钒 0.8"),
|
||||
THD_THN(12, "('1510099925420085249','1510099925420085250')", "碳化钽,碳化铌"),
|
||||
|
||||
;
|
||||
|
||||
private int index;
|
||||
private String id;
|
||||
private String name;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
MaterTypeEnum(int index, String id, String name) {
|
||||
this.index = index;
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,6 +27,7 @@ import org.nl.wms.pcs.service.dto.ProductplanprocDto;
|
||||
import org.nl.wms.pdm.service.DailyplanService;
|
||||
import org.nl.wms.pdm.service.ProducetaskprocService;
|
||||
import org.nl.wms.pdm.service.WorkOrdereService;
|
||||
import org.nl.wms.pdm.service.eum.MaterTypeEnum;
|
||||
import org.nl.wms.st.core.service.StorPublicService;
|
||||
import org.nl.wql.WQL;
|
||||
import org.nl.wql.core.bean.WQLObject;
|
||||
@@ -40,6 +41,7 @@ import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Liuxy
|
||||
@@ -143,59 +145,201 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
if (StrUtil.isNotEmpty(material_code)) {
|
||||
map.put("material_code", "%" + material_code + "%");
|
||||
}
|
||||
|
||||
String begin_time = map.get("begin_time");
|
||||
if (StrUtil.isNotEmpty(begin_time)) {
|
||||
map.put("begin_time", begin_time.substring(0,10)+" 00:00:00");
|
||||
}
|
||||
|
||||
String end_time = map.get("end_time");
|
||||
if (StrUtil.isNotEmpty(end_time)) {
|
||||
map.put("end_time", end_time.substring(0,10)+" 23:59:59");
|
||||
}
|
||||
map.put("flag", "7");
|
||||
JSONObject jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "WorkOrder2.device_id,WorkOrder2.material_code");
|
||||
JSONArray json = jret.getJSONArray("content");
|
||||
JSONArray ja = new JSONArray();
|
||||
for(int i=0;i<json.size();i++){
|
||||
JSONObject jo = json.getJSONObject(i);
|
||||
JSONObject last = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
|
||||
.addParam("flag", "44")
|
||||
.addParam("begin_time", map.get("begin_time"))
|
||||
.addParam("end_time",map.get("end_time"))
|
||||
.addParam("device_id",jo.getString("device_id"))
|
||||
.addParam("material_id",jo.getString("material_id"))
|
||||
.process().uniqueResult(0);
|
||||
if(last!=null){
|
||||
jo.put("pw_time",last.getString("realend_time"));
|
||||
}
|
||||
JSONObject last5 = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
|
||||
.addParam("flag", "55")
|
||||
.addParam("begin_time", map.get("begin_time"))
|
||||
.addParam("end_time",map.get("end_time"))
|
||||
.addParam("device_id",jo.getString("device_id"))
|
||||
.addParam("material_id",jo.getString("material_id"))
|
||||
.process().uniqueResult(0);
|
||||
if(last5!=null){
|
||||
jo.put("in_time",last5.getString("create_time"));
|
||||
}
|
||||
JSONObject last6 = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
|
||||
.addParam("flag", "66")
|
||||
.addParam("begin_time", map.get("begin_time"))
|
||||
.addParam("end_time",map.get("end_time"))
|
||||
.addParam("device_id",jo.getString("device_id"))
|
||||
.addParam("material_id",jo.getString("material_id"))
|
||||
.process().uniqueResult(0);
|
||||
if(StrUtil.isNotEmpty(last6.getString("total_qty"))){
|
||||
jo.put("in_qty",last6.getDouble("total_qty")/1000.0);
|
||||
}
|
||||
if(StrUtil.isNotEmpty(last6.getString("in_num"))){
|
||||
jo.put("in_num",last6.getDouble("in_num"));
|
||||
}
|
||||
jo.put("sum_qty",jo.getDouble("sum_qty")/1000.0);
|
||||
ja.add(jo);
|
||||
|
||||
map.put("flag", "1");
|
||||
|
||||
// 根据 【工令日期】 和 【设备】分组
|
||||
JSONObject jsonAll = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "planstart_time,device_code");
|
||||
|
||||
// 计算每一天每一台设备的所有工令
|
||||
JSONArray content = jsonAll.getJSONArray("content");
|
||||
|
||||
JSONArray array = new JSONArray();
|
||||
for (int i = 0; i < content.size(); i++) {
|
||||
JSONObject json = content.getJSONObject(i);
|
||||
|
||||
// 调用字段处理方法
|
||||
JSONObject result = fieldHand(json);
|
||||
result.put("workorder_date", json.getString("planstart_time")); // 日期
|
||||
result.put("device_name", json.getString("device_name")); // 喷雾塔
|
||||
result.put("device_code", json.getString("device_code")); // 喷雾塔
|
||||
array.add(result);
|
||||
}
|
||||
jret.put("content",ja);
|
||||
return jret;
|
||||
|
||||
jsonAll.put("content",array);
|
||||
return jsonAll;
|
||||
}
|
||||
|
||||
private JSONObject fieldHand(JSONObject json) {
|
||||
|
||||
JSONObject jsonResult = new JSONObject();
|
||||
/*
|
||||
* 原材料处理
|
||||
*/
|
||||
|
||||
// 处理配方明细物料类型为【物料】 -01
|
||||
json.put("flag", "2");
|
||||
JSONArray arrayMater = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().getResultJSONArray(0);
|
||||
|
||||
// 碳化钨 - sum_qty1
|
||||
List<JSONObject> jsonThw = arrayMater.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.THW.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonResult.put("sum_qty1",ObjectUtil.isNotEmpty(jsonThw) ? jsonThw.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 钴粉 - sum_qty2
|
||||
List<JSONObject> jsonGf = arrayMater.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.GF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonResult.put("sum_qty2",ObjectUtil.isNotEmpty(jsonGf) ? jsonGf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
|
||||
// 处理【添加剂】
|
||||
// 碳化铬 - sum_qty4
|
||||
json.put("material_id", MaterTypeEnum.THG.getId());
|
||||
JSONObject jsonThg = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().uniqueResult(0);
|
||||
|
||||
jsonResult.put("sum_qty4",ObjectUtil.isNotEmpty(jsonThg) ? jsonThg.getDoubleValue("num") : 0);
|
||||
|
||||
// 碳化钒 - sum_qty5
|
||||
json.put("material_id", MaterTypeEnum.THF.getId());
|
||||
JSONObject jsonThf = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().uniqueResult(0);
|
||||
|
||||
jsonResult.put("sum_qty5",ObjectUtil.isNotEmpty(jsonThf) ? jsonThf.getDoubleValue("num") : 0);
|
||||
|
||||
|
||||
// 碳化钽/铌 - sum_qty6
|
||||
json.put("material_id", MaterTypeEnum.THD_THN.getId());
|
||||
JSONObject jsonThdThn = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().uniqueResult(0);
|
||||
|
||||
jsonResult.put("sum_qty6",ObjectUtil.isNotEmpty(jsonThdThn) ? jsonThdThn.getDoubleValue("num") : 0);
|
||||
|
||||
// 处理配方明细物料类型为【物料分类】 -02
|
||||
json.put("flag", "3");
|
||||
JSONArray arrayClass = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().getResultJSONArray(0);
|
||||
|
||||
// 碳粉 - sum_qty7
|
||||
List<JSONObject> jsonTf = arrayClass.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.TF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonResult.put("sum_qty7",ObjectUtil.isNotEmpty(jsonTf) ? jsonTf.get(0).getDoubleValue("num"): 0);
|
||||
|
||||
|
||||
// 钨粉 - sum_qty8
|
||||
List<JSONObject> jsonWf = arrayClass.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.WF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonResult.put("sum_qty8",ObjectUtil.isNotEmpty(jsonWf) ? jsonWf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 原材料合计 - sum_qty9
|
||||
String yl_num = NumberUtil.add(
|
||||
jsonResult.getString("sum_qty1"),
|
||||
jsonResult.getString("sum_qty2"),
|
||||
jsonResult.getString("sum_qty4"),
|
||||
jsonResult.getString("sum_qty5"),
|
||||
jsonResult.getString("sum_qty6"),
|
||||
jsonResult.getString("sum_qty7"),
|
||||
jsonResult.getString("sum_qty8")
|
||||
).toString();
|
||||
|
||||
jsonResult.put("sum_qty9",yl_num);
|
||||
|
||||
/*
|
||||
* 二次粉
|
||||
*/
|
||||
// PG粉 - sum_qty10
|
||||
List<JSONObject> jsonPg = arrayMater.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.PG.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonResult.put("sum_qty10",ObjectUtil.isNotEmpty(jsonPg) ? jsonPg.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 软废 - sum_qty11
|
||||
List<JSONObject> jsonRf = arrayMater.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.RF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
jsonResult.put("sum_qty11",ObjectUtil.isNotEmpty(jsonRf) ? jsonRf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
/*
|
||||
* 成型剂
|
||||
*/
|
||||
|
||||
// 二次粉和成型剂合计 - sum_qty15
|
||||
String tow_num = NumberUtil.add(
|
||||
jsonResult.getString("sum_qty10"),
|
||||
jsonResult.getString("sum_qty11")
|
||||
).toString();
|
||||
|
||||
jsonResult.put("sum_qty15",tow_num);
|
||||
|
||||
/*
|
||||
* 投入汇总 - sum_qty16
|
||||
*/
|
||||
String sum_num = NumberUtil.add(
|
||||
jsonResult.getString("sum_qty9"),
|
||||
jsonResult.getString("sum_qty15")
|
||||
).toString();
|
||||
|
||||
jsonResult.put("sum_qty16",sum_num);
|
||||
|
||||
/*
|
||||
* 产出
|
||||
*/
|
||||
// PG粉重量 - out_qty1
|
||||
json.put("flag", "4");
|
||||
JSONObject jsonPgOut = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().uniqueResult(0);
|
||||
|
||||
jsonResult.put("out_qty1",ObjectUtil.isNotEmpty(jsonPgOut) ? jsonPgOut.getDoubleValue("num") : 0);
|
||||
|
||||
// 残料 - out_qty2
|
||||
json.put("flag", "5");
|
||||
JSONObject jsonClOut = WQL.getWO("QPDM_PRODUCTDAILYPLAN_2").addParamMap(json).process().uniqueResult(0);
|
||||
|
||||
jsonResult.put("out_qty2",ObjectUtil.isNotEmpty(jsonClOut) ? jsonClOut.getDoubleValue("num") : 0);
|
||||
|
||||
// 产出总重量 - out_qty3
|
||||
String out_num = NumberUtil.add(
|
||||
jsonResult.getString("out_qty1"),
|
||||
jsonResult.getString("out_qty2")
|
||||
).toString();
|
||||
|
||||
jsonResult.put("out_qty3",out_num);
|
||||
|
||||
/*
|
||||
* 投入产出比:产出总重量/投入汇总x100%
|
||||
* - in_num
|
||||
*/
|
||||
|
||||
if (jsonResult.getDoubleValue("sum_qty16") != 0) {
|
||||
String in_num = NumberUtil.round(NumberUtil.div(jsonResult.getString("out_qty3"), jsonResult.getString("sum_qty16")), 3).toString();
|
||||
jsonResult.put("in_num",NumberUtil.mul(in_num, "100"));
|
||||
} else {
|
||||
jsonResult.put("in_num",0);
|
||||
}
|
||||
return jsonResult;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray queryAll(Map whereJson) {
|
||||
HashMap<String, String> map = new HashMap<>(whereJson);
|
||||
@@ -363,7 +507,7 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
String nickName = SecurityUtils.getNickName();
|
||||
String now = DateUtil.now();
|
||||
for (Long dailyplan_id : ids) {
|
||||
JSONObject jo = MPS_BD_ProductDailyPlan.query("dailyplan_id='"+dailyplan_id+"'").uniqueResult(0);
|
||||
JSONObject jo = MPS_BD_ProductDailyPlan.query("dailyplan_id='"+dailyplan_id+"'").uniqueResult(0);
|
||||
if(jo==null){
|
||||
throw new BadRequestException("该记录不存在!");
|
||||
}
|
||||
@@ -794,4 +938,255 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray querytable(JSONObject whereJson) {
|
||||
|
||||
// 根据日期、设备查出对应工令
|
||||
JSONArray resultJSONArray = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParam("flag", "1")
|
||||
.addParam("planstart_time", whereJson.getString("workorder_date"))
|
||||
.addParam("device_code", whereJson.getString("device_code"))
|
||||
.process().getResultJSONArray(0);
|
||||
|
||||
JSONArray resulArr = new JSONArray();
|
||||
for (int i = 0; i < resultJSONArray.size(); i++) {
|
||||
JSONObject json = resultJSONArray.getJSONObject(i);
|
||||
|
||||
// 调用处理方法
|
||||
JSONObject result = fieldHandDtl(json);
|
||||
resulArr.add(result);
|
||||
}
|
||||
|
||||
return resulArr;
|
||||
}
|
||||
|
||||
private JSONObject fieldHandDtl(JSONObject json) {
|
||||
|
||||
WQLObject workTaskTab = WQLObject.getWQLObject("pdm_bi_worktask"); // 工令工序任务表
|
||||
WQLObject buckTab = WQLObject.getWQLObject("MD_PB_BucketRecord"); // 桶记录表
|
||||
WQLObject deptTab = WQLObject.getWQLObject("PDM_BI_ProductDeptPCSN"); // 生产事业部批次代码表
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
// 配粉日期:配粉工序计划开始时间 - pw_time
|
||||
JSONObject jsonPf = workTaskTab.query("workorder_id = '" + json.getString("workorder_id") + "' and workprocedure_code = 'GX001'").uniqueResult(0);
|
||||
|
||||
result.put("pw_time",ObjectUtil.isNotEmpty(jsonPf) ? jsonPf.getString("planstart_time").substring(0,10) : "");
|
||||
|
||||
// 物料编码 - material_code
|
||||
result.put("material_code",json.getString("material_code"));
|
||||
|
||||
// 牌号 - old_mark
|
||||
result.put("old_mark",json.getString("old_mark"));
|
||||
|
||||
// 批号 - pcsn
|
||||
result.put("pcsn",json.getString("pcsn"));
|
||||
|
||||
// 归属部门:工令里的所属组织
|
||||
JSONObject jsonDept = deptTab.query("org_id = '" + json.getString("org_id") + "'").uniqueResult(0);
|
||||
result.put("org_name",ObjectUtil.isNotEmpty(jsonDept) ? jsonDept.getString("org_name") : "");
|
||||
|
||||
/*
|
||||
* 原材料
|
||||
* 物料
|
||||
*/
|
||||
JSONArray jsonYl = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParam("flag", "2").addParam("workorder_id", json.getString("workorder_id")).process().getResultJSONArray(0);
|
||||
|
||||
// 碳化钨 - sum_qty1
|
||||
List<JSONObject> jsonThw = jsonYl.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.THW.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
result.put("sum_qty1",ObjectUtil.isNotEmpty(jsonThw) ? jsonThw.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 钴粉 - sum_qty2
|
||||
List<JSONObject> jsonGf = jsonYl.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.GF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
result.put("sum_qty2",ObjectUtil.isNotEmpty(jsonGf) ? jsonGf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 镍粉 - sum_qty3
|
||||
result.put("sum_qty3",0);
|
||||
|
||||
/*
|
||||
* 原材料
|
||||
* 添加剂
|
||||
*/
|
||||
// 碳化铬 - sum_qty4
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("workorder_id", json.getString("workorder_id"));
|
||||
param.put("material_id", MaterTypeEnum.THG.getId());
|
||||
param.put("flag", "2");
|
||||
|
||||
JSONObject jsonThg = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParamMap(param).process().uniqueResult(0);
|
||||
|
||||
result.put("sum_qty4",ObjectUtil.isNotEmpty(jsonThg) ? jsonThg.getDoubleValue("num") : 0);
|
||||
|
||||
// 碳化钒 - sum_qty5
|
||||
param.put("material_id", MaterTypeEnum.THF.getId());
|
||||
JSONObject jsonThf = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParamMap(param).process().uniqueResult(0);
|
||||
|
||||
result.put("sum_qty5",ObjectUtil.isNotEmpty(jsonThf) ? jsonThf.getDoubleValue("num") : 0);
|
||||
|
||||
// 碳化钽/铌 - sum_qty6
|
||||
param.put("material_id", MaterTypeEnum.THD_THN.getId());
|
||||
JSONObject jsonThdAndThn = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParamMap(param).process().uniqueResult(0);
|
||||
|
||||
result.put("sum_qty6",ObjectUtil.isNotEmpty(jsonThdAndThn) ? jsonThdAndThn.getDoubleValue("num") : 0);
|
||||
|
||||
/*
|
||||
* 原材料
|
||||
* 物料分类
|
||||
*/
|
||||
JSONArray jsonYlClassType = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParam("flag", "3").addParam("workorder_id", json.getString("workorder_id")).process().getResultJSONArray(0);
|
||||
|
||||
// 碳粉 - sum_qty7
|
||||
List<JSONObject> jsonTf = jsonYlClassType.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.TF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
result.put("sum_qty7",ObjectUtil.isNotEmpty(jsonTf) ? jsonTf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 钨粉 - sum_qty8
|
||||
List<JSONObject> jsonWf = jsonYlClassType.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.WF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
result.put("sum_qty8",ObjectUtil.isNotEmpty(jsonWf) ? jsonWf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 原材料合计 - sum_qty9
|
||||
String sum_qty9 = NumberUtil.add(
|
||||
result.getString("sum_qty1"),
|
||||
result.getString("sum_qty2"),
|
||||
result.getString("sum_qty3"),
|
||||
result.getString("sum_qty4"),
|
||||
result.getString("sum_qty5"),
|
||||
result.getString("sum_qty6"),
|
||||
result.getString("sum_qty7"),
|
||||
result.getString("sum_qty8")
|
||||
).toString();
|
||||
|
||||
result.put("sum_qty9",sum_qty9);
|
||||
|
||||
/*
|
||||
* 二次粉
|
||||
*/
|
||||
// PG粉 - sum_qty10
|
||||
List<JSONObject> jsonPg = jsonYl.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.PG.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
result.put("sum_qty10",ObjectUtil.isNotEmpty(jsonPg) ? jsonPg.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
// 软废 - sum_qty11
|
||||
List<JSONObject> jsonRf = jsonYl.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> row.getString("material_type_id").equals(MaterTypeEnum.RF.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
result.put("sum_qty11",ObjectUtil.isNotEmpty(jsonRf) ? jsonRf.get(0).getDoubleValue("num") : 0);
|
||||
|
||||
/*
|
||||
* 成型剂
|
||||
*/
|
||||
// PEG2000\PEG - sum_qty12
|
||||
result.put("sum_qty12",0);
|
||||
|
||||
// 石蜡/kg - sum_qty13
|
||||
result.put("sum_qty13",0);
|
||||
|
||||
// 白油 - sum_qty14
|
||||
result.put("sum_qty14",0);
|
||||
|
||||
// 二次粉 + 成型剂 合计 - sum_qty15
|
||||
String sum_qty15 = NumberUtil.add(
|
||||
result.getString("sum_qty10"),
|
||||
result.getString("sum_qty11"),
|
||||
result.getString("sum_qty12"),
|
||||
result.getString("sum_qty13"),
|
||||
result.getString("sum_qty14")
|
||||
).toString();
|
||||
|
||||
result.put("sum_qty15",sum_qty15);
|
||||
|
||||
// 投入汇总:两次合计 - sum_qty16
|
||||
String sum_qty16 = NumberUtil.add(
|
||||
result.getString("sum_qty9"),
|
||||
result.getString("sum_qty15")
|
||||
).toString();
|
||||
|
||||
result.put("sum_qty16",sum_qty16);
|
||||
|
||||
/*
|
||||
* 工序信息
|
||||
* 球磨工序
|
||||
*/
|
||||
JSONObject paramGx = new JSONObject();
|
||||
paramGx.put("flag", "4");
|
||||
paramGx.put("workorder_id", json.getString("workorder_id"));
|
||||
paramGx.put("workprocedure_code", "GX002");
|
||||
JSONObject jsonQm = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParamMap(paramGx).process().uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonQm)) {
|
||||
// 开工日期: 创建日期 - task_qty1
|
||||
result.put("task_qty1",ObjectUtil.isNotEmpty(jsonQm.getString("start_time")) ? jsonQm.getString("start_time").substring(0,10) : "");
|
||||
}
|
||||
|
||||
// 设备号 - task_qty2
|
||||
result.put("task_qty2",ObjectUtil.isNotEmpty(jsonQm) ? jsonQm.getString("device_code") : "");
|
||||
|
||||
// 操作人员 - task_qty3
|
||||
result.put("task_qty3",ObjectUtil.isNotEmpty(jsonQm) ? jsonQm.getString("start_name") : "");
|
||||
|
||||
/*
|
||||
* 工序信息
|
||||
* 喷雾工序
|
||||
*/
|
||||
paramGx.put("workprocedure_code", "GX003");
|
||||
JSONObject jsonPw = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParamMap(paramGx).process().uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonPw)) {
|
||||
// 计划日期 - task_qty4
|
||||
result.put("task_qty4",ObjectUtil.isNotEmpty(jsonPw) ? jsonPw.getString("planend_time").substring(0,10) : "");
|
||||
|
||||
// 执行日期 - task_qty5
|
||||
result.put("task_qty5",ObjectUtil.isNotEmpty(jsonPw.getString("start_time")) ? jsonPw.getString("start_time").substring(0,10) : "");
|
||||
}
|
||||
|
||||
// 设备号 - task_qty6
|
||||
result.put("task_qty6",ObjectUtil.isNotEmpty(jsonPw) ? jsonPw.getString("device_code") : "");
|
||||
|
||||
// 产出Kg: 下线桶记录表汇总 - task_qty7
|
||||
paramGx.put("flag", "5");
|
||||
JSONObject jsonOut = WQL.getWO("QPDM_PRODUCTDAILYPLAN_3").addParamMap(paramGx).process().uniqueResult(0);
|
||||
result.put("task_qty7",ObjectUtil.isNotEmpty(jsonOut) ? jsonOut.getDoubleValue("num") : 0);
|
||||
|
||||
// 操作人员 - task_qty8
|
||||
result.put("task_qty8",ObjectUtil.isNotEmpty(jsonPw) ? jsonPw.getString("start_name") : "");
|
||||
|
||||
/*
|
||||
* 锤磨 压团 制粒
|
||||
*/
|
||||
|
||||
/*
|
||||
* 产出
|
||||
*/
|
||||
// 入库日期 - out_qty1
|
||||
JSONObject jsonInTime = buckTab.query("material_id = '" + json.getString("material_id") + "' and pcsn = '" + json.getString("pcsn") + "' order by instor_time").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(jsonInTime)) {
|
||||
result.put("out_qty1",ObjectUtil.isNotEmpty(jsonInTime.getString("instor_time")) ? jsonInTime.getString("instor_time").substring(0,10) : "");
|
||||
}
|
||||
|
||||
// PG粉重量 - out_qty2
|
||||
result.put("out_qty2",ObjectUtil.isNotEmpty(jsonOut) ? jsonOut.getDoubleValue("num") : 0);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,207 @@
|
||||
[交易说明]
|
||||
交易名: 混合料场报表分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.material_code TYPEAS s_string
|
||||
输入.begin_time TYPEAS s_string
|
||||
输入.end_time TYPEAS s_string
|
||||
输入.device_id TYPEAS s_string
|
||||
|
||||
输入.planstart_time TYPEAS s_string
|
||||
输入.device_code TYPEAS s_string
|
||||
输入.material_id TYPEAS f_string
|
||||
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
SUBSTRING(workorder.planstart_time,1,10) AS planstart_time,
|
||||
device.device_code,
|
||||
MAX(device.device_name) AS device_name
|
||||
FROM
|
||||
pdm_bi_workorder workorder
|
||||
INNER JOIN pdm_bi_worktask workTask ON workTask.workorder_id = workorder.workorder_id AND workTask.workprocedure_code = 'GX003'
|
||||
INNER JOIN em_bi_deviceinfo device ON workTask.device_id = device.device_id AND device.is_produceuse = '1'
|
||||
WHERE
|
||||
device.workprocedure_id = '1472449923327856640'
|
||||
AND workorder.is_delete = '0'
|
||||
|
||||
OPTION 输入.material_code <> ""
|
||||
mater.material_code = 输入.material_code
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.device_id <> ""
|
||||
workorder.device_id = 输入.device_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.begin_time <> ""
|
||||
workorder.planstart_time >= 输入.begin_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.end_time <> ""
|
||||
workorder.planstart_time <= 输入.end_time
|
||||
ENDOPTION
|
||||
|
||||
GROUP BY planstart_time,device.device_code
|
||||
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(dtl.formula_qty) AS num,
|
||||
mater.material_type_id,
|
||||
class.class_name
|
||||
FROM
|
||||
pdm_bi_formuladtl dtl
|
||||
LEFT JOIN pdm_bi_formula mst ON mst.formula_id = dtl.formula_id
|
||||
LEFT JOIN pdm_bi_workorder workorder ON mst.workorder_id = workorder.workorder_id
|
||||
INNER JOIN pdm_bi_worktask workTask ON workTask.workorder_id = workorder.workorder_id AND workTask.workprocedure_code = 'GX003'
|
||||
INNER JOIN em_bi_deviceinfo device ON workTask.device_id = device.device_id AND device.is_produceuse = '1'
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON mater.material_type_id = class.class_id
|
||||
WHERE
|
||||
device.workprocedure_id = '1472449923327856640'
|
||||
AND workorder.is_delete = '0'
|
||||
AND mst.is_delete = '0'
|
||||
AND dtl.material_type = '01'
|
||||
|
||||
OPTION 输入.planstart_time <> ""
|
||||
SUBSTRING(workorder.planstart_time,1,10) = 输入.planstart_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
device.device_code = 输入.device_code
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.material_id <> ""
|
||||
mater.material_id in 输入.material_id
|
||||
ENDOPTION
|
||||
|
||||
group by mater.material_type_id
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(dtl.formula_qty) AS num,
|
||||
class.class_id AS material_type_id,
|
||||
class.class_name
|
||||
FROM
|
||||
pdm_bi_formuladtl dtl
|
||||
LEFT JOIN pdm_bi_formula mst ON mst.formula_id = dtl.formula_id
|
||||
LEFT JOIN pdm_bi_workorder workorder ON mst.workorder_id = workorder.workorder_id
|
||||
INNER JOIN pdm_bi_worktask workTask ON workTask.workorder_id = workorder.workorder_id AND workTask.workprocedure_code = 'GX003'
|
||||
INNER JOIN em_bi_deviceinfo device ON workTask.device_id = device.device_id AND device.is_produceuse = '1'
|
||||
LEFT JOIN md_pb_classstandard class ON dtl.material_id = class.class_id
|
||||
WHERE
|
||||
device.workprocedure_id = '1472449923327856640'
|
||||
AND workorder.is_delete = '0'
|
||||
AND mst.is_delete = '0'
|
||||
AND dtl.material_type = '02'
|
||||
|
||||
OPTION 输入.planstart_time <> ""
|
||||
SUBSTRING(workorder.planstart_time,1,10) = 输入.planstart_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
device.device_code = 输入.device_code
|
||||
ENDOPTION
|
||||
|
||||
group by class.class_id
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(ne.qty) AS num
|
||||
FROM
|
||||
PDM_BI_ProcedureOffline ne
|
||||
LEFT JOIN pdm_bi_workorder workorder ON ne.workorder_id = workorder.workorder_id
|
||||
LEFT JOIN md_pb_bucketrecord buck ON ne.bucketunique = buck.bucketunique
|
||||
INNER JOIN pdm_bi_worktask workTask ON workTask.workorder_id = workorder.workorder_id AND workTask.workprocedure_code = 'GX003'
|
||||
INNER JOIN em_bi_deviceinfo device ON workTask.device_id = device.device_id AND device.is_produceuse = '1'
|
||||
WHERE
|
||||
device.workprocedure_id = '1472449923327856640'
|
||||
AND workorder.is_delete = '0'
|
||||
AND buck.quality_scode <> '02'
|
||||
|
||||
OPTION 输入.planstart_time <> ""
|
||||
SUBSTRING(workorder.planstart_time,1,10) = 输入.planstart_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
device.device_code = 输入.device_code
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "5"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(buck.storage_qty) AS num
|
||||
FROM
|
||||
md_pb_bucketrecord buck
|
||||
LEFT JOIN pdm_bi_workorder workorder ON buck.material_id = workorder.material_id AND buck.pcsn = workorder.pcsn
|
||||
INNER JOIN pdm_bi_worktask workTask ON workTask.workorder_id = workorder.workorder_id AND workTask.workprocedure_code = 'GX003'
|
||||
INNER JOIN em_bi_deviceinfo device ON workTask.device_id = device.device_id AND device.is_produceuse = '1'
|
||||
WHERE
|
||||
device.workprocedure_id = '1472449923327856640'
|
||||
AND workorder.is_delete = '0'
|
||||
AND buck.quality_scode = '02'
|
||||
|
||||
OPTION 输入.planstart_time <> ""
|
||||
SUBSTRING(workorder.planstart_time,1,10) = 输入.planstart_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
device.device_code = 输入.device_code
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -0,0 +1,162 @@
|
||||
[交易说明]
|
||||
交易名: 混合料场报表明细查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.planstart_time TYPEAS s_string
|
||||
输入.device_code TYPEAS s_string
|
||||
|
||||
输入.workorder_id TYPEAS s_string
|
||||
输入.material_id TYPEAS f_string
|
||||
|
||||
输入.workprocedure_code TYPEAS s_string
|
||||
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
workorder.*,
|
||||
mater.material_code,
|
||||
ext.old_mark
|
||||
FROM
|
||||
pdm_bi_workorder workorder
|
||||
INNER JOIN pdm_bi_worktask workTask ON workTask.workorder_id = workorder.workorder_id AND workTask.workprocedure_code = 'GX003'
|
||||
INNER JOIN em_bi_deviceinfo device ON workTask.device_id = device.device_id AND device.is_produceuse = '1'
|
||||
INNER JOIN md_me_materialbase mater ON workTask.material_id = mater.material_id
|
||||
INNER JOIN MD_ME_ProducMaterialExt ext ON ext.material_id = mater.material_id
|
||||
WHERE
|
||||
device.workprocedure_id = '1472449923327856640'
|
||||
AND workorder.is_delete = '0'
|
||||
|
||||
OPTION 输入.planstart_time <> ""
|
||||
SUBSTRING(workorder.planstart_time,1,10) = 输入.planstart_time
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
device.device_code = 输入.device_code
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(dtl.formula_qty) AS num,
|
||||
mater.material_type_id
|
||||
FROM
|
||||
pdm_bi_formuladtl dtl
|
||||
LEFT JOIN pdm_bi_formula mst ON mst.formula_id = dtl.formula_id
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id
|
||||
WHERE
|
||||
dtl.material_type = '01'
|
||||
|
||||
OPTION 输入.workorder_id <> ""
|
||||
mst.workorder_id = 输入.workorder_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.material_id <> ""
|
||||
dtl.material_id in 输入.material_id
|
||||
ENDOPTION
|
||||
|
||||
group by mater.material_type_id
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(dtl.formula_qty) AS num,
|
||||
class.class_id AS material_type_id
|
||||
FROM
|
||||
pdm_bi_formuladtl dtl
|
||||
LEFT JOIN pdm_bi_formula mst ON mst.formula_id = dtl.formula_id
|
||||
LEFT JOIN md_pb_classstandard class ON class.class_id = dtl.material_id
|
||||
WHERE
|
||||
dtl.material_type = '02'
|
||||
|
||||
OPTION 输入.workorder_id <> ""
|
||||
mst.workorder_id = 输入.workorder_id
|
||||
ENDOPTION
|
||||
|
||||
group by class.class_id
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "4"
|
||||
QUERY
|
||||
SELECT
|
||||
workTask.*,
|
||||
device.device_code
|
||||
FROM
|
||||
pdm_bi_worktask workTask
|
||||
LEFT JOIN em_bi_deviceinfo device ON device.device_id = workTask.device_id
|
||||
WHERE
|
||||
1 = 1
|
||||
|
||||
OPTION 输入.workorder_id <> ""
|
||||
workTask.workorder_id = 输入.workorder_id
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.workprocedure_code <> ""
|
||||
workTask.workprocedure_code = 输入.workprocedure_code
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "5"
|
||||
QUERY
|
||||
SELECT
|
||||
SUM(qty) AS num
|
||||
FROM
|
||||
PDM_BI_ProcedureOffline
|
||||
WHERE
|
||||
1 = 1
|
||||
|
||||
OPTION 输入.workorder_id <> ""
|
||||
workorder_id = 输入.workorder_id
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -13,6 +13,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.exception.BadRequestException;
|
||||
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
||||
import org.nl.wms.basedata.master.service.MaterialbaseService;
|
||||
import org.nl.wms.pf.service.AutoformulaService;
|
||||
import org.nl.wms.pf.service.InitformulaService;
|
||||
import org.nl.wql.WQL;
|
||||
@@ -30,6 +31,7 @@ import java.util.stream.Collectors;
|
||||
@Slf4j
|
||||
public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
private final InitformulaService initformulaService;
|
||||
private final MaterialbaseService materialbaseService;
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject autoCalculation(Map map) {
|
||||
@@ -164,12 +166,10 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
JSONArray ivts = new JSONArray();
|
||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||
.addParam("mater_ids",allmaterialId)
|
||||
.addParam("product_material_id",material_id)
|
||||
.addParam("set_type","01")
|
||||
.addParam("is_active",value_is_active)
|
||||
.addParam("quality_scode","02")
|
||||
.addParam("workorder_id",workorder_id)
|
||||
.addParam("flag","23")
|
||||
.addParam("flag","22")
|
||||
.process().getResultJSONArray(0);
|
||||
for(int j=0;j<now_ivts.size();j++){
|
||||
JSONObject jo = now_ivts.getJSONObject(j);
|
||||
@@ -1609,12 +1609,10 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
for(int i=0;i<MaterialSets.size();i++){
|
||||
JSONObject MaterialSet = MaterialSets.getJSONObject(i);
|
||||
String set_material_id = MaterialSet.getString("set_material_id");
|
||||
String set_prior_level = MaterialSet.getString("set_prior_level");
|
||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||
.addParam("material_id",set_material_id)
|
||||
.addParam("workorder_id",workorder_id)
|
||||
.addParam("is_active",value_is_active)
|
||||
.addParam("set_prior_level",set_prior_level)
|
||||
.addParam("quality_scode","02")
|
||||
.addParam("flag","22")
|
||||
.process().getResultJSONArray(0);
|
||||
@@ -2939,11 +2937,9 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||
.addParam("mater_ids",allmaterialId)
|
||||
.addParam("is_active",value_is_active)
|
||||
.addParam("product_material_id",material_id)
|
||||
.addParam("set_type","02")
|
||||
.addParam("quality_scode","02")
|
||||
.addParam("workorder_id",workorder_id)
|
||||
.addParam("flag","23")
|
||||
.addParam("flag","22")
|
||||
.process().getResultJSONArray(0);
|
||||
for(int j=0;j<now_ivts.size();j++){
|
||||
JSONObject jo = now_ivts.getJSONObject(j);
|
||||
@@ -3300,11 +3296,9 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
for(int i=0;i<MaterialSets.size();i++){
|
||||
JSONObject MaterialSet = MaterialSets.getJSONObject(i);
|
||||
String set_material_id = MaterialSet.getString("set_material_id");
|
||||
String set_prior_level = MaterialSet.getString("set_prior_level");
|
||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||
.addParam("material_id",set_material_id)
|
||||
.addParam("is_active",value_is_active)
|
||||
.addParam("set_prior_level",set_prior_level)
|
||||
.addParam("quality_scode","02")
|
||||
.addParam("workorder_id",workorder_id)
|
||||
.addParam("flag","22")
|
||||
@@ -4625,11 +4619,9 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||
.addParam("mater_ids",allmaterialId)
|
||||
.addParam("is_active",value_is_active)
|
||||
.addParam("product_material_id",material_id)
|
||||
.addParam("set_type","02")
|
||||
.addParam("quality_scode","02")
|
||||
.addParam("workorder_id",workorder_id)
|
||||
.addParam("flag","92")
|
||||
.addParam("flag","9")
|
||||
.process().getResultJSONArray(0);
|
||||
|
||||
for(int j=0;j<now_ivts.size();j++){
|
||||
@@ -4887,14 +4879,56 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
}
|
||||
dtl_new.add(jo);
|
||||
}
|
||||
|
||||
/*
|
||||
* 计算出球磨时间
|
||||
*/
|
||||
// 1.找出所有软废
|
||||
List<JSONObject> rfList = dtl_new.stream()
|
||||
.map(row -> (JSONObject) row)
|
||||
.filter(row -> ObjectUtil.isNotEmpty(row.getString("material_type_id")))
|
||||
.filter(row -> materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), row.getString("material_id"), null))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 2.找出所有软废bom中最后一个碳化钨
|
||||
ArrayList<Double> numList = new ArrayList<>(); // 球磨时间集合
|
||||
|
||||
rfList.forEach(row -> {
|
||||
// 截取软废的类型
|
||||
String code = row.getString("material_code");
|
||||
String rf_type = code.substring(code.lastIndexOf('-') + 1);
|
||||
|
||||
// 找此软废bom最后一个碳化钨
|
||||
JSONObject rfBomdtl = WQL.getWO("QPF_AUTOFORMULA02")
|
||||
.addParam("material_id", row.getString("material_id"))
|
||||
.addParam("flag", "9")
|
||||
.process()
|
||||
.uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(rfBomdtl)) {
|
||||
// 找到此碳化钨此软废类型的球磨时间
|
||||
JSONObject jsonAllData = PDM_BI_WasteBallTime.query("material_id = '" + rfBomdtl.getString("material_id") + "'").uniqueResult(0).getJSONObject("alldata");
|
||||
if (ObjectUtil.isEmpty(jsonAllData)) numList.add(0.0);
|
||||
numList.add(jsonAllData.getDouble(rf_type));
|
||||
}
|
||||
});
|
||||
|
||||
// 3.找出最大的球磨时间
|
||||
double time = 0.0;
|
||||
if (ObjectUtil.isNotEmpty(numList)) {
|
||||
time = numList.stream()
|
||||
.filter(row -> row != 99)
|
||||
.max(Comparator.comparingDouble(row -> row)).get();
|
||||
}
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("tableDtl",dtl_new);
|
||||
result.put("chunfen_qty",chunfen_qty);
|
||||
result.put("ball_time",ball_time);
|
||||
result.put("time",time);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 合批含软废
|
||||
* @param json
|
||||
@@ -5017,11 +5051,9 @@ public class AutoformulaServiceImpl implements AutoformulaService {
|
||||
for(int i=0;i<MaterialSets.size();i++){
|
||||
JSONObject MaterialSet = MaterialSets.getJSONObject(i);
|
||||
String set_material_id = MaterialSet.getString("set_material_id");
|
||||
String set_prior_level = MaterialSet.getString("set_prior_level");
|
||||
JSONArray now_ivts = WQL.getWO("QPF_AUTOFORMULA01")
|
||||
.addParam("material_id",set_material_id)
|
||||
.addParam("is_active",value_is_active)
|
||||
.addParam("set_prior_level",set_prior_level)
|
||||
.addParam("quality_scode","02")
|
||||
.addParam("workorder_id",workorder_id)
|
||||
.addParam("flag","9")
|
||||
|
||||
@@ -53,6 +53,7 @@ import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -757,6 +758,7 @@ public class FormulaServiceImpl implements FormulaService {
|
||||
String formula_id = MapUtil.getStr(whereJson, "formula_id");
|
||||
|
||||
WQLObject formMstTab = WQLObject.getWQLObject("PDM_BI_Formula"); // 配方主表
|
||||
WQLObject formDtlTab = WQLObject.getWQLObject("pdm_bi_formuladtl"); // 配方明细表
|
||||
WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表
|
||||
WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表
|
||||
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表
|
||||
@@ -828,7 +830,54 @@ public class FormulaServiceImpl implements FormulaService {
|
||||
oneMap.put("para_name", json92jj.getString("para_name"));
|
||||
}
|
||||
}
|
||||
String masterbucket_qty = jsonMst.getString("masterbucket_qty"); // 开单重量
|
||||
|
||||
/*
|
||||
计算开单重量:
|
||||
配方明细中【是否需要配粉】为是的和,其中若为软废,需要乘以物料扩展属性的纯粉系数
|
||||
*/
|
||||
// 1. 找出所有明细
|
||||
List<JSONObject> jsonDtlAll = formDtlTab.query("formula_id = '" + formula_id + "' and is_need_manage = '1'").getResultJSONArray(0).toJavaList(JSONObject.class);
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonDtlAll)) throw new BadRequestException("开单重量异常,请检查!");
|
||||
|
||||
// 2.过滤出是物料的
|
||||
List<JSONObject> jsonDtlAll_mater = jsonDtlAll.stream()
|
||||
.filter(row -> row.getString("material_type").equals("01"))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 3.计算物料分类重量
|
||||
double class_qty = jsonDtlAll.stream()
|
||||
.filter(row -> row.getString("material_type").equals("02"))
|
||||
.collect(Collectors.summarizingDouble(row -> row.getDoubleValue("formula_qty")))
|
||||
.getSum();
|
||||
|
||||
String masterbucket_qty = String.valueOf(class_qty);
|
||||
try {
|
||||
for (JSONObject jsonDtl : jsonDtlAll_mater) {
|
||||
String formula_qty = jsonDtl.getString("formula_qty");
|
||||
|
||||
// 判断是否是软废
|
||||
boolean is_rf = materialbaseService.isAlongMaterType(MaterOptTypeEnum.RF.getCode(), jsonDtl.getString("material_id"), null);
|
||||
|
||||
if (is_rf) {
|
||||
// 软废:重量*纯粉系数
|
||||
String net_rate = materExtTab.query("material_id ='" + jsonDtl.getString("material_id") + "'").uniqueResult(0).getString("net_rate");
|
||||
|
||||
// 软废纯粉计算
|
||||
String rf_qty = NumberUtil.mul(formula_qty, NumberUtil.div(net_rate, "100").toString()).toString();
|
||||
|
||||
masterbucket_qty = NumberUtil.add(masterbucket_qty,rf_qty).toString();
|
||||
} else {
|
||||
// 直接相加
|
||||
masterbucket_qty = NumberUtil.add(masterbucket_qty,formula_qty).toString();
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new BadRequestException("计算有误:"+e.getMessage());
|
||||
}
|
||||
|
||||
// String masterbucket_qty = jsonMst.getString("masterbucket_qty"); // 开单重量
|
||||
JSONObject jsonQM13 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM013'").uniqueResult(0);
|
||||
JSONObject jsonQM14 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM014'").uniqueResult(0);
|
||||
JSONObject jsonPW02 = paraTab.query("material_id = '" + material_id + "' and para_code = 'PW002'").uniqueResult(0);
|
||||
|
||||
@@ -370,3 +370,24 @@
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "9"
|
||||
QUERY
|
||||
SELECT
|
||||
bomdtl.*
|
||||
FROM
|
||||
MD_PD_ProductBOM bom
|
||||
LEFT JOIN md_pd_productbomdtl bomdtl ON bom.bom_id = bomdtl.bom_id
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = bomdtl.material_id
|
||||
LEFT JOIN md_pb_classstandard class ON mater.material_type_id = class.class_id
|
||||
WHERE
|
||||
1 = 1
|
||||
AND bom.is_delete = '0'
|
||||
AND bom.is_used = '1'
|
||||
AND class.class_code = '09030101'
|
||||
OPTION 输入.material_id <> ""
|
||||
bom.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
ORDER BY bomdtl.seqno DESC
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user