This commit is contained in:
zds
2022-10-13 20:28:55 +08:00
parent f2492eee65
commit 1bdc1b1df7
7 changed files with 117 additions and 67 deletions

View File

@@ -33,7 +33,8 @@ public enum MaterOptTypeEnum {
SPARE(22, "23", "备品备件", "('1503644361789935616')", ""),
SBGZ(23, "24", "设备故障", "('1541964046385942528')", ""),
TJJ_AND_OTHER(24, "25", "添加剂和其他有色金属粉", "('1503644361697660928','1503644362838511616')", ""),
BJID(25, "26", "备品备件", "1503644361789935616", "");
BJID(25, "26", "备品备件", "1503644361789935616", ""),
THW_AND_GF_AND_TJJ(26, "27", "碳化钨、钴粉、添加剂", "('1503644361664106496','1503644362192588800','1503644361697660928')", "");

View File

@@ -77,6 +77,9 @@
(device.device_code like 输入.device_code or
device.device_name like 输入.device_code)
ENDOPTION
OPTION 输入.device_id <> ""
device.device_id = 输入.device_id
ENDOPTION
OPTION 输入.pcsn <> ""
WorkOrder.pcsn like 输入.pcsn
ENDOPTION

View File

@@ -700,29 +700,51 @@ public class AcceptFormulaServiceImpl implements AcceptFormulaService {
//该批次配粉重量
double X22p = bomdlt_Cr3C2.getDouble("bom_ivt_qty");
AtomicReference<Double> Z_sum = new AtomicReference<>(0.0);
AtomicReference<Double> Z_sum_per = new AtomicReference<>(0.0);
//计算不需要移库的添加剂(抑制剂)
yzj_map.forEach((key,tjj_map_jo)->{
//获取添加剂id
String tjj_material_id = tjj_map_jo.getString("material_id");
JSONObject tjj_finished = WQL.getWO("QPF_AUTOFORMULA02")
.addParam("material_id",bomdlt_Cr3C2.getString("material_id"))
.addParam("pcsn",bomdlt_Cr3C2.getString("pcsn"))
.addParam("item_material_id",tjj_material_id)
.addParam("flag","5")
.process()
.uniqueResult(0);
if(tjj_finished!=null){
//质保书含量比
double value = tjj_finished.getDouble("value");
//当前含量重量
double finished = X22p*value/100.0;
//累计各碳化钨中已含添加剂重量百分比
Z_sum_per.set(Z_sum_per.get() + value/100.0);
//累计各碳化钨中已含添加剂重量
Z_sum.set(Z_sum.get() + finished);
}
});
//获取碳含量
JSONObject FactoryWarranty = bomdlts_plan_map.get(bomdlt_Cr3C2.getString("material_id"));
//该批次含碳比
double X22 = FactoryWarranty.getDouble("is_tan");
// X1减=[产品碳平衡*X1- X1* X22碳含量]/(1- * X22含量)
//X22p减=产品碳平衡*(Z_sum已+CT1_weight)-CT1-Z_sum已/1- X22碳含量- X22Z1含量+产品碳平衡*X22Z1含量
double X22_jian = CT1_weight*(c_balance/100.0-X22/100.0)/(1-X22/100.0);
double X22_jian = ((c_balance/100.0)*(CT1_weight+Z_sum.get())-CT1-Z_sum.get())/(1-X22/100.0-Z_sum_per.get()+(c_balance/100.0)*Z_sum_per.get());
//更新碳化钨配粉重量
double bom_ivt_qty = X22p-X22_jian;
if(bom_ivt_qty < 0){
throw new BadRequestException("碳化钨配粉结果为负数,当前配粉无解!");
}
double C = X22_jian;
double C = X22_jian + bom_ivt_qty*Z_sum_per.get();
if(C < 0){
throw new BadRequestException("补碳结果为负数,当前配粉无解!");
}else if(C >= 0){
bomdlt_Cr3C2.put("bom_ivt_qty",bom_ivt_qty);
bomdlts_plan_map.put(bomdlt_Cr3C2.getString("material_id"),bomdlt_Cr3C2);
//统计除钨以外其他总重
AtomicReference<Double> total_sum = new AtomicReference<>(0.0);
total_sum.set(total_sum.get() + bomdlt_Cr3C2.getDouble("bom_ivt_qty"));
//计算不需要移库的添加剂(抑制剂)
yzj_map.forEach((key,tjj_map_jo)->{
//获取添加剂id
@@ -763,7 +785,6 @@ public class AcceptFormulaServiceImpl implements AcceptFormulaService {
tjj_map_now.put("is_active","1");
tjj_map_now.put("quality_scode","01");
yzj_list.add(tjj_map_now);
total_sum.set(total_sum.get() + need_qty-finished_qty);
}
});
if(C>0){
@@ -782,24 +803,6 @@ public class AcceptFormulaServiceImpl implements AcceptFormulaService {
C_weight.put("is_active","1");
C_weight.put("quality_scode","01");
cw_list.add(C_weight);
total_sum.set(total_sum.get() + C);
}
double W = new_qty - total_sum.get();
if(W>0){
JSONObject W_weight = new JSONObject();
W_weight.put("formula_qty",W);
//钨分类id
W_weight.put("material_id","1503644362234531840");
W_weight.put("material_name","钨粉");
W_weight.put("material_code","09030103");
W_weight.put("material_type","02");
W_weight.put("is_need_move","0");
W_weight.put("is_need_manage","1");
W_weight.put("is_rf_xl","0");
W_weight.put("ivt_level","01");
W_weight.put("is_active","1");
W_weight.put("quality_scode","01");
cw_list.add(W_weight);
}
}
}
@@ -817,9 +820,31 @@ public class AcceptFormulaServiceImpl implements AcceptFormulaService {
//该批次配粉重量
double X22p = bomdlt_Cr3C2.getDouble("bom_ivt_qty");
// X1减=[产品碳平衡*X1-(X1)* X1碳含量]/1-X1碳含量
AtomicReference<Double> Z_sum = new AtomicReference<>(0.0);
//计算不需要移库的添加剂(抑制剂)
yzj_map.forEach((key,tjj_map_jo)->{
//获取添加剂id
String tjj_material_id = tjj_map_jo.getString("material_id");
JSONObject tjj_finished = WQL.getWO("QPF_AUTOFORMULA01")
.addParam("material_id",bomdlt_Cr3C2.getString("material_id"))
.addParam("pcsn",bomdlt_Cr3C2.getString("pcsn"))
.addParam("item_material_id",tjj_material_id)
.addParam("flag","5")
.process()
.uniqueResult(0);
if(tjj_finished!=null){
//质保书含量比
double value = tjj_finished.getDouble("value");
//当前含量重量
double finished = X22p*value/100.0;
//累计各碳化钨中已含添加剂重量
Z_sum.set(Z_sum.get() + finished);
}
});
// X21p减=[(X21p)* X21碳含量+软废含碳量-产品碳平衡*(X21p+软废碳化钨)]/X21碳含量
//解得钨粉重量
double X22_jian = CT1_weight*(c_balance/100.0-X22/100.0) / (1-X22/100.0);
double X22_jian = (CT1 - (c_balance/100.0)*(CT1_weight)) / (X22/100.0);
//更新碳化钨配粉重量
double bom_ivt_qty = X22p-X22_jian;
if(bom_ivt_qty<=0){

View File

@@ -175,7 +175,7 @@
<el-table-column prop="material_code" label="物料编码" min-width="130"/>
<el-table-column prop="old_mark" label="牌号" min-width="100" />
<el-table-column :formatter="seriesFormat2" min-width="80" prop="mater_product_series" label="产品系列" />
<el-table-column prop="product_weight" label="生产重量(kg)" :formatter="crud.formatNum0" min-width="95" />
<el-table-column prop="product_weight" label="计划重量(kg)" :formatter="crud.formatNum0" min-width="95" />
<el-table-column prop="product_num" label="批数" width="45" />
<el-table-column prop="planend_date" label="计划结束日期" width="100" />
<el-table-column prop="plan_finish_date" label="交货日期" width="90" />
@@ -184,7 +184,7 @@
<el-table-column prop="task_code" label="生产任务号" width="110" />
<el-table-column prop="create_time" label="创建时间" width="135" />
<el-table-column prop="create_name" label="创建人" width="70" />
<el-table-column prop="remark" label="备注" />
<el-table-column prop="remark" label="备注" min-width="150" />
</el-table>
<!--分页组件-->
<pagination />
@@ -223,7 +223,7 @@ export default {
url: 'api/dailyplan',
idField: 'dailyplan_id',
sort: '',
query: { nowstart_date: new Date(),device_id: '' },
query: { nowstart_date: new Date(),device_id: '', status: '01' },
crudMethod: { ...dailyplan },
optShow: {
add: true,

View File

@@ -71,8 +71,8 @@
<label slot="label">生产批次:</label>
<el-input v-model="form.pcsn" style="width: 210px" disabled />
</el-form-item>
<el-form-item label="重量" prop="workorder_qty">
<label slot="label">&nbsp;&nbsp;&nbsp;:</label>
<el-form-item label="计划重量" prop="workorder_qty">
<label slot="label">计划重:</label>
<el-input-number
v-model="form.workorder_qty"
:controls="false"
@@ -101,8 +101,8 @@
style="width: 210px"
/>
</el-form-item>
<el-form-item label="实际生产重量" prop="productin_qty">
<label slot="label">际生产重量:</label>
<el-form-item label="实投总重量" prop="productin_qty">
<label slot="label">投总重量:</label>
<el-input-number
v-model="form.productin_qty"
:controls="false"

View File

@@ -120,13 +120,23 @@
/>
</el-form-item>
<el-form-item label="关键设备">
<el-input
v-model="query.device_code"
size="mini"
<label slot="label">关键设备:</label>
<el-select
v-model="query.device_id"
clearable
placeholder="编码、名称"
@keyup.enter.native="crud.toQuery"
/>
size="mini"
placeholder="关键设备"
class="filter-item"
style="width: 200px"
@change="hand"
>
<el-option
v-for="item in Devices"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<rrOperation />
</el-form>
@@ -221,7 +231,7 @@
>
<el-table-column
v-permission="['admin','workorder:del','workorder:edit']"
min-width="130"
min-width="125"
label="操作"
align="center"
fixed="right"
@@ -235,9 +245,9 @@
/>
</template>
</el-table-column>
<el-table-column :selectable="checkboxT" type="selection" width="45" />
<el-table-column prop="workorder_date" min-width="85" label="工令日期" :formatter="workorder_dateFormat"/>
<el-table-column prop="workorder_code" width="130" label="工令号">
<el-table-column :selectable="checkboxT" type="selection" min-width="35" />
<el-table-column prop="workorder_date" min-width="83" label="工令日期" :formatter="workorder_dateFormat"/>
<el-table-column prop="workorder_code" min-width="125" label="工令号">
<template slot-scope="scope">
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
</template>
@@ -247,26 +257,26 @@
<el-table-column :formatter="stateFormat" min-width="70" prop="status" label="工令状态" />
<el-table-column prop="device_name" min-width="80" label="设备"/>
<el-table-column prop="material_code" min-width="130" label="物料编码"/>
<el-table-column prop="old_mark" min-width="110" label="牌号"/>
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列" />
<el-table-column prop="pcsn" min-width="80" label="批次"/>
<el-table-column prop="workorder_qty" min-width="70" label="重量" :formatter="crud.formatNum0"/>
<el-table-column prop="bill_qty" min-width="90" label="开单总重量" :formatter="crud.formatNum3" />
<el-table-column prop="productin_qty" min-width="100" label="实际生产重量" :formatter="crud.formatNum3"/>
<el-table-column prop="qty_unit_name" min-width="80" label="单位"/>
<el-table-column prop="planstart_time" min-width="140" label="计划开始时间"/>
<el-table-column prop="planend_time" min-width="140" label="计划结束时间"/>
<el-table-column prop="realstart_time" min-width="140" label="实际开始时间"/>
<el-table-column prop="realend_time" min-width="140" label="实际结束时间"/>
<el-table-column min-width="100" prop="source_bill_type" :formatter="workorder_typeFormat2" label="源类型" />
<el-table-column prop="source_bill_code" label="来源单据编号" min-width="100" />
<el-table-column min-width="90" prop="workprocedure_id" label="当前工序" :formatter="seriesFormat2" />
<el-table-column :formatter="create_modeFormat" min-width="170" prop="create_mode" label="生成方式" />
<el-table-column prop="startwork_name" min-width="80" label="开工人"/>
<el-table-column prop="endwork_name" min-width="80" label="完工人"/>
<el-table-column prop="create_name" min-width="80" label="创建人"/>
<el-table-column prop="update_optname" min-width="80" label="修改人"/>
<el-table-column prop="remark" min-width="120" label="备注"/>
<el-table-column prop="old_mark" min-width="80" label="牌号"/>
<el-table-column :formatter="seriesFormat" min-width="65" prop="product_series_id" label="系列" />
<el-table-column prop="pcsn" min-width="75" label="批次"/>
<el-table-column prop="workorder_qty" min-width="70" label="计划重量" :formatter="crud.formatNum0"/>
<el-table-column prop="bill_qty" min-width="85" label="开单总重量" :formatter="crud.formatNum3" />
<el-table-column prop="productin_qty" min-width="85" label="实投总重量" :formatter="crud.formatNum3"/>
<el-table-column prop="qty_unit_name" min-width="75" label="单位"/>
<el-table-column prop="planstart_time" min-width="100" label="计划开始时间" :formatter="workorder_dateFormat"/>
<el-table-column prop="planend_time" min-width="100" label="计划结束时间" :formatter="planend_timeFormat" />
<el-table-column prop="realstart_time" min-width="135" label="实际开始时间"/>
<el-table-column prop="realend_time" min-width="135" label="实际结束时间"/>
<el-table-column min-width="70" prop="source_bill_type" :formatter="workorder_typeFormat2" label="源类型" />
<el-table-column prop="source_bill_code" label="来源单据编号" min-width="105" />
<el-table-column min-width="70" prop="workprocedure_id" label="当前工序" :formatter="seriesFormat2" />
<el-table-column :formatter="create_modeFormat" min-width="155" prop="create_mode" label="生成方式" />
<el-table-column prop="startwork_name" min-width="60" label="开工人"/>
<el-table-column prop="endwork_name" min-width="60" label="完工人"/>
<el-table-column prop="create_name" min-width="60" label="创建人"/>
<el-table-column prop="update_optname" min-width="60" label="修改人"/>
<el-table-column prop="remark" min-width="180" label="备注"/>
</el-table>
<!--分页组件-->
<pagination />
@@ -293,6 +303,7 @@ import Date from "@/utils/datetime";
import crudWorkProcedure from "@/api/wms/basedata/pdm/workProcedure";
import { download } from '@/api/data'
import { downloadFile } from '@/utils'
import producetask from '@/api/wms/pdm/producetask'
export default {
name: 'workorder',
@@ -327,6 +338,7 @@ export default {
mstrow: {},
XLList: [],
Depts: [],
Devices: [],
workProcedureList: [],
viewShow: false,
changeShow: false,
@@ -348,6 +360,9 @@ export default {
crudWorkProcedure.downSelect().then(res => {
this.workProcedureList = res
})
producetask.getDevices().then(res => {
this.Devices = res
})
workorder.getDepts().then(res => {
this.Depts = res
})
@@ -440,6 +455,9 @@ export default {
workorder_dateFormat(row) {
return row.planstart_time.substring(0, 10)
},
planend_timeFormat(row) {
return row.planend_time.substring(0, 10)
},
handleCurrentChange() {
this.checkrows = []
this.mstrow = {}
@@ -520,6 +538,9 @@ export default {
this.crud.toQuery()
this.handleCurrentChange()
},
hand(value) {
this.crud.toQuery()
},
printCard() {
const _selectData = this.$refs.table.selection
if (_selectData.length > 1 || _selectData.length === 0) {

View File

@@ -156,7 +156,7 @@
<MaterDtl
:dialog-show.sync="dtlMaterShow"
:is-single="true"
:mater-opt-code="'04'"
:mater-opt-code="'27'"
@tableChanged2="tableChanged2"
/>
</el-dialog>