Browse Source

opt: 任务与工单

master
李永德 2 years ago
parent
commit
68d72ada2b
  1. 28
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/YmlConfigFileUtil.java
  2. 9
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java
  3. 22
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/autotask/AutoCallMaterials.java
  4. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java
  5. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/dto/MesWorkOrderDto.java
  6. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java
  7. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java
  8. 10
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java
  9. 15
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java
  10. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java
  11. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/PdmBdRequestMaterialRecord.java
  12. 12
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java
  13. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java
  14. 8
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java
  15. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dao/mapper/SchBaseVehiclematerialgroupMapper.xml
  16. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupQuery.java
  17. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java
  18. 17
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/hn/HNMLTask.java
  19. 17
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java
  20. 4
      lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml
  21. 3
      lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml
  22. 4
      lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml
  23. 4
      lms/nladmin-system/nlsso-server/src/main/resources/ext.dic
  24. 18
      lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
  25. 56
      lms/nladmin-ui/src/views/wms/ext/record/index.vue
  26. 4
      lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
  27. 25
      lms/nladmin-ui/src/views/wms/sch/group/index.vue

28
lms/nladmin-system/nlsso-server/src/main/java/org/nl/common/utils/YmlConfigFileUtil.java

@ -0,0 +1,28 @@
package org.nl.common.utils;
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.util.Properties;
/**
* @Author: lyd
* @Description: 配置文件获取方法
* @Date: 2023/12/6
*/
public class YmlConfigFileUtil {
public static Properties readConfig(String configFile) {
// 创建 Resource 对象
Resource resource = new ClassPathResource(configFile);
// 创建 YamlPropertiesFactoryBean
YamlPropertiesFactoryBean yamlPropertiesFactoryBean = new YamlPropertiesFactoryBean();
yamlPropertiesFactoryBean.setResources(resource);
// 获取 Properties 对象
Properties properties = yamlPropertiesFactoryBean.getObject();
return properties;
}
}

9
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java

