Browse Source

fix: 加急工单入窑、分拣批次关系对应

master
李永德 1 year ago
parent
commit
d6a0636082
  1. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CodeUtil.java
  2. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/UserController.java
  3. 19
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  4. 3
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveGdyInfo.java
  5. 23
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java
  6. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.java
  7. 33
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml
  8. 22
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesMudConsumptionDto.java
  9. 44
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesSemiProDto.java
  10. 30
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesSemiProVo.java
  11. 36
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java
  12. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java
  13. 13
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/vehiclebiding/controller/PdmBdVehicleBindingController.java
  14. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/vehiclebiding/service/IPdmBdVehicleBindingService.java
  15. 86
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/vehiclebiding/service/impl/PdmBdVehicleBindingServiceImpl.java
  16. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java
  17. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java
  18. 10
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml
  19. 37
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java
  20. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java
  21. 41
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJMKTask.java
  22. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/gtx/HCSSXMLTask.java
  23. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java
  24. 20
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java
  25. 2
      lms/nladmin-system/nlsso-server/src/main/resources/ext.dic
  26. 2
      lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
  27. 9
      lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java
  28. 2
      lms/nladmin-ui/src/layout/components/Navbar.vue
  29. 2
      lms/nladmin-ui/src/views/system/menu/index.vue
  30. 99
      lms/nladmin-ui/src/views/wms/pdm/vehiclebiding/index.vue

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/CodeUtil.java

@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit;
/** /**
* @Author: lyd * @Author: lyd
* @Description: 码生成工具 * @Description: 码生成工具
* @Date: 2023/8/14 * @Date: 2023/8/14
*/ */
public class CodeUtil { public class CodeUtil {

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/user/UserController.java

@ -106,10 +106,10 @@ public class UserController {
String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("oldPass")); String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("oldPass"));
String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("newPass")); String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getString("newPass"));
SysUser user = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, SecurityUtils.getCurrentUsername())); SysUser user = userService.getOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getUsername, SecurityUtils.getCurrentUsername()));
if (!SaSecureUtil.md5BySalt(user.getPassword(), GeneralDefinition.SALT).equals(SaSecureUtil.md5BySalt(oldPass, GeneralDefinition.SALT))) { if (!user.getPassword().equals(SaSecureUtil.md5BySalt(oldPass, GeneralDefinition.SALT))) {
throw new BadRequestException("修改失败,旧密码错误"); throw new BadRequestException("修改失败,旧密码错误");
} }
if (!SaSecureUtil.md5BySalt(user.getPassword(), GeneralDefinition.SALT).equals(SaSecureUtil.md5BySalt(newPass, GeneralDefinition.SALT))) { if (user.getPassword().equals(SaSecureUtil.md5BySalt(newPass, GeneralDefinition.SALT))) {
throw new BadRequestException("新密码不能与旧密码相同"); throw new BadRequestException("新密码不能与旧密码相同");
} }
user.setPassword(SaSecureUtil.md5BySalt(newPass, GeneralDefinition.SALT)); user.setPassword(SaSecureUtil.md5BySalt(newPass, GeneralDefinition.SALT));

19
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java

@ -425,6 +425,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* 分拣 - 记录钢托与木托的绑定 * 分拣 - 记录钢托与木托的绑定
*/ */
@Override @Override
@Deprecated
public BaseResponse applyGetPutStation(JSONObject param) { public BaseResponse applyGetPutStation(JSONObject param) {
FeedBackSplitPalletStationRequest request = param.toJavaObject(FeedBackSplitPalletStationRequest.class); FeedBackSplitPalletStationRequest request = param.toJavaObject(FeedBackSplitPalletStationRequest.class);
String getStation = request.getGet_station(); String getStation = request.getGet_station();
@ -457,7 +458,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (productionTask != null) { if (productionTask != null) {
vehicleBinding.setOrder_code(productionTask.getWorkorder_code()); vehicleBinding.setOrder_code(productionTask.getWorkorder_code());
} }
vehicleBindingService.create(vehicleBinding); // vehicleBindingService.create(vehicleBinding);
return BaseResponse.responseOk(request.getRequestNo()); return BaseResponse.responseOk(request.getRequestNo());
} }
@ -623,12 +624,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS); boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS);
try { try {
if (tryLock) { if (tryLock) {
SchBasePoint basePoint = pointService.getById(deviceCode); // 获取点位实体 // 获取点位实体
SchBasePoint basePoint = pointService.getById(deviceCode);
switch (basePoint.getRegion_code()) { switch (basePoint.getRegion_code()) {
case GeneralDefinition.LZKLX: // 如果是困料线位置就是判断是否静置完成 // 如果是困料线位置就是判断是否静置完成
return this.isStandingFinish(baseRequest); // 直接返回 case GeneralDefinition.LZKLX:
case GeneralDefinition.GZY: // 如果是入窑口就是记录数据 // 直接返回
return this.recordKilnTime(baseRequest); // 直接返回 return this.isStandingFinish(baseRequest);
// 如果是入窑口就是记录数据
case GeneralDefinition.GZY:
return this.recordKilnTime(baseRequest);
default: default:
taskResponse.setMessage("参数错误!"); taskResponse.setMessage("参数错误!");
taskResponse.setCode(HttpStatus.HTTP_BAD_REQUEST); taskResponse.setCode(HttpStatus.HTTP_BAD_REQUEST);
@ -703,6 +708,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
mesMudConsumptionDto.setSENDTIM(DateUtil.now()); mesMudConsumptionDto.setSENDTIM(DateUtil.now());
mesMudConsumptionDto.setCREATE_TM(DateUtil.now()); mesMudConsumptionDto.setCREATE_TM(DateUtil.now());
mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO); mesMudConsumptionDto.setOP_FLAG(GeneralDefinition.NO);
mesMudConsumptionDto.setSLEEP_TIME(CommonUtils.dTOAMinutes(one.getInstorage_time(), DateUtil.now()));
log.info("泥料消耗上报参数:{}", mesMudConsumptionDto); log.info("泥料消耗上报参数:{}", mesMudConsumptionDto);
// 反馈数据给acs // 反馈数据给acs
taskResponse.setMix_number(one.getMix_times()); taskResponse.setMix_number(one.getMix_times());
@ -996,6 +1002,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
PointUtils.setUpdateByAcs(endPointObj); PointUtils.setUpdateByAcs(endPointObj);
pointService.update(endPointObj, new LambdaQueryWrapper<SchBasePoint>() pointService.update(endPointObj, new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, "RYK01")); .eq(SchBasePoint::getPoint_code, "RYK01"));
log.info("入窑口02引发入窑口01点位更新解锁!");
} }
} }

3
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/autotask/AutoSaveGdyInfo.java

