Merge branch 'master' of http://121.40.234.130:8899/root/wuHanXinRui
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
输入.workprocedure_id TYPEAS s_string
|
||||
输入.is_produceuse TYPEAS s_string
|
||||
输入.devicerecord_id TYPEAS s_string
|
||||
输入.device_level TYPEAS s_string
|
||||
输入.classIds TYPEAS f_string
|
||||
输入.deptIds TYPEAS f_string
|
||||
|
||||
@@ -72,6 +73,9 @@
|
||||
OPTION 输入.status <> ""
|
||||
equipmentfile.status = 输入.status
|
||||
ENDOPTION
|
||||
OPTION 输入.device_level <> ""
|
||||
equipmentfile.device_level = 输入.device_level
|
||||
ENDOPTION
|
||||
OPTION 输入.use_deptid <> ""
|
||||
equipmentfile.use_deptid in 输入.deptIds
|
||||
ENDOPTION
|
||||
|
||||
Binary file not shown.
@@ -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')", "");
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
|
||||
package org.nl.wms.basedata.pdm.rest;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import oracle.ucp.proxy.annotation.Post;
|
||||
import org.nl.wms.basedata.pdm.service.WastecchangeService;
|
||||
import org.nl.wms.basedata.pdm.service.dto.WastecchangeDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.nl.annotation.Log;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import io.swagger.annotations.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* @author liuxy
|
||||
* @date 2022-10-13
|
||||
**/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "软废碳平衡修正维护管理")
|
||||
@RequestMapping("/api/wastecchange")
|
||||
@Slf4j
|
||||
public class WastecchangeController {
|
||||
|
||||
private final WastecchangeService wastecchangeService;
|
||||
|
||||
@GetMapping
|
||||
@Log("查询软废碳平衡修正维护")
|
||||
@ApiOperation("查询软废碳平衡修正维护")
|
||||
//@PreAuthorize("@el.check('wastecchange:list')")
|
||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page) {
|
||||
return new ResponseEntity<>(wastecchangeService.queryAll(whereJson, page), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@Log("新增软废碳平衡修正维护")
|
||||
@ApiOperation("新增软废碳平衡修正维护")
|
||||
//@PreAuthorize("@el.check('wastecchange:add')")
|
||||
public ResponseEntity<Object> create(@Validated @RequestBody WastecchangeDto dto) {
|
||||
wastecchangeService.create(dto);
|
||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@Log("修改软废碳平衡修正维护")
|
||||
@ApiOperation("修改软废碳平衡修正维护")
|
||||
//@PreAuthorize("@el.check('wastecchange:edit')")
|
||||
public ResponseEntity<Object> update(@Validated @RequestBody WastecchangeDto dto) {
|
||||
wastecchangeService.update(dto);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Log("删除软废碳平衡修正维护")
|
||||
@ApiOperation("删除软废碳平衡修正维护")
|
||||
//@PreAuthorize("@el.check('wastecchange:del')")
|
||||
@DeleteMapping
|
||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
||||
wastecchangeService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("确认")
|
||||
@ApiOperation("确认")
|
||||
@PostMapping("/confirm")
|
||||
public ResponseEntity<Object> confirm(@RequestBody JSONObject whereJson) {
|
||||
wastecchangeService.confirm(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
|
||||
package org.nl.wms.basedata.pdm.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.basedata.pdm.service.dto.WastecchangeDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
import java.io.IOException;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* @author liuxy
|
||||
* @description 服务接口
|
||||
* @date 2022-10-13
|
||||
**/
|
||||
public interface WastecchangeService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
*
|
||||
* @param whereJson 条件
|
||||
* @param page 分页参数
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> queryAll(Map whereJson, Pageable page);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
*
|
||||
* @param whereJson 条件参数
|
||||
* @return List<WastecchangeDto>
|
||||
*/
|
||||
List<WastecchangeDto> queryAll(Map whereJson);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
*
|
||||
* @param change_id ID
|
||||
* @return Wastecchange
|
||||
*/
|
||||
WastecchangeDto findById(Long change_id);
|
||||
|
||||
/**
|
||||
* 根据编码查询
|
||||
*
|
||||
* @param code code
|
||||
* @return Wastecchange
|
||||
*/
|
||||
WastecchangeDto findByCode(String code);
|
||||
|
||||
|
||||
/**
|
||||
* 创建
|
||||
*
|
||||
* @param dto /
|
||||
*/
|
||||
void create(WastecchangeDto dto);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param dto /
|
||||
*/
|
||||
void update(WastecchangeDto dto);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
*
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
/**
|
||||
* 确认
|
||||
*
|
||||
* @param whereJson /
|
||||
*/
|
||||
void confirm(JSONObject whereJson);
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package org.nl.wms.basedata.pdm.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.math.BigDecimal;
|
||||
import java.io.Serializable;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
/**
|
||||
* @description /
|
||||
* @author liuxy
|
||||
* @date 2022-10-13
|
||||
**/
|
||||
@Data
|
||||
public class WastecchangeDto implements Serializable {
|
||||
|
||||
/** 记录标识 */
|
||||
/** 防止精度丢失 */
|
||||
@JsonSerialize(using= ToStringSerializer.class)
|
||||
private Long change_id;
|
||||
|
||||
/** 物料标识 */
|
||||
private Long material_id;
|
||||
|
||||
/** 工艺类型 */
|
||||
private String tech_type;
|
||||
|
||||
/** CF */
|
||||
private BigDecimal cf_qty;
|
||||
|
||||
/** YZ */
|
||||
private BigDecimal yz_qty;
|
||||
|
||||
/** CX */
|
||||
private BigDecimal cx_qty;
|
||||
|
||||
/** YC */
|
||||
private BigDecimal yc_qty;
|
||||
|
||||
/** JY */
|
||||
private BigDecimal jy_qty;
|
||||
|
||||
/** LT */
|
||||
private BigDecimal lt_qty;
|
||||
|
||||
/** SJ */
|
||||
private BigDecimal sj_qty;
|
||||
|
||||
/** YS */
|
||||
private BigDecimal ys_qty;
|
||||
|
||||
/** DS */
|
||||
private BigDecimal ds_qty;
|
||||
|
||||
/** CQX */
|
||||
private BigDecimal cqx_qty;
|
||||
|
||||
/** XQX */
|
||||
private BigDecimal xqx_qty;
|
||||
|
||||
/** QX */
|
||||
private BigDecimal qx_qty;
|
||||
|
||||
/** JCF */
|
||||
private BigDecimal jcf_qty;
|
||||
|
||||
/** TB */
|
||||
private BigDecimal tb_qty;
|
||||
|
||||
/** YCR */
|
||||
private BigDecimal ycr_qty;
|
||||
|
||||
/** GZ */
|
||||
private BigDecimal gz_qty;
|
||||
|
||||
/** 创建人 */
|
||||
private Long create_id;
|
||||
|
||||
/** 创建人姓名 */
|
||||
private String create_name;
|
||||
|
||||
/** 创建时间 */
|
||||
private String create_time;
|
||||
}
|
||||
@@ -0,0 +1,387 @@
|
||||
|
||||
package org.nl.wms.basedata.pdm.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.poi.util.StringUtil;
|
||||
import org.nl.exception.BadRequestException;
|
||||
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
||||
import org.nl.wms.basedata.pdm.service.WastecchangeService;
|
||||
import org.nl.wms.basedata.pdm.service.dto.WastecchangeDto;
|
||||
import org.nl.wql.WQL;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.utils.SecurityUtils;
|
||||
import org.nl.wql.core.bean.ResultBean;
|
||||
import org.nl.wql.core.bean.WQLObject;
|
||||
import org.nl.wql.util.WqlUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
|
||||
/**
|
||||
* @author liuxy
|
||||
* @description 服务实现
|
||||
* @date 2022-10-13
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class WastecchangeServiceImpl implements WastecchangeService {
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
String material_code = MapUtil.getStr(whereJson, "material_code");
|
||||
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "1");
|
||||
if (ObjectUtil.isNotEmpty(material_code)) map.put("material_code", "%" + material_code + "%");
|
||||
map.put("class_ids", MaterOptTypeEnum.THW.getClass_idStr());
|
||||
|
||||
JSONObject json = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mater.material_code ASC");
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WastecchangeDto> queryAll(Map whereJson) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_wastecchange");
|
||||
JSONArray arr = wo.query().getResultJSONArray(0);
|
||||
if (ObjectUtil.isNotEmpty(arr)) return arr.toJavaList(WastecchangeDto.class);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WastecchangeDto findById(Long change_id) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_wastecchange");
|
||||
JSONObject json = wo.query("change_id = '" + change_id + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(json)) {
|
||||
return json.toJavaObject(WastecchangeDto.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WastecchangeDto findByCode(String code) {
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_wastecchange");
|
||||
JSONObject json = wo.query("code ='" + code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(json)) {
|
||||
return json.toJavaObject(WastecchangeDto.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(WastecchangeDto dto) {
|
||||
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
dto.setChange_id(IdUtil.getSnowflake(1, 1).nextId());
|
||||
dto.setCreate_id(currentUserId);
|
||||
dto.setCreate_name(nickName);
|
||||
dto.setCreate_time(now);
|
||||
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_wastecchange");
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
wo.insert(json);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(WastecchangeDto dto) {
|
||||
WastecchangeDto entity = this.findById(dto.getChange_id());
|
||||
if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!");
|
||||
|
||||
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getNickName();
|
||||
|
||||
String now = DateUtil.now();
|
||||
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_wastecchange");
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
wo.update(json);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(Long[] ids) {
|
||||
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getNickName();
|
||||
String now = DateUtil.now();
|
||||
|
||||
WQLObject wo = WQLObject.getWQLObject("pdm_bi_wastecchange");
|
||||
for (Long change_id : ids) {
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("change_id", String.valueOf(change_id));
|
||||
param.put("is_delete", "1");
|
||||
param.put("update_optid", currentUserId);
|
||||
param.put("update_optname", nickName);
|
||||
param.put("update_time", now);
|
||||
wo.update(param);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void confirm(JSONObject whereJson) {
|
||||
/*
|
||||
* 修改软废碳平衡
|
||||
* 1找软废:软废类型为:负压脱蜡 则根据条件:
|
||||
* a.粉料牌号包含 "新"、 软废编码包含软废类型后缀 例如:软废编码 like "-F"、 未删除且启用
|
||||
* b.查询此软废的产品bom表的明细中是否包含此碳化钨
|
||||
* 2.找软废对应的PG粉
|
||||
* a.软废编码去掉 "-CF"
|
||||
* 3.修改软废碳平衡:
|
||||
* a.软废碳平衡=PG粉碳平衡+CF软废修正值
|
||||
* 4.若工艺为氢气脱蜡:软废粉料牌号为不包含"新",其它都一样
|
||||
*/
|
||||
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase");
|
||||
WQLObject extTab = WQLObject.getWQLObject("MD_ME_ProducMaterialExt");
|
||||
WQLObject wasTab = WQLObject.getWQLObject("PDM_BI_WasteCChange");
|
||||
|
||||
// 1.将16中软废类型 放到一个数组当中
|
||||
JSONArray rf_arr = this.contentShift(whereJson);
|
||||
// 2.找软废
|
||||
String tech_type = whereJson.getString("tech_type");
|
||||
|
||||
for (int i = 0; i < rf_arr.size(); i++) {
|
||||
JSONObject json_rf_type = rf_arr.getJSONObject(i);
|
||||
HashMap<String, String> map = new HashMap<>();
|
||||
map.put("flag", "2");
|
||||
map.put("material_id", whereJson.getString("material_id"));
|
||||
map.put("code", "%-" + json_rf_type.getString("name"));
|
||||
|
||||
JSONArray jsonRfArr = new JSONArray();
|
||||
|
||||
if (StrUtil.equals(tech_type, "01")) {
|
||||
// 负压脱蜡
|
||||
jsonRfArr = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).process().getResultJSONArray(0);
|
||||
} else {
|
||||
// 氢气脱蜡
|
||||
map.put("flag", "3");
|
||||
jsonRfArr = WQL.getWO("PDM_WASTECCHANGE").addParamMap(map).process().getResultJSONArray(0);
|
||||
}
|
||||
|
||||
// 根据软废找到PG粉
|
||||
for (int j = 0; j < jsonRfArr.size(); j++) {
|
||||
JSONObject json = jsonRfArr.getJSONObject(j);
|
||||
String materiai_code = json.getString("material_code");
|
||||
String pg_code = materiai_code.substring(0, materiai_code.indexOf("-" + json_rf_type.getString("name")));
|
||||
|
||||
JSONObject jsonMater_cp = materTab.query("material_code = '" + pg_code + "'").uniqueResult(0);
|
||||
JSONObject jsonExt_cp = extTab.query("material_id = '" + jsonMater_cp.getString("material_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonExt_cp)) throw new BadRequestException("PG粉扩展属性不存在" + pg_code);
|
||||
|
||||
// 修改软废碳平衡:软废碳平衡=PG粉碳平衡+CF软废修正值
|
||||
double rf_c_balance = NumberUtil.add(jsonExt_cp.getDoubleValue("c_balance"), json_rf_type.getDoubleValue("value"));
|
||||
|
||||
JSONObject jsonExt_rf = extTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(jsonExt_rf))
|
||||
throw new BadRequestException("软废扩展属性不存在" + jsonExt_rf.getString("material_code"));
|
||||
jsonExt_rf.put("c_balance", rf_c_balance);
|
||||
extTab.update(jsonExt_rf);
|
||||
}
|
||||
}
|
||||
// 3.插入软废碳平衡修正表
|
||||
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String nickName = SecurityUtils.getNickName();
|
||||
|
||||
// 先删除在插入
|
||||
JSONObject jsonObject = wasTab.query("material_id = '" + whereJson.getString("material_id") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonObject)) wasTab.delete("material_id = '"+whereJson.getString("material_id")+"'");
|
||||
|
||||
JSONObject jsonWas = new JSONObject();
|
||||
jsonWas.put("change_id", IdUtil.getSnowflake(1,1).nextId());
|
||||
jsonWas.put("material_id", whereJson.getString("material_id"));
|
||||
jsonWas.put("tech_type", whereJson.getString("tech_type"));
|
||||
jsonWas.put("cf_qty", whereJson.getDoubleValue("cf_qty"));
|
||||
jsonWas.put("yz_qty", whereJson.getDoubleValue("yz_qty"));
|
||||
jsonWas.put("cx_qty", whereJson.getDoubleValue("cx_qty"));
|
||||
jsonWas.put("yc_qty", whereJson.getDoubleValue("yc_qty"));
|
||||
jsonWas.put("jy_qty", whereJson.getDoubleValue("jy_qty"));
|
||||
jsonWas.put("lt_qty", whereJson.getDoubleValue("lt_qty"));
|
||||
jsonWas.put("sj_qty", whereJson.getDoubleValue("sj_qty"));
|
||||
jsonWas.put("ys_qty", whereJson.getDoubleValue("ys_qty"));
|
||||
jsonWas.put("ds_qty", whereJson.getDoubleValue("ds_qty"));
|
||||
jsonWas.put("cqx_qty", whereJson.getDoubleValue("cqx_qty"));
|
||||
jsonWas.put("xqx_qty", whereJson.getDoubleValue("xqx_qty"));
|
||||
jsonWas.put("qx_qty", whereJson.getDoubleValue("qx_qty"));
|
||||
jsonWas.put("jcf_qty", whereJson.getDoubleValue("jcf_qty"));
|
||||
jsonWas.put("tb_qty", whereJson.getDoubleValue("tb_qty"));
|
||||
jsonWas.put("ycr_qty", whereJson.getDoubleValue("ycr_qty"));
|
||||
jsonWas.put("gz_qty", whereJson.getDoubleValue("gz_qty"));
|
||||
jsonWas.put("create_id", currentUserId);
|
||||
jsonWas.put("create_name", nickName);
|
||||
jsonWas.put("create_time", DateUtil.now());
|
||||
wasTab.insert(jsonWas);
|
||||
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONArray contentShift(JSONObject json) {
|
||||
JSONArray array = new JSONArray();
|
||||
|
||||
JSONObject json_CF = new JSONObject();
|
||||
json_CF.put("name", "CF");
|
||||
if (ObjectUtil.isEmpty(json.getString("cf_qty"))) {
|
||||
json_CF.put("value", "0");
|
||||
} else {
|
||||
json_CF.put("value", json.getString("cf_qty"));
|
||||
}
|
||||
array.add(json_CF);
|
||||
|
||||
JSONObject json_YZ = new JSONObject();
|
||||
json_YZ.put("name", "YZ");
|
||||
if (ObjectUtil.isEmpty(json.getString("yz_qty"))) {
|
||||
json_YZ.put("value", "0");
|
||||
} else {
|
||||
json_YZ.put("value", json.getString("yz_qty"));
|
||||
}
|
||||
array.add(json_YZ);
|
||||
|
||||
JSONObject json_CX = new JSONObject();
|
||||
json_CX.put("name", "CX");
|
||||
if (ObjectUtil.isEmpty(json.getString("cx_qty"))) {
|
||||
json_CX.put("value", "0");
|
||||
} else {
|
||||
json_CX.put("value", json.getString("cx_qty"));
|
||||
}
|
||||
array.add(json_CX);
|
||||
|
||||
JSONObject json_YC = new JSONObject();
|
||||
json_YC.put("name", "YC");
|
||||
if (ObjectUtil.isEmpty(json.getString("yc_qty"))) {
|
||||
json_YC.put("value", "0");
|
||||
} else {
|
||||
json_YC.put("value", json.getString("yc_qty"));
|
||||
}
|
||||
array.add(json_YC);
|
||||
|
||||
JSONObject json_JY = new JSONObject();
|
||||
json_JY.put("name", "JY");
|
||||
if (ObjectUtil.isEmpty(json.getString("jy_qty"))) {
|
||||
json_JY.put("value", "0");
|
||||
} else {
|
||||
json_JY.put("value", json.getString("jy_qty"));
|
||||
}
|
||||
array.add(json_JY);
|
||||
|
||||
JSONObject json_LT = new JSONObject();
|
||||
json_LT.put("name", "LT");
|
||||
if (ObjectUtil.isEmpty(json.getString("lt_qty"))) {
|
||||
json_LT.put("value", "0");
|
||||
} else {
|
||||
json_LT.put("value", json.getString("lt_qty"));
|
||||
}
|
||||
array.add(json_LT);
|
||||
|
||||
JSONObject json_SJ = new JSONObject();
|
||||
json_SJ.put("name", "SJ");
|
||||
if (ObjectUtil.isEmpty(json.getString("sj_qty"))) {
|
||||
json_SJ.put("value", "0");
|
||||
} else {
|
||||
json_SJ.put("value", json.getString("sj_qty"));
|
||||
}
|
||||
array.add(json_SJ);
|
||||
|
||||
JSONObject json_YS = new JSONObject();
|
||||
json_YS.put("name", "YS");
|
||||
if (ObjectUtil.isEmpty(json.getString("ys_qty"))) {
|
||||
json_YS.put("value", "0");
|
||||
} else {
|
||||
json_YS.put("value", json.getString("ys_qty"));
|
||||
}
|
||||
array.add(json_YS);
|
||||
|
||||
JSONObject json_DS = new JSONObject();
|
||||
json_DS.put("name", "DS");
|
||||
if (ObjectUtil.isEmpty(json.getString("ds_qty"))) {
|
||||
json_DS.put("value", "0");
|
||||
} else {
|
||||
json_DS.put("value", json.getString("ds_qty"));
|
||||
}
|
||||
array.add(json_DS);
|
||||
|
||||
JSONObject json_CQX = new JSONObject();
|
||||
json_CQX.put("name", "CQX");
|
||||
if (ObjectUtil.isEmpty(json.getString("cqx_qty"))) {
|
||||
json_CQX.put("value", "0");
|
||||
} else {
|
||||
json_CQX.put("value", json.getString("cqx_qty"));
|
||||
}
|
||||
array.add(json_CQX);
|
||||
|
||||
JSONObject json_XQX = new JSONObject();
|
||||
json_XQX.put("name", "XQX");
|
||||
if (ObjectUtil.isEmpty(json.getString("xqx_qty"))) {
|
||||
json_XQX.put("value", "0");
|
||||
} else {
|
||||
json_XQX.put("value", json.getString("xqx_qty"));
|
||||
}
|
||||
array.add(json_XQX);
|
||||
|
||||
JSONObject json_QX = new JSONObject();
|
||||
json_QX.put("name", "QX");
|
||||
if (ObjectUtil.isEmpty(json.getString("qx_qty"))) {
|
||||
json_QX.put("value", "0");
|
||||
} else {
|
||||
json_QX.put("value", json.getString("qx_qty"));
|
||||
}
|
||||
array.add(json_QX);
|
||||
|
||||
JSONObject json_JCF = new JSONObject();
|
||||
json_JCF.put("name", "JCF");
|
||||
if (ObjectUtil.isEmpty(json.getString("jcf_qty"))) {
|
||||
json_JCF.put("value", "0");
|
||||
} else {
|
||||
json_JCF.put("value", json.getString("jcf_qty"));
|
||||
}
|
||||
array.add(json_JCF);
|
||||
|
||||
JSONObject json_TB = new JSONObject();
|
||||
json_TB.put("name", "TB");
|
||||
if (ObjectUtil.isEmpty(json.getString("tb_qty"))) {
|
||||
json_TB.put("value", "0");
|
||||
} else {
|
||||
json_TB.put("value", json.getString("tb_qty"));
|
||||
}
|
||||
array.add(json_TB);
|
||||
|
||||
JSONObject json_YCR = new JSONObject();
|
||||
json_YCR.put("name", "YCR");
|
||||
if (ObjectUtil.isEmpty(json.getString("ycr_qty"))) {
|
||||
json_YCR.put("value", "0");
|
||||
} else {
|
||||
json_YCR.put("value", json.getString("ycr_qty"));
|
||||
}
|
||||
array.add(json_YCR);
|
||||
|
||||
JSONObject json_GZ = new JSONObject();
|
||||
json_GZ.put("name", "GZ");
|
||||
if (ObjectUtil.isEmpty(json.getString("gz_qty"))) {
|
||||
json_GZ.put("value", "0");
|
||||
} else {
|
||||
json_GZ.put("value", json.getString("gz_qty"));
|
||||
}
|
||||
array.add(json_GZ);
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
[交易说明]
|
||||
交易名: 软废碳平衡修正维护分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
|
||||
[IO定义]
|
||||
#################################################
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.material_code TYPEAS s_string
|
||||
输入.class_ids TYPEAS f_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.code TYPEAS s_string
|
||||
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
|
||||
IF 输入.flag = "1"
|
||||
PAGEQUERY
|
||||
SELECT
|
||||
mater.material_code,
|
||||
mater.material_id,
|
||||
mater.material_name,
|
||||
mater.material_model,
|
||||
chan.change_id,
|
||||
chan.tech_type,
|
||||
chan.cf_qty,
|
||||
chan.yz_qty,
|
||||
chan.cx_qty,
|
||||
chan.yc_qty,
|
||||
chan.jy_qty,
|
||||
chan.lt_qty,
|
||||
chan.sj_qty,
|
||||
chan.ys_qty,
|
||||
chan.ds_qty,
|
||||
chan.cqx_qty,
|
||||
chan.xqx_qty,
|
||||
chan.qx_qty,
|
||||
chan.jcf_qty,
|
||||
chan.tb_qty,
|
||||
chan.ycr_qty,
|
||||
chan.gz_qty,
|
||||
chan.create_id,
|
||||
chan.create_name,
|
||||
chan.create_time
|
||||
FROM
|
||||
md_me_materialbase mater
|
||||
LEFT JOIN PDM_BI_WasteCChange chan ON mater.material_id = chan.material_id
|
||||
WHERE
|
||||
mater.is_delete = '0'
|
||||
AND mater.is_used = '1'
|
||||
|
||||
OPTION 输入.class_ids <> ""
|
||||
mater.material_type_id = 输入.class_ids
|
||||
ENDOPTION
|
||||
|
||||
OPTION 输入.material_code <> ""
|
||||
(mater.material_code like 输入.material_code or
|
||||
mater.material_name like 输入.material_code)
|
||||
ENDOPTION
|
||||
|
||||
ENDSELECT
|
||||
ENDPAGEQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
mater.*,
|
||||
ext.old_mark
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
b.bom_id,
|
||||
a.bom_code,
|
||||
a.material_code,
|
||||
a.material_id
|
||||
FROM
|
||||
MD_PD_ProductBOMDtl b
|
||||
LEFT JOIN MD_PD_ProductBOM a ON a.bom_id = b.bom_id
|
||||
WHERE
|
||||
a.is_used = "1"
|
||||
AND a.is_delete = '0'
|
||||
AND b.material_id = 输入.material_id
|
||||
GROUP BY b.bom_id
|
||||
) AS bomDtl
|
||||
LEFT JOIN md_me_materialbase mater on mater.material_id = bomDtl.material_id
|
||||
LEFT JOIN MD_ME_ProducMaterialExt ext ON mater.material_id = ext.material_id
|
||||
|
||||
WHERE
|
||||
mater.is_delete = '0'
|
||||
AND mater.is_used = '1'
|
||||
AND ext.old_mark like "%新%"
|
||||
AND mater.material_code like 输入.code
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
mater.*,
|
||||
ext.old_mark
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
b.bom_id,
|
||||
a.bom_code,
|
||||
a.material_code,
|
||||
a.material_id
|
||||
FROM
|
||||
MD_PD_ProductBOMDtl b
|
||||
LEFT JOIN MD_PD_ProductBOM a ON a.bom_id = b.bom_id
|
||||
WHERE
|
||||
a.is_used = "1"
|
||||
AND a.is_delete = '0'
|
||||
AND b.material_id = 输入.material_id
|
||||
GROUP BY b.bom_id
|
||||
) AS bomDtl
|
||||
LEFT JOIN md_me_materialbase mater on mater.material_id = bomDtl.material_id
|
||||
LEFT JOIN MD_ME_ProducMaterialExt ext ON mater.material_id = ext.material_id
|
||||
|
||||
WHERE
|
||||
mater.is_delete = '0'
|
||||
AND mater.is_used = '1'
|
||||
AND ext.old_mark not like "%新%"
|
||||
AND mater.material_code like 输入.code
|
||||
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -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
|
||||
|
||||
Binary file not shown.
@@ -15,6 +15,8 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -117,4 +119,12 @@ public class AcceptFormulaController {
|
||||
public ResponseEntity<Object> autoCalculation(@RequestParam Map whereJson) {
|
||||
return new ResponseEntity<>(acceptFormulaService.autoCalculation(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@Log("打印excel")
|
||||
@ApiOperation("打印excel")
|
||||
@GetMapping(value = "/print")
|
||||
public ResponseEntity<Object> preview(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
|
||||
acceptFormulaService.preview(response,whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.pf.service.dto.ProductbomDto;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -103,4 +105,7 @@ public interface AcceptFormulaService {
|
||||
* 提交
|
||||
*/
|
||||
JSONArray autoCalculation(Map whereJson);
|
||||
|
||||
void preview(HttpServletResponse response, Map whereJson) throws IOException;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,23 +3,32 @@ package org.nl.wms.pf.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.metadata.fill.FillWrapper;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.spire.xls.Workbook;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.exception.BadRequestException;
|
||||
import org.nl.modules.security.service.dto.JwtUserDto;
|
||||
import org.nl.modules.system.service.impl.ParamServiceImpl;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.utils.SecurityUtils;
|
||||
import org.nl.utils.SpringContextHolder;
|
||||
import org.nl.wms.basedata.master.constant.MaterOptTypeEnum;
|
||||
import org.nl.wms.pf.service.AcceptFormulaService;
|
||||
import org.nl.wms.pf.service.AcceptMarkService;
|
||||
import org.nl.wms.pf.service.dto.ProductbomDto;
|
||||
import org.nl.wms.test.service.dto.DataDto;
|
||||
import org.nl.wql.WQL;
|
||||
import org.nl.wql.core.bean.WQLObject;
|
||||
import org.nl.wql.util.WqlUtil;
|
||||
@@ -27,10 +36,11 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.servlet.ServletOutputStream;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/**
|
||||
@@ -354,6 +364,118 @@ public class AcceptFormulaServiceImpl implements AcceptFormulaService {
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void preview(HttpServletResponse response, Map whereJson) throws IOException {
|
||||
WQLObject formMstTab = WQLObject.getWQLObject("QL_TEST_AcceptFormula"); // 小线试验配方主表
|
||||
WQLObject formDtlTab = WQLObject.getWQLObject("QL_TEST_AcceptFormulaDtl"); // 小线试验配方明细表
|
||||
WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表
|
||||
WQLObject factMstTab = WQLObject.getWQLObject("QL_TEST_FactoryWarrantyMst"); // 厂家质保书主表
|
||||
WQLObject factDtlTab = WQLObject.getWQLObject("QL_TEST_FactoryWarrantyDtl"); // 厂家质保书明细表
|
||||
WQLObject markTab = WQLObject.getWQLObject("QL_TEST_AcceptMark"); // 验收牌号表
|
||||
WQLObject classTab = WQLObject.getWQLObject("md_pb_classstandard"); // 基本分类表表
|
||||
|
||||
String formula_id = MapUtil.getStr(whereJson, "formula_id");
|
||||
JSONObject jsonFormMst = formMstTab.query("formula_id = '" + formula_id + "'").uniqueResult(0);
|
||||
JSONObject jsonMater = materTab.query("material_id = '" + jsonFormMst.getString("material_id") + "'").uniqueResult(0);
|
||||
|
||||
// 创建workbook 并获取模板路径
|
||||
Workbook workbook = new Workbook();
|
||||
String template = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("ACCEPT_EXCEL_PATH").getValue();
|
||||
|
||||
workbook.loadFromFile(template);
|
||||
|
||||
// 设置文件名和防止乱码现象
|
||||
String fileName = URLEncoder.encode(jsonMater.getString("material_code")+"-"+jsonFormMst.getString("material_pcsn"), "UTF-8");
|
||||
response.setHeader("Content-Disposition", "attachment; filename*=UTf-8''"+fileName+".xlsx");
|
||||
// 获取输出流
|
||||
ServletOutputStream outputStream = response.getOutputStream();
|
||||
// 创建模板工作簿
|
||||
ExcelWriter workBook = EasyExcel.write(outputStream, DataDto.class).withTemplate(template).build();
|
||||
// 获取第一个sheet
|
||||
WriteSheet sheet = EasyExcel.writerSheet().build();
|
||||
|
||||
/*
|
||||
* 单组填充
|
||||
*/
|
||||
HashMap<String, Object> oneMap = new HashMap<>();
|
||||
//型号
|
||||
oneMap.put("material_name", jsonMater.getString("material_name"));
|
||||
|
||||
// 厂家
|
||||
JSONObject jsonFactMst = factMstTab.query("material_id = '" + jsonFormMst.getString("material_id") + "' and pcsn = '" + jsonFormMst.getString("material_pcsn") + "' and is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonFactMst)) oneMap.put("manufactor", jsonFactMst.getString("manufactor"));
|
||||
|
||||
// 实验牌号
|
||||
JSONObject jsonMark= markTab.query("mark_id = '" + jsonFormMst.getString("mark_id") + "' and is_delete = '0'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonMark)) {
|
||||
oneMap.put("mark_code", jsonMark.getString("mark_code"));
|
||||
|
||||
// 酒精体积:液料比*开单总重
|
||||
double bar_bulk = NumberUtil.mul(jsonFormMst.getDoubleValue("confirm_qty"), jsonMark.getDoubleValue("liquid_rate"));
|
||||
oneMap.put("bar_bulk", NumberUtil.round(bar_bulk, 3).toString());
|
||||
|
||||
// 合金球重量:球料比*开单总重
|
||||
double ball_rate_2 = NumberUtil.mul(jsonFormMst.getDoubleValue("confirm_qty"), jsonMark.getDoubleValue("ball_rate"));
|
||||
double ball_weight = NumberUtil.div(ball_rate_2, 1000);
|
||||
oneMap.put("ball_weight", NumberUtil.round(ball_weight, 3).toString());
|
||||
|
||||
// 球磨时间
|
||||
oneMap.put("ball_time", jsonMark.getString("ball_time"));
|
||||
|
||||
// 转速
|
||||
oneMap.put("ball_speed", jsonMark.getString("ball_speed"));
|
||||
|
||||
// 原料总碳
|
||||
oneMap.put("c_balance", jsonMark.getString("c_balance"));
|
||||
}
|
||||
|
||||
// 实验批号
|
||||
oneMap.put("accept_pcsn", jsonFormMst.getString("accept_pcsn"));
|
||||
|
||||
// 碳平衡:厂家质保书明细对应
|
||||
String inspection_item_id = "1510155749437870083"; // ct项点标识
|
||||
JSONObject jsonFactDtl = factDtlTab.query("inspection_id = '" + jsonFactMst.getString("inspection_id") + "' and inspection_item_id = '" + inspection_item_id + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonFactDtl)) {
|
||||
oneMap.put("ct_value", NumberUtil.round(jsonFactDtl.getString("value"), 2).toString());
|
||||
}
|
||||
|
||||
// 开单日期
|
||||
oneMap.put("create_time", jsonFormMst.getString("create_time").substring(0,10));
|
||||
|
||||
/*
|
||||
* 多组填充
|
||||
*/
|
||||
ArrayList<HashMap<String,Object>> flData = new ArrayList<>();
|
||||
// 查询小线实验配方明细表
|
||||
JSONArray formDtlArr = formDtlTab.query("formula_id = '" + jsonFormMst.getString("formula_id") + "'").getResultJSONArray(0);
|
||||
if (ObjectUtil.isNotEmpty(formDtlArr)) {
|
||||
for (int i = 0; i < formDtlArr.size(); i++) {
|
||||
JSONObject json = formDtlArr.getJSONObject(i);
|
||||
HashMap<String, Object> mapFL = new HashMap<>();
|
||||
// 判断物料物料类别是 物料还是物料分类
|
||||
String class_name = "";
|
||||
if (StrUtil.equals(json.getString("material_type"), "01")) {
|
||||
// 物料:查物料表关联分类表
|
||||
JSONObject jsonDtlMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
|
||||
JSONObject jsonDtlClass = classTab.query("class_id = '" + jsonDtlMater.getString("material_type_id") + "'").uniqueResult(0);
|
||||
class_name = jsonDtlClass.getString("class_name");
|
||||
} else {
|
||||
// 分类:直接用明细表的物料标识查基础分类表
|
||||
JSONObject jsonDtlClass = classTab.query("class_id = '" + json.getString("material_id") + "'").uniqueResult(0);
|
||||
class_name = jsonDtlClass.getString("class_name");
|
||||
}
|
||||
mapFL.put("class_name", class_name);
|
||||
mapFL.put("dtl_pcsn", json.getString("dtl_pcsn"));
|
||||
mapFL.put("formula_qty", NumberUtil.round(json.getString("formula_qty"), 3).toString());
|
||||
flData.add(mapFL);
|
||||
}
|
||||
}
|
||||
workBook.fill(oneMap, sheet);
|
||||
workBook.fill(new FillWrapper("data", flData), sheet);
|
||||
workBook.finish();
|
||||
}
|
||||
|
||||
/**
|
||||
* 新料模式开单
|
||||
* @param json
|
||||
@@ -700,29 +822,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 + Z_sum.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 +907,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 +925,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 +942,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){
|
||||
@@ -827,10 +974,6 @@ public class AcceptFormulaServiceImpl implements AcceptFormulaService {
|
||||
}
|
||||
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
|
||||
@@ -871,10 +1014,9 @@ 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);
|
||||
}
|
||||
});
|
||||
double W = new_qty - total_sum.get();
|
||||
double W = X22_jian + Z_sum.get();
|
||||
if(W>0){
|
||||
JSONObject W_weight = new JSONObject();
|
||||
W_weight.put("formula_qty",W);
|
||||
|
||||
@@ -47,6 +47,7 @@ import java.awt.print.Paper;
|
||||
import java.awt.print.PrinterException;
|
||||
import java.awt.print.PrinterJob;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -778,7 +779,7 @@ public class FormulaServiceImpl implements FormulaService {
|
||||
}
|
||||
// 球磨相关
|
||||
oneMap.put("ball_rate",NumberUtil.mul(jsonWork.getDoubleValue("workorder_qty"),jsonMaterExt.getDoubleValue("ball_rate")));
|
||||
oneMap.put("liquid_rate",NumberUtil.mul(jsonWork.getDoubleValue("workorder_qty"),jsonMaterExt.getDoubleValue("liquid_rate")));
|
||||
// oneMap.put("liquid_rate",NumberUtil.mul(jsonWork.getDoubleValue("workorder_qty"),jsonMaterExt.getDoubleValue("liquid_rate")));
|
||||
if (ObjectUtil.isNotEmpty(json98jj)) {
|
||||
if (StrUtil.equals(json98jj.getString("value"), "1.00")) {
|
||||
oneMap.put("para_name", json98jj.getString("para_name"));
|
||||
@@ -799,21 +800,25 @@ public class FormulaServiceImpl implements FormulaService {
|
||||
JSONObject jsonQM06 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM006'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(jsonQM13)) oneMap.put("number_1", jsonQM13.getString("value"));
|
||||
if (ObjectUtil.isNotEmpty(jsonQM14)) {
|
||||
// String number_2 = NumberUtil.mul(masterbucket_qty, NumberUtil.div(jsonQM14.getString("value"), "100").toString()).toString();
|
||||
// oneMap.put("number_2", NumberUtil.round(number_2, 2).toString());
|
||||
oneMap.put("number_2", jsonQM14.getString("value")); // 待删除
|
||||
String number_2 = NumberUtil.mul(masterbucket_qty, NumberUtil.div(jsonQM14.getString("value"), "100").toString()).toString();
|
||||
oneMap.put("number_2", NumberUtil.round(number_2, 2).toString());
|
||||
// oneMap.put("number_2", jsonQM14.getString("value")); // 待删除
|
||||
}
|
||||
|
||||
// if (ObjectUtil.isNotEmpty(jsonQM04)) oneMap.put("pre_time", jsonQM04.getString("value"));
|
||||
// if (ObjectUtil.isNotEmpty(jsonQM06)) {
|
||||
// String pre_fas = NumberUtil.mul(masterbucket_qty, NumberUtil.div(jsonQM06.getString("value"), "100").toString()).toString();
|
||||
// oneMap.put("pre_fas", NumberUtil.round(pre_fas, 2).toString());
|
||||
//
|
||||
// double liquid_rate = jsonMaterExt.getDoubleValue("liquid_rate");
|
||||
// String put_fas = NumberUtil.mul(jsonMst.getDoubleValue("masterbucket_qty"), liquid_rate, NumberUtil.div(jsonQM06.getString("value"), "100")).toString();
|
||||
// oneMap.put("put_fas", NumberUtil.round(put_fas, 2).toString());
|
||||
//
|
||||
// }
|
||||
if (ObjectUtil.isNotEmpty(jsonQM04)) oneMap.put("pre_time", jsonQM04.getString("value"));
|
||||
if (ObjectUtil.isNotEmpty(jsonQM06)) {
|
||||
// 预磨酒精
|
||||
String pre_fas = NumberUtil.mul(masterbucket_qty, NumberUtil.div(jsonQM06.getString("value"), "100").toString()).toString();
|
||||
oneMap.put("pre_fas", NumberUtil.round(pre_fas, 2).toString());
|
||||
|
||||
// 投料酒精
|
||||
double mul_1 = NumberUtil.mul(jsonMst.getDoubleValue("masterbucket_qty"), jsonMaterExt.getDoubleValue("liquid_rate"));
|
||||
BigDecimal mul_2 = NumberUtil.mul(jsonMst.getDoubleValue("masterbucket_qty"), NumberUtil.div(jsonQM06.getString("value"), "100"));
|
||||
String put_fas = NumberUtil.sub(mul_1, mul_2).toString();
|
||||
|
||||
oneMap.put("put_fas", NumberUtil.round(put_fas, 2).toString());
|
||||
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(jsonPW02)) {
|
||||
oneMap.put("number_8", jsonPW02.getString("value"));
|
||||
}
|
||||
|
||||
35
mes/qd/src/api/wms/basedata/pdm/wastecchange.js
Normal file
35
mes/qd/src/api/wms/basedata/pdm/wastecchange.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function add(data) {
|
||||
return request({
|
||||
url: 'api/wastecchange',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function del(ids) {
|
||||
return request({
|
||||
url: 'api/wastecchange/',
|
||||
method: 'delete',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
export function edit(data) {
|
||||
return request({
|
||||
url: 'api/wastecchange',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function confirm(data) {
|
||||
return request({
|
||||
url: 'api/wastecchange/confirm',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export default { add, edit, del, confirm }
|
||||
@@ -126,6 +126,21 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备等级" prop="device_level">
|
||||
<el-select
|
||||
v-model="form.device_level"
|
||||
placeholder="设备等级"
|
||||
style="width: 210px"
|
||||
class="filter-item"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.device_level"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="内部自编号" prop="extend_code">
|
||||
<label slot="label">内部自编号:</label>
|
||||
<el-input v-model="form.extend_code" clearable style="width: 210px" />
|
||||
@@ -283,6 +298,7 @@ const defaultForm = {
|
||||
setting_place: '',
|
||||
device_bom_id: '',
|
||||
theory_beat: '',
|
||||
device_level: '',
|
||||
oraginal_value: '',
|
||||
net_amount: '',
|
||||
remark: ''
|
||||
@@ -297,7 +313,7 @@ export default {
|
||||
default: false
|
||||
}
|
||||
},
|
||||
dicts: ['device_type', 'workorder_type', 'is_produceuse', 'device_status'],
|
||||
dicts: ['device_type', 'workorder_type', 'is_produceuse', 'device_status', 'device_level'],
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
|
||||
@@ -111,6 +111,22 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备等级" prop="device_level">
|
||||
<el-select
|
||||
v-model="form.device_level"
|
||||
placeholder="设备等级"
|
||||
style="width: 210px"
|
||||
disabled
|
||||
class="filter-item"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.device_level"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="内部自编号" prop="extend_code">
|
||||
<label slot="label">内部自编号:</label>
|
||||
<el-input v-model="form.extend_code" disabled style="width: 210px" />
|
||||
@@ -233,7 +249,7 @@ export default {
|
||||
type: Object
|
||||
}
|
||||
},
|
||||
dicts: ['device_type', 'workorder_type', 'is_produceuse', 'device_status'],
|
||||
dicts: ['device_type', 'workorder_type', 'is_produceuse', 'device_status', 'device_level'],
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
|
||||
@@ -66,18 +66,6 @@
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="启用日期">
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
@input="onInput()"
|
||||
:default-time="['00:00:00', '23:59:59']"
|
||||
@change="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属工序">
|
||||
<el-select
|
||||
v-model="query.workprocedure_id"
|
||||
@@ -129,6 +117,35 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="设备等级">
|
||||
<el-select
|
||||
v-model="query.device_level"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
placeholder="设备等级"
|
||||
class="filter-item"
|
||||
@change="crud.toQuery"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in dict.device_level"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="启用日期">
|
||||
<el-date-picker
|
||||
v-model="query.createTime"
|
||||
type="daterange"
|
||||
value-format="yyyy-MM-dd HH:mm:ss"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
:default-time="['00:00:00', '23:59:59']"
|
||||
@input="onInput()"
|
||||
@change="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<rrOperation />
|
||||
</el-form>
|
||||
</div>
|
||||
@@ -143,7 +160,7 @@
|
||||
:disabled="sub_flag"
|
||||
@click="submit('10')"
|
||||
>
|
||||
启用
|
||||
启用
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
@@ -165,7 +182,7 @@
|
||||
size="mini"
|
||||
@click="openWork"
|
||||
>
|
||||
档案维护
|
||||
档案维护
|
||||
</el-button>
|
||||
<el-button
|
||||
slot="right"
|
||||
@@ -195,6 +212,7 @@
|
||||
size="mini"
|
||||
:data="crud.data"
|
||||
style="width: 100%;"
|
||||
:cell-style="cellstyle"
|
||||
:highlight-current-row="true"
|
||||
@selection-change="mySelectionChange"
|
||||
>
|
||||
@@ -219,30 +237,31 @@
|
||||
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.device_code }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="device_name" min-width="150" label="设备名称"/>
|
||||
<el-table-column prop="extend_code" min-width="100" label="内部自编号"/>
|
||||
<el-table-column prop="device_model" min-width="130" label="设备型号"/>
|
||||
<el-table-column prop="device_spec" min-width="130" label="设备规格"/>
|
||||
<el-table-column prop="device_name" min-width="150" label="设备名称" />
|
||||
<el-table-column prop="extend_code" min-width="100" label="内部自编号" />
|
||||
<el-table-column prop="device_model" min-width="130" label="设备型号" />
|
||||
<el-table-column prop="device_spec" min-width="130" label="设备规格" />
|
||||
<el-table-column prop="device_level" min-width="70" label="设备等级" :formatter="device_levelFormat" />
|
||||
<el-table-column prop="material_type_name" min-width="150" label="设备类别" />
|
||||
<el-table-column :formatter="is_produceuseFormat" min-width="70" prop="is_produceuse" label="生产用途" />
|
||||
<el-table-column :formatter="stateFormat" min-width="70" prop="status" label="设备状态" />
|
||||
<el-table-column prop="beginuse_date" min-width="90" label="启用日期"/>
|
||||
<el-table-column prop="use_deptname" min-width="130" label="使用部门"/>
|
||||
<el-table-column prop="use_groupname" min-width="130" label="使用班组"/>
|
||||
<el-table-column prop="supplier_name" min-width="180" label="供应商" show-overflow-tooltip/>
|
||||
<el-table-column prop="manufacturer" min-width="180" label="制造商" show-overflow-tooltip/>
|
||||
<el-table-column prop="country_manufactur" min-width="90" label="制造国别"/>
|
||||
<el-table-column prop="leavefactory_date" min-width="80" label="出厂日期" show-overflow-tooltip/>
|
||||
<el-table-column prop="leavefactory_number" min-width="130" label="出厂编号" show-overflow-tooltip/>
|
||||
<el-table-column prop="drawing_number" min-width="130" label="图号" show-overflow-tooltip/>
|
||||
<el-table-column prop="device_type" min-width="70" label="设备属性" :formatter="device_typeFormat" show-overflow-tooltip/>
|
||||
<el-table-column prop="workprocedure_id" min-width="70" label="工序" :formatter="seriesFormat2" show-overflow-tooltip/>
|
||||
<el-table-column prop="assets_code" min-width="100" label="资产编码" show-overflow-tooltip/>
|
||||
<el-table-column prop="assets_name" min-width="150" label="资产名称" show-overflow-tooltip/>
|
||||
<el-table-column prop="create_name" min-width="90" label="生成人" show-overflow-tooltip/>
|
||||
<el-table-column prop="create_time" min-width="140" label="生成时间" show-overflow-tooltip/>
|
||||
<el-table-column prop="update_optname" min-width="90" label="修改人" show-overflow-tooltip/>
|
||||
<el-table-column prop="update_time" min-width="140" label="修改时间" show-overflow-tooltip/>
|
||||
<el-table-column :formatter="is_produceuseFormat" min-width="70" prop="is_produceuse" label="生产用途" />
|
||||
<el-table-column :formatter="stateFormat" min-width="70" prop="status" label="设备状态" />
|
||||
<el-table-column prop="beginuse_date" min-width="90" label="启用日期" />
|
||||
<el-table-column prop="use_deptname" min-width="130" label="使用部门" />
|
||||
<el-table-column prop="use_groupname" min-width="130" label="使用班组" />
|
||||
<el-table-column prop="supplier_name" min-width="180" label="供应商" show-overflow-tooltip />
|
||||
<el-table-column prop="manufacturer" min-width="180" label="制造商" show-overflow-tooltip />
|
||||
<el-table-column prop="country_manufactur" min-width="90" label="制造国别" />
|
||||
<el-table-column prop="leavefactory_date" min-width="80" label="出厂日期" show-overflow-tooltip />
|
||||
<el-table-column prop="leavefactory_number" min-width="130" label="出厂编号" show-overflow-tooltip />
|
||||
<el-table-column prop="drawing_number" min-width="130" label="图号" show-overflow-tooltip />
|
||||
<el-table-column prop="device_type" min-width="70" label="设备属性" :formatter="device_typeFormat" show-overflow-tooltip />
|
||||
<el-table-column prop="workprocedure_id" min-width="70" label="工序" :formatter="seriesFormat2" show-overflow-tooltip />
|
||||
<el-table-column prop="assets_code" min-width="100" label="资产编码" show-overflow-tooltip />
|
||||
<el-table-column prop="assets_name" min-width="150" label="资产名称" show-overflow-tooltip />
|
||||
<el-table-column prop="create_name" min-width="90" label="生成人" show-overflow-tooltip />
|
||||
<el-table-column prop="create_time" min-width="140" label="生成时间" show-overflow-tooltip />
|
||||
<el-table-column prop="update_optname" min-width="90" label="修改人" show-overflow-tooltip />
|
||||
<el-table-column prop="update_time" min-width="140" label="修改时间" show-overflow-tooltip />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
@@ -275,7 +294,7 @@ import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
|
||||
export default {
|
||||
name: 'equipmentfile',
|
||||
name: 'Equipmentfile',
|
||||
components: { Treeselect, ChangeDialog, ViewDialog, AddDialog, crudOperation, rrOperation, udOperation, pagination },
|
||||
cruds() {
|
||||
return CRUD({ title: '设备档案', idField: 'devicerecord_id', url: 'api/equipmentfile', crudMethod: { ...equipmentfile },
|
||||
@@ -290,7 +309,7 @@ export default {
|
||||
},
|
||||
mixins: [presenter(), header(), crud()],
|
||||
// 数据字典
|
||||
dicts: ['workorder_status', 'workorder_type', 'product_series', 'device_type', 'is_produceuse', 'device_status'],
|
||||
dicts: ['device_level', 'workorder_status', 'workorder_type', 'product_series', 'device_type', 'is_produceuse', 'device_status'],
|
||||
data() {
|
||||
return {
|
||||
height: document.documentElement.clientHeight - 180 + 'px;',
|
||||
@@ -421,10 +440,13 @@ export default {
|
||||
this.open_flag = true
|
||||
}
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
this.handleCurrentChange()
|
||||
}
|
||||
},
|
||||
device_levelFormat(row) {
|
||||
return this.dict.label.device_level[row.device_level]
|
||||
},
|
||||
stateFormat(row) {
|
||||
return this.dict.label.device_status[row.status]
|
||||
},
|
||||
@@ -449,18 +471,18 @@ export default {
|
||||
},
|
||||
submit(status) {
|
||||
this.checkrows = this.$refs.table.selection
|
||||
if(this.checkrows.length === 0 ){
|
||||
if (this.checkrows.length === 0) {
|
||||
this.crud.notify('请勾选需要操作的记录!')
|
||||
return false
|
||||
}
|
||||
equipmentfile.submit({ 'status': status, rows: this.checkrows}).then(res => {
|
||||
equipmentfile.submit({ 'status': status, rows: this.checkrows }).then(res => {
|
||||
this.crud.notify('操作成功!')
|
||||
this.querytable()
|
||||
})
|
||||
},
|
||||
openWork(row) {
|
||||
this.checkrows = this.$refs.table.selection
|
||||
if(this.checkrows.length === 0 ){
|
||||
if (this.checkrows.length === 0) {
|
||||
this.crud.notify('请勾选一条需要操作的记录!')
|
||||
return false
|
||||
}
|
||||
@@ -480,6 +502,22 @@ export default {
|
||||
crud.downloadLoading = false
|
||||
})
|
||||
},
|
||||
cellstyle({ row, column, rowIndex, columnIndex }) {
|
||||
const stylejson = {}
|
||||
if (column.label === '设备等级') {
|
||||
if (row.device_level === 'A') {
|
||||
stylejson.background = 'red'
|
||||
stylejson.color = 'white'
|
||||
} else if (row.device_level === 'B') {
|
||||
stylejson.background = 'blue'
|
||||
stylejson.color = 'white'
|
||||
} else if (row.device_level === 'C') {
|
||||
stylejson.background = 'green'
|
||||
stylejson.color = 'white'
|
||||
}
|
||||
return stylejson
|
||||
}
|
||||
},
|
||||
printCard() {
|
||||
const _selectData = this.$refs.table.selection
|
||||
if (_selectData.length > 1 || _selectData.length === 0) {
|
||||
@@ -578,7 +616,6 @@ export default {
|
||||
|
||||
color: "#CCCFD6";
|
||||
|
||||
|
||||
}
|
||||
|
||||
.vue-treeselect--has-value .vue-treeselect__input {
|
||||
|
||||
329
mes/qd/src/views/wms/basedata/pdm/wastecchange/index.vue
Normal file
329
mes/qd/src/views/wms/basedata/pdm/wastecchange/index.vue
Normal file
@@ -0,0 +1,329 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
<!-- 搜索 -->
|
||||
<el-form
|
||||
:inline="true"
|
||||
class="demo-form-inline"
|
||||
label-position="right"
|
||||
label-width="80px"
|
||||
label-suffix=":"
|
||||
>
|
||||
<el-form-item label="碳化钨">
|
||||
<el-input
|
||||
v-model="query.material_code"
|
||||
clearable
|
||||
size="mini"
|
||||
placeholder="编码、名称"
|
||||
@keyup.enter.native="crud.toQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="工艺">
|
||||
<el-radio v-model="form.tech_type" label="01">负压脱蜡</el-radio>
|
||||
<el-radio v-model="form.tech_type" label="02">氢气脱蜡</el-radio>
|
||||
</el-form-item>
|
||||
<rrOperation />
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission" />
|
||||
<!--表格渲染-->
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column v-if="false" prop="change_id" label="记录标识" />
|
||||
<el-table-column v-if="false" prop="material_id" label="物料标识" />
|
||||
<el-table-column prop="material_code" label="物料编码" width="120px" show-overflow-tooltip />
|
||||
<el-table-column prop="material_name" label="物料名称" width="120px" show-overflow-tooltip />
|
||||
<el-table-column prop="" label="型号" />
|
||||
<el-table-column prop="tech_type" label="工艺" :formatter="formName" />
|
||||
<el-table-column prop="cf_qty" label="CF" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].cf_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="yz_qty" label="YZ" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].yz_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cx_qty" label="CX" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].cx_qty"
|
||||
size="small"
|
||||
:controls="false"
|
||||
style="width: 95px"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="yc_qty" label="YC" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].yc_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="jy_qty" label="JY" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].jy_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="lt_qty" label="LT" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].lt_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="sj_qty" label="SJ" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].sj_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ys_qty" label="YS" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].ys_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ds_qty" label="DS" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].ds_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cqx_qty" label="CQX" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].cqx_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="xqx_qty" label="XQX" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].xqx_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="qx_qty" label="QX" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].qx_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="jcf_qty" label="JCF" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].jcf_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="tb_qty" label="TB" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].tb_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="ycr_qty" label="YCR" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].ycr_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="gz_qty" label="GZ" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-input-number
|
||||
v-model="crud.data[scope.$index].gz_qty"
|
||||
size="small"
|
||||
style="width: 95px"
|
||||
:controls="false"
|
||||
controls-position="right"
|
||||
:precision="2"
|
||||
:min="-10000"
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_name" label="维护人" />
|
||||
<el-table-column prop="create_time" label="维护时间" width="150px"/>
|
||||
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="success" size="mini" :loading="confirm_flg" @click="confirm(scope.row)">确认</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import crudWastecchange from '@/api/wms/basedata/pdm/wastecchange'
|
||||
import CRUD, { presenter, header, form, crud } from '@crud/crud'
|
||||
import rrOperation from '@crud/RR.operation'
|
||||
import crudOperation from '@crud/CRUD.operation'
|
||||
import udOperation from '@crud/UD.operation'
|
||||
import pagination from '@crud/Pagination'
|
||||
|
||||
const defaultForm = { change_id: null, material_id: null, tech_type: '01', cf_qty: null, yz_qty: null, cx_qty: null, yc_qty: null, jy_qty: null, lt_qty: null, sj_qty: null, ys_qty: null, ds_qty: null, cqx_qty: null, xqx_qty: null, qx_qty: null, jcf_qty: null, tb_qty: null, ycr_qty: null, gz_qty: null, create_id: null, create_name: null, create_time: null }
|
||||
export default {
|
||||
name: 'Wastecchange',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '软废碳平衡修正维护',
|
||||
url: 'api/wastecchange',
|
||||
idField: 'change_id',
|
||||
sort: 'change_id,desc',
|
||||
crudMethod: { ...crudWastecchange },
|
||||
optShow: {
|
||||
add: false,
|
||||
edit: false,
|
||||
del: false,
|
||||
download: false,
|
||||
reset: true
|
||||
}})
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
confirm_flg: false,
|
||||
permission: {
|
||||
},
|
||||
rules: {
|
||||
}}
|
||||
},
|
||||
methods: {
|
||||
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||
[CRUD.HOOK.beforeRefresh]() {
|
||||
return true
|
||||
},
|
||||
formName(row) {
|
||||
if (row.tech_type === '01') {
|
||||
return '负压脱蜡'
|
||||
} else if (row.tech_type === '02') {
|
||||
return '氢气脱蜡'
|
||||
}
|
||||
},
|
||||
confirm(row) {
|
||||
row.tech_type = this.form.tech_type
|
||||
this.confirm_flg = true
|
||||
crudWastecchange.confirm(row).then(res => {
|
||||
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||
this.crud.toQuery()
|
||||
this.confirm_flg = false
|
||||
}).catch(() => {
|
||||
this.crud.toQuery()
|
||||
this.confirm_flg = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -151,7 +151,7 @@
|
||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||
<el-table-column
|
||||
v-permission="['admin','workorder:del','workorder:edit']"
|
||||
min-width="130"
|
||||
min-width="125"
|
||||
label="操作"
|
||||
align="center"
|
||||
fixed="right"
|
||||
@@ -165,26 +165,26 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="45" />
|
||||
<el-table-column prop="plan_code" label="日计划编码" width="110" />
|
||||
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列产线" />
|
||||
<el-table-column prop="device_name" label="关键设备" width="80" />
|
||||
<el-table-column prop="planstart_date" label="计划开始日期" width="100" />
|
||||
<el-table-column prop="plan_org_name" label="申报单位" width="100" />
|
||||
<el-table-column prop="workorder_type" label="计划类型" :formatter="workorder_typeFormat" min-width="80" />
|
||||
<el-table-column :selectable="checkboxT" type="selection" min-width="35" />
|
||||
<el-table-column prop="plan_code" label="日计划编码" min-width="105" />
|
||||
<el-table-column :formatter="seriesFormat" min-width="70" prop="product_series_id" label="系列产线" />
|
||||
<el-table-column prop="device_name" label="关键设备" min-width="80" />
|
||||
<el-table-column prop="planstart_date" label="计划开始日期" min-width="95" />
|
||||
<el-table-column prop="plan_org_name" label="申报单位" min-width="105" />
|
||||
<el-table-column prop="workorder_type" label="计划类型" :formatter="workorder_typeFormat" min-width="70" />
|
||||
<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_num" label="批数" width="45" />
|
||||
<el-table-column prop="planend_date" label="计划结束日期" width="100" />
|
||||
<el-table-column prop="plan_finish_date" label="交货日期" width="90" />
|
||||
<el-table-column prop="day_num" label="提前天数" width="70" :formatter="crud.formatNum0" />
|
||||
<el-table-column prop="old_mark" label="牌号" min-width="80" />
|
||||
<el-table-column :formatter="seriesFormat2" min-width="70" prop="mater_product_series" label="产品系列" />
|
||||
<el-table-column prop="product_weight" label="计划重量(kg)" :formatter="crud.formatNum0" min-width="95" />
|
||||
<el-table-column prop="product_num" label="批数" min-width="45" />
|
||||
<el-table-column prop="planend_date" label="计划结束日期" min-width="95" />
|
||||
<el-table-column prop="plan_finish_date" label="交货日期" min-width="85" />
|
||||
<el-table-column prop="day_num" label="提前天数" min-width="70" :formatter="crud.formatNum0" />
|
||||
<el-table-column :formatter="stateFormat" min-width="45" prop="status" label="状态" />
|
||||
<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="task_code" label="生产任务号" min-width="110" />
|
||||
<el-table-column prop="create_time" label="创建时间" min-width="135" />
|
||||
<el-table-column prop="create_name" label="创建人" min-width="60" />
|
||||
<el-table-column prop="remark" label="备注" min-width="200" />
|
||||
</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,
|
||||
|
||||
@@ -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">总 重 量:</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"
|
||||
|
||||
@@ -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,25 @@
|
||||
<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 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 +302,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 +337,7 @@ export default {
|
||||
mstrow: {},
|
||||
XLList: [],
|
||||
Depts: [],
|
||||
Devices: [],
|
||||
workProcedureList: [],
|
||||
viewShow: false,
|
||||
changeShow: false,
|
||||
@@ -348,6 +359,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 +454,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 +537,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) {
|
||||
|
||||
@@ -258,6 +258,8 @@
|
||||
:data="tableData"
|
||||
style="width: 100%;"
|
||||
size="mini"
|
||||
show-summary
|
||||
:summary-method="getSummaries"
|
||||
border
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||
>
|
||||
@@ -469,8 +471,8 @@ export default {
|
||||
this.form.liquid_rate = res.liquid_rate
|
||||
this.form.ball_time = res.ball_time
|
||||
this.form.ball_speed = res.ball_speed
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty / 100.0
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty / 100.0
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty
|
||||
})
|
||||
}
|
||||
},
|
||||
@@ -506,13 +508,13 @@ export default {
|
||||
this.form.liquid_rate = res.liquid_rate
|
||||
this.form.ball_time = res.ball_time
|
||||
this.form.ball_speed = res.ball_speed
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty / 100.0
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty / 100.0
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty
|
||||
})
|
||||
},
|
||||
storChange4(row) {
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty / 100.0
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty / 100.0
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty
|
||||
},
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
@@ -533,6 +535,29 @@ export default {
|
||||
this.form.accept_pcsn = res.accept_pcsn
|
||||
})
|
||||
},
|
||||
getSummaries(param) {
|
||||
const { columns, data } = param
|
||||
const sums = []
|
||||
columns.forEach((column, index) => {
|
||||
if (index === 0) {
|
||||
sums[index] = '合计'
|
||||
return
|
||||
}
|
||||
const values = data.map(item => Number(item[column.property]))
|
||||
if (column.property === 'formula_qty') {
|
||||
sums[index] = values.reduce((prev, curr) => {
|
||||
const value = Number(curr)
|
||||
if (!isNaN(value)) {
|
||||
return prev + curr
|
||||
} else {
|
||||
return prev
|
||||
}
|
||||
}, 0)
|
||||
sums[index]
|
||||
}
|
||||
})
|
||||
return sums
|
||||
},
|
||||
autoCalculation() {
|
||||
this.fullscreenLoading = true
|
||||
crudacceptformula.autoCalculation(this.form).then(res => {
|
||||
|
||||
@@ -228,6 +228,8 @@
|
||||
:data="tableData"
|
||||
style="width: 100%;"
|
||||
size="mini"
|
||||
show-summary
|
||||
:summary-method="getSummaries"
|
||||
border
|
||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||
>
|
||||
@@ -358,10 +360,33 @@ export default {
|
||||
this.form.liquid_rate = res.liquid_rate
|
||||
this.form.ball_time = res.ball_time
|
||||
this.form.ball_speed = res.ball_speed
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty / 100.0
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty / 100.0
|
||||
this.form.ball_qty = this.form.ball_rate * this.form.accept_qty
|
||||
this.form.liquid_qty = this.form.liquid_rate * this.form.accept_qty
|
||||
})
|
||||
},
|
||||
getSummaries(param) {
|
||||
const { columns, data } = param
|
||||
const sums = []
|
||||
columns.forEach((column, index) => {
|
||||
if (index === 0) {
|
||||
sums[index] = '合计'
|
||||
return
|
||||
}
|
||||
const values = data.map(item => Number(item[column.property]))
|
||||
if (column.property === 'formula_qty') {
|
||||
sums[index] = values.reduce((prev, curr) => {
|
||||
const value = Number(curr)
|
||||
if (!isNaN(value)) {
|
||||
return prev + curr
|
||||
} else {
|
||||
return prev
|
||||
}
|
||||
}, 0)
|
||||
sums[index]
|
||||
}
|
||||
})
|
||||
return sums
|
||||
},
|
||||
close() {
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.form = {}
|
||||
|
||||
@@ -98,6 +98,8 @@
|
||||
type="warning"
|
||||
icon="el-icon-check"
|
||||
size="mini"
|
||||
:disabled="crud.selections.length !== 1"
|
||||
@click="printExcel"
|
||||
>
|
||||
打印
|
||||
</el-button>
|
||||
@@ -147,6 +149,8 @@ import pagination from '@crud/Pagination'
|
||||
import AddDialog from '@/views/wms/pf/acceptformula/AddDialog'
|
||||
import ViewDialog from '@/views/wms/pf/acceptformula/ViewDialog'
|
||||
import Date from '@/utils/datetime'
|
||||
import {download} from "@/api/data";
|
||||
import {downloadFile} from "@/utils";
|
||||
|
||||
export default {
|
||||
name: 'Acceptformula',
|
||||
@@ -229,6 +233,17 @@ export default {
|
||||
},
|
||||
querytable() {
|
||||
this.crud.toQuery()
|
||||
},
|
||||
printExcel() {
|
||||
const _selectData = this.$refs.table.selection
|
||||
const data = _selectData[0]
|
||||
download('/api/acceptformula/print', { 'formula_id': data.formula_id }).then(result => {
|
||||
const name = data.material_code + data.accept_pcsn
|
||||
downloadFile(result, name, 'xlsx')
|
||||
crud.downloadLoading = false
|
||||
}).catch(() => {
|
||||
crud.downloadLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
<MaterDtl
|
||||
:dialog-show.sync="dtlMaterShow"
|
||||
:is-single="true"
|
||||
:mater-opt-code="'04'"
|
||||
:mater-opt-code="'27'"
|
||||
@tableChanged2="tableChanged2"
|
||||
/>
|
||||
</el-dialog>
|
||||
|
||||
Reference in New Issue
Block a user