@ -16,11 +16,13 @@ import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.nl.common.utils.YmlConfigFileUtil;
import org.wltea.analyzer.lucene.IKAnalyzer;
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Map;
import java.util.Properties;
public class LuceneAppender extends AppenderBase<ILoggingEvent> {
@ -32,7 +34,12 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
public void start() {
super.start();
try {
index = FSDirectory.open(Paths.get(LogMessageConstant.INDEX_DIR));
// 读取配置文件
Properties properties = YmlConfigFileUtil.readConfig("config/application.yml");
// 获取配置值
String luceneDir = properties.getProperty("lucene.index.path");
index = FSDirectory.open(Paths.get(luceneDir));
} catch (IOException e) {
e.printStackTrace();
}

22
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/autotask/AutoCallMaterials.java

@ -37,7 +37,8 @@ public class AutoCallMaterials {
// 判断是否可以叫料,可以就下发给混碾系统
workorderList.forEach(workorder -> {
if (workorder.getReal_weight().compareTo(workorder.getPlan_weight()) >= 0) {
return; // 不需要请求,等待工单完工
// 不需要请求,等待工单完工
return;
}
// 校验记录表是否达到两条
List<PdmBdRequestMaterialRecord> list = requestMaterialRecordService.list(
@ -47,16 +48,6 @@ public class AutoCallMaterials {
if (list.size() >= 2) {
return;
}
try {
// 记录数据
PdmBdRequestMaterialRecord requestMaterialRecord = requestMaterialRecordService.recordData(workorder);
log.info("记录自动要料信息:{}", requestMaterialRecord);
} catch (Exception e) {
log.error("插入LMS数据库失败,{}", e.getMessage());
log.error("插入LMS数据库失败数据:{}", workorder);
return;
}
// todo: 如何保证上下的一致性?
try {
// 下发混碾
wmsToMmsService.addRequestMaterial(workorder);
@ -64,6 +55,15 @@ public class AutoCallMaterials {
} catch (Exception e) {
log.error("下发混碾失败,{}", e.getMessage());
log.error("下发混碾失败数据:{}", workorder);
return;
}
try {
// 记录数据
PdmBdRequestMaterialRecord requestMaterialRecord = requestMaterialRecordService.recordData(workorder);
log.info("记录自动要料信息:{}", requestMaterialRecord);
} catch (Exception e) {
log.error("插入LMS数据库失败,{}", e.getMessage());
log.error("插入LMS数据库失败数据:{}", workorder);
}
});
}

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

@ -657,7 +657,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (ObjectUtil.isEmpty(one)) {
throw new BadRequestException("载具编码为" + baseRequest.getVehicle_code() + "组盘不存在!");
}
String yjDeviceCode = basePoint.getParent_point_code(); // 压机设备编码
// 压机设备编码
String yjDeviceCode = basePoint.getParent_point_code();
SchBasePoint devicePoint = pointService.getById(yjDeviceCode);
// 获取当前工单
PdmBdWorkorder productionTask = workorderService.getDeviceProductionTask(yjDeviceCode);
@ -949,7 +950,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
? schBasePoint.getPoint_status()
: PointStatusEnum.EMPTY_POINT.getCode();
if ((pointStatus.equals(PointStatusEnum.FULL_POINT.getCode())
&& move.equals(PointStatusEnum.EMPTY_VEHICLE.getCode())) || (pointStatus.equals(move))) { // 不做操作
&& move.equals(PointStatusEnum.EMPTY_VEHICLE.getCode())) || (pointStatus.equals(move))) {
return BaseResponse.responseOk(actionRequest.getRequestNo());
}
// 载具类型不为空,并且不是0的情况,lmsVehicleTypeShift:转成lms的载具类型

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

@ -40,10 +40,10 @@ public class MesWorkOrderDto {
/** 辅单位 */
private String FPRODUCT_SUBUNIT;
/** 数量 */
private String FPRODUCT_NUM;
private BigDecimal FPRODUCT_NUM;
/** 单位 */
private String FPRODUCT_UNIT;
/** 重量 */
/** 转换率 */
private String FCONVERTRATE;
/** 班组 */
private String FTEAM;

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

@ -579,6 +579,8 @@ public class WmsToMesServiceImpl implements WmsToMesService {
pdmBdWorkorder.setWorkorder_id(IdUtil.getSnowflake(1, 1).nextIdStr());
pdmBdWorkorder.setWorkorder_code(mesWorkOrderDto.getPWORKSCHE_ID());
pdmBdWorkorder.setPlan_qty(mesWorkOrderDto.getFPRODUCT_SUBNUM());
// 转成千克
pdmBdWorkorder.setPlan_weight(mesWorkOrderDto.getFPRODUCT_NUM().multiply(BigDecimal.valueOf(1000)));
pdmBdWorkorder.setMaterial_id(materialDto.getMaterial_id());
pdmBdWorkorder.setRaw_material_code(materialDto.getRaw_material_code());
pdmBdWorkorder.setProduce_order(mesWorkOrderDto.getFORDER_NO());

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/controller/SysInteractRecordController.java

@ -32,7 +32,6 @@ public class SysInteractRecordController {
@GetMapping
@Log("查询外部系统接口记录")
@ApiOperation("查询外部系统接口记录")
//@SaCheckPermission("@el.check('sysInteractRecord:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(sysInteractRecordService.queryAll(whereJson,page)),HttpStatus.OK);
}
@ -40,7 +39,6 @@ public class SysInteractRecordController {
@PostMapping
@Log("新增外部系统接口记录")
@ApiOperation("新增外部系统接口记录")
//@SaCheckPermission("@el.check('sysInteractRecord:add')")
public ResponseEntity<Object> create(@Validated @RequestBody SysInteractRecord entity){
sysInteractRecordService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
@ -49,7 +47,6 @@ public class SysInteractRecordController {
@PutMapping
@Log("修改外部系统接口记录")
@ApiOperation("修改外部系统接口记录")
//@SaCheckPermission("@el.check('sysInteractRecord:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody SysInteractRecord entity){
sysInteractRecordService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
@ -57,14 +54,12 @@ public class SysInteractRecordController {
@Log("删除外部系统接口记录")
@ApiOperation("删除外部系统接口记录")
//@SaCheckPermission("@el.check('sysInteractRecord:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
sysInteractRecordService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
//@SaCheckPermission("@el.check('sysInteractRecord:del')")
@GetMapping("/getAllName")
public ResponseEntity<Object> getAllName() {
return new ResponseEntity<>(sysInteractRecordService.getAllInteractName(), HttpStatus.OK);

10
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/ISysInteractRecordService.java

@ -65,11 +65,11 @@ public interface ISysInteractRecordService extends IService<SysInteractRecord> {
void saveRecord(AcsWorkOrderVo workorder, ResultForAcs resultForAcs, String direction);
/**
*
* @param name
* @param request
* @param response
* @param direction
* 保存对接记录
* @param name 保存对接记录
* @param request 请求参数
* @param response 响应参数分类别
* @param direction 请求方向
*/
<K, V> void saveRecord(String name, K request, V response, String direction);

15
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/record/service/impl/SysInteractRecordServiceImpl.java

@ -49,9 +49,12 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
? whereJson.get("interact_direction").toString() : null;
String interactName = ObjectUtil.isNotEmpty(whereJson.get("interact_name"))
? whereJson.get("interact_name").toString() : null;
String httpCode = ObjectUtil.isNotEmpty(whereJson.get("http_code"))
? whereJson.get("http_code").toString() : null;
LambdaQueryWrapper<SysInteractRecord> lam = new LambdaQueryWrapper<>();
lam.eq(interactDirection!=null, SysInteractRecord::getDirection, interactDirection)
.eq(ObjectUtil.isNotEmpty(interactName), SysInteractRecord::getInteract_name, interactName)
.eq(ObjectUtil.isNotEmpty(httpCode), SysInteractRecord::getCode, httpCode)
.and(blurry != null, s -> s.like(SysInteractRecord::getInteract_name, blurry)
.or()
.like(SysInteractRecord::getMessage, blurry)
@ -126,25 +129,29 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
entity.setDirection(direction);
entity.setRequest_param(JSONObject.toJSONString(request));
entity.setResponse_param(JSONObject.toJSONString(response));
if (response instanceof BaseResponse) { // acs请求wms的返回数据
// acs请求wms的返回数据
if (response instanceof BaseResponse) {
BaseResponse re = (BaseResponse) response;
entity.setCode(re.getCode());
entity.setMessage(re.getMessage());
entity.setIs_success(re.getCode() == HttpStatus.HTTP_OK);
}
if (response instanceof ResultForAcs) { // wms请求acs的返回数据
// wms请求acs的返回数据
if (response instanceof ResultForAcs) {
ResultForAcs re = (ResultForAcs) response;
entity.setCode(re.getStatus());
entity.setMessage(re.getMessage());
entity.setIs_success(re.getStatus() == HttpStatus.HTTP_OK);
}
if (response instanceof AcsResponse) { // wms请求acs的返回数据
// wms请求acs的返回数据
if (response instanceof AcsResponse) {
AcsResponse re = (AcsResponse) response;
entity.setCode(re.getCode());
entity.setMessage(re.getMessage());
entity.setIs_success(re.getCode() == HttpStatus.HTTP_OK);
}
if (response instanceof ResultForMes) { // wms请求mes的返回数据
// wms请求mes的返回数据
if (response instanceof ResultForMes) {
ResultForMes re = (ResultForMes) response;
entity.setCode(re.getStatus());
entity.setMessage(re.getMessage());

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/IPdmBdRequestMaterialRecordService.java

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import java.math.BigDecimal;
import java.util.Map;
import java.util.Set;
@ -44,9 +45,10 @@ public interface IPdmBdRequestMaterialRecordService extends IService<PdmBdReques
/**
* 叫料完成
* @param recordId
* @param recordId 记录id
* @param weight 重量
*/
void callMaterialFinish(String recordId);
void callMaterialFinish(String recordId, BigDecimal weight);
/**
* 记录要料信息

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/dao/PdmBdRequestMaterialRecord.java

@ -31,7 +31,7 @@ public class PdmBdRequestMaterialRecord implements Serializable {
@ApiModelProperty(value = "物料")
private String material_id;
@ApiModelProperty(value = "工单")
@ApiModelProperty(value = "工单编码")
private String workorder_id;
@ApiModelProperty(value = "叫料时间")

12
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/record/service/impl/PdmBdRequestMaterialRecordServiceImpl.java

@ -15,10 +15,13 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService;
import org.nl.wms.pdm.record.service.dao.mapper.PdmBdRequestMaterialRecordMapper;
import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord;
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Map;
import java.util.Set;
@ -33,6 +36,8 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
@Autowired
private PdmBdRequestMaterialRecordMapper pdmBdRequestMaterialRecordMapper;
@Autowired
private IPdmBdWorkorderService workorderService;
@Override
public IPage<PdmBdRequestMaterialRecord> queryAll(Map whereJson, PageQuery page){
@ -67,11 +72,16 @@ public class PdmBdRequestMaterialRecordServiceImpl extends ServiceImpl<PdmBdRequ
}
@Override
public void callMaterialFinish(String recordId) {
public void callMaterialFinish(String recordId, BigDecimal weight) {
PdmBdRequestMaterialRecord requestMaterialRecord = pdmBdRequestMaterialRecordMapper.selectById(recordId);
requestMaterialRecord.setIs_finish(true);
requestMaterialRecord.setUpdate_time(DateUtil.now());
pdmBdRequestMaterialRecordMapper.updateById(requestMaterialRecord);
// 叫料完成需要把对应的工单进行赋值:real_weight
PdmBdWorkorder bdWorkorder = workorderService.getByCode(requestMaterialRecord.getWorkorder_id());
bdWorkorder.setReal_weight(bdWorkorder.getReal_weight().add(weight));
TaskUtils.setWorkOrderUpdateByAcs(bdWorkorder);
workorderService.updateById(bdWorkorder);
}
@Override

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java

@ -59,6 +59,13 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
*/
PdmBdWorkorder getByCode(String orderCode);
/**
* 用锁-根据工单编码获取工单信息
* @param orderCode
* @return
*/
PdmBdWorkorder getByCodeLock(String orderCode);
/**
* 工单下发
* @param entity

8
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java

@ -178,6 +178,14 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
return pdmBdWorkorderMapper.selectOne(lam);
}
@Override
public PdmBdWorkorder getByCodeLock(String orderCode) {
LambdaQueryWrapper<PdmBdWorkorder> lam = new QueryWrapper<PdmBdWorkorder>().lambda();
lam.eq(PdmBdWorkorder::getWorkorder_code, orderCode);
lam.apply("FOR UPDATE");
return pdmBdWorkorderMapper.selectOne(lam);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void submits(PdmBdWorkorder entity) {

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

@ -22,6 +22,12 @@
<if test="query.group_bind_material_status != null">
AND vg.group_bind_material_status = #{query.group_bind_material_status}
</if>
<if test="query.material_code != null">
AND ma.material_code LIKE '%${query.material_code}%'
</if>
<if test="query.raw_material_code != null">
AND ma.raw_material_code LIKE '%${query.raw_material_code}%'
</if>
<if test="query.region_code != null">
AND vg.point_code IN (
SELECT p.point_code

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/dto/SchBaseVehiclematerialgroupQuery.java

@ -17,4 +17,5 @@ public class SchBaseVehiclematerialgroupQuery implements Serializable {
private String region_code;
private String group_bind_material_status;
private String raw_material_code;
private String material_code;
}

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/impl/SchBasePointServiceImpl.java

@ -13,14 +13,18 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.exception.BadRequestException;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.sch.group.service.ISchBaseVehiclematerialgroupService;
import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.nl.wms.sch.point.service.dao.mapper.SchBasePointMapper;
import org.nl.wms.sch.point.service.dto.SchBasePointQuery;
import org.nl.wms.sch.region.service.dao.SchBaseRegion;
import org.nl.wms.sch.region.service.dao.mapper.SchBaseRegionMapper;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.PointStatusEnum;
import org.nl.wms.util.PointUtils;
import org.nl.wms.util.TaskUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -45,6 +49,8 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
@Autowired
private SchBaseRegionMapper regionMapper;
@Autowired
private ISchBaseVehiclematerialgroupService vehiclematerialgroupService;
@Override
public IPage<SchBasePoint> queryAll(SchBasePointQuery whereJson, PageQuery page) {
@ -127,6 +133,16 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
String pointStatus = entity.getPoint_status();
// 根据点位状态来判断更新内容
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals(PointStatusEnum.EMPTY_POINT.getCode())) {
// 如果有组盘信息,将组盘信息解绑
if (ObjectUtil.isNotEmpty(entity.getVehicle_code())) {
SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getGroupInfo(entity.getVehicle_code()
, entity.getVehicle_type(), GroupBindMaterialStatusEnum.BOUND.getValue());
if (ObjectUtil.isNotEmpty(groupInfo)) {
groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
TaskUtils.setGroupUpdateByPC(groupInfo);
vehiclematerialgroupService.updateById(groupInfo);
}
}
entity.setVehicle_type("");
entity.setVehicle_code("");
entity.setVehicle_qty(0);

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

@ -121,9 +121,9 @@ public class HNMLTask extends AbstractTask {
continue;
}
// 叫料完成
requestMaterialRecordService.callMaterialFinish(point.getRecord_id());
requestMaterialRecordService.callMaterialFinish(point.getRecord_id(), jsonObject.getBigDecimal("weight"));
// 要料记录
jsonObject.put("record_id", point.getPoint_code());
jsonObject.put("record_id", point.getRecord_id());
// 设置终点并修改创建成功状态
task.setPoint_code2(point.getPoint_code());
task.setTask_status(TaskStatus.CREATED.getCode());
@ -170,7 +170,7 @@ public class HNMLTask extends AbstractTask {
.eq(PdmBdRequestMaterialRecord::getIs_finish, false)
.orderByAsc(PdmBdRequestMaterialRecord::getCreate_time));
if (list.size() == 0) {
throw new BadRequestException("泥料记录出现异常");
throw new BadRequestException("压机要料表找不到数据,请排查泥料号:[" + materialCode + "]");
}
// 要料数据
PdmBdRequestMaterialRecord requestMaterialRecord = list.get(0);
@ -209,7 +209,7 @@ public class HNMLTask extends AbstractTask {
public void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 获取参数
String endPoint = taskObj.getPoint_code2(); // 终点
String endPoint = taskObj.getPoint_code2();
SchBasePoint endPointObj = pointService.getById(endPoint);
String responseParam = taskObj.getResponse_param();
JSONObject responseObj = JSONObject.parseObject(responseParam);
@ -245,11 +245,8 @@ public class HNMLTask extends AbstractTask {
// 找压机工单, 可能没有开工的工单
PdmBdWorkorder one = workorderService.getByCode(materialRecord.getWorkorder_id());
if (ObjectUtil.isNotEmpty(one)) {
// 给组盘数据设置批次:压制工单+混砂机号+碾次
// remove: 给组盘数据设置批次:压制工单+混砂机号+碾次
groupEntity.setWorkorder_code(one.getWorkorder_code());
// StringBuilder pcsn = new StringBuilder();
// pcsn.append(one.getWorkorder_code()).append(groupEntity.getPoint_code()).append(groupEntity.getMix_times());
// groupEntity.setPcsn(pcsn.toString());
groupEntity.setPoint_code(endPointObj.getPoint_code());
groupEntity.setPoint_name(endPointObj.getPoint_name());
groupEntity.setMove_way(groupEntity.getMove_way() + " -> " + endPointObj.getPoint_code());
@ -261,7 +258,7 @@ public class HNMLTask extends AbstractTask {
}
// 更新组盘数据
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.BOUND.getValue());
groupEntity.setTask_code(taskObj.getTask_code()); // 当前任务的编码
groupEntity.setTask_code(taskObj.getTask_code());
TaskUtils.setGroupUpdateByType(groupEntity, taskFinishedType);
vehiclematerialgroupService.updateById(groupEntity);
// 起点清空 - 由ACS请求修改
@ -274,7 +271,7 @@ public class HNMLTask extends AbstractTask {
public void cancelTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 获取参数
String endPoint = taskObj.getPoint_code2(); // 终点
String endPoint = taskObj.getPoint_code2();
SchBasePoint one = ObjectUtil.isNotEmpty(endPoint)
? pointService.getOne(new LambdaQueryWrapper<SchBasePoint>().eq(SchBasePoint::getPoint_code, endPoint))
: null;

17
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yao/GZYQLTask.java

@ -61,7 +61,7 @@ public class GZYQLTask extends AbstractTask {
SchBaseTaskconfig taskConfig = taskConfigService.getOne(new LambdaQueryWrapper<SchBaseTaskconfig>()
.eq(SchBaseTaskconfig::getConfig_code, TASK_CONFIG_CODE));
for (SchBaseTask task : tasks) {
TaskUtils.setUpdateByAcs(task); // 修改修改者
TaskUtils.setUpdateByAcs(task);
List<String> startRegionStr = Arrays.stream(taskConfig.getStart_region_str().split(","))
.collect(Collectors.toList());
// 找起点
@ -136,19 +136,20 @@ public class GZYQLTask extends AbstractTask {
// 如果一个有货一个没货,但是载具数量又是5的时候,就要不需要检测不能为5
LambdaQueryWrapper<SchBasePoint> lam = new LambdaQueryWrapper<>();
lam.in(SchBasePoint::getRegion_code, startRegionStr)
.eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT) // 点位类型是缓存输送线出口
.and(la -> la.isNull(SchBasePoint::getIng_task_code) // 当前执行的任务为空或者NULL,有数据表示锁住
// 点位类型是缓存输送线出口
.eq(SchBasePoint::getPoint_type, GeneralDefinition.EXIT)
// 当前执行的任务为空或者NULL,有数据表示锁住
.and(la -> la.isNull(SchBasePoint::getIng_task_code)
.or()
.eq(SchBasePoint::getIng_task_code, ""))
.eq(SchBasePoint::getPoint_status, PointStatusEnum.EMPTY_VEHICLE.getCode())
.eq(SchBasePoint::getIs_used, true);
List<SchBasePoint> list = pointService.list(lam);
boolean doDetection = true; // 如果只有一条符合的数据就不需要检验不符合5个托
if (list.size() == 1) {
doDetection = false;
}
// 如果只有一条符合的数据就不需要检验不符合5个托
boolean doDetection = list.size() != 1;
// 默认认为缓存线有东西
lam.ne(doDetection, SchBasePoint::getVehicle_qty, 5).orderByDesc(SchBasePoint::getVehicle_qty); // 每次都将载具数量+1,每次拿最大的
// 每次都将载具数量+1,每次拿最大的
lam.ne(doDetection, SchBasePoint::getVehicle_qty, 5).orderByDesc(SchBasePoint::getVehicle_qty);
List<SchBasePoint> schBasePoints = pointService.list(lam);
return ObjectUtil.isNotEmpty(schBasePoints) ? schBasePoints.get(0) : null;
}

4
lms/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml

@ -149,7 +149,3 @@ sa-token:
password:
# 连接超时时间
timeout: 10s
lucene:
index:
path: D:\lucene\index

3
lms/nladmin-system/nlsso-server/src/main/resources/config/application-prod.yml

@ -172,6 +172,3 @@ sa-token:
password:
# 连接超时时间
timeout: 10s
lucene:
index:
path: E:\lucene\index

4
lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml

@ -129,3 +129,7 @@ mybatis-plus:
global-config:
db-config:
id-type: INPUT
lucene:
index:
path: D:\lucene\index

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

@ -24,3 +24,7 @@
插入压机检测失败
包装数据
更新成功:更新数据
插入LMS数据库失败
记录自动要料信息
自动下发混碾
下发混碾失败

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

@ -76,6 +76,24 @@ https://juejin.cn/post/6844903775631572999
<logger name="org.springframework" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="com.baomidou.dynamic.datasource.DynamicRoutingDataSource" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.redisson.connection.pool.MasterPubSubConnectionPool" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.redisson.connection.pool.MasterConnectionPool" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.redisson.Version" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="com.alibaba.druid.pool.DruidDataSource" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.nl.config.RedisConfig" level="INFO" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<logger name="org.apache" level="ERROR" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>

56
lms/nladmin-ui/src/views/wms/ext/record/index.vue

@ -25,8 +25,18 @@
v-for="item in interact_name_list"
:key="item"
:label="item"
:value="item">
</el-option>
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="响应编码">
<el-select v-model="query.http_code" placeholder="响应编码" clearable>
<el-option
v-for="item in http_codes"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="请求方向">
@ -35,8 +45,8 @@
v-for="item in dict.interact_direction"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
:value="item.value"
/>
</el-select>
</el-form-item>
<rrOperation />
@ -54,28 +64,28 @@
>
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="对接名称">
<el-input v-model="form.interact_name" style="width: 370px;" disabled/>
<el-input v-model="form.interact_name" style="width: 370px;" disabled />
</el-form-item>
<el-form-item label="响应编码">
<el-input v-model="form.code" style="width: 370px;" disabled/>
<el-input v-model="form.code" style="width: 370px;" disabled />
</el-form-item>
<el-form-item label="响应信息">
<el-input v-model="form.message" style="width: 370px;" disabled/>
<el-input v-model="form.message" style="width: 370px;" disabled />
</el-form-item>
<el-form-item label="请求报文">
<el-input v-model="formattedRequestParam" :autosize="{ minRows: 3 }" type="textarea" style="width: 370px;"/>
<el-input v-model="formattedRequestParam" :autosize="{ minRows: 3 }" type="textarea" style="width: 370px;" />
</el-form-item>
<el-form-item label="响应结果">
<el-input v-model="formattedResponseParam" :autosize="{ minRows: 3 }" type="textarea" style="width: 370px;" disabled/>
<el-input v-model="formattedResponseParam" :autosize="{ minRows: 3 }" type="textarea" style="width: 370px;" disabled />
</el-form-item>
<el-form-item label="记录时间">
<el-input v-model="form.record_time" style="width: 370px;" disabled/>
<el-input v-model="form.record_time" style="width: 370px;" disabled />
</el-form-item>
<el-form-item label="请求方向">
<!-- <el-input v-model="form.direction" style="width: 370px;" disabled/>-->
<!-- <el-input v-model="form.direction" style="width: 370px;" disabled/>-->
<el-select
disabled
v-model="form.direction"
disabled
size="mini"
placeholder="点位状态"
class="filter-item"
@ -136,7 +146,7 @@
</el-table-column>
<el-table-column prop="is_success" label="请求状态" :min-width="flexWidth('is_success',crud.data,'是否成功')">
<template slot-scope="scope">
{{ scope.row.is_success ? '成功' : '失败'}}
{{ scope.row.is_success ? '成功' : '失败' }}
</template>
</el-table-column>
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
@ -197,12 +207,19 @@ export default {
return {
permission: {},
rules: {},
interact_name_list: []
interact_name_list: [],
http_codes: [
{
'label': '200',
'value': '200'
},
{
'label': '400',
'value': '400'
}
]
}
},
created() {
this.getNameList()
},
computed: {
formattedRequestParam: {
get() {
@ -233,13 +250,16 @@ export default {
}
}
},
created() {
this.getNameList()
},
methods: {
// false
[CRUD.HOOK.beforeRefresh]() {
return true
},
getNameList() {
crudSysInteractRecord.getAllName().then((res)=>{
crudSysInteractRecord.getAllName().then((res) => {
this.interact_name_list = res
})
}

4
lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue

@ -668,7 +668,7 @@ export default {
submits(row) {
this.fullscreenLoading = true
crudPdmBdWorkorder.submits(row).then(res => {
this.crud.notify('报工完成', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
}).catch(() => {
this.fullscreenLoading = false
@ -690,7 +690,7 @@ export default {
forceFinish(row) {
this.fullscreenLoading = true
crudPdmBdWorkorder.forceFinish(row).then(res => {
this.crud.notify('下发成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.notify('报工完成', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
}).catch(() => {
this.fullscreenLoading = false

25
lms/nladmin-ui/src/views/wms/sch/group/index.vue

@ -47,6 +47,24 @@
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="泥料编码">
<el-input
v-model="query.raw_material_code"
clearable
size="mini"
placeholder="泥料编码"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="物料编码">
<el-input
v-model="query.material_code"
clearable
size="mini"
placeholder="物料编码"
@keyup.enter.native="crud.toQuery"
/>
</el-form-item>
<el-form-item label="绑定状态">
<el-select
v-model="query.group_bind_material_status"
@ -273,9 +291,10 @@
</template>
</el-table-column>
<el-table-column prop="standing_time" label="静置时间(分钟)" :min-width="flexWidth('standing_time',crud.data,'静置时间(分钟)')" />
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
<el-table-column prop="material_name" label="物料名称" show-overflow-tooltip :min-width="flexWidth('material_name',crud.data,'物料数量')" />
<el-table-column prop="raw_material_code" label="泥料编码" show-overflow-tooltip :min-width="flexWidth('raw_material_code',crud.data,'物料数量')" />
<el-table-column prop="material_code" label="物料编码" show-overflow-tooltip :min-width="flexWidth('material_code',crud.data,'物料数量')" />
<el-table-column prop="material_spec" label="物料规格" :min-width="flexWidth('material_spec',crud.data,'物料数量')" />
<el-table-column prop="material_qty" label="物料数量" :min-width="flexWidth('material_qty',crud.data,'物料数量')" />
<el-table-column prop="material_weight" label="物料重量" :min-width="flexWidth('material_weight',crud.data,'物料重量')" />
<el-table-column prop="group_number" label="组盘次数" :min-width="flexWidth('group_number',crud.data,'组盘次数')" />

Loading…
Cancel
Save