rev:海柔半成品库接口调整

This commit is contained in:
zhangzq
2024-01-19 16:33:49 +08:00
parent 9b97d45a5f
commit 32afb67abb
29 changed files with 258 additions and 28 deletions

View File

@@ -80,6 +80,7 @@ public enum AcsTaskEnum {
///api/dict/dictDetail/api/dict/dictDetail/api/dict/dictDetail
AGV_SYSTEM_NB("1","诺宝机器人任务"),
AGV_SYSTEM_XC("2","叉车任务"),
AGV_SYSTEM_HR("3","海柔任务任务"),
ACS_TASK_TYPE_NOBLE_DOUBLE_TASK("1","诺宝双工任务"),
ACS_TASK_TYPE_NOBLE_SINGLE_TASK("2","诺宝单工任务"),

View File

@@ -6,6 +6,7 @@ import cn.hutool.http.HttpRequest;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.enums.StatusEnum;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
@@ -36,7 +37,14 @@ public class AcsUtil {
}
//ACS地址127.0.0.1:8010
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("acs_url").getValue();
String acsUrlCode = "acs_url";
if (list.size()>0){
String acs = list.getJSONObject(0).getString("acs");
if (StringUtils.isNotEmpty(acs)){
acsUrlCode=acs;
}
}
String acsUrl = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(acsUrlCode).getValue();
String url = acsUrl + api;
try {

View File

@@ -39,14 +39,13 @@ public class DruidFilter extends FilterEventAdapter {
@Override
protected void statementExecuteAfter(StatementProxy statement, String sql, boolean result) {
String traceId = MDC.get("traceId");
int size = statement.getParametersSize();
String executeSql = sql;
int count = 0;
try {
count=statement.getUpdateCount();
}catch (Exception ex){ }
if (StringUtils.isNotBlank(traceId) && count>0) {
if (count>0) {
if (size > 0) {
Collection<JdbcParameter> values = statement.getParameters().values();
List<Object> params = new ArrayList<>();
@@ -64,7 +63,6 @@ public class DruidFilter extends FilterEventAdapter {
ResultSetProxy rs = super.statement_getResultSet(chain, statement);
String executeSql = statement.getLastExecuteSql();
String traceId = MDC.get("traceId");
if (StringUtils.isNotBlank(traceId)){
int result = 0;
if (rs != null) {
ResultSetImpl rss = rs.getResultSetRaw().unwrap(ResultSetImpl.class);
@@ -84,7 +82,6 @@ public class DruidFilter extends FilterEventAdapter {
log.warn("[-SQL解析异常-][{}]",ex.getMessage());
}
log.info("[----SQL----][select][执行结果:{}][ SQL: {} ]",result, executeSql);
}
return rs;
}

View File

@@ -406,7 +406,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService{
// 调用入库分配规则
StIvtSectattr sect = sectattrService.getOne(
new QueryWrapper<StIvtSectattr>().lambda()
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
);
JSONObject jo = new JSONObject();
jo.put("sect_id", sect.getSect_id());

View File

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.nl.common.enums.AcsTaskEnum;
import org.nl.common.enums.StatusEnum;
import org.nl.common.utils.AcsUtil;
import org.nl.common.utils.IdUtil;
@@ -137,6 +138,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
@Override
public Map<String, Object> issueTaskToAcs4(JSONArray arr) {
String HR_TASK_TYPE = "18";
JSONArray form = new JSONArray();
for (Object o : arr) {
JSONObject task = (JSONObject) o;
@@ -148,13 +150,14 @@ public class WmsToAcsServiceImpl implements WmsToAcsService{
, "task_group_id", task.getString("task_group_id")
, "start_point_code", task.getString("point_code1")
, "next_point_code", task.getString("point_code3")
, "task_type", "18"
, "task_type", HR_TASK_TYPE
, "storage_task_type", task.getString("acs_task_type")
, "task_group_id", StringUtils.isBlank(task.getString("task_group_id"))? IdUtil.getStringId():task.getString("task_group_id")
, "priority", task.getString("priority")
, "is_send", task.getBoolean("is_send")?"1":"0"
, "vehicle_code", task.getString("vehicle_code")
, "agv_system_type", task.getString("agv_system_type")
, "agv_system_type", AcsTaskEnum.AGV_SYSTEM_HR.getCode()
, "acs", "A3_acs_url"
));
form.add(param);
}

View File

@@ -18,6 +18,9 @@
mater.material_name LIKE '%${query.material_code}%' or
mater.material_spec LIKE '%${query.material_code}%')
</if>
<if test="query.product_area != null and query.product_area != ''">
AND mater.product_area = #{query.product_area}
</if>
order by mater.material_code ASC
</select>

View File

@@ -90,6 +90,9 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
case "05":
code = "VEHICCLE_CODE_LX";
break;
case "06":
code = "VEHICCLE_CODE_HR";
break;
}
JSONArray resultCodeArr = new JSONArray();
int num = MapUtil.getInt(map, "num");
@@ -208,6 +211,9 @@ public class MdPbStoragevehicleinfoServiceImpl extends ServiceImpl<MdPbStorageve
case "05":
term = "VEHICCLE_CODE_LX";
break;
case "06":
term = "VEHICCLE_CODE_HR";
break;
}
HashMap<String, String> map = new HashMap<>();

View File

@@ -20,6 +20,7 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ext_manage.acs.service.WmsToAcsService;
import org.nl.wms.ext_manage.acs.service.impl.WmsToAcsServiceImpl;
import org.nl.wms.scheduler_manage.service.extendtask.manage.AbstractAcsTask;
import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum;
@@ -166,7 +167,14 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
}
JSONArray array = new JSONArray();
array.add(JSON.toJSON(task));
Map<String, Object> result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
Map<String, Object> result;
if (task.getProduct_area().equals("A3")){
WmsToAcsService bean = SpringContextHolder.getBean(WmsToAcsService.class);
result = bean.issueTaskToAcs4(array);
}else {
result = WmsToAcsServiceImpl.staticIssueTaskToAcs(array);
}
String status = String.valueOf(result.get("status"));
if (!status.equals("200")) {
throw new BadRequestException(result.get("message") != null ? String.valueOf(result.get("message")) : "acs反馈异常");

View File

@@ -0,0 +1,69 @@
package org.nl.wms.storage_manage.pda.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import org.nl.common.TableDataInfo;
import org.nl.common.anno.Log;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.storage_manage.pda.service.PdaStHrBcpInService;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.IStIvtIostorinvOrderService;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto.HrBcpIostorOrderQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* <p>
* 手持半成品出入库顺序 前端控制器
* </p>
*
* @author Liuxy
* @since 2023-08-30
*/
@RestController
@RequestMapping("/api/pda/hrBcp/order")
public class PdaStHrBcpOrderController {
@Autowired
protected IStIvtIostorinvOrderService iStIvtIostorinvOrderService; // 出入顺序服务
@GetMapping
@Log("获取出入库顺序表")
@SaIgnore
public ResponseEntity<Object> getMaterial(HrBcpIostorOrderQuery query, PageQuery page) {
Page<StIvtIostorinvOrder> result = iStIvtIostorinvOrderService.page(page.build(), query.build());
return new ResponseEntity<>(TableDataInfo.build(result), HttpStatus.OK);
}
@PostMapping
@Log("获取出入库顺序表")
@SaIgnore
public ResponseEntity<Object> getMaterial(@RequestBody StIvtIostorinvOrder order) {
if (order!=null){
iStIvtIostorinvOrderService.updateById(order);
}
return new ResponseEntity<>(HttpStatus.OK);
}
@DeleteMapping
@Log("删除入库顺序表")
@SaIgnore
public ResponseEntity<Object> delete(@RequestBody Long[] ids){
if (ids!=null && ids.length>0){
iStIvtIostorinvOrderService.removeByIds(Arrays.asList(ids));
}
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -15,6 +15,7 @@ public class PdaQuery extends BaseQuery<StIvtShutframeinvBcp> {
private String material_code;
private String product_area;
@Override
public void paramMapping() {

View File

@@ -80,7 +80,7 @@ public class PdaStHrBcpEmpOutServiceImpl implements PdaStHrBcpEmpOutService {
StIvtSectattr sect = sectattrService.getOne(
new QueryWrapper<StIvtSectattr>().lambda()
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
);
List<StIvtStructattr> list = new ArrayList<>();

View File

@@ -65,10 +65,12 @@ public class PdaStHrBcpInServiceImpl implements PdaStHrBcpInService {
List<MdMeMaterialbase> list1 = iMdMeMaterialbaseService.list(
new QueryWrapper<MdMeMaterialbase>().lambda()
.eq(MdMeMaterialbase::getMaterial_type_id, "1528555445302726656")
.eq(MdMeMaterialbase::getProduct_area, "A3")
);
list = list1.subList(0, Math.min(list1.size(), size));
totalCount = list1.size();
} else {
whereJson.setProduct_area("A3");
List list1 = iMdMeMaterialbaseService.getPdaBcpGetMaterial(whereJson, pageQuery);
list = list1.subList(0, Math.min(list1.size(), size));
totalCount = list1.size();

View File

@@ -83,10 +83,10 @@ public class StIvtCheckmstHrBcpServiceImpl extends ServiceImpl<StIvtCheckmstHrBc
@Autowired
private IStIvtStructattrService structattrService; // 仓位服务
@Autowired
private ISchBasePointService iSchBasePointService; // 点位服务
@Autowired
private ISchBaseTaskService iSchBaseTaskService; // 任务服务
@@ -167,6 +167,7 @@ public class StIvtCheckmstHrBcpServiceImpl extends ServiceImpl<StIvtCheckmstHrBc
.acs_task_type("15")
.type(AcsTaskEnum.TASK_STRUCT_HR_CHECK)
.point_code1(struct.getStruct_code())
//TODO:盘点位没确定
.point_code3(struct.getStruct_code())
.vehicle_code(dtl.getStoragevehicle_code())
.task_group_id(task_group_id)

View File

@@ -60,7 +60,7 @@ public class IosHrTask extends AbstractAcsTask {
// 2.判断device_code2、barcode2 是否为空
if (ObjectUtil.isNotEmpty(json.getString("device_code2")) && ObjectUtil.isNotEmpty(json.getString("barcode2"))) {
param.put("device_code", json.getString("device_code2"));
param.put("device_code", device_code1);
param.put("barcode", json.getString("barcode2"));
iStIvtIostorinvHrBcpInService.fullIn(param);
}

View File

@@ -227,6 +227,10 @@ public class StIvtIostorinvHrBcp implements Serializable {
* 入库点
*/
private String point_code;
/**
* 所属工序
*/
private String workprocedure_id;
}

View File

@@ -0,0 +1,25 @@
package org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.common.domain.query.QParam;
import org.nl.common.enums.QueryTEnum;
import org.nl.wms.storage_manage.semimanage.service.iostorInv.dao.StIvtIostorinvBcp;
import org.nl.wms.storage_manage.semimanagehr.service.iostorInv.dao.StIvtIostorinvOrder;
/*
* @author LXY
* @Date 2023/08/01 19:49
*/
@Data
public class HrBcpIostorOrderQuery extends BaseQuery<StIvtIostorinvOrder> {
/**
* 载具码
*/
private String bar_code;
/**
* 出入库类型
*/
private String type;
}

View File

@@ -76,7 +76,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
// 1.找一个空货位
StIvtSectattr sect = sectattrService.getOne(
new QueryWrapper<StIvtSectattr>().lambda()
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
);
JSONObject jo = new JSONObject();
@@ -173,7 +173,7 @@ public class StIvtIostorinvEmpBcpServiceImpl implements IStIvtIostorinvEmpBcpSe
// 1.找一个空载具的货位
StIvtSectattr sect = sectattrService.getOne(
new QueryWrapper<StIvtSectattr>().lambda()
.eq(StIvtSectattr::getSect_name, "海柔半成品库区")
.eq(StIvtSectattr::getSect_name, "三线半成品库区")
);
JSONObject jo = new JSONObject();

View File

@@ -174,6 +174,7 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
mst.setBase_bill_code(row.getString("base_bill_code"));
mst.setQty_unit_name(row.getString("base_unit_name"));
mst.setUnit_weight(row.getBigDecimal("unit_weight"));
mst.setWorkprocedure_id(row.getString("workprocedure_id"));
// 载具信息
{
MdPbStoragevehicleinfo vehicleDao = iMdPbStoragevehicleinfoService.getOne(
@@ -275,6 +276,7 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
.canuse_qty(mst.getPlan_qty())
.workshop_id(mst.getWorkshop_id())
.unit_weight(mst.getUnit_weight())
.workprocedure_id(mst.getWorkprocedure_id())
.build();
structivtBcpService.save(ivtDao);
@@ -310,6 +312,10 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode())
.eq(SchBaseTask::getTask_id, mst.getTask_id())
);
//删除入库顺序表
iStIvtIostorinvOrderService.update(new UpdateWrapper<StIvtIostorinvOrder>()
.set("is_delete",true)
.eq("bar_code",mst.getStoragevehicle_code()));
return null;
}
@@ -450,8 +456,8 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
// 1.从出入顺序表中找到对应数据: 根据来源设备和条码找到最近的一条
StIvtIostorinvOrder orderDao = iStIvtIostorinvOrderService.getOne(
new QueryWrapper<StIvtIostorinvOrder>().lambda()
.eq(StIvtIostorinvOrder::getIn_device, device_code)
.eq(StIvtIostorinvOrder::getBar_code, barcode)
.eq(StIvtIostorinvOrder::getIs_delete, false)
.eq(StIvtIostorinvOrder::getType, IOSEnum.IO_TYPE.code("入库"))
.orderByDesc(StIvtIostorinvOrder::getCreate_time)
, false
@@ -467,12 +473,14 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
jsonMst.put("product_code", "A3" );
jsonMst.put("point_code", device_code );
jsonMst.put("stor_id", IOSEnum.STOR_CODE.code("海柔半成品"));
jsonMst.put("workprocedure_id", IOSEnum.STOR_CODE.code("海柔半成品"));
jsonMst.put("auto_send", "1"); // 是否自动创建任务并下发
JSONArray tableData = new JSONArray();
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("material_id", orderDao.getMaterial_id());
jsonDtl.put("workprocedure_id", orderDao.getWorkprocedure_id());
jsonDtl.put("pcsn", "");
jsonDtl.put("plan_qty", orderDao.getQty());
jsonDtl.put("quality_scode", IVTEnum.QUALITY_SCODE.code("合格品"));
@@ -502,11 +510,13 @@ public class StIvtIostorinvHrBcpInServiceImpl extends ServiceImpl<StIvtIostorinv
);
// 解锁仓位
structattrService.update(
new UpdateWrapper<StIvtStructattr>().lambda()
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
);
if (mstDao !=null){
structattrService.update(
new UpdateWrapper<StIvtStructattr>().lambda()
.set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
.eq(StIvtStructattr::getStruct_id, mstDao.getStruct_id())
);
}
// 删除任务
iSchBaseTaskService.update(

View File

@@ -468,6 +468,8 @@ public class StIvtIostorinvHrBcpOutServiceImpl extends ServiceImpl<StIvtIostorin
.task_group_id(IdUtil.getStringId())
.point_code3(mst.getPoint_code())
.point_code1(mst.getStruct_code())
.extParam(MapOf.of("material_id",mst.getMaterial_id(),
"material_qty",mst.getPlan_qty(),"table_fk_id",mst.getIostorinv_id()))
.vehicle_code(mst.getStoragevehicle_code())
.product_area(mst.getWorkshop_id())
.callback((Consumer<String>) mst::setTask_id)

View File

@@ -81,7 +81,7 @@ public class StIvtMoveinvHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvHrBcpM
// 新增
mst.setMoveinv_id(IdUtil.getStringId());
mst.setBill_code(CodeUtil.getNewCode("BCP_MOVE_CODE"));
mst.setBill_code(CodeUtil.getNewCode("MOVE_CODE"));
mst.setBuss_type(form.getString("buss_type"));
mst.setBill_type(form.getString("buss_type"));
mst.setStor_id(form.getString("stor_id"));

View File

@@ -76,7 +76,7 @@ public class StIvtMoveinvdtlHrBcpServiceImpl extends ServiceImpl<StIvtMoveinvdtl
StIvtMoveinvdtlHrBcp moveinvdtlCp = list.get(0);
PointEvent event = PointEvent.builder()
.type(AcsTaskEnum.TASK_STRUCT_BCP_HR_MOVE)
.acs_task_type(AcsTaskEnum.ACS_TASK_TYPE_NON_WEIGHING_TASK_OF_PS20.getCode())
.acs_task_type("19")
.task_group_id(IdUtil.getStringId())
.point_code1(form.getString("turnout_struct_code"))
.point_code3(form.getString("turnin_struct_code"))

View File

@@ -101,5 +101,9 @@ public class StIvtStructivtHrBcp implements Serializable {
*/
private BigDecimal unit_weight;
/**
* 车间标识
*/
private String workprocedure_id;
}

View File

@@ -43,13 +43,16 @@
AND
sa.lock_type = '0'
<if test="query.material_search != null and query.material_search != ''">
and (mb.material_code = #{query.material_search} OR
and (mb.material_code = #{query.material_search} ORs
mb.material_name = #{query.material_search} OR
mb.material_spec = #{query.material_search})
</if>
<if test="query.sect_id != null and query.sect_id != ''">
and sa.sect_id = #{query.sect_id}
</if>
<if test="query.sect_code != null and query.sect_code != ''">
and sa.sect_code = #{query.sect_code}
</if>
<if test="query.struct_search != null and query.struct_search != ''">
and (sa.struct_code = #{query.struct_search} OR sa.struct_name = #{query.struct_search})
</if>
@@ -164,11 +167,13 @@
attr.sect_code,
attr.sect_name,
attr.stor_name,
attr.storagevehicle_code
attr.storagevehicle_code,
wp.workprocedure_name
FROM
st_ivt_structivt_hr_bcp ivt
LEFT JOIN md_me_materialbase mater ON ivt.material_id = mater.material_id
LEFT JOIN st_ivt_structattr attr ON attr.struct_id = ivt.struct_id
LEFT JOIN pdm_bi_workprocedure wp ON wp.workprocedure_id = ivt.workprocedure_id
LEFT JOIN md_pb_measureunit unit ON unit.measure_unit_id = ivt.qty_unit_id
<where>
attr.lock_type = '0'

View File

@@ -16,6 +16,8 @@ public class StructIvtHrBcpQuery extends BaseQuery<StIvtStructivtBcp> {
private String sect_id;
private String sect_code;
private String struct_search;
private String material_search;

View File

@@ -51,6 +51,7 @@ public class StIvtStructivtHrBcpServiceImpl extends ServiceImpl<StIvtStructivtHr
@Override
public Object getBcpIvt(StructIvtHrBcpQuery query, PageQuery pageQuery) {
com.github.pagehelper.Page<Object> page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize());
query.setSect_code("HKQ001");
List<Map> mst_detail = this.baseMapper.getBcpIvt(query, pageQuery);
TableDataInfo<Map> build = TableDataInfo.build(mst_detail);
build.setTotalElements(page.getTotal());

View File

@@ -112,15 +112,39 @@
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="CONSOLE"/>
</root>
<logger name="jdbc" level="off"/>
<logger name="c.b.m.core" level="off"/>
<logger name="jdbc.resultset" level="off"/>
<logger name="org.springframework" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.hibernate" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.quartz" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="com.google" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.redisson" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.nl.modules.wql" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework.data" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
</springProfile>
<springProfile name="prod">
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="asyncLuceneAppender"/>
</root>
<logger name="jdbc" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="jdbc" level="off"/>
<logger name="c.b.m.core" level="off"/>
<logger name="jdbc.resultset" level="off"/>
<logger name="org.springframework" level="ERROR" additivity="true">
<appender-ref ref="asyncFileAppender"/>
</logger>

View File

@@ -151,6 +151,19 @@
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码"/>
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称"/>
<el-table-column show-overflow-tooltip prop="workprocedure_id" label="所属工序">
<template slot-scope="scope">
<el-select v-model="form.tableData[scope.$index].workprocedure_id"
class="filter-item" placeholder="所属工序" size="small" style="width: 280px">
<el-option
v-for="item in workprocedureList"
:key="item.workprocedure_id"
:label="item.workprocedure_name"
:value="item.workprocedure_id"
/>
</el-select>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格"/>
<el-table-column show-overflow-tooltip prop="plan_qty" label="数量()">
<template slot-scope="scope">
@@ -217,6 +230,7 @@ import crudsemiproductIn from '@/views/wms/storage_manage/semiproducthr/semiprod
import MaterDtl from '@/views/wms/pub/MaterDialog'
import crudStorattr from '@/views/wms/storage_manage/basedata/basedata'
import crudPoint from '@/views/wms/scheduler_manage/point/point'
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
const defaultForm = {
bill_code: '',
@@ -257,6 +271,7 @@ export default {
materType: '01',
storlist: [],
pointList: [],
workprocedureList: [],
billtypelist: [],
rules: {
product_code: [
@@ -283,6 +298,9 @@ export default {
crudStorattr.getStor({'stor_type': '5'}).then(res => {
this.storlist = res.content
})
crudWorkProcedure.downSelect({ product_area: 'A3' }).then(res => {
this.workprocedureList = res
})
const area_type = 'A3_BCPRK01'
crudPoint.getPoint({ 'area_type': area_type }).then(res => {
this.pointList = res

View File

@@ -105,6 +105,11 @@
<el-table-column min-width="120" show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
<el-table-column min-width="120" show-overflow-tooltip prop="workprocedure_id" label="所属工序">
<template slot-scope="scope">
{{ getprocedurename(scope.row) }}
</template>
</el-table-column>
<el-table-column prop="pcsn" label="批次" width="150" align="center" />
<el-table-column prop="plan_qty" :formatter="crud.formatNum3" label="数量(个)" align="center" />
<el-table-column prop="qty_unit_name" label="单位" align="center" />
@@ -124,6 +129,8 @@
import { crud } from '@crud/crud'
import crudsemiproductIn from '@/views/wms/storage_manage/semiproducthr/semiproducthrIn/semiproducthrIn'
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
export default {
name: 'ViewDialog',
@@ -145,6 +152,7 @@ export default {
tableDtl: [],
tabledis: [],
billtypelist: [],
workprocedureList: {},
storlist: [],
currentdtl: null,
currentDis: {},
@@ -164,7 +172,17 @@ export default {
}
},
methods: {
getprocedurename(row) {
return this.workprocedureList.get(row.workprocedure_id)
},
open() {
crudWorkProcedure.downSelect({ product_area: 'A3' }).then(res => {
var procedures = new Map();
res.forEach(item => {
procedures.set(item.workprocedure_id,item.workprocedure_name)
})
this.workprocedureList = procedures
})
this.queryTableDtl()
},
close() {

View File

@@ -91,6 +91,11 @@
<el-table-column show-overflow-tooltip min-width="120" prop="material_code" label="物料编码" />
<el-table-column show-overflow-tooltip min-width="120" prop="material_name" label="物料名称" />
<el-table-column show-overflow-tooltip min-width="120" prop="material_spec" label="物料规格" />
<el-table-column show-overflow-tooltip min-width="120" prop="workprocedure_id" label="所属工序" >
<template slot-scope="scope">
{{ getprocedurename(scope.row) }}
</template>
</el-table-column>
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" />
<el-table-column show-overflow-tooltip prop="canuse_qty" label="可用数量(个)" :formatter="crud.formatNum3" />
<!-- <el-table-column show-overflow-tooltip prop="unit_name" label="单位" />-->
@@ -111,6 +116,8 @@ import pagination from '@crud/Pagination'
import DateRangePicker from '@/components/DateRangePicker/index'
import crudStorattr, { getStor } from '@/views/wms/storage_manage/basedata/basedata'
import semiproductivt from '@/views/wms/storage_manage/semiproducthr/semiproducthrIvt/semiproducthrivt'
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
export default {
name: 'ProductIn',
@@ -130,6 +137,7 @@ export default {
return {
height: document.documentElement.clientHeight - 180 + 'px;',
permission: {},
workprocedureList: {},
storlist: [],
storId: null
}
@@ -141,11 +149,21 @@ export default {
}
},
created() {
crudWorkProcedure.downSelect({ product_area: 'A3' }).then(res => {
var procedures = new Map();
res.forEach(item => {
procedures.set(item.workprocedure_id,item.workprocedure_name)
})
this.workprocedureList = procedures
})
crudStorattr.getStor({ 'stor_type': '5' }).then(res => {
this.storlist = res.content
})
},
methods: {
getprocedurename(row){
return this.workprocedureList.get(row.workprocedure_id)
},
downloadMethod() {
semiproductivt.exportFile(this.query).then(res => {
this.crud.notify('导出成功', CRUD.NOTIFICATION_TYPE.SUCCESS)