@ -53,6 +53,9 @@ public class AutoSaveGdyInfo {
if (ObjectUtil.isEmpty(mesGdyInfoDto.getBATCHNO())) { if (ObjectUtil.isEmpty(mesGdyInfoDto.getBATCHNO())) {
mesGdyInfoDto.setBATCHNO("-"); mesGdyInfoDto.setBATCHNO("-");
} }
if (ObjectUtil.isEmpty(mesGdyInfoDto.getPRESSUNIT())) {
mesGdyInfoDto.setPRESSUNIT("-");
}
try { try {
mesRequestMapper.insertGdyMaterial(mesGdyInfoDto); mesRequestMapper.insertGdyMaterial(mesGdyInfoDto);
successNum.incrementAndGet(); successNum.incrementAndGet();

23
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/WmsToMesService.java

@ -8,6 +8,7 @@ import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: lyd * @Author: lyd
@ -190,7 +191,27 @@ public interface WmsToMesService {
/** /**
* 新增工序报废 * 新增工序报废
* *
* @param entity * @param entity /
*/ */
void addScrap(ScrapDto entity); void addScrap(ScrapDto entity);
/**
* 上报分拣木托盘与钢托盘关系提供给MES
* @param mesSemiProDto /
*/
void reportSemiProToMes(MesSemiProDto mesSemiProDto);
/**
* 分页获取绑定数据
* @param whereJson /
* @param page /
* @return /
*/
IPage<MesSemiProVo> queryAllVehicleBinding(Map whereJson, PageQuery page);
/**
* 更新上报数据
* @param entity /
*/
void updateByMesSemiProVo(MesSemiProVo entity);
} }

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.java

@ -121,4 +121,16 @@ public interface MesRequestMapper {
@DS("oracle") @DS("oracle")
void reportSemiProductGXPF(SemiProductGXPFDo semiProductGXPFDo); void reportSemiProductGXPF(SemiProductGXPFDo semiProductGXPFDo);
@DS("oracle")
void reportSemiProToMes(MesSemiProDto mesSemiProDto);
@DS("oracle")
List<MesSemiProVo> selectMesSemiProInfo(int currentPage, int currentSize);
@DS("oracle")
int getSemiProTotal();
@DS("oracle")
void updateByMesSemiProVo(MesSemiProVo entity);
} }

33
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dao/mapper/MesRequestMapper.xml

@ -4,9 +4,9 @@
<insert id="insertMudConsumptionInfo" parameterType="org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto"> <insert id="insertMudConsumptionInfo" parameterType="org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto">
INSERT INTO "LMSTELCOM"."RECEIVE_MUDMATERIEL_OUT"( MSGID, PWORKSCHE_ID, OUT_FINNUM, PRESSUNIT, FBAGCODE, LOGT INSERT INTO "LMSTELCOM"."RECEIVE_MUDMATERIEL_OUT"( MSGID, PWORKSCHE_ID, OUT_FINNUM, PRESSUNIT, FBAGCODE, LOGT
, SENDTIM , SENDTIM
, CREATE_TM, OP_FLAG) , CREATE_TM, OP_FLAG, SLEEP_TIME)
VALUES ( #{MSGID}, #{PWORKSCHE_ID}, #{OUT_FINNUM}, #{PRESSUNIT}, #{FBAGCODE}, #{LOGT} VALUES ( #{MSGID}, #{PWORKSCHE_ID}, #{OUT_FINNUM}, #{PRESSUNIT}, #{FBAGCODE}, #{LOGT}
, #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG}) , #{SENDTIM}, #{CREATE_TM}, #{OP_FLAG}, #{SLEEP_TIME})
</insert> </insert>
<insert id="insertProductData" parameterType="org.nl.wms.ext.mes.service.dto.MesProductDataDto"> <insert id="insertProductData" parameterType="org.nl.wms.ext.mes.service.dto.MesProductDataDto">
INSERT INTO "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT"( MSGID, FORDER_NO, PWORKSCHE_ID, FPRODUCT_MATERIAL_ID INSERT INTO "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT"( MSGID, FORDER_NO, PWORKSCHE_ID, FPRODUCT_MATERIAL_ID
@ -157,6 +157,16 @@
, #{EDTPFJJ_PROMATNO} , #{EDTPFJJ_PROMATNO}
, #{CHECKERIN}, #{CHECKERIN_TIM}, #{CREATE_TM}, #{OP_FLAG}) , #{CHECKERIN}, #{CHECKERIN_TIM}, #{CREATE_TM}, #{OP_FLAG})
</insert> </insert>
<insert id="reportSemiProToMes" parameterType="org.nl.wms.ext.mes.service.dto.MesSemiProDto">
INSERT INTO "LMSTELCOM"."RECEIVE_SEMIPRO_VS_PRO"( RECORD_ID, WOOD_VEHICLE_CODE, WOOD_QTY, WOOD_PCSN
, STEEL_VEHICLE_CODE1, STEEL_QTY1 , STEEL_PCSN1
, STEEL_VEHICLE_CODE2, STEEL_QTY2, STEEL_PCSN2
, STEEL_VEHICLE_CODE3, STEEL_QTY3
, STEEL_PCSN3, RECORD_TIME, CREATE_TM, OP_FLAG)
VALUES ( #{RECORD_ID}, #{WOOD_VEHICLE_CODE}, #{WOOD_QTY}, #{WOOD_PCSN}, #{STEEL_VEHICLE_CODE1}, #{STEEL_QTY1}
, #{STEEL_PCSN1} , #{STEEL_VEHICLE_CODE2}, #{STEEL_QTY2}, #{STEEL_PCSN2}, #{STEEL_VEHICLE_CODE3}
, #{STEEL_QTY3}, #{STEEL_PCSN3}, #{RECORD_TIME}, #{CREATE_TM}, #{OP_FLAG})
</insert>
<update id="updateWorkOrderRead" parameterType="java.util.List"> <update id="updateWorkOrderRead" parameterType="java.util.List">
UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS" UPDATE "LMSTELCOM"."SEND_POP_SCHEDULE_PRESS"
SET OP_FLAG = '1' SET OP_FLAG = '1'
@ -165,6 +175,15 @@
#{item} #{item}
</foreach> </foreach>
</update> </update>
<update id="updateByMesSemiProVo" parameterType="org.nl.wms.ext.mes.service.dto.MesSemiProVo">
UPDATE "LMSTELCOM"."RECEIVE_SEMIPRO_VS_PRO"
SET WOOD_VEHICLE_CODE = #{wood_VEHICLE_CODE}, WOOD_QTY = #{wood_QTY}, WOOD_PCSN = #{wood_PCSN}
, STEEL_VEHICLE_CODE1 = #{steel_VEHICLE_CODE1}, STEEL_QTY1 = #{steel_QTY1}, STEEL_PCSN1 = #{steel_PCSN1}
, STEEL_VEHICLE_CODE2 = #{steel_VEHICLE_CODE2}, STEEL_QTY2 = #{steel_QTY2}, STEEL_PCSN2 = #{steel_PCSN2}
, STEEL_VEHICLE_CODE3 = #{steel_VEHICLE_CODE3}, STEEL_QTY3 = #{steel_PCSN2}
, STEEL_PCSN3 = #{steel_PCSN3}, RECORD_TIME = #{record_TIME}
WHERE RECORD_ID = #{record_ID}
</update>
<select id="getMudConsumption" resultType="org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto"> <select id="getMudConsumption" resultType="org.nl.wms.ext.mes.service.dto.MesMudConsumptionDto">
SELECT `mud`.`record_id` AS `MSGID`, SELECT `mud`.`record_id` AS `MSGID`,
@ -395,4 +414,14 @@
SELECT COUNT(*) AS total_count SELECT COUNT(*) AS total_count
FROM "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT_GXPF" FROM "LMSTELCOM"."RECEIVE_R_SEMIPRODUCT_GXPF"
</select> </select>
<select id="selectMesSemiProInfo" resultType="org.nl.wms.ext.mes.service.dto.MesSemiProVo">
SELECT *
FROM "LMSTELCOM"."RECEIVE_SEMIPRO_VS_PRO"
WHERE ROWNUM <![CDATA[ >= ]]> #{currentPage}
AND ROWNUM <![CDATA[ <= ]]> #{currentSize}
</select>
<select id="getSemiProTotal" resultType="java.lang.Integer">
SELECT COUNT(*) AS total_count
FROM "LMSTELCOM"."RECEIVE_SEMIPRO_VS_PRO"
</select>
</mapper> </mapper>

22
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesMudConsumptionDto.java

@ -61,11 +61,33 @@ public class MesMudConsumptionDto implements Serializable {
* 出库理论重量 * 出库理论重量
*/ */
private BigDecimal OUT_THEONUM; private BigDecimal OUT_THEONUM;
/**
* 压机
*/
private String PRESSUNIT; private String PRESSUNIT;
/**
* 用料时间
*/
private String SENDTIM; private String SENDTIM;
/**
* 用料人
*/
private String SENDER; private String SENDER;
/**
* 创建时间
*/
private String CREATE_TM; private String CREATE_TM;
/**
* 标记
*/
private String OP_FLAG; private String OP_FLAG;
/**
* 读取时间
*/
private String OP_TM; private String OP_TM;
/**
* 实际困料时间
*/
private BigDecimal SLEEP_TIME;
} }

44
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesSemiProDto.java

@ -0,0 +1,44 @@
package org.nl.wms.ext.mes.service.dto;
import lombok.Data;
/**
* @Author: lyd
* @Description: 提供MES的人工码垛的对应关系和自动码垛的对应关系表
* @Date: 2024/1/24
* 标识
* 木托盘编码
* 木托盘对应的数量
* 木托盘对应的批次
* 钢托盘1编码
* 钢托盘1数量
* 钢托盘1批次
* 钢托盘2编码
* 钢托盘2数量
* 钢托盘2批次
* 钢托盘3编码
* 钢托盘3数量
* 钢托盘3批次
* 保存时间
*/
@Data
public class MesSemiProDto {
private String RECORD_ID;
private String WOOD_VEHICLE_CODE;
private String WOOD_QTY;
private String WOOD_PCSN;
private String STEEL_VEHICLE_CODE1;
private String STEEL_QTY1;
private String STEEL_PCSN1;
private String STEEL_VEHICLE_CODE2;
private String STEEL_QTY2;
private String STEEL_PCSN2;
private String STEEL_VEHICLE_CODE3;
private String STEEL_QTY3;
private String STEEL_PCSN3;
private String RECORD_TIME;
private String CREATE_TM;
private String OP_FLAG;
private String OP_TM;
private String OP_REPLAY;
}

30
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesSemiProVo.java

@ -0,0 +1,30 @@
package org.nl.wms.ext.mes.service.dto;
import lombok.Data;
/**
* @Author: lyd
* @Description:
* @Date: 2024/1/24
*/
@Data
public class MesSemiProVo {
private String record_ID;
private String wood_VEHICLE_CODE;
private String wood_QTY;
private String wood_PCSN;
private String steel_VEHICLE_CODE1;
private String steel_QTY1;
private String steel_PCSN1;
private String steel_VEHICLE_CODE2;
private String steel_QTY2;
private String steel_PCSN2;
private String steel_VEHICLE_CODE3;
private String steel_QTY3;
private String steel_PCSN3;
private String record_TIME;
private String create_TM;
private String op_FLAG;
private String op_TM;
private String op_REPLAY;
}

36
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java

@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -512,6 +513,41 @@ public class WmsToMesServiceImpl implements WmsToMesService {
mesRequestMapper.reportSemiProductGXPF(semiProductGXPFDo); mesRequestMapper.reportSemiProductGXPF(semiProductGXPFDo);
} }
@Override
public void reportSemiProToMes(MesSemiProDto mesSemiProDto) {
log.info("分拣上报信息:{}", mesSemiProDto);
try {
mesRequestMapper.reportSemiProToMes(mesSemiProDto);
} catch (Exception e) {
log.error("分拣-上报MES分拣对应关系数据:{}", mesSemiProDto);
log.error("分拣插入MES分拣对应关系失败:{}", e.getMessage());
noticeService.createNotice("分拣插入MES分拣对应关系失败", "分拣" + mesSemiProDto.getRECORD_ID(),
NoticeTypeEnum.EXCEPTION.getCode());
}
}
@Override
public IPage<MesSemiProVo> queryAllVehicleBinding(Map whereJson, PageQuery pageQuery) {
Integer page = pageQuery.getPage();
Integer size = pageQuery.getSize();
IPage<MesSemiProVo> pages = new Page<>(page, size);
// start
int currentPage = page * size + 1;
// end
int currentSize = (pageQuery.getPage() + 1) * size;
List<MesSemiProVo> mesSemiProDtos = mesRequestMapper.selectMesSemiProInfo(currentPage, currentSize);
pages.setRecords(mesSemiProDtos);
int total = mesRequestMapper.getSemiProTotal();
pages.setTotal(total);
return pages;
}
@Override
public void updateByMesSemiProVo(MesSemiProVo entity) {
entity.setRecord_TIME(DateUtil.now());
mesRequestMapper.updateByMesSemiProVo(entity);
}
/** /**
* 转换 * 转换
* *

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/service/impl/PdaServiceImpl.java

@ -325,6 +325,9 @@ public class PdaServiceImpl implements PdaService {
@Override @Override
public PdaResponseVo bindingVehicle(VehicleBindingDto vehicleBindingDto) { public PdaResponseVo bindingVehicle(VehicleBindingDto vehicleBindingDto) {
if (true) {
throw new BadRequestException("该功能未开放,请到PC端操作。");
}
PdmBdWorkorder workOrder = workorderService.getDeviceProductionTask("RGFJ01"); PdmBdWorkorder workOrder = workorderService.getDeviceProductionTask("RGFJ01");
if (ObjectUtil.isEmpty(workOrder)) { if (ObjectUtil.isEmpty(workOrder)) {
throw new BadRequestException("人工分拣未开工"); throw new BadRequestException("人工分拣未开工");
@ -368,6 +371,9 @@ public class PdaServiceImpl implements PdaService {
// 获取点位 // 获取点位
shelfSaveDto.setPoint_code(pointCode); shelfSaveDto.setPoint_code(pointCode);
SchBasePoint basePoint = pointService.getById(shelfSaveDto.getPoint_code()); SchBasePoint basePoint = pointService.getById(shelfSaveDto.getPoint_code());
if (ObjectUtil.isEmpty(basePoint)) {
throw new BadRequestException("库位【" + pointCode + "】不存在");
}
basePoint.setPoint_status(shelfSaveDto.getPoint_status()); basePoint.setPoint_status(shelfSaveDto.getPoint_status());
PointUtils.setUpdateByPC(basePoint); PointUtils.setUpdateByPC(basePoint);
if (shelfSaveDto.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) { if (shelfSaveDto.getPoint_status().equals(PointStatusEnum.EMPTY_POINT.getCode())) {

13
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/vehiclebiding/controller/PdmBdVehicleBindingController.java

@ -5,6 +5,9 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo; import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log; import org.nl.common.logging.annotation.Log;
import org.nl.wms.ext.mes.service.WmsToMesService;
import org.nl.wms.ext.mes.service.dto.MesSemiProDto;
import org.nl.wms.ext.mes.service.dto.MesSemiProVo;
import org.nl.wms.pdm.vehiclebiding.service.IPdmBdVehicleBindingService; import org.nl.wms.pdm.vehiclebiding.service.IPdmBdVehicleBindingService;
import org.nl.wms.pdm.vehiclebiding.service.dao.PdmBdVehicleBinding; import org.nl.wms.pdm.vehiclebiding.service.dao.PdmBdVehicleBinding;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -28,20 +31,20 @@ public class PdmBdVehicleBindingController {
@Autowired @Autowired
private IPdmBdVehicleBindingService pdmBdVehicleBindingService; private IPdmBdVehicleBindingService pdmBdVehicleBindingService;
@Autowired
private WmsToMesService wmsToMesService;
@GetMapping @GetMapping
@Log("查询分拣载具关联记录") @Log("查询分拣载具关联记录")
//@SaCheckPermission("@el.check('pdmBdVehicleBinding:list')") //@SaCheckPermission("@el.check('pdmBdVehicleBinding:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) { public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(TableDataInfo.build(pdmBdVehicleBindingService.queryAll(whereJson, page)), HttpStatus.OK); return new ResponseEntity<>(TableDataInfo.build(wmsToMesService.queryAllVehicleBinding(whereJson, page)), HttpStatus.OK);
} }
@PostMapping @PostMapping
@Log("新增分拣载具关联记录") @Log("新增分拣载具关联记录")
//@SaCheckPermission("@el.check('pdmBdVehicleBinding:add')") //@SaCheckPermission("@el.check('pdmBdVehicleBinding:add')")
public ResponseEntity<Object> create(@Validated @RequestBody PdmBdVehicleBinding entity) { public ResponseEntity<Object> create(@RequestBody MesSemiProVo entity) {
pdmBdVehicleBindingService.create(entity); pdmBdVehicleBindingService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED); return new ResponseEntity<>(HttpStatus.CREATED);
} }
@ -50,7 +53,7 @@ public class PdmBdVehicleBindingController {
@Log("修改分拣载具关联记录") @Log("修改分拣载具关联记录")
//@SaCheckPermission("@el.check('pdmBdVehicleBinding:edit')") //@SaCheckPermission("@el.check('pdmBdVehicleBinding:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody PdmBdVehicleBinding entity) { public ResponseEntity<Object> update( @RequestBody MesSemiProVo entity) {
pdmBdVehicleBindingService.update(entity); pdmBdVehicleBindingService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/vehiclebiding/service/IPdmBdVehicleBindingService.java

@ -3,6 +3,7 @@ package org.nl.wms.pdm.vehiclebiding.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.wms.ext.mes.service.dto.MesSemiProVo;
import org.nl.wms.pdm.vehiclebiding.service.dao.PdmBdVehicleBinding; import org.nl.wms.pdm.vehiclebiding.service.dao.PdmBdVehicleBinding;
import java.util.Map; import java.util.Map;
@ -29,14 +30,14 @@ public interface IPdmBdVehicleBindingService extends IService<PdmBdVehicleBindin
* *
* @param entity / * @param entity /
*/ */
void create(PdmBdVehicleBinding entity); void create(MesSemiProVo entity);
/** /**
* 编辑 * 编辑
* *
* @param entity / * @param entity /
*/ */
void update(PdmBdVehicleBinding entity); void update(MesSemiProVo entity);
/** /**
* 多选删除 * 多选删除

86
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/vehiclebiding/service/impl/PdmBdVehicleBindingServiceImpl.java

@ -2,6 +2,7 @@ package org.nl.wms.pdm.vehiclebiding.service.impl;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -9,9 +10,16 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.wms.ext.mes.service.WmsToMesService;
import org.nl.wms.ext.mes.service.dto.MesSemiProDto;
import org.nl.wms.ext.mes.service.dto.MesSemiProVo;
import org.nl.wms.pdm.vehiclebiding.service.IPdmBdVehicleBindingService; import org.nl.wms.pdm.vehiclebiding.service.IPdmBdVehicleBindingService;
import org.nl.wms.pdm.vehiclebiding.service.dao.PdmBdVehicleBinding; import org.nl.wms.pdm.vehiclebiding.service.dao.PdmBdVehicleBinding;
import org.nl.wms.pdm.vehiclebiding.service.dao.mapper.PdmBdVehicleBindingMapper; import org.nl.wms.pdm.vehiclebiding.service.dao.mapper.PdmBdVehicleBindingMapper;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -29,9 +37,14 @@ public class PdmBdVehicleBindingServiceImpl extends ServiceImpl<PdmBdVehicleBind
@Autowired @Autowired
private PdmBdVehicleBindingMapper pdmBdVehicleBindingMapper; private PdmBdVehicleBindingMapper pdmBdVehicleBindingMapper;
@Autowired
private WmsToMesService wmsToMesService;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Override @Override
public IPage<PdmBdVehicleBinding> queryAll(Map whereJson, PageQuery page) { public IPage<PdmBdVehicleBinding> queryAll(Map whereJson, PageQuery page) {
// update: 换成从MES获取
LambdaQueryWrapper<PdmBdVehicleBinding> lam = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PdmBdVehicleBinding> lam = new LambdaQueryWrapper<>();
IPage<PdmBdVehicleBinding> pages = new Page<>(page.getPage() + 1, page.getSize()); IPage<PdmBdVehicleBinding> pages = new Page<>(page.getPage() + 1, page.getSize());
pdmBdVehicleBindingMapper.selectPage(pages, lam); pdmBdVehicleBindingMapper.selectPage(pages, lam);
@ -39,23 +52,70 @@ public class PdmBdVehicleBindingServiceImpl extends ServiceImpl<PdmBdVehicleBind
} }
@Override @Override
public void create(PdmBdVehicleBinding entity) { public void create(MesSemiProVo entity) {
String now = DateUtil.now(); String vehicleCode = entity.getWood_VEHICLE_CODE();
entity.setAssociate_id(IdUtil.getSnowflake(1, 1).nextIdStr()); String qty = entity.getWood_QTY();
entity.setRecord_time(now); String qty1 = entity.getSteel_QTY1();
pdmBdVehicleBindingMapper.insert(entity); String vehicleCode1 = entity.getSteel_VEHICLE_CODE1();
if (ObjectUtil.isEmpty(vehicleCode)) {
throw new BadRequestException("木托盘的载具号不能为空!");
}
if (ObjectUtil.isEmpty(qty)) {
throw new BadRequestException("木托盘的物料数量不能为空!");
}
if (ObjectUtil.isEmpty(vehicleCode1) || ObjectUtil.isEmpty(qty1)) {
throw new BadRequestException("钢托盘至少需要一个");
}
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getGroupInfoNoTypeAndWood(vehicleCode,
GroupBindMaterialStatusEnum.BOUND.getValue());
if (ObjectUtil.isEmpty(groupEntity)) {
// 没有组盘信息就找解绑的盘
groupEntity = vehiclematerialgroupService.getGroupInfoNoTypeAndWood(vehicleCode,
GroupBindMaterialStatusEnum.UNBOUND.getValue());
} }
if (ObjectUtil.isEmpty(groupEntity)) {
// 还找不到
throw new BadRequestException("找不到木托盘-载具号:" + vehicleCode + "的组盘信息");
}
String pcsn1 = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode(vehicleCode1, GeneralDefinition.STEEL_TRAY);
if (ObjectUtil.isEmpty(pcsn1)) {
// 还找不到
throw new BadRequestException("找不到木托盘-载具号:" + vehicleCode1 + "的组盘信息");
}
String qty2 = ObjectUtil.isNotEmpty(entity.getSteel_QTY2()) ? entity.getSteel_QTY2() : "-";
String vehicleCode2 = ObjectUtil.isNotEmpty(entity.getSteel_VEHICLE_CODE2())
? entity.getSteel_VEHICLE_CODE2() : "-";
String pcsn2 = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode(vehicleCode2, GeneralDefinition.STEEL_TRAY);
String qty3 = ObjectUtil.isNotEmpty(entity.getSteel_QTY3()) ? entity.getSteel_QTY3() : "-";
String vehicleCode3 = ObjectUtil.isNotEmpty(entity.getSteel_VEHICLE_CODE3())
? entity.getSteel_VEHICLE_CODE3() : "-";
String pcsn3 = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode(vehicleCode3, GeneralDefinition.STEEL_TRAY);
@Override // 调用mes
public void update(PdmBdVehicleBinding entity) { // 初始化数据
PdmBdVehicleBinding dto = pdmBdVehicleBindingMapper.selectById(entity.getAssociate_id()); MesSemiProDto mesSemiProDto = new MesSemiProDto();
if (dto == null) { mesSemiProDto.setRECORD_ID(IdUtil.getSnowflake(1, 1).nextIdStr());
throw new BadRequestException("被删除或无权限,操作失败!"); mesSemiProDto.setWOOD_VEHICLE_CODE(vehicleCode);
mesSemiProDto.setWOOD_QTY(String.valueOf(qty));
mesSemiProDto.setWOOD_PCSN(groupEntity.getPcsn());
mesSemiProDto.setSTEEL_VEHICLE_CODE1(vehicleCode1);
mesSemiProDto.setSTEEL_VEHICLE_CODE2(vehicleCode2);
mesSemiProDto.setSTEEL_VEHICLE_CODE3(vehicleCode3);
mesSemiProDto.setSTEEL_PCSN1(pcsn1);
mesSemiProDto.setSTEEL_PCSN2(pcsn2);
mesSemiProDto.setSTEEL_PCSN3(pcsn3);
mesSemiProDto.setSTEEL_QTY1(qty1);
mesSemiProDto.setSTEEL_QTY2(qty2);
mesSemiProDto.setSTEEL_QTY3(qty3);
mesSemiProDto.setRECORD_TIME(DateUtil.now());
mesSemiProDto.setCREATE_TM(DateUtil.now());
mesSemiProDto.setOP_FLAG(GeneralDefinition.NO);
wmsToMesService.reportSemiProToMes(mesSemiProDto);
} }
String now = DateUtil.now();
entity.setRecord_time(now);
pdmBdVehicleBindingMapper.updateById(entity); @Override
public void update(MesSemiProVo entity) {
wmsToMesService.updateByMesSemiProVo(entity);
} }
@Override @Override

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/ISchBaseVehiclematerialgroupService.java

@ -108,4 +108,20 @@ public interface ISchBaseVehiclematerialgroupService extends IService<SchBaseVeh
* @return * @return
*/ */
SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value); SchBaseVehiclematerialgroup getOneByVehicleCode(String vehicleCode, String value);
/**
* 获取新旧组盘信息的批次
* @param vehicleCode 条码
* @param vehicleType 类型
* @return 批次
*/
String getNowOrOldPcsnByVehicleCode(String vehicleCode, String vehicleType);
/**
* 查找非钢托盘的数据
* @param vehicleCode
* @param value
* @return
*/
SchBaseVehiclematerialgroup getGroupInfoNoTypeAndWood(String vehicleCode, String value);
} }

