手动开单优化

This commit is contained in:
zds
2022-06-30 21:36:15 +08:00
parent 37a01777a6
commit c1faf249fd
6 changed files with 252 additions and 150 deletions

View File

@@ -31,7 +31,9 @@ public enum MaterOptTypeEnum {
RD_AND_PG(20, "21", "pg粉和软废", "('1503644362108702720','1503644362150645760')", ""),
YL_AND_BCP(21, "22", "原料和半成品", "('1503644353019645952','1503644359155912704')", ""),
SPARE(22, "23", "备品备件", "('1503644361789935616')", ""),
SBGZ(23, "24", "设备故障", "('1541964046385942528')", "");
SBGZ(23, "24", "设备故障", "('1541964046385942528')", ""),
TJJ_AND_OTHER(24, "22", "添加剂和其他有色金属粉", "('1503644361697660928','1503644362838511616')", "");
//顺序号

View File

@@ -29,8 +29,8 @@ public class InitformulaController {
@GetMapping("/queryivt")
@Log("查询工令")
@ApiOperation("查询工令")
public ResponseEntity<Object> queryivt(@RequestParam Map whereJson){
return new ResponseEntity<>(initformulaService.queryAll(whereJson),HttpStatus.OK);
public ResponseEntity<Object> queryivt(@RequestParam Map whereJson, Pageable page){
return new ResponseEntity<>(initformulaService.queryAll(whereJson,page),HttpStatus.OK);
}
@GetMapping("/queryivt2")
@Log("查询工令")

View File

@@ -11,11 +11,12 @@ import java.util.Map;
public interface InitformulaService {
/**
* 查询数据分页
* @param whereJson 条件
* @return Map<String,Object>
*/
JSONArray queryAll(Map whereJson);
* 查询数据分页
* @param whereJson 条件
* @param page 分页参数
* @return Map<String,Object>
*/
Map<String, Object> queryAll(Map whereJson, Pageable page);
/**
* 查询数据分页
* @param whereJson 条件

View File

@@ -34,13 +34,20 @@ import java.util.Map;
public class InitformulaServiceImpl implements InitformulaService {
@Override
public JSONArray queryAll(Map whereJson) {
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
HashMap<String, String> map = new HashMap<>(whereJson);
map.put("flag", "1");
JSONArray json = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).process().getResultJSONArray(0);
double workorder_qty = Double.valueOf(map.get("workorder_qty"));
double standard_rate = Double.valueOf(map.get("standard_rate"));
JSONObject ret_jo = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "structivt.material_id");
JSONArray json = ret_jo.getJSONArray("content");
JSONArray ja = new JSONArray();
double workorder_qty = 0;
double standard_rate = 0;
if(map.containsKey("workorder_qty")){
workorder_qty = Double.valueOf(map.get("workorder_qty"));
}
if(map.containsKey("standard_rate")){
standard_rate = Double.valueOf(map.get("standard_rate"));
}
for(int i=0;i<json.size();i++){
JSONObject jo = json.getJSONObject(i);
//需配总量
@@ -72,7 +79,8 @@ public class InitformulaServiceImpl implements InitformulaService {
}
ja.add(jo);
}
return ja;
ret_jo.put("content",ja);
return ret_jo;
}
@Override
public Map<String, Object> queryAll2(Map whereJson,Pageable page) {
@@ -176,7 +184,7 @@ public class InitformulaServiceImpl implements InitformulaService {
@Override
public JSONArray queryAll4(Map whereJson) {
HashMap<String, String> map = new HashMap<>(whereJson);
map.put("flag", "7");
map.put("flag", "77");
String material_code = map.get("material_code");
if (StrUtil.isNotEmpty(material_code)) {
map.put("material_code", "%" + material_code + "%");
@@ -189,18 +197,19 @@ public class InitformulaServiceImpl implements InitformulaService {
}
double workorder_qty = Double.valueOf(map.get("workorder_qty"));
map.put("bom_id", bom.getString("bom_id"));
map.put("material_ids", MaterOptTypeEnum.TJJ_AND_OTHER.getClass_idStr());
JSONArray json = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).process().getResultJSONArray(0);
JSONArray ja = new JSONArray();
for(int i=0;i<json.size();i++){
JSONObject jo = json.getJSONObject(i);
if(StrUtil.isNotEmpty(jo.getString("mater_standard_rate"))){
double mater_standard_rate = jo.getDouble("mater_standard_rate");
//需配总量
jo.put("need_sum_qty",workorder_qty*mater_standard_rate/100.0);
}
ja.add(jo);
}
return ja;
// JSONArray ja = new JSONArray();
// for(int i=0;i<json.size();i++){
// JSONObject jo = json.getJSONObject(i);
// if(StrUtil.isNotEmpty(jo.getString("mater_standard_rate"))){
// double mater_standard_rate = jo.getDouble("mater_standard_rate");
// //需配总量
// jo.put("need_sum_qty",workorder_qty*mater_standard_rate/100.0);
// }
// ja.add(jo);
// }
return json;
}
@Override
@Transactional(rollbackFor = Exception.class)
@@ -861,7 +870,13 @@ public class InitformulaServiceImpl implements InitformulaService {
@Override
public JSONArray getlist(Map json) {
HashMap<String, String> map = new HashMap<>(json);
map.put("flag", "2");
String is_bom = map.get("is_bom");
if("true".equals(is_bom)){
map.put("flag", "2");
}else{
map.put("flag", "22");
map.put("material_ids", MaterOptTypeEnum.THW_AND_GF.getClass_idStr());
}
JSONArray ret = WQL.getWO("QPF_INITFORMULA01").addParamMap(map).process().getResultJSONArray(0);
if(ret.size() == 0){
throw new BadRequestException("当前bom明细查询失败");

View File

@@ -50,7 +50,7 @@
##########################################
IF 输入.flag = "1"
QUERY
PAGEQUERY
SELECT
structivt.*,
mb.material_name,
@@ -127,7 +127,7 @@
structivt.is_active = 输入.is_active
ENDOPTION
ENDSELECT
ENDQUERY
ENDPAGEQUERY
ENDIF
@@ -156,6 +156,28 @@
ENDQUERY
ENDIF
IF 输入.flag = "22"
QUERY
SELECT
mb.material_id,
mb.material_name,
'' AS prior_level,
0 AS standard_rate,
0 AS seqno
FROM
md_me_materialbase mb
LEFT JOIN md_me_stockmaterialext stockmaterialext ON mb.material_id = stockmaterialext.material_id
WHERE
mb.is_delete = '0'
and stockmaterialext.is_need_move = '1'
OPTION 输入.material_ids <> ""
mb.material_type_id in 输入.material_ids
ENDOPTION
order by mb.material_type_id
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "3"
QUERY
SELECT
@@ -502,6 +524,31 @@
ENDQUERY
ENDIF
IF 输入.flag = "77"
QUERY
SELECT
mb.*, stockmaterialext.is_need_move,
measureunit.unit_name AS qty_unit_name,
mb.base_unit_id AS qty_unit_id,
classstandard.class_name,
classstandard.class_code
FROM
md_me_materialbase mb
LEFT JOIN md_me_stockmaterialext stockmaterialext ON mb.material_id = stockmaterialext.material_id
LEFT JOIN md_pb_classstandard classstandard ON classstandard.class_id = mb.material_type_id
LEFT JOIN md_pb_measureunit measureunit ON measureunit.measure_unit_id = mb.base_unit_id
WHERE
1 = 1 and stockmaterialext.is_need_move='0'
OPTION 输入.material_code <> ""
mb.material_code like 输入.material_code
ENDOPTION
OPTION 输入.material_ids <> ""
mb.material_type_id in 输入.material_ids
ENDOPTION
ENDSELECT
ENDQUERY
ENDIF
IF 输入.flag = "8"
PAGEQUERY
SELECT