Compare commits
10 Commits
master_mer
...
0bb5cd491b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0bb5cd491b | ||
|
|
f0a63c294d | ||
|
|
1da00bd491 | ||
|
|
dce69fbcea | ||
|
|
a0424d6d1f | ||
|
|
0a04888129 | ||
|
|
6ce909fb21 | ||
|
|
7b3cff7acd | ||
|
|
b733f3713c | ||
|
|
f97b2edcb5 |
@@ -32,6 +32,7 @@ import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.modules.wql.util.SpringContextHolder;
|
||||
import org.nl.system.service.param.ISysParamService;
|
||||
import org.nl.system.service.param.dao.Param;
|
||||
import org.nl.system.service.param.impl.SysParamServiceImpl;
|
||||
import org.nl.wms.basedata.st.service.StructattrService;
|
||||
@@ -97,6 +98,9 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
@Autowired
|
||||
private StructattrService structattrService;
|
||||
|
||||
@Autowired
|
||||
private ISysParamService iSysParamService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONObject vehicleIn(JSONObject whereJson) {
|
||||
@@ -293,6 +297,19 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
.eq(BstIvtBoxinfo::getBox_no, boxNo)
|
||||
);
|
||||
if (boxDao != null) {
|
||||
//校验长宽高是否符合
|
||||
String box_limit_width = iSysParamService.findByCode("box_limit_width").getValue();
|
||||
String box_limit_length = iSysParamService.findByCode("box_limit_length").getValue();
|
||||
String box_limit_height = iSysParamService.findByCode("box_limit_height").getValue();
|
||||
if (Integer.parseInt(box_limit_width) < Integer.parseInt(boxDao.getBox_width())) {
|
||||
throw new BadRequestException("当前木箱宽度大于【"+box_limit_width+"】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_length) < Integer.parseInt(boxDao.getBox_length())) {
|
||||
throw new BadRequestException("当前木箱长度大于【"+box_limit_width+"】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_height) < Integer.parseInt(boxDao.getBox_high())) {
|
||||
throw new BadRequestException("当前木箱高度大于【"+box_limit_width+"】,不允许入库!");
|
||||
}
|
||||
whereJson.put("vehicleType", boxDao.getVehicle_type());
|
||||
boxDao.setIs_packing("1");
|
||||
iBstIvtBoxinfoService.updateById(boxDao);
|
||||
@@ -309,6 +326,19 @@ public class VehicleTwoServiceImpl implements VehicleTwoService {
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, boxNo)
|
||||
);
|
||||
//校验长宽高是否符合
|
||||
String box_limit_width = iSysParamService.findByCode("box_limit_width").getValue();
|
||||
String box_limit_length = iSysParamService.findByCode("box_limit_length").getValue();
|
||||
String box_limit_height = iSysParamService.findByCode("box_limit_height").getValue();
|
||||
if (Integer.parseInt(box_limit_width) < Integer.parseInt(boxDao1.getBox_width())) {
|
||||
throw new BadRequestException("当前木箱宽度大于【"+box_limit_width+"】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_length) < Integer.parseInt(boxDao1.getBox_length())) {
|
||||
throw new BadRequestException("当前木箱长度大于【"+box_limit_width+"】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_height) < Integer.parseInt(boxDao1.getBox_high())) {
|
||||
throw new BadRequestException("当前木箱高度大于【"+box_limit_width+"】,不允许入库!");
|
||||
}
|
||||
boxDao1.setIs_packing("1");
|
||||
iBstIvtBoxinfoService.updateById(boxDao1);
|
||||
whereJson.put("vehicleType", boxDao1.getVehicle_type());
|
||||
|
||||
@@ -152,6 +152,9 @@ public class ZxDjwTask extends AbstractAcsTask {
|
||||
//7.改变子卷包装状态为已装箱:1
|
||||
PdmBiSubpackagerelation pdmBiSubpackagerelation = subpackageRelationService
|
||||
.getOne(new LambdaUpdateWrapper<PdmBiSubpackagerelation>().eq(PdmBiSubpackagerelation::getContainer_name, schBaseTask.getVehicle_code()), false);
|
||||
if (!pdmBiSubpackagerelation.getStatus().equals(IOSEnum.IS_NOTANDYES.code("否"))){
|
||||
throw new BadRequestException("该子卷对应状态为["+pdmBiSubpackagerelation.getStatus()+"],不为生成状态!)");
|
||||
}
|
||||
pdmBiSubpackagerelation.setStatus(IOSEnum.IS_NOTANDYES.code("是"));
|
||||
subpackageRelationService.updateById(pdmBiSubpackagerelation);
|
||||
}
|
||||
|
||||
@@ -112,7 +112,7 @@ public class AutoIssueOutEmptyTask {
|
||||
sortedArr.addAll(taskList);
|
||||
|
||||
for (int i = 0; i < sortedArr.size(); i++) {
|
||||
if (num >= 2) {
|
||||
if (num >= empty_num) {
|
||||
break;
|
||||
}
|
||||
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
|
||||
|
||||
@@ -1532,7 +1532,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
jsonTaskParam.put("remark", "异常转库任务,触发转库单据【"+iostorinv_id+"】");
|
||||
jsonTaskParam.put("table_fk", iostorinv_id);
|
||||
|
||||
TwoOutExceptionalTask taskBean = new TwoOutExceptionalTask();
|
||||
TwoOutExceptionalTask taskBean = SpringContextHolder.getBean(TwoOutExceptionalTask.class);
|
||||
String task_id = taskBean.createTask(jsonTaskParam);
|
||||
taskBean.immediateNotifyAcs(task_id);
|
||||
|
||||
|
||||
@@ -127,10 +127,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
.eq("is_delete", "0")
|
||||
.orderByDesc("task_id")
|
||||
.last("limit 1"));
|
||||
if (one != null) {
|
||||
String vehicleCode2 = one.getVehicle_code2();
|
||||
if (one!=null){
|
||||
if (whereJson.getString("vehicle_code").equals(vehicleCode2)){
|
||||
throw new BadRequestException("当前托盘"+whereJson.getString("vehicle_code")+"已经存在木箱入库任务"+one.getTask_code());
|
||||
if (whereJson.getString("vehicle_code").equals(vehicleCode2)) {
|
||||
throw new BadRequestException("当前托盘" + whereJson.getString("vehicle_code") + "已经存在木箱入库任务" + one.getTask_code());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,14 +138,14 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
JSONObject vehicle_ext = WQLObject.getWQLObject("md_pb_storagevehicleext").query("storagevehicle_code = '" + whereJson.getString("vehicle_code") + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(vehicle_ext)) {
|
||||
throw new BadRequestException("未查询到托盘的扩展信息");
|
||||
}else {
|
||||
} else {
|
||||
//判断托盘重量是否为空或小于等于0
|
||||
String qty = vehicle_ext.getString("qty");
|
||||
if (StrUtil.isEmpty(qty) || Double.parseDouble(qty) <= 0){
|
||||
throw new BadRequestException("托盘【"+whereJson.getString("vehicle_code")+"】在系统的重量有误,请在载具维护页面中维护托盘实际重量!");
|
||||
if (StrUtil.isEmpty(qty) || Double.parseDouble(qty) <= 0) {
|
||||
throw new BadRequestException("托盘【" + whereJson.getString("vehicle_code") + "】在系统的重量有误,请在载具维护页面中维护托盘实际重量!");
|
||||
}
|
||||
String pcsn = vehicle_ext.getString("pcsn");
|
||||
if (ObjectUtil.isNotEmpty(pcsn)){
|
||||
if (ObjectUtil.isNotEmpty(pcsn)) {
|
||||
//更新子卷入库备注信息
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
//创建异常任务去异常入库口
|
||||
@@ -154,7 +154,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
//异常位
|
||||
jsonTaskParam.put("point_code2", "RK1003");
|
||||
jsonTaskParam.put("vehicle_code", boxNo);
|
||||
jsonTaskParam.put("remark", "当前托盘【"+whereJson.getString("vehicle_code")+"】已经绑定木箱【"+pcsn+"】,无法重复绑定!");
|
||||
jsonTaskParam.put("remark", "当前托盘【" + whereJson.getString("vehicle_code") + "】已经绑定木箱【" + pcsn + "】,无法重复绑定!");
|
||||
jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code"));
|
||||
JSONObject request_param = new JSONObject();
|
||||
if (whereJson.getString("vehicle_code").startsWith("A")) {
|
||||
@@ -174,6 +174,38 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
}
|
||||
}
|
||||
|
||||
//查询木箱重量
|
||||
BstIvtBoxinfo boxinfo = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, boxNo));
|
||||
|
||||
if (ObjectUtil.isEmpty(boxinfo.getBox_weight()) || Double.parseDouble(boxinfo.getBox_weight()) == 0) {
|
||||
//更新子卷入库备注信息
|
||||
JSONObject jsonTaskParam = new JSONObject();
|
||||
//创建异常任务去异常入库口
|
||||
//入库口
|
||||
jsonTaskParam.put("point_code1", whereJson.getString("device_code"));
|
||||
//异常位
|
||||
jsonTaskParam.put("point_code2", "RK1003");
|
||||
jsonTaskParam.put("vehicle_code", boxNo);
|
||||
jsonTaskParam.put("remark", "当前木箱重量为0,不能进行入库!");
|
||||
jsonTaskParam.put("vehicle_code2", whereJson.getString("vehicle_code"));
|
||||
JSONObject request_param = new JSONObject();
|
||||
if (whereJson.getString("vehicle_code").startsWith("A")) {
|
||||
request_param.put("containerType", "2");
|
||||
} else if (whereJson.getString("vehicle_code").startsWith("B")) {
|
||||
request_param.put("containerType", "1");
|
||||
} else {
|
||||
throw new BadRequestException("托盘号有误,无法找到对应的托盘类型!");
|
||||
}
|
||||
|
||||
jsonTaskParam.put("request_param", request_param);
|
||||
TwoExceptionInTask bean = SpringContextHolder.getBean(TwoExceptionInTask.class);
|
||||
bean.createTask(jsonTaskParam);
|
||||
bean.immediateNotifyAcs(null);
|
||||
return;
|
||||
}
|
||||
|
||||
//查询仓库是否存在相同木箱
|
||||
JSONArray stIvtStructattr = WQLObject.getWQLObject("st_ivt_structattr").query("storagevehicle_code = '" + boxNo + "'").getResultJSONArray(0);
|
||||
if (stIvtStructattr != null && stIvtStructattr.size() > 0) {
|
||||
@@ -228,7 +260,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("containerType", boxDao.getVehicle_type());
|
||||
jsonTaskParam.put("request_param", param.toString());
|
||||
TwoInBoxTask taskBean = new TwoInBoxTask();
|
||||
TwoInBoxTask taskBean = SpringContextHolder.getBean(TwoInBoxTask.class);
|
||||
taskBean.createTask(jsonTaskParam);
|
||||
taskBean.immediateNotifyAcs(null);
|
||||
// 锁定终点
|
||||
@@ -294,9 +326,10 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
BstIvtBoxinfo boxinfo = iBstIvtBoxinfoService.getOne(
|
||||
new QueryWrapper<BstIvtBoxinfo>().lambda()
|
||||
.eq(BstIvtBoxinfo::getBox_no, boxNo));
|
||||
if (ObjectUtil.isEmpty(boxinfo.getBox_weight()) || Double.parseDouble(boxinfo.getBox_weight()) == 0) {
|
||||
//2026.3.27木箱重量改为称重模块获取,在空木箱入库口进行校验
|
||||
/*if (ObjectUtil.isEmpty(boxinfo.getBox_weight()) || Double.parseDouble(boxinfo.getBox_weight()) == 0) {
|
||||
throw new BadRequestException("请先维护木箱重量后进行入库!");
|
||||
}
|
||||
}*/
|
||||
if (StrUtil.isEmpty(boxType)) {
|
||||
boxType = boxinfo.getMaterial_code();
|
||||
} else {
|
||||
@@ -315,6 +348,21 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
throw new BadRequestException("木箱不存在!");
|
||||
}
|
||||
|
||||
//校验长宽高是否符合
|
||||
String box_limit_width = iSysParamService.findByCode("box_limit_width").getValue();
|
||||
String box_limit_length = iSysParamService.findByCode("box_limit_length").getValue();
|
||||
String box_limit_height = iSysParamService.findByCode("box_limit_height").getValue();
|
||||
if (Integer.parseInt(box_limit_width) < Integer.parseInt(boxDao.getBox_width())) {
|
||||
throw new BadRequestException("当前木箱宽度大于【" + box_limit_width + "】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_length) < Integer.parseInt(boxDao.getBox_length())) {
|
||||
throw new BadRequestException("当前木箱长度大于【" + box_limit_width + "】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_height) < Integer.parseInt(boxDao.getBox_high())) {
|
||||
throw new BadRequestException("当前木箱高度大于【" + box_limit_width + "】,不允许入库!");
|
||||
}
|
||||
|
||||
|
||||
//查询当前入库拆叠盘位的托盘类型是否一致如果一致
|
||||
String vehicle_type = boxDao.getVehicle_type();
|
||||
|
||||
@@ -426,7 +474,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
param.put("height", boxDao.getBox_high());
|
||||
param.put("containerType", boxDao.getVehicle_type());
|
||||
|
||||
param.put("barcode", whereJson.getString("box_no") + "-9" );
|
||||
param.put("barcode", whereJson.getString("box_no") + "-9");
|
||||
//根据木箱高度,判断入库仓位的高度
|
||||
String height = "";
|
||||
String heightLevel1 = iSysParamService.findByCode("height_level_1").getValue();
|
||||
@@ -483,8 +531,8 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
.ge(SchBaseTask::getCreate_time, queryDate)
|
||||
.le(SchBaseTask::getCreate_time, DateUtil.now())
|
||||
);
|
||||
if (hasCount>0) {
|
||||
throw new BadRequestException("当前木箱【"+whereJson.getString("box_no")+"】在1个小时之内生成过行架任务!");
|
||||
if (hasCount > 0) {
|
||||
throw new BadRequestException("当前木箱【" + whereJson.getString("box_no") + "】在1个小时之内生成过行架任务!");
|
||||
}
|
||||
|
||||
// 根据木箱号查询是否有托盘绑定关系,如果有则解绑
|
||||
@@ -533,6 +581,21 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
if (boxDao == null) {
|
||||
throw new BadRequestException("木箱不存在!");
|
||||
}
|
||||
|
||||
//校验长宽高是否符合
|
||||
String box_limit_width = iSysParamService.findByCode("box_limit_width").getValue();
|
||||
String box_limit_length = iSysParamService.findByCode("box_limit_length").getValue();
|
||||
String box_limit_height = iSysParamService.findByCode("box_limit_height").getValue();
|
||||
if (Integer.parseInt(box_limit_width) < Integer.parseInt(boxDao.getBox_width())) {
|
||||
throw new BadRequestException("当前木箱宽度大于【" + box_limit_width + "】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_length) < Integer.parseInt(boxDao.getBox_length())) {
|
||||
throw new BadRequestException("当前木箱长度大于【" + box_limit_width + "】,不允许入库!");
|
||||
}
|
||||
if (Integer.parseInt(box_limit_height) < Integer.parseInt(boxDao.getBox_high())) {
|
||||
throw new BadRequestException("当前木箱高度大于【" + box_limit_width + "】,不允许入库!");
|
||||
}
|
||||
|
||||
boxDao.setIs_packing("1");
|
||||
iBstIvtBoxinfoService.updateById(boxDao);
|
||||
|
||||
@@ -796,7 +859,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
// 如果是移库空并且仓位为空则报错
|
||||
if (ObjectUtil.isNotEmpty(block_num) && ObjectUtil.isEmpty(jsonAttr)) {
|
||||
throw new BadRequestException("转库任务巷道"+block_num+"仓位不足!");
|
||||
throw new BadRequestException("转库任务巷道" + block_num + "仓位不足!");
|
||||
}
|
||||
|
||||
// 为空则新找巷道
|
||||
@@ -849,6 +912,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
/**
|
||||
* 同巷道移库查看库位
|
||||
*
|
||||
* @param jsonParam
|
||||
* @return
|
||||
*/
|
||||
@@ -860,7 +924,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
* 判断条件:库区、仓库、是否启用、是否删除、未锁定、没有载具
|
||||
*/
|
||||
String block_num = jsonParam.getString("move_block_num");
|
||||
if (StringUtils.isEmpty(block_num)){
|
||||
if (StringUtils.isEmpty(block_num)) {
|
||||
throw new BadRequestException("同巷道分配库位巷道参数不能为空");
|
||||
}
|
||||
JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
|
||||
@@ -884,7 +948,7 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
||||
|
||||
// 为空则新找巷道
|
||||
if (ObjectUtil.isEmpty(jsonAttr)) {
|
||||
throw new BadRequestException("当前巷道"+block_num+"没有可用库位");
|
||||
throw new BadRequestException("当前巷道" + block_num + "没有可用库位");
|
||||
}
|
||||
|
||||
notInRowList.clear();
|
||||
|
||||
@@ -49,7 +49,7 @@ public class TransportationbaseServiceImpl implements TransportationbaseService
|
||||
if (ObjectUtil.isNotEmpty(cust_name)) {
|
||||
map.put("cust_name", "%" + cust_name + "%");
|
||||
}
|
||||
JSONObject json = WQL.getWO("QMD_CS_TRANSPORAIONL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "update_time ASC");
|
||||
JSONObject json = WQL.getWO("QMD_CS_TRANSPORAIONL").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "create_time DESC ,update_time ASC");
|
||||
return json;
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -244,4 +244,11 @@ public class AcsToWmsController {
|
||||
public ResponseEntity<Object> forceMove(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(acsToWmsService.forceMove(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/feedBackBoxWeight")
|
||||
@Log(value = "二期木箱桁架反馈木箱重量", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS)
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> feedBackBoxWeight(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(acsToWmsService.feedBackBoxWeight(param), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,4 +246,11 @@ public interface AcsToWmsService {
|
||||
* @return
|
||||
*/
|
||||
JSONObject acsRequestPoint(JSONObject param);
|
||||
|
||||
/**
|
||||
* 二期木箱桁架反馈木箱重量
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
JSONObject feedBackBoxWeight(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -76,6 +76,10 @@ public interface WmsToAcsService {
|
||||
*/
|
||||
JSONObject updateTask(JSONArray arr);
|
||||
|
||||
JSONObject changePointMove(JSONObject jo);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 更新任务状态
|
||||
*
|
||||
|
||||
@@ -3,6 +3,7 @@ package org.nl.wms.ext.acs.service.impl;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.nl.b_lms.sch.point.dao.mapper.BstIvtPackageinfoivtMapper;
|
||||
import org.nl.b_lms.storage_manage.database.service.dao.mapper.BstIvtBoxinfoMapper;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
@@ -208,6 +209,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private RedisUtils redisUtils;
|
||||
|
||||
@Resource
|
||||
private BstIvtBoxinfoMapper bstIvtBoxinfoMapper;
|
||||
|
||||
/**
|
||||
* task_id:任务标识
|
||||
* task_code:任务编码
|
||||
@@ -3298,4 +3302,30 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
}
|
||||
return stepTipLogs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject feedBackBoxWeight(JSONObject param) {
|
||||
log.info("feedBackBoxWeight输入参数为--------------------------:" + param.toString());
|
||||
String barcode = param.getString("barcode");
|
||||
String task_code = param.getString("task_code");
|
||||
String weight = param.getString("weight");
|
||||
|
||||
BstIvtBoxinfo boxinfo = bstIvtBoxinfoMapper.selectOne(new LambdaQueryWrapper<BstIvtBoxinfo>().eq(BstIvtBoxinfo::getBox_no, barcode));
|
||||
if (boxinfo == null) {
|
||||
throw new BadRequestException("未查询到该木箱对应的木箱信息");
|
||||
}
|
||||
|
||||
if(ObjectUtil.isEmpty(boxinfo.getBox_weight()) || Double.parseDouble(boxinfo.getBox_weight()) == 0){
|
||||
boxinfo.setBox_weight(weight);
|
||||
}else {
|
||||
log.info("当前木箱已有重量【"+boxinfo.getBox_weight()+"】,上传重量为【"+weight+"】");
|
||||
}
|
||||
bstIvtBoxinfoMapper.updateById(boxinfo);
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
log.info("feedBackBoxWeight输出参数为--------------------------:" + result.toString());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,6 +76,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
||||
return AcsUtil.notifyAcs(api, whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject changePointMove(JSONObject jo) {
|
||||
String api = "/api/wms/setDeviceMove";
|
||||
return AcsUtil.notifyAcsObject(api, jo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject action(JSONArray whereJson) {
|
||||
String api = "api/wms/action";
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package org.nl.wms.ext.mdm.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Eric.Yang
|
||||
* @Version V1.1
|
||||
* @Date 2025/5/29
|
||||
* @Description 处理状态统一返回消息类
|
||||
*/
|
||||
@Data
|
||||
public class CommonResponseDto {
|
||||
//状态
|
||||
private String status;
|
||||
//描述
|
||||
private String message;
|
||||
//处理结果集合
|
||||
private List<ResponseItemsData> responseData;
|
||||
|
||||
/**
|
||||
统一返回消息类 构造
|
||||
*/
|
||||
public static CommonResponseDto adapter(String status,String message,List<ResponseItemsData> responseData) {
|
||||
CommonResponseDto commonResponseDto = new CommonResponseDto();
|
||||
commonResponseDto.setStatus(status);
|
||||
commonResponseDto.setMessage(message);
|
||||
commonResponseDto.setResponseData(responseData);
|
||||
return commonResponseDto;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package org.nl.wms.ext.mdm.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ResponseItemsData {
|
||||
//主数据唯一主键
|
||||
private Long mdId;
|
||||
//主数据编码
|
||||
private String mdCode;
|
||||
//主数据描述
|
||||
private String mdDescription;
|
||||
//处理状态
|
||||
private String status;
|
||||
//处理状态描述
|
||||
private String message;
|
||||
|
||||
/**
|
||||
统一构造方法
|
||||
*/
|
||||
public static ResponseItemsData adapter(Long mdId,String mdCode,String mdDescription,String status,String message){
|
||||
ResponseItemsData responseItemsData = new ResponseItemsData();
|
||||
responseItemsData.setMdId(mdId);
|
||||
responseItemsData.setMdCode(mdCode);
|
||||
responseItemsData.setMdDescription(mdDescription);
|
||||
responseItemsData.setStatus(status);
|
||||
responseItemsData.setMessage(message);
|
||||
return responseItemsData;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package org.nl.wms.ext.mdm.entity;
|
||||
|
||||
|
||||
/**
|
||||
* @Author Eric.Yang
|
||||
* @Version V1.1
|
||||
* @Date 2025/6/10
|
||||
* @Description 接口状态统一码
|
||||
*/
|
||||
public enum StatusEnum {
|
||||
ACCEPT_SUCCESS("S", "分发成功"),
|
||||
ACCEPT_FAIL("E", "分发失败");
|
||||
|
||||
private String code;
|
||||
private String message;
|
||||
StatusEnum(String code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package org.nl.wms.ext.mdm.rest;
|
||||
|
||||
|
||||
import cn.dev33.satoken.annotation.SaIgnore;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.logging.annotation.Log;
|
||||
import org.nl.wms.ext.mdm.entity.CommonResponseDto;
|
||||
import org.nl.wms.ext.mdm.service.MdmToLmsService;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Eric.Yang
|
||||
* @version V1.1
|
||||
* @Date 2025/5/29
|
||||
* @Description MDM主数据平台与LMS接口
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/mdm")
|
||||
@Slf4j
|
||||
@SaIgnore
|
||||
public class MdmToLmsController {
|
||||
|
||||
@Resource
|
||||
private MdmToLmsService mdmToLmsService;
|
||||
|
||||
@PostMapping("/transCustomerInfo")
|
||||
@Log("MDM给LMS推送客户信息")
|
||||
public CommonResponseDto transCustomerInfo(@RequestBody JSONObject jsonData){
|
||||
return mdmToLmsService.transCustomerInfo(jsonData);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/transSupplierInfo")
|
||||
@Log("MDM给LMS推送供应商信息")
|
||||
public CommonResponseDto transSupplierInfo(@RequestBody JSONObject jsonData){
|
||||
return mdmToLmsService.transSupplierInfo(jsonData);
|
||||
}
|
||||
|
||||
@PostMapping("/transMaterialInfo")
|
||||
@Log("MDM给LMS推送物料主数据信息")
|
||||
public CommonResponseDto transMaterialInfo(@RequestBody JSONObject jsonData){
|
||||
return mdmToLmsService.transMaterialInfo(jsonData);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.nl.wms.ext.mdm.service;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.ext.mdm.entity.CommonResponseDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MdmToLmsService {
|
||||
|
||||
/**
|
||||
* MDM客户接口
|
||||
*/
|
||||
CommonResponseDto transCustomerInfo(JSONObject jsonData);
|
||||
/**
|
||||
* MDM供应商接口
|
||||
*/
|
||||
CommonResponseDto transSupplierInfo(JSONObject jsonData);
|
||||
/**
|
||||
* MDM物料主数据接口
|
||||
*/
|
||||
CommonResponseDto transMaterialInfo(JSONObject jsonData);
|
||||
}
|
||||
@@ -0,0 +1,297 @@
|
||||
package org.nl.wms.ext.mdm.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.mdm.entity.CommonResponseDto;
|
||||
import org.nl.wms.ext.mdm.entity.ResponseItemsData;
|
||||
import org.nl.wms.ext.mdm.entity.StatusEnum;
|
||||
import org.nl.wms.ext.mdm.service.MdmToLmsService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author Eric.Yang
|
||||
* @Version V1.1
|
||||
* @Date 2025/5/29
|
||||
* @Description MDM数据对接接口业务实现类
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class MdmToLmsServiceImpl implements MdmToLmsService {
|
||||
|
||||
/**
|
||||
* @Description: MDM客户主数据接口
|
||||
* @Author Eric.Yang
|
||||
* @Date: 2025/6/3 9:12
|
||||
**/
|
||||
@Override
|
||||
public CommonResponseDto transCustomerInfo(JSONObject jsonData) {
|
||||
log.info("MDM客户主数据业务请求参数为:{}", jsonData);
|
||||
CommonResponseDto commonResponseDto = new CommonResponseDto();
|
||||
if(CollectionUtil.isEmpty(jsonData)){
|
||||
commonResponseDto.setStatus("E");
|
||||
commonResponseDto.setMessage("MDM传输数据为空!");
|
||||
return commonResponseDto;
|
||||
}
|
||||
List<ResponseItemsData> responseItemsData = Lists.newArrayList();
|
||||
JSONArray customers = jsonData.getJSONArray("customer");
|
||||
if(CollectionUtil.isNotEmpty(customers)){
|
||||
for (int i = 0; i < customers.size(); i++) {
|
||||
JSONObject json = customers.getJSONObject(i);
|
||||
//主编码主键
|
||||
long mdId = json.getLongValue("mdId");
|
||||
//客户编号
|
||||
String mdCode = json.getString("mdCode");
|
||||
//主数据描述
|
||||
String mdDescription = json.getString("mdDescription");
|
||||
try {
|
||||
//客户名称
|
||||
String customerName = json.getString("customerName");
|
||||
//核心字段判断
|
||||
if (StrUtil.isEmpty(mdCode) || StrUtil.isEmpty(customerName)) {
|
||||
throw new BadRequestException("MDM->客户编码或名称不能为空!");
|
||||
}
|
||||
//客户简称
|
||||
String abbreviation = json.getString("abbreviation");
|
||||
//客户状态 01合格 02冻结 03禁用 04黑名单
|
||||
String customerStatus = json.getString("customerStatus");
|
||||
JSONArray salesOrgs = json.getJSONArray("salesOrg");
|
||||
if (CollectionUtil.isEmpty(salesOrgs)) {
|
||||
throw new BadRequestException("MDM->客户数据核心字段数据为空,缺失字段:[salesOrgs]!");
|
||||
}
|
||||
JSONObject salesOrg = salesOrgs.getJSONObject(0);
|
||||
JSONArray salesList = salesOrg.getJSONArray("sales");
|
||||
if (CollectionUtil.isEmpty(salesList)) {
|
||||
throw new BadRequestException("MDM->客户数据核心字段数据为空,缺失字段:[sales]!");
|
||||
}
|
||||
JSONObject sales = salesList.getJSONObject(0);
|
||||
JSONArray parList = sales.getJSONArray("par");
|
||||
if (CollectionUtil.isEmpty(parList)) {
|
||||
throw new BadRequestException("MDM->客户数据核心字段数据为空,缺失字段:[par]!");
|
||||
}
|
||||
JSONObject par = parList.getJSONObject(0);
|
||||
//业务员工号
|
||||
String empSupplier = par.getString("empSupplier");
|
||||
//业务员名称
|
||||
String empSupplierDesc = par.getString("empSupplierDesc");
|
||||
String sales_owner = StrUtil.join("|",empSupplier,empSupplierDesc);
|
||||
//插入客户表
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String now = DateUtil.now();
|
||||
JSONObject customer_jo = WQLObject.getWQLObject("md_cs_customerbase").query("cust_code = '" + mdCode + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(customer_jo)) {
|
||||
customer_jo = new JSONObject();
|
||||
customer_jo.put("cust_id", mdId);
|
||||
customer_jo.put("cust_code", mdCode);
|
||||
customer_jo.put("cust_name", customerName);
|
||||
customer_jo.put("cust_simple_name", abbreviation);
|
||||
customer_jo.put("mdm_status", customerStatus);
|
||||
customer_jo.put("sales_owner", sales_owner);
|
||||
customer_jo.put("create_id", currentUserId);
|
||||
customer_jo.put("create_name", "mdm_user");
|
||||
customer_jo.put("create_time", now);
|
||||
WQLObject.getWQLObject("md_cs_customerbase").insert(customer_jo);
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_SUCCESS.getCode(), StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
} else {
|
||||
customer_jo.put("cust_name", customerName);
|
||||
customer_jo.put("cust_simple_name", abbreviation);
|
||||
customer_jo.put("sales_owner", sales_owner);
|
||||
customer_jo.put("update_optid", currentUserId);
|
||||
customer_jo.put("update_optname", "mdm_user");
|
||||
customer_jo.put("mdm_status", customerStatus);
|
||||
customer_jo.put("update_time", now);
|
||||
WQLObject.getWQLObject("md_cs_customerbase").update(customer_jo);
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_SUCCESS.getCode(), StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
String message = e.getMessage();
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_FAIL.getCode(),message.contains("MDM")?message:StatusEnum.ACCEPT_FAIL.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
log.error("MDM客户数据接口业务实现类处理数据异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
commonResponseDto.setStatus(StatusEnum.ACCEPT_SUCCESS.getCode());
|
||||
commonResponseDto.setMessage(StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
commonResponseDto.setResponseData(responseItemsData);
|
||||
return commonResponseDto;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description: MDM供应商主数据接口
|
||||
* @Author Eric.Yang
|
||||
* @Date: 2025/6/5 9:12
|
||||
**/
|
||||
@Override
|
||||
public CommonResponseDto transSupplierInfo(JSONObject jsonData) {
|
||||
log.info("MDM供应商主数据请求参数为:{}", jsonData);
|
||||
CommonResponseDto commonResponseDto = new CommonResponseDto();
|
||||
if(CollectionUtil.isEmpty(jsonData)){
|
||||
commonResponseDto.setStatus("E");
|
||||
commonResponseDto.setMessage("MDM传输数据为空!");
|
||||
return commonResponseDto;
|
||||
}
|
||||
List<ResponseItemsData> responseItemsData = Lists.newArrayList();
|
||||
JSONArray supplier = jsonData.getJSONArray("supplier");
|
||||
if(CollectionUtil.isNotEmpty(supplier)){
|
||||
for (int i = 0; i < supplier.size(); i++) {
|
||||
JSONObject json = supplier.getJSONObject(i);
|
||||
//主编码主键
|
||||
long mdId = json.getLongValue("mdId");
|
||||
//客户编号
|
||||
String mdCode = json.getString("mdCode");
|
||||
//主数据描述
|
||||
String mdDescription = json.getString("mdDescription");
|
||||
try {
|
||||
//供应商名称
|
||||
String supplierName = json.getString("supplierName");
|
||||
//供应商简称
|
||||
String abbreviation = json.getString("abbreviation");
|
||||
//股份供应商状态 01合格 02潜在 03不合作 04黑名单
|
||||
String gfSupplierStatus = json.getString("gfSupplierStatus");
|
||||
//插入客户表
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String now = DateUtil.now();
|
||||
//核心字段判断
|
||||
if (StrUtil.isEmpty(mdCode) || StrUtil.isEmpty(supplierName)) {
|
||||
throw new BadRequestException("MDM->供应商编码或名称不能为空!");
|
||||
}
|
||||
JSONObject supplier_jo = WQLObject.getWQLObject("md_cs_transportationbase").query("cust_code = '" + mdCode + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(supplier_jo)) {
|
||||
supplier_jo = new JSONObject();
|
||||
supplier_jo.put("cust_id", mdId);
|
||||
supplier_jo.put("cust_code", mdCode);
|
||||
supplier_jo.put("cust_name", supplierName);
|
||||
supplier_jo.put("cust_simple_name", abbreviation);
|
||||
supplier_jo.put("mdm_status", gfSupplierStatus);
|
||||
supplier_jo.put("create_id", currentUserId);
|
||||
supplier_jo.put("create_name", "mdm_user");
|
||||
supplier_jo.put("create_time", now);
|
||||
WQLObject.getWQLObject("md_cs_transportationbase").insert(supplier_jo);
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_SUCCESS.getCode(), StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
} else {
|
||||
supplier_jo.put("cust_name", supplierName);
|
||||
supplier_jo.put("cust_simple_name", abbreviation);
|
||||
supplier_jo.put("update_optid", currentUserId);
|
||||
supplier_jo.put("update_optname", "mdm_user");
|
||||
supplier_jo.put("mdm_status", gfSupplierStatus);
|
||||
supplier_jo.put("update_time", now);
|
||||
WQLObject.getWQLObject("md_cs_transportationbase").update(supplier_jo);
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_SUCCESS.getCode(), StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
//获取抛出异常的信息
|
||||
String message = e.getMessage();
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_FAIL.getCode(),message.contains("MDM")?message:StatusEnum.ACCEPT_FAIL.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
log.error("MDM供应商数据接口数据异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
commonResponseDto.setStatus(StatusEnum.ACCEPT_SUCCESS.getCode());
|
||||
commonResponseDto.setMessage(StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
commonResponseDto.setResponseData(responseItemsData);
|
||||
return commonResponseDto;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description: MDM物料主数据接口
|
||||
* @Author Eric.Yang
|
||||
* @Date: 2025/6/3 9:12
|
||||
**/
|
||||
@Override
|
||||
public CommonResponseDto transMaterialInfo(JSONObject jsonData) {
|
||||
log.info("MDM物料主数据请求参数为:{}", jsonData);
|
||||
CommonResponseDto commonResponseDto = new CommonResponseDto();
|
||||
if(CollectionUtil.isEmpty(jsonData)){
|
||||
commonResponseDto.setStatus("E");
|
||||
commonResponseDto.setMessage("MDM传输数据为空!");
|
||||
return commonResponseDto;
|
||||
}
|
||||
List<ResponseItemsData> responseItemsData = Lists.newArrayList();
|
||||
JSONArray materiels = jsonData.getJSONArray("materiels");
|
||||
if(CollectionUtil.isNotEmpty(materiels)){
|
||||
for (int i = 0; i < materiels.size(); i++) {
|
||||
JSONObject json = materiels.getJSONObject(i);
|
||||
//主编码主键
|
||||
long mdId = json.getLongValue("mdId");
|
||||
//物料编码
|
||||
String mdCode = json.getString("mdCode");
|
||||
//物料名称
|
||||
String mdDescription = json.getString("mdDescription");
|
||||
try {
|
||||
//计量单位
|
||||
String meins = json.getString("meins");
|
||||
//跨工厂的物料状态 Y有效 D冻结 N无效
|
||||
String mstae = json.getString("mstae");
|
||||
//插入客户表
|
||||
String currentUserId = SecurityUtils.getCurrentUserId();
|
||||
String now = DateUtil.now();
|
||||
if (StrUtil.isEmpty(mdCode) || StrUtil.isEmpty(mdDescription)) {
|
||||
throw new BadRequestException("MDM->物料编码或名称不能为空!");
|
||||
}
|
||||
JSONObject material_jo = WQLObject.getWQLObject("md_me_materialbase").query("material_code = '" + mdCode + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(material_jo)) {
|
||||
JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("unit_code = '" + meins + "' and is_delete ='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(unit)) {
|
||||
throw new BadRequestException("MDM->未查询到相关计量单位,请进行维护!");
|
||||
}
|
||||
material_jo = new JSONObject();
|
||||
material_jo.put("material_id", mdId);
|
||||
material_jo.put("material_code", mdCode);
|
||||
material_jo.put("material_name", mdDescription);
|
||||
material_jo.put("base_unit_id", unit.getString("measure_unit_id"));
|
||||
material_jo.put("mdm_status", mstae);
|
||||
material_jo.put("is_used", "1");
|
||||
material_jo.put("create_id", currentUserId);
|
||||
material_jo.put("create_name", "mdm_user");
|
||||
material_jo.put("create_time", now);
|
||||
WQLObject.getWQLObject("md_me_materialbase").insert(material_jo);
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_SUCCESS.getCode(), StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
} else {
|
||||
JSONObject unit = WQLObject.getWQLObject("md_pb_measureunit").query("unit_code = '" + meins + "' and is_delete ='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(unit)) {
|
||||
throw new BadRequestException("MDM->未查询到相关计量单位,请进行维护!");
|
||||
}
|
||||
material_jo.put("material_name", mdDescription);
|
||||
material_jo.put("base_unit_id", unit.getString("measure_unit_id"));
|
||||
material_jo.put("mdm_status", mstae);
|
||||
material_jo.put("update_optid", currentUserId);
|
||||
material_jo.put("update_optname", "mdm_user");
|
||||
material_jo.put("update_time", now);
|
||||
WQLObject.getWQLObject("md_me_materialbase").update(material_jo);
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_SUCCESS.getCode(), StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
//获取抛出异常的信息
|
||||
String message = e.getMessage();
|
||||
ResponseItemsData itemsData = ResponseItemsData.adapter(mdId, mdCode, mdDescription, StatusEnum.ACCEPT_FAIL.getCode(),message.contains("MDM")?message:StatusEnum.ACCEPT_FAIL.getMessage());
|
||||
responseItemsData.add(itemsData);
|
||||
log.error("MDM物料主数据接口数据异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
commonResponseDto.setStatus(StatusEnum.ACCEPT_SUCCESS.getCode());
|
||||
commonResponseDto.setMessage(StatusEnum.ACCEPT_SUCCESS.getMessage());
|
||||
commonResponseDto.setResponseData(responseItemsData);
|
||||
return commonResponseDto;
|
||||
}
|
||||
}
|
||||
@@ -52,7 +52,7 @@ public class LmsToSapServiceImpl implements LmsToSapService {
|
||||
String token = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_TOKEN").getValue();
|
||||
String sap_client = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_CLIENT").getValue();
|
||||
String api = "";
|
||||
url = url + "/sap/center/wms/004";
|
||||
url = url + "/sap/center/lms/004";
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url).header("TOKEN", token)
|
||||
.header("sap-client", sap_client)
|
||||
@@ -113,7 +113,7 @@ public class LmsToSapServiceImpl implements LmsToSapService {
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_URL").getValue();
|
||||
String token = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_TOKEN").getValue();
|
||||
String sap_client = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_CLIENT").getValue();
|
||||
String api = "/sap/center/wms/005";
|
||||
String api = "/sap/center/lms/005";
|
||||
url = url + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url).header("TOKEN", token)
|
||||
@@ -154,7 +154,7 @@ public class LmsToSapServiceImpl implements LmsToSapService {
|
||||
String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_URL").getValue();
|
||||
String token = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_TOKEN").getValue();
|
||||
String sap_client = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("SAP_CLIENT").getValue();
|
||||
String api = "/sap/center/wms/007";
|
||||
String api = "/sap/center/lms/007";
|
||||
url = url + api;
|
||||
try {
|
||||
String resultMsg = HttpRequest.post(url).header("TOKEN", token)
|
||||
|
||||
@@ -383,11 +383,12 @@ public class SapToLmsServiceImpl implements SapToLmsService {
|
||||
JSONObject json = item.getJSONObject(i);
|
||||
lfart = json.getString("LFART");
|
||||
JSONObject jsonDtl = new JSONObject();
|
||||
if (StrUtil.equals(lfart, "ZLF") || StrUtil.equals(lfart, "ZJS")) {
|
||||
if (StrUtil.equals(lfart, "ZLF1") || StrUtil.equals(lfart, "ZLF3") || StrUtil.equals(lfart, "ZLF9") || StrUtil.equals(lfart, "ZJS")) {
|
||||
// 生成出库单
|
||||
String billType = getBillTypeByLfart(lfart);
|
||||
jsonMst.put("io_type", "1");
|
||||
jsonMst.put("buss_type", "1001");
|
||||
jsonMst.put("bill_type", "1001");
|
||||
jsonMst.put("buss_type", billType);
|
||||
jsonMst.put("bill_type", billType);
|
||||
jsonMst.put("source_id", json.getLongValue("VBELN"));
|
||||
jsonMst.put("source_name", "交货单");
|
||||
jsonMst.put("receiver", json.getString("CONSIGNEE")); // 收货人
|
||||
@@ -502,8 +503,13 @@ public class SapToLmsServiceImpl implements SapToLmsService {
|
||||
box_rows.add(map);
|
||||
}
|
||||
}
|
||||
// 发货出库
|
||||
if (StrUtil.equals(lfart, "ZLF")) {
|
||||
/*
|
||||
发货分配逻辑
|
||||
* ZLF9 免费发货单-有价格
|
||||
* ZLF3 免费发货单
|
||||
* ZLF1 标准发货单
|
||||
* */
|
||||
if (StrUtil.equals(lfart, "ZLF1") || StrUtil.equals(lfart, "ZLF3") || StrUtil.equals(lfart, "ZLF9")) {
|
||||
jsonMst.put("tableData", tableData);
|
||||
// 调用出库新增并分配
|
||||
String iostorinv_id = checkOutBillService.insertDtl2(jsonMst);
|
||||
@@ -520,11 +526,15 @@ public class SapToLmsServiceImpl implements SapToLmsService {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("iostorinv_id", iostorinv_id);
|
||||
}
|
||||
// 退货入库
|
||||
if (StrUtil.equals(lfart, "ZLR")) {
|
||||
/*
|
||||
退货入库 - 1 销售退货单
|
||||
退货入库 - 3 免费退货单
|
||||
*/
|
||||
if (StrUtil.equals(lfart, "ZLR1") || StrUtil.equals(lfart, "ZLR2")) {
|
||||
jsonMst.put("tableData", box_rows);
|
||||
//创建退货入库单
|
||||
jsonMst.put("bill_type", "0002");
|
||||
String billType = getBillTypeByLfart(lfart);
|
||||
jsonMst.put("bill_type", billType);
|
||||
jsonMst.put("biz_date", DateUtil.now());
|
||||
jsonMst.put("bill_status", "10");
|
||||
rawAssistIStorService.insertDtl(jsonMst);
|
||||
@@ -547,6 +557,48 @@ public class SapToLmsServiceImpl implements SapToLmsService {
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 根据Sap LFART获取单据类型
|
||||
* @author ManMan
|
||||
* @date: 2026/4/9 14:08
|
||||
* 发货(字典值:ST_INV_OUT_TYPE)
|
||||
* ZLF 1001 发货出库 (旧)
|
||||
* ZLF1 1013 标准发货 (新)
|
||||
* ZLF3 1014 无票发货 (新)
|
||||
* ZLF9 1015 有票发货 (新)
|
||||
* 退货入库(字典值:ST_INV_IN_TYPE)
|
||||
* ZLR 0002 退货入库 (旧)
|
||||
* ZLR1 0013 标准退货 (新)
|
||||
* ZLR3 0014 免费退货 (新)
|
||||
**/
|
||||
public String getBillTypeByLfart(String code){
|
||||
String billType = "";
|
||||
switch (code){
|
||||
case "ZLF1":
|
||||
billType = "1013";
|
||||
break;
|
||||
case "ZLF3":
|
||||
billType = "1014";
|
||||
break;
|
||||
case "ZLF9":
|
||||
billType = "1015";
|
||||
break;
|
||||
case "ZLR1":
|
||||
billType = "0013";
|
||||
break;
|
||||
case "ZLR2":
|
||||
billType = "0014";
|
||||
break;
|
||||
default:
|
||||
if(code.contains("ZLR")){
|
||||
billType = "0002";
|
||||
}
|
||||
if (code.contains("ZLF")){
|
||||
billType = "1001";
|
||||
}
|
||||
}
|
||||
return billType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getReturnDeliveryInfo(JSONObject jo) {
|
||||
|
||||
@@ -100,4 +100,12 @@ public class RawFoilController {
|
||||
rawFoilService.finish(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/changePointMove")
|
||||
@Log("ACS库存变更")
|
||||
|
||||
public ResponseEntity<Object> changePointMove(@RequestBody JSONObject whereJson) {
|
||||
rawFoilService.changePointMove(whereJson);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,4 +84,6 @@ public interface RawFoilService {
|
||||
* @return JSONObject
|
||||
*/
|
||||
JSONObject finish(JSONObject whereJson);
|
||||
|
||||
JSONObject changePointMove(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -665,4 +665,26 @@ public class RawFoilServiceImpl implements RawFoilService {
|
||||
jo.put("message", "操作成功!");
|
||||
return jo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject changePointMove(JSONObject whereJson) {
|
||||
String point_code = whereJson.getString("point_code");
|
||||
try {
|
||||
String product_area = point_code.substring(0,2);
|
||||
whereJson.put("product_area",product_area);
|
||||
}catch (Exception e){
|
||||
throw new BadRequestException("输入的点位有误请核对!");
|
||||
}
|
||||
|
||||
//调用ACS接口
|
||||
WmsToAcsServiceImpl wmsToAcsService = SpringContextHolder.getBean(WmsToAcsServiceImpl.class);
|
||||
JSONObject result = wmsToAcsService.changePointMove(whereJson);
|
||||
|
||||
if (!StrUtil.equals(result.getString("status"), "200")) {
|
||||
throw new BadRequestException("操作失败:" + result.getString("message "));
|
||||
}
|
||||
JSONObject jo = new JSONObject();
|
||||
jo.put("message", "操作成功!");
|
||||
return jo;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -678,7 +678,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
}
|
||||
|
||||
// 销售出库
|
||||
if (StrUtil.equals(bill_type, "1001") || StrUtil.equals(bill_type, "1011")) {
|
||||
if (StrUtil.equals(bill_type, "1001") || StrUtil.equals(bill_type, "1011") || StrUtil.equals(bill_type, "1013") || StrUtil.equals(bill_type, "1014") || StrUtil.equals(bill_type, "1015")) {
|
||||
// 1.回传sap
|
||||
JSONArray paramSapMstArr = new JSONArray();
|
||||
|
||||
@@ -783,7 +783,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
paramDis.put("ZZWLHD", jsonSub.getString("thickness"));
|
||||
paramDis.put("CHARG", jsonSub.getString("sap_pcsn"));
|
||||
paramDis.put("KALAB", NumberUtil.round(jsonDis.getDoubleValue("plan_qty"), 3));
|
||||
paramDis.put("WERKS", "2460");
|
||||
paramDis.put("WERKS", "2461");
|
||||
paramSapMstArr.add(paramDis);
|
||||
}
|
||||
param.put("ITEM", paramSapMstArr);
|
||||
@@ -1308,7 +1308,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
|
||||
}
|
||||
|
||||
// 销售出库
|
||||
if (StrUtil.equals(bill_type, "1001") || StrUtil.equals(bill_type, "1011") ) {
|
||||
if (StrUtil.equals(bill_type, "1001") || StrUtil.equals(bill_type, "1011") || StrUtil.equals(bill_type, "1013") || StrUtil.equals(bill_type, "1014") || StrUtil.equals(bill_type, "1015")) {
|
||||
// 1.回传sap
|
||||
JSONArray paramSapMstArr = new JSONArray();
|
||||
|
||||
|
||||
@@ -476,8 +476,8 @@ public class InBillQueryServiceImpl implements InBillQueryService {
|
||||
mp.put("客户名称", json.getString("cust_name"));
|
||||
mp.put("业务员", json.getString("sales_owner"));
|
||||
mp.put("规格", json.getString("thickness_request"));
|
||||
mp.put("尺寸(mm)(客户要求幅宽)", json.getString("width_standard"));
|
||||
mp.put("实际尺寸(mm)(实际幅宽)", json.getString("width"));
|
||||
mp.put("产品实际幅宽", json.getString("width"));
|
||||
mp.put("客户要求幅宽", json.getString("width_standard"));
|
||||
String box_name = json.getString("box_name");
|
||||
if (StrUtil.isNotEmpty(box_name)) {
|
||||
String[] s = box_name.split("木箱");
|
||||
|
||||
@@ -459,7 +459,8 @@ public class OutBillQueryServiceImpl implements OutBillQueryService {
|
||||
|
||||
mp.put("业务员", json.getString("sales_owner"));
|
||||
mp.put("出库日期", json.getString("input_time"));
|
||||
mp.put("产品规格", json.getString("width"));
|
||||
mp.put("产品实际幅宽", json.getString("width"));
|
||||
mp.put("客户要求幅宽", json.getString("width_standard"));
|
||||
mp.put("产品厚度", json.getString("thickness"));
|
||||
mp.put("单位面积", json.getString("mass_per_unit_area"));
|
||||
mp.put("制单人", json.getString("input_optname"));
|
||||
|
||||
@@ -656,6 +656,7 @@
|
||||
sub.date_of_production,
|
||||
mst.input_optname,
|
||||
sub.width,
|
||||
sub.width_standard,
|
||||
case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type,
|
||||
case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_material when plan.paper_tube_or_FRP = '2' then plan.FRP_material end AS paper_code,
|
||||
case when plan.paper_tube_or_FRP = '1' then plan.paper_tube_description when plan.paper_tube_or_FRP = '2' then plan.FRP_description end AS paper_name,
|
||||
|
||||
@@ -280,6 +280,7 @@
|
||||
sub.sale_order_name,
|
||||
cust.sales_owner,
|
||||
sub.width,
|
||||
sub.width_standard,
|
||||
sub.thickness,
|
||||
sub.mass_per_unit_area,
|
||||
case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type,
|
||||
@@ -335,6 +336,7 @@
|
||||
max(record.customer_name) as customer_name,
|
||||
max(record.customer_description) as customer_description,
|
||||
max(record.width) as width,
|
||||
max(record.width_standard) as width_standard,
|
||||
max(record.quanlity_in_box) boxin_num,
|
||||
max(record.thickness) as thickness,
|
||||
max(record.mass_per_unit_area) as mass_per_unit_area,
|
||||
@@ -405,6 +407,7 @@
|
||||
sub.sale_order_name,
|
||||
cust.sales_owner,
|
||||
sub.width,
|
||||
sub.width_standard,
|
||||
sub.thickness,
|
||||
sub.mass_per_unit_area,
|
||||
case when plan.paper_tube_or_FRP = '1' then '纸管' when plan.paper_tube_or_FRP = '2' then 'FRP管' end AS paper_type,
|
||||
@@ -460,6 +463,7 @@
|
||||
max(record.customer_name) as customer_name,
|
||||
max(record.customer_description) as customer_description,
|
||||
max(record.width) as width,
|
||||
max(record.width_standard) as width_standard,
|
||||
max(record.thickness) as thickness,
|
||||
max(record.mass_per_unit_area) as mass_per_unit_area,
|
||||
max(record.net_weight) as net_weight,
|
||||
|
||||
@@ -25,7 +25,7 @@ https://juejin.cn/post/6844903775631572999
|
||||
<include resource="log/SapToLms.xml"/>
|
||||
<include resource="log/AcsToLMS.xml"/>
|
||||
<include resource="log/LmsToAcs.xml"/>
|
||||
|
||||
<include resource="log/MdmToLms.xml"/>
|
||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<!-- 控制台高亮-->
|
||||
<withJansi>true</withJansi>
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="送货单明细数">
|
||||
<el-input-number v-model="form.shd_dtl_num" :min="1" :max="100" :precision="0" :controls="false" style="width: 200px;"/>
|
||||
<el-input-number v-model="form.shd_dtl_num" :min="1" :max="100" :precision="0" :controls="false" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -193,10 +193,10 @@
|
||||
<el-table-column prop="jurid_name" label="法人代表" show-overflow-tooltip />
|
||||
<el-table-column prop="bz_print_no" label="包装打印模板" width="150px" :formatter="printTemple" show-overflow-tooltip />
|
||||
<el-table-column prop="bz_print_within" label="内标打印模板" width="150px" :formatter="printTemple2" show-overflow-tooltip />
|
||||
<el-table-column prop="shd_print_no" label="送货单打印模板路径" width="180px" show-overflow-tooltip/>
|
||||
<el-table-column prop="shd_print_no" label="送货单打印模板路径" width="180px" show-overflow-tooltip />
|
||||
<el-table-column prop="shd_dtl_num" label="送货单明细数" width="150px" show-overflow-tooltip />
|
||||
<el-table-column prop="is_auto_table" label="是否自动贴标" width="150px" show-overflow-tooltip :formatter="autoTable"/>
|
||||
<el-table-column prop="update_optname" label="修改者" width="150px"/>
|
||||
<el-table-column prop="is_auto_table" label="是否自动贴标" width="150px" show-overflow-tooltip :formatter="autoTable" />
|
||||
<el-table-column prop="update_optname" label="修改者" width="150px" />
|
||||
<el-table-column prop="update_time" label="修改时间" width="150" />
|
||||
<el-table-column label="启用" align="center" prop="is_used">
|
||||
<template slot-scope="scope">
|
||||
@@ -210,6 +210,7 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mdm_status" label="MDM数据状态" :formatter="mdmStatusTrans" />
|
||||
<el-table-column
|
||||
v-permission="['admin','customerbase:edit','customerbase:del']"
|
||||
label="操作"
|
||||
@@ -283,7 +284,7 @@ const defaultForm = {
|
||||
}
|
||||
export default {
|
||||
name: 'Customerbase',
|
||||
dicts: ['is_used', 'print_temple', 'two_print_temple'],
|
||||
dicts: ['is_used', 'print_temple', 'two_print_temple', 'CUSTOMERBASE_MDM_STATUS'],
|
||||
components: { pagination, crudOperation, rrOperation, udOperation, Treeselect },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
@@ -415,6 +416,9 @@ export default {
|
||||
},
|
||||
autoTable(row) {
|
||||
return this.dict.label.is_used[row.is_auto_table]
|
||||
},
|
||||
mdmStatusTrans(row) {
|
||||
return this.dict.label.CUSTOMERBASE_MDM_STATUS[row.mdm_status]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation/>
|
||||
<crudOperation />
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
:close-on-click-modal="false"
|
||||
@@ -149,6 +149,7 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mdm_status" label="MDM数据状态" :formatter="mdmStatusTrans" />
|
||||
<el-table-column prop="update_optname" label="修改人" />
|
||||
<el-table-column prop="update_time" label="修改时间" width="135" />
|
||||
<el-table-column
|
||||
@@ -221,7 +222,7 @@ const defaultForm = {
|
||||
export default {
|
||||
name: 'Materialbase',
|
||||
// 数据字典
|
||||
dicts: ['is_used'],
|
||||
dicts: ['is_used', 'MATERIALBASE_MDM_STATUS'],
|
||||
components: { pagination, crudOperation, rrOperation, udOperation, Treeselect },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
cruds() {
|
||||
@@ -404,6 +405,9 @@ export default {
|
||||
}, 100)
|
||||
})
|
||||
}
|
||||
},
|
||||
mdmStatusTrans(row) {
|
||||
return this.dict.label.MATERIALBASE_MDM_STATUS[row.mdm_status]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="mdm_status" label="MDM数据状态" width="120px" :formatter="mdmStatusTrans" />
|
||||
<el-table-column prop="country" label="国家" :min-width="flexWidth('country',crud.data,'国家')" />
|
||||
<el-table-column prop="state" label="省份" :min-width="flexWidth('state',crud.data,'省份')" />
|
||||
<el-table-column prop="city" label="城市" :min-width="flexWidth('city',crud.data,'城市')" />
|
||||
@@ -261,7 +262,7 @@ const defaultForm = {
|
||||
remark: null
|
||||
}
|
||||
export default {
|
||||
dicts: ['is_used'],
|
||||
dicts: ['is_used', 'TRANSPORTATIONBASE_MDM_STATUS'],
|
||||
name: 'Transportationbase',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
@@ -329,6 +330,9 @@ export default {
|
||||
data.is_used = '0'
|
||||
}
|
||||
})
|
||||
},
|
||||
mdmStatusTrans(row) {
|
||||
return this.dict.label.TRANSPORTATIONBASE_MDM_STATUS[row.mdm_status]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -217,7 +217,8 @@
|
||||
<el-table-column show-overflow-tooltip prop="confirm_time" label="入库日期" :min-width="flexWidth('confirm_time',crud.data,'入库日期')" />
|
||||
<el-table-column show-overflow-tooltip prop="date_of_production" label="生产日期" :min-width="flexWidth('date_of_production',crud.data,'生产日期')" />
|
||||
<el-table-column show-overflow-tooltip prop="input_optname" label="入库人" :min-width="flexWidth('input_optname',crud.data,'入库人')" />
|
||||
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width" label="产品规格" :min-width="flexWidth('width',crud.data,'产品规格')" />
|
||||
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width" label="产品实际幅宽" :min-width="flexWidth('width',crud.data,'产品实际幅宽')" />
|
||||
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="width_standard" label="客户要求幅宽" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
|
||||
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
|
||||
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="paper_type" label="管件类型" :min-width="flexWidth('paper_type',crud.data,'管件类型')" />
|
||||
<el-table-column v-if="crud.query.is_all === '0'" show-overflow-tooltip prop="paper_code" label="管件编码" :min-width="flexWidth('paper_code',crud.data,'管件编码')" />
|
||||
|
||||
@@ -133,7 +133,8 @@
|
||||
<el-table-column show-overflow-tooltip prop="sale_order_name" label="销售订单" :min-width="flexWidth('sale_order_name',crud.data,'销售订单')" />
|
||||
<el-table-column show-overflow-tooltip prop="old_sale_order_name" label="原销售订单" :min-width="flexWidth('old_sale_order_name',crud.data,'原销售订单')" />
|
||||
<el-table-column show-overflow-tooltip prop="confirm_time" label="出库日期" :min-width="flexWidth('confirm_time',crud.data,'出库日期')" />
|
||||
<el-table-column show-overflow-tooltip prop="width" label="产品规格" :formatter="crud.formatNum1" :min-width="flexWidth('width',crud.data,'产品规格')" />
|
||||
<el-table-column show-overflow-tooltip prop="width" label="产品实际幅宽" :formatter="crud.formatNum1" :min-width="flexWidth('width',crud.data,'产品实际幅宽')" />
|
||||
<el-table-column show-overflow-tooltip prop="width_standard" label="客户要求幅宽" :formatter="crud.formatNum1" :min-width="flexWidth('width_standard',crud.data,'客户要求幅宽')" />
|
||||
<el-table-column show-overflow-tooltip prop="thickness" label="产品厚度" :min-width="flexWidth('thickness',crud.data,'产品厚度')" />
|
||||
<el-table-column show-overflow-tooltip prop="paper_type" label="管件类型" :min-width="flexWidth('paper_type',crud.data,'管件类型')" />
|
||||
<el-table-column show-overflow-tooltip prop="paper_code" label="管件编码" :min-width="flexWidth('paper_code',crud.data,'管件编码')" />
|
||||
|
||||
Reference in New Issue
Block a user