8
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.java

@ -17,4 +17,12 @@ public interface SchBaseVehiclematerialgroupMapper extends BaseMapper<SchBaseVeh
SchBaseVehiclematerialgroup getGroup(JSONObject entity); SchBaseVehiclematerialgroup getGroup(JSONObject entity);
int getInventoryQtyByMaterialId(String materialId); int getInventoryQtyByMaterialId(String materialId);
/**
* 获取新/旧的组盘批次
* @param vehicleCode 条码
* @param vehicleType 类型
* @return 批次
*/
String getNowOrOldPcsnByVehicleCode(String vehicleCode, String vehicleType);
} }

10
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml

@ -71,4 +71,14 @@
AND vg.group_id IS NOT NULL AND vg.group_id IS NOT NULL
AND vg.material_id = #{materialId} AND vg.material_id = #{materialId}
</select> </select>
<select id="getNowOrOldPcsnByVehicleCode" resultType="java.lang.String">
SELECT
vg.pcsn
FROM
`sch_base_vehiclematerialgroup` vg
WHERE vg.vehicle_code = #{vehicleCode} AND vg.vehicle_type = #{vehicleType}
AND vg.group_bind_material_status IN ('2', '3')
ORDER BY vg.group_bind_material_status, vg.update_time DESC
LIMIT 1
</select>
</mapper> </mapper>

37
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java

@ -12,13 +12,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery; import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils; import org.nl.common.utils.SecurityUtils;
import org.nl.wms.database.material.service.IMdBaseMaterialService;
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper; import org.nl.wms.sch.group.service.dao.mapper.SchBaseVehiclematerialgroupMapper;
import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery; import org.nl.wms.sch.group.service.dto.SchBaseVehiclematerialgroupQuery;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum; import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.util.TaskUtils; import org.nl.wms.util.TaskUtils;
@ -40,12 +37,6 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
@Autowired @Autowired
private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper; private SchBaseVehiclematerialgroupMapper vehiclematerialgroupMapper;
@Autowired
private IPdmBdWorkorderService workorderService;
@Autowired
private ISchBasePointService pointService;
@Autowired
private IMdBaseMaterialService materialService;
@Override @Override
public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) { public IPage<SchBaseVehiclematerialgroup> queryAll(SchBaseVehiclematerialgroupQuery whereJson, PageQuery page) {
@ -123,7 +114,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda(); LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode) lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value) .eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false); .eq(SchBaseVehiclematerialgroup::getIs_delete, false)
.orderByDesc(SchBaseVehiclematerialgroup::getUpdate_time);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda); List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null; return selectOne.size() > 0 ? selectOne.get(0) : null;
} }
@ -138,7 +130,8 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda(); LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode) lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType) .eq(SchBaseVehiclematerialgroup::getVehicle_type, vehicleType)
.ne(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.BOUND.getValue()) // 不是解绑的
.ne(SchBaseVehiclematerialgroup::getGroup_bind_material_status, GroupBindMaterialStatusEnum.UNBOUND.getValue())
.eq(SchBaseVehiclematerialgroup::getIs_delete, false); .eq(SchBaseVehiclematerialgroup::getIs_delete, false);
List<SchBaseVehiclematerialgroup> list = vehiclematerialgroupMapper.selectList(lambda); List<SchBaseVehiclematerialgroup> list = vehiclematerialgroupMapper.selectList(lambda);
list.forEach(schBaseVehiclematerialgroup -> { list.forEach(schBaseVehiclematerialgroup -> {
@ -163,4 +156,26 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
return selectOne.size() > 0 ? selectOne.get(0) : null; return selectOne.size() > 0 ? selectOne.get(0) : null;
} }
@Override
public String getNowOrOldPcsnByVehicleCode(String vehicleCode, String vehicleType) {
if ("-".equals(vehicleCode)) {
return "-";
}
String pcsn = vehiclematerialgroupMapper.getNowOrOldPcsnByVehicleCode(vehicleCode, vehicleType);
return ObjectUtil.isNotEmpty(pcsn) ? pcsn : "-";
}
@Override
public SchBaseVehiclematerialgroup getGroupInfoNoTypeAndWood(String vehicleCode, String value) {
LambdaQueryWrapper<SchBaseVehiclematerialgroup> lambda = new QueryWrapper<SchBaseVehiclematerialgroup>().lambda();
lambda.eq(SchBaseVehiclematerialgroup::getVehicle_code, vehicleCode)
.eq(SchBaseVehiclematerialgroup::getGroup_bind_material_status, value)
.eq(SchBaseVehiclematerialgroup::getIs_delete, false)
.ne(SchBaseVehiclematerialgroup::getVehicle_type, GeneralDefinition.STEEL_TRAY)
.ne(SchBaseVehiclematerialgroup::getVehicle_type, GeneralDefinition.MATERIAL_CUP)
.orderByDesc(SchBaseVehiclematerialgroup::getUpdate_time);
List<SchBaseVehiclematerialgroup> selectOne = vehiclematerialgroupMapper.selectList(lambda);
return selectOne.size() > 0 ? selectOne.get(0) : null;
}
} }

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task/service/impl/SchBaseTaskServiceImpl.java

@ -142,8 +142,8 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
} }
@Override @Override
public List<SchBaseTask> findApplyTasksByTaskStatus(String... config_code) { public List<SchBaseTask> findApplyTasksByTaskStatus(String... configCode) {
List<String> configList = Arrays.stream(config_code).collect(Collectors.toList()); List<String> configList = Arrays.stream(configCode).collect(Collectors.toList());
LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>(); LambdaQueryWrapper<SchBaseTask> lam = new LambdaQueryWrapper<>();
lam.in(SchBaseTask::getConfig_code, configList) lam.in(SchBaseTask::getConfig_code, configList)
.eq(SchBaseTask::getTask_status, TaskStatus.APPLY.getCode()) .eq(SchBaseTask::getTask_status, TaskStatus.APPLY.getCode())

41
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJMKTask.java

@ -5,10 +5,12 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.nl.common.exception.BadRequestException; import org.nl.common.exception.BadRequestException;
import org.nl.system.service.notice.ISysNoticeService; import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.ext.acs.service.WmsToAcsService; import org.nl.wms.ext.mes.service.WmsToMesService;
import org.nl.wms.ext.mes.service.dto.MesSemiProDto;
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService; import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
@ -60,7 +62,7 @@ public class FJMKTask extends AbstractTask {
@Autowired @Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService; private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Autowired @Autowired
private WmsToAcsService wmsToAcsService; private WmsToMesService wmsToMesService;
@Override @Override
public void create() throws BadRequestException { public void create() throws BadRequestException {
@ -135,7 +137,7 @@ public class FJMKTask extends AbstractTask {
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @DSTransactional(rollbackFor = Exception.class)
public void createCompletion(SchBaseTask task) { public void createCompletion(SchBaseTask task) {
// 配置信息 // 配置信息
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>() SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
@ -206,6 +208,20 @@ public class FJMKTask extends AbstractTask {
if (isFull == null) { if (isFull == null) {
isFull = GeneralDefinition.YES; isFull = GeneralDefinition.YES;
} }
// update: 新增钢托盘对应的数量和批次和钢托盘号
// hint: 获取各自组盘信息。这里可能被解绑了,所以,未解绑的数据没拿到,就拿解绑的数据
String qty1 = ObjectUtil.isNotEmpty(param.getString("qty1")) ? param.getString("qty1") : "-";
String vehicleCode1 = ObjectUtil.isNotEmpty(param.getString("vehicle_code1"))
? param.getString("vehicle_code1") : "-";
String pcsn1 = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode(vehicleCode1, GeneralDefinition.STEEL_TRAY);
String qty2 = ObjectUtil.isNotEmpty(param.getString("qty2")) ? param.getString("qty2") : "-";
String vehicleCode2 = ObjectUtil.isNotEmpty(param.getString("vehicle_code2"))
? param.getString("vehicle_code2") : "-";
String pcsn2 = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode(vehicleCode2, GeneralDefinition.STEEL_TRAY);
String qty3 = ObjectUtil.isNotEmpty(param.getString("qty3")) ? param.getString("qty3") : "-";
String vehicleCode3 = ObjectUtil.isNotEmpty(param.getString("vehicle_code3"))
? param.getString("vehicle_code3") : "-";
String pcsn3 = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode(vehicleCode3, GeneralDefinition.STEEL_TRAY);
// 砖块数量 // 砖块数量
Integer qty = param.getInteger("qty"); Integer qty = param.getInteger("qty");
SchBasePoint basePoint = pointService.getById(deviceCode); SchBasePoint basePoint = pointService.getById(deviceCode);
@ -246,6 +262,25 @@ public class FJMKTask extends AbstractTask {
groupEntity.setIs_delete(false); groupEntity.setIs_delete(false);
groupEntity.setIs_full(isFull.equals(GeneralDefinition.YES)); groupEntity.setIs_full(isFull.equals(GeneralDefinition.YES));
vehiclematerialgroupService.saveOrUpdate(groupEntity); vehiclematerialgroupService.saveOrUpdate(groupEntity);
// hint: 记录数据上报MES
MesSemiProDto mesSemiProDto = new MesSemiProDto();
mesSemiProDto.setRECORD_ID(IdUtil.getSnowflake(1, 1).nextIdStr());
mesSemiProDto.setWOOD_VEHICLE_CODE(vehicleCode);
mesSemiProDto.setWOOD_QTY(String.valueOf(qty));
mesSemiProDto.setWOOD_PCSN(groupEntity.getPcsn());
mesSemiProDto.setSTEEL_VEHICLE_CODE1(vehicleCode1);
mesSemiProDto.setSTEEL_VEHICLE_CODE2(vehicleCode2);
mesSemiProDto.setSTEEL_VEHICLE_CODE3(vehicleCode3);
mesSemiProDto.setSTEEL_PCSN1(pcsn1);
mesSemiProDto.setSTEEL_PCSN2(pcsn2);
mesSemiProDto.setSTEEL_PCSN3(pcsn3);
mesSemiProDto.setSTEEL_QTY1(qty1);
mesSemiProDto.setSTEEL_QTY2(qty2);
mesSemiProDto.setSTEEL_QTY3(qty3);
mesSemiProDto.setRECORD_TIME(DateUtil.now());
mesSemiProDto.setCREATE_TM(DateUtil.now());
mesSemiProDto.setOP_FLAG(GeneralDefinition.NO);
wmsToMesService.reportSemiProToMes(mesSemiProDto);
// 返回组盘id记录任务中 // 返回组盘id记录任务中
return groupEntity.getGroup_id(); return groupEntity.getGroup_id();
} }

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/gtx/HCSSXMLTask.java

@ -136,11 +136,7 @@ public class HCSSXMLTask extends AbstractTask {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) { public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
String endPoint = taskObj.getPoint_code2();
SchBasePoint endPointObj = pointService.selectByIdLock(endPoint);
if (ObjectUtil.isNotEmpty(endPointObj)) {
// update: 终点解锁 - 解锁由入窑口02上报有货修改 // update: 终点解锁 - 解锁由入窑口02上报有货修改
}
// 任务完成 // 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode()); taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark(GeneralDefinition.TASK_FINISH); taskObj.setRemark(GeneralDefinition.TASK_FINISH);

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java

@ -222,7 +222,6 @@ public class HNMLTask extends AbstractTask {
String requestParam = taskObj.getRequest_param(); String requestParam = taskObj.getRequest_param();
JSONObject responseObj = JSONObject.parseObject(responseParam); JSONObject responseObj = JSONObject.parseObject(responseParam);
JSONObject requestObj = JSONObject.parseObject(requestParam); JSONObject requestObj = JSONObject.parseObject(requestParam);
String recordId = requestObj.getString("record_id");
// 要把数据存到组盘表。压制工单放进去, // 要把数据存到组盘表。压制工单放进去,
SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne( SchBaseVehiclematerialgroup groupEntity = vehiclematerialgroupService.getOne(
new LambdaQueryWrapper<SchBaseVehiclematerialgroup>() new LambdaQueryWrapper<SchBaseVehiclematerialgroup>()
@ -251,7 +250,8 @@ public class HNMLTask extends AbstractTask {
PointUtils.setUpdateByType(yjDevice, taskFinishedType); PointUtils.setUpdateByType(yjDevice, taskFinishedType);
yjDevice.setPoint_status(PointStatusEnum.FULL_POINT.getCode()); yjDevice.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
pointService.updateById(yjDevice); pointService.updateById(yjDevice);
PdmBdRequestMaterialRecord materialRecord = requestMaterialRecordService.getById(recordId); PdmBdRequestMaterialRecord materialRecord = requestMaterialRecordService
.getById(requestObj.getString("record_id"));
// 找压机工单 -> 根据压机要料表对应的工单 // 找压机工单 -> 根据压机要料表对应的工单
PdmBdWorkorder one = workorderService.getByCode(materialRecord.getWorkorder_id()); PdmBdWorkorder one = workorderService.getByCode(materialRecord.getWorkorder_id());
if (ObjectUtil.isNotEmpty(one)) { if (ObjectUtil.isNotEmpty(one)) {

20
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/CommonUtils.java

@ -7,6 +7,7 @@ import org.nl.wms.ext.acs.service.dto.to.acs.PutActionRequest;
import org.nl.wms.sch.task_manage.enums.TagNameEnum; import org.nl.wms.sch.task_manage.enums.TagNameEnum;
import org.slf4j.MDC; import org.slf4j.MDC;
import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Duration; import java.time.Duration;
@ -123,4 +124,23 @@ public class CommonUtils {
return list; return list;
} }
public static BigDecimal dTOAMinutes(String data1, String data2) {
String dateFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
try {
// 解析第一个时间字符串
Date date1 = sdf.parse(data1);
// 解析第二个时间字符串
Date date2 = sdf.parse(data2);
// 计算分钟差
long differenceInMilliseconds = date2.getTime() - date1.getTime();
long differenceInMinutes = differenceInMilliseconds / (60 * 1000);
return BigDecimal.valueOf(differenceInMinutes);
} catch (ParseException e) {
log.error("计算时间差出错-参数:{} - 异常信息:{}", data1+"-"+data2, e.getMessage());
e.printStackTrace();
}
return BigDecimal.valueOf(0);
}
} }

2
lms/nladmin-system/nlsso-server/src/main/resources/ext.dic

@ -29,3 +29,5 @@
自动下发混碾 自动下发混碾
下发混碾失败 下发混碾失败
看板【当月工单】日志 看板【当月工单】日志
分拣-上报MES分拣对应关系数据
分拣插入MES分拣对应关系失败

2
lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml

@ -51,7 +51,7 @@ https://juejin.cn/post/6844903775631572999
</appender> </appender>
<appender name="luceneAppender" class="org.nl.config.lucene.LuceneAppender" > <appender name="luceneAppender" class="org.nl.config.lucene.LuceneAppender" >
<filter class="ch.qos.logback.classic.filter.LevelFilter"> <filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level> <level>INFO</level>
<onMatch>ACCEPT</onMatch> <onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch> <onMismatch>DENY</onMismatch>
</filter> </filter>

9
lms/nladmin-system/nlsso-server/src/test/java/org/nl/ext/TestDemo.java

@ -13,6 +13,7 @@ import org.nl.common.utils.CodeUtil;
import org.nl.wms.ext.acs.service.dto.to.wms.ApplyDeviceDto; import org.nl.wms.ext.acs.service.dto.to.wms.ApplyDeviceDto;
import org.nl.wms.ext.mes.service.WmsToMesService; import org.nl.wms.ext.mes.service.WmsToMesService;
import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper; import org.nl.wms.ext.mes.service.dao.mapper.MesRequestMapper;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
@ -36,6 +37,8 @@ public class TestDemo {
private MesRequestMapper mesRequestMapper; private MesRequestMapper mesRequestMapper;
@Autowired @Autowired
private WmsToMesService wmsToMesService; private WmsToMesService wmsToMesService;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
private static AtomicInteger countUp = new AtomicInteger(0); // 上层数量 private static AtomicInteger countUp = new AtomicInteger(0); // 上层数量
private static AtomicInteger countLower = new AtomicInteger(0); // 下层数量 private static AtomicInteger countLower = new AtomicInteger(0); // 下层数量
@Test @Test
@ -184,4 +187,10 @@ public class TestDemo {
} }
} }
@Test
void getVG() {
String pcsn = vehiclematerialgroupService.getNowOrOldPcsnByVehicleCode("1031", "GTP");
System.out.println(pcsn);
}
} }

2
lms/nladmin-ui/src/layout/components/Navbar.vue

@ -129,7 +129,7 @@ export default {
}, },
initWebSocket() { initWebSocket() {
// const wsUri = (process.env.VUE_APP_WS_API === '/' ? '/' : (process.env.VUE_APP_WS_API + '/')) + 'messageInfo' // const wsUri = (process.env.VUE_APP_WS_API === '/' ? '/' : (process.env.VUE_APP_WS_API + '/')) + 'messageInfo'
const wsUri = window.g.prod.VUE_APP_BASE_API.replace('http', 'ws') + '/webSocket/' + 'messageInfo' const wsUri = process.env.VUE_APP_WS_API + '/webSocket/' + 'messageInfo'
this.websock = new WebSocket(wsUri) this.websock = new WebSocket(wsUri)
this.websock.onerror = this.webSocketOnError this.websock.onerror = this.webSocketOnError
this.websock.onmessage = this.webSocketOnMessage this.websock.onmessage = this.webSocketOnMessage

2
lms/nladmin-ui/src/views/system/menu/index.vue

@ -241,7 +241,7 @@ export default {
name: 'Menu', name: 'Menu',
components: { Treeselect, IconSelect, crudOperation, rrOperation, udOperation, DateRangePicker }, components: { Treeselect, IconSelect, crudOperation, rrOperation, udOperation, DateRangePicker },
cruds() { cruds() {
return CRUD({ title: '菜单', idField: 'menu_id', url: 'api/sysMenu', crudMethod: { ...crudMenu }}) return CRUD({ title: '菜单', idField: 'menu_id', crudMethod: { ...crudMenu }})
}, },
mixins: [presenter(), header(), form(defaultForm), crud()], mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['system_type'], dicts: ['system_type'],

99
lms/nladmin-ui/src/views/wms/pdm/vehiclebiding/index.vue

@ -5,37 +5,31 @@
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'--> <!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" /> <crudOperation :permission="permission" />
<!--表单组件--> <!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px"> <el-dialog class="demo-form-inline" :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="820px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px"> <el-form ref="form" :inline="true" :model="form" :rules="rules" size="mini" label-width="135px">
<el-form-item label="源载具编码"> <el-form-item label="木托盘编码">
<el-input v-model="form.origin_vehicle_code" style="width: 370px;" /> <el-input v-model="form.wood_VEHICLE_CODE" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="源载具类型"> <el-form-item label="木托盘数量">
<el-input v-model="form.origin_vehicle_type" style="width: 370px;" /> <el-input v-model="form.wood_QTY" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="目标载具编码"> <el-form-item label="钢托盘编码1">
<el-input v-model="form.target_vehicle_code" style="width: 370px;" /> <el-input v-model="form.steel_VEHICLE_CODE1" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="目标载具类型"> <el-form-item label="钢托盘数量1">
<el-input v-model="form.target_vehicle_type" style="width: 370px;" /> <el-input v-model="form.steel_QTY1" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="源当前物料数量"> <el-form-item label="钢托盘编码2">
<el-input v-model="form.origin_qty" style="width: 370px;" /> <el-input v-model="form.steel_VEHICLE_CODE2" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="目标当前物料数量"> <el-form-item label="钢托盘数量2">
<el-input v-model="form.target_qty" style="width: 370px;" /> <el-input v-model="form.steel_QTY2" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="取货点"> <el-form-item label="钢托盘编码3">
<el-input v-model="form.get_station" style="width: 370px;" /> <el-input v-model="form.steel_VEHICLE_CODE3" style="width: 240px;" />
</el-form-item> </el-form-item>
<el-form-item label="放货点"> <el-form-item label="钢托盘数量3">
<el-input v-model="form.put_station" style="width: 370px;" /> <el-input v-model="form.steel_QTY3" style="width: 240px;" />
</el-form-item>
<el-form-item label="工单号">
<el-input v-model="form.order_code" style="width: 370px;" />
</el-form-item>
<el-form-item label="记录时间">
<el-input v-model="form.record_time" style="width: 370px;" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -46,20 +40,24 @@
<!--表格渲染--> <!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler"> <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 type="selection" width="55" />
<el-table-column prop="origin_vehicle_code" label="源载具编码" :min-width="flexWidth('origin_vehicle_code',crud.data,'源载具编码')"/> <el-table-column prop="wood_VEHICLE_CODE" label="木托盘编码" :min-width="flexWidth('wood_VEHICLE_CODE',crud.data,'木托盘编码')" />
<el-table-column prop="origin_vehicle_type" label="源载具类型" :min-width="flexWidth('origin_vehicle_type',crud.data,'源载具类型')"/> <el-table-column prop="wood_QTY" label="木托盘数量" :min-width="flexWidth('wood_QTY',crud.data,'木托盘数量')" />
<el-table-column prop="target_vehicle_code" label="目标载具编码" :min-width="flexWidth('target_vehicle_code',crud.data,'目标载具编码')"/> <el-table-column prop="wood_PCSN" label="木托盘批次" :min-width="flexWidth('wood_PCSN',crud.data,'木托盘批次')" />
<el-table-column prop="target_vehicle_type" label="目标载具类型" :min-width="flexWidth('target_vehicle_type',crud.data,'目标载具类型')"/> <el-table-column prop="steel_VEHICLE_CODE1" label="钢托盘编码1" :min-width="flexWidth('steel_VEHICLE_CODE1',crud.data,'钢托盘编码1')" />
<el-table-column prop="origin_qty" label="源当前物料数量" :min-width="flexWidth('origin_qty',crud.data,'源当前物料数量')"/> <el-table-column prop="steel_QTY1" label="钢托盘数量1" :min-width="flexWidth('steel_QTY1',crud.data,'钢托盘数量1')" />
<el-table-column prop="target_qty" label="目标当前物料数量" :min-width="flexWidth('target_qty',crud.data,'目标当前物料数量')"/> <el-table-column prop="steel_PCSN1" label="钢托盘批次1" :min-width="flexWidth('steel_PCSN1',crud.data,'钢托盘批次1')" />
<el-table-column prop="get_station" label="取货点" :min-width="flexWidth('get_station',crud.data,'取货点')"/> <el-table-column prop="steel_VEHICLE_CODE2" label="钢托盘编码2" :min-width="flexWidth('steel_VEHICLE_CODE2',crud.data,'钢托盘编码1')" />
<el-table-column prop="put_station" label="放货点" :min-width="flexWidth('put_station',crud.data,'放货点')"/> <el-table-column prop="steel_QTY2" label="钢托盘数量2" :min-width="flexWidth('steel_QTY2',crud.data,'钢托盘数量1')" />
<el-table-column prop="order_code" label="工单号" :min-width="flexWidth('order_code',crud.data,'工单号')"/> <el-table-column prop="steel_PCSN2" label="钢托盘批次2" :min-width="flexWidth('steel_PCSN2',crud.data,'钢托盘批次1')" />
<el-table-column prop="record_time" label="记录时间" :min-width="flexWidth('record_time',crud.data,'记录时间')"/> <el-table-column prop="steel_VEHICLE_CODE3" label="钢托盘编码3" :min-width="flexWidth('steel_VEHICLE_CODE3',crud.data,'钢托盘编码1')" />
<el-table-column prop="steel_QTY3" label="钢托盘数量3" :min-width="flexWidth('steel_QTY3',crud.data,'钢托盘数量1')" />
<el-table-column prop="steel_PCSN3" label="钢托盘批次3" :min-width="flexWidth('steel_PCSN3',crud.data,'钢托盘批次1')" />
<el-table-column prop="record_TIME" label="记录时间" :min-width="flexWidth('record_TIME',crud.data,'记录时间')" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right"> <el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<udOperation <udOperation
:data="scope.row" :data="scope.row"
:is-visiable-del="false"
:permission="permission" :permission="permission"
/> />
</template> </template>
@ -80,17 +78,24 @@ import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
const defaultForm = { const defaultForm = {
associate_id: null, record_ID: null,
origin_vehicle_code: null, wood_VEHICLE_CODE: null,
origin_vehicle_type: null, wood_QTY: null,
target_vehicle_code: null, wood_PCSN: null,
target_vehicle_type: null, steel_VEHICLE_CODE1: null,
origin_qty: null, steel_QTY1: null,
target_qty: null, steel_PCSN1: null,
get_station: null, steel_VEHICLE_CODE2: null,
put_station: null, steel_QTY2: null,
order_code: null, steel_PCSN2: null,
record_time: null steel_VEHICLE_CODE3: null,
steel_QTY3: null,
steel_PCSN3: null,
record_TIME: null,
create_TM: null,
op_FLAG: null,
op_TM: null,
op_REPLAY: null
} }
export default { export default {
name: 'PdmBdVehicleBinding', name: 'PdmBdVehicleBinding',
@ -100,8 +105,8 @@ export default {
return CRUD({ return CRUD({
title: '分拣载具关联记录', title: '分拣载具关联记录',
url: 'api/pdmBdVehicleBinding', url: 'api/pdmBdVehicleBinding',
idField: 'associate_id', idField: 'record_ID',
sort: 'associate_id,desc', sort: 'record_id,desc',
crudMethod: { ...crudPdmBdVehicleBinding } crudMethod: { ...crudPdmBdVehicleBinding }
}) })
}, },

Loading…
Cancel
Save