add: 出入窑报表,去掉部分魔法值

This commit is contained in:
2023-08-03 08:55:01 +08:00
parent c8289c7435
commit 5eebf37b6f
69 changed files with 1435 additions and 67 deletions

Binary file not shown.

View File

@@ -21,9 +21,6 @@ import org.nl.common.exception.BadRequestException;
import org.nl.common.exception.EntityExistException;
import org.nl.common.exception.EntityNotFoundException;
import org.nl.common.utils.ThrowableUtil;
import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.MethodArgumentNotValidException;
@@ -42,14 +39,10 @@ import static org.springframework.http.HttpStatus.NOT_FOUND;
@RestControllerAdvice
public class GlobalExceptionHandler {
@Autowired
private ISysNoticeService noticeService;
@ExceptionHandler(NullPointerException.class)
public ResponseEntity<String> handleNullPointerException(NullPointerException ex) {
// 在这里处理空指针异常
noticeService.createNotice("异常信息:" + ex.getMessage(), "空指针异常发",
NoticeTypeEnum.EXCEPTION.getCode());
log.error(ThrowableUtil.getStackTrace(ex));
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("空指针异常发生了");
}

View File

@@ -4,6 +4,7 @@ import cn.dev33.satoken.annotation.SaIgnore;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -19,6 +20,7 @@ import org.nl.system.service.secutiry.dto.AuthUserDto;
import org.nl.system.service.user.ISysUserService;
import org.nl.system.service.user.dao.SysUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -35,7 +37,7 @@ import java.util.List;
*/
@Slf4j
@RestController
@RequestMapping("/api/pda")
@RequestMapping("/mobile/auth")
@Api(tags = "手持:系统授权接口")
public class MobileAuthorizationController {
@Autowired
@@ -45,14 +47,14 @@ public class MobileAuthorizationController {
@ApiOperation("登录授权")
@PostMapping(value = "/login")
@SaIgnore
public JSONObject login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception {
public ResponseEntity<Object> login(@Validated @RequestBody AuthUserDto authUser, HttpServletRequest request) throws Exception {
// 密码解密 - 前端的加密规则: encrypt根据实际更改
String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword());
// 校验数据库
// 根据用户名查询,在比对密码
SysUser userInfo = userService.getOne(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getUsername, authUser.getUsername())); // 拿到已经抛出异常
if (!userInfo.getPassword().equals(SaSecureUtil.md5BySalt(password, "salt"))) { // 这里需要密码加密
.eq(SysUser::getUsername, authUser.getUsername())); // 拿到多个已经抛出异常
if (ObjectUtil.isEmpty(userInfo) || !userInfo.getPassword().equals(SaSecureUtil.md5BySalt(password, "salt"))) { // 这里需要密码加密
throw new BadRequestException("账号或密码错误!");
}
// 获取权限列表 - 登录查找权限
@@ -85,6 +87,6 @@ public class MobileAuthorizationController {
put("user", jsonObject);
}};
return authInfo;
return ResponseEntity.ok(authInfo);
}
}

View File

@@ -0,0 +1,66 @@
package org.nl.wms.das.devicecheck.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.das.devicecheck.service.IDasDeviceCheckRecordService;
import org.nl.wms.das.devicecheck.service.dao.DasDeviceCheckRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Set;
/**
* @author lyd
* @date 2023-08-01
**/
@Slf4j
@RestController
@Api(tags = "设备点检功能管理")
@RequestMapping("/api/dasDeviceCheckRecord")
public class DasDeviceCheckRecordController {
@Autowired
private IDasDeviceCheckRecordService dasDeviceCheckRecordService;
@GetMapping
@Log("查询设备点检功能")
@ApiOperation("查询设备点检功能")
//@SaCheckPermission("@el.check('dasDeviceCheckRecord:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(dasDeviceCheckRecordService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增设备点检功能")
@ApiOperation("新增设备点检功能")
//@SaCheckPermission("@el.check('dasDeviceCheckRecord:add')")
public ResponseEntity<Object> create(@Validated @RequestBody DasDeviceCheckRecord entity){
dasDeviceCheckRecordService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改设备点检功能")
@ApiOperation("修改设备点检功能")
//@SaCheckPermission("@el.check('dasDeviceCheckRecord:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody DasDeviceCheckRecord entity){
dasDeviceCheckRecordService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除设备点检功能")
@ApiOperation("删除设备点检功能")
//@SaCheckPermission("@el.check('dasDeviceCheckRecord:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
dasDeviceCheckRecordService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,43 @@
package org.nl.wms.das.devicecheck.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.das.devicecheck.service.dao.DasDeviceCheckRecord;
import java.util.Map;
import java.util.Set;
/**
* @description 服务接口
* @author lyd
* @date 2023-08-01
**/
public interface IDasDeviceCheckRecordService extends IService<DasDeviceCheckRecord> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<DasDeviceCheckRecord>
*/
IPage<DasDeviceCheckRecord> queryAll(Map whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(DasDeviceCheckRecord entity);
/**
* 编辑
* @param entity /
*/
void update(DasDeviceCheckRecord entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Set<String> ids);
}

View File

@@ -0,0 +1,46 @@
package org.nl.wms.das.devicecheck.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-08-01
**/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("das_device_check_record")
public class DasDeviceCheckRecord implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "record_id", type = IdType.NONE)
@ApiModelProperty(value = "记录标识")
private String record_id;
@ApiModelProperty(value = "账号")
private String username;
@ApiModelProperty(value = "用户名")
private String person_name;
@ApiModelProperty(value = "记录时间")
private String record_time;
@ApiModelProperty(value = "设备号")
private String device_code;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "点检状态")
private String check_status;
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.das.devicecheck.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.das.devicecheck.service.dao.DasDeviceCheckRecord;
/**
* @author lyd
* @date 2023-08-01
**/
public interface DasDeviceCheckRecordMapper extends BaseMapper<DasDeviceCheckRecord> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.das.devicecheck.service.dao.mapper.DasDeviceCheckRecordMapper">
</mapper>

View File

@@ -0,0 +1,34 @@
package org.nl.wms.das.devicecheck.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-08-01
**/
@Data
public class DasDeviceCheckRecordDto implements Serializable {
/** 记录标识 */
private String record_id;
/** 账号 */
private String username;
/** 用户名 */
private String person_name;
/** 记录时间 */
private String record_time;
/** 设备号 */
private String device_code;
/** 备注 */
private String remark;
/** 点检状态 */
private String check_status;
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.das.devicecheck.service.dto;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.das.devicecheck.service.dao.DasDeviceCheckRecord;
/**
* @author lyd
* @date 2023-08-01
**/
public class DasDeviceCheckRecordQuery extends BaseQuery<DasDeviceCheckRecord> {
}

View File

@@ -0,0 +1,75 @@
package org.nl.wms.das.devicecheck.service.impl;
import cn.hutool.core.date.DateUtil;
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.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
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.system.service.user.ISysUserService;
import org.nl.system.service.user.dao.SysUser;
import org.nl.wms.das.devicecheck.service.IDasDeviceCheckRecordService;
import org.nl.wms.das.devicecheck.service.dao.mapper.DasDeviceCheckRecordMapper;
import org.nl.wms.das.devicecheck.service.dao.DasDeviceCheckRecord;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Set;
/**
* @description 服务实现
* @author lyd
* @date 2023-08-01
**/
@Slf4j
@Service
public class DasDeviceCheckRecordServiceImpl extends ServiceImpl<DasDeviceCheckRecordMapper, DasDeviceCheckRecord> implements IDasDeviceCheckRecordService {
@Autowired
private DasDeviceCheckRecordMapper dasDeviceCheckRecordMapper;
@Autowired
private ISysUserService userService;
@Override
public IPage<DasDeviceCheckRecord> queryAll(Map whereJson, PageQuery page){
LambdaQueryWrapper<DasDeviceCheckRecord> lam = new LambdaQueryWrapper<>();
IPage<DasDeviceCheckRecord> pages = new Page<>(page.getPage() + 1, page.getSize());
dasDeviceCheckRecordMapper.selectPage(pages, lam);
return pages;
}
@Override
public void create(DasDeviceCheckRecord entity) {
SysUser sysUser = userService.getOne(new LambdaQueryWrapper<SysUser>()
.eq(SysUser::getUsername, entity.getUsername()));
String now = DateUtil.now();
entity.setRecord_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setRecord_time(now);
entity.setPerson_name(sysUser.getPerson_name());
dasDeviceCheckRecordMapper.insert(entity);
}
@Override
public void update(DasDeviceCheckRecord entity) {
DasDeviceCheckRecord dto = dasDeviceCheckRecordMapper.selectById(entity.getRecord_id());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
String now = DateUtil.now();
entity.setRecord_time(now);
dasDeviceCheckRecordMapper.updateById(entity);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除
dasDeviceCheckRecordMapper.deleteBatchIds(ids);
}
}

View File

@@ -0,0 +1,66 @@
package org.nl.wms.das.inspection.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.base.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.das.inspection.service.IDasQualityInspectionService;
import org.nl.wms.das.inspection.service.dao.DasQualityInspection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Set;
/**
* @author lyd
* @date 2023-08-01
**/
@Slf4j
@RestController
@Api(tags = "质检记录管理")
@RequestMapping("/api/dasQualityInspection")
public class DasQualityInspectionController {
@Autowired
private IDasQualityInspectionService dasQualityInspectionService;
@GetMapping
@Log("查询质检记录")
@ApiOperation("查询质检记录")
//@SaCheckPermission("@el.check('dasQualityInspection:list')")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(dasQualityInspectionService.queryAll(whereJson,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增质检记录")
@ApiOperation("新增质检记录")
//@SaCheckPermission("@el.check('dasQualityInspection:add')")
public ResponseEntity<Object> create(@Validated @RequestBody DasQualityInspection entity){
dasQualityInspectionService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改质检记录")
@ApiOperation("修改质检记录")
//@SaCheckPermission("@el.check('dasQualityInspection:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody DasQualityInspection entity){
dasQualityInspectionService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除质检记录")
@ApiOperation("删除质检记录")
//@SaCheckPermission("@el.check('dasQualityInspection:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
dasQualityInspectionService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,46 @@
package org.nl.wms.das.inspection.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.das.inspection.service.dao.DasQualityInspection;
import org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest;
import java.util.Map;
import java.util.Set;
/**
* @description 服务接口
* @author lyd
* @date 2023-08-01
**/
public interface IDasQualityInspectionService extends IService<DasQualityInspection> {
/**
* 查询数据分页
* @param whereJson 条件
* @param pageable 分页参数
* @return IPage<DasQualityInspection>
*/
IPage<DasQualityInspection> queryAll(Map whereJson, PageQuery pageable);
/**
* 创建
* @param entity /
*/
void create(DasQualityInspection entity);
/**
* 编辑
* @param entity /
*/
void update(DasQualityInspection entity);
/**
* 多选删除
* @param ids /
*/
void deleteAll(Set<String> ids);
void createByAcs(ApplyTaskRequest applyTaskRequest);
}

View File

@@ -0,0 +1,46 @@
package org.nl.wms.das.inspection.service.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-08-01
**/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("das_quality_inspection")
public class DasQualityInspection implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "inspection_id", type = IdType.NONE)
@ApiModelProperty(value = "检测标识")
private String inspection_id;
@ApiModelProperty(value = "质检时间")
private String inspection_time;
@ApiModelProperty(value = "半成品物料")
private String half_material_code;
@ApiModelProperty(value = "托盘号")
private String vehicle_code;
@ApiModelProperty(value = "数量")
private String material_qty;
@ApiModelProperty(value = "拆垛工位")
private String point_code;
@ApiModelProperty(value = "分拣工单")
private String workorder_code;
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.das.inspection.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.das.inspection.service.dao.DasQualityInspection;
/**
* @author lyd
* @date 2023-08-01
**/
public interface DasQualityInspectionMapper extends BaseMapper<DasQualityInspection> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.das.inspection.service.dao.mapper.DasQualityInspectionMapper">
</mapper>

View File

@@ -0,0 +1,34 @@
package org.nl.wms.das.inspection.service.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @description /
* @author lyd
* @date 2023-08-01
**/
@Data
public class DasQualityInspectionDto implements Serializable {
/** 检测标识 */
private String inspection_id;
/** 质检时间 */
private String inspection_time;
/** 半成品物料 */
private String half_material_code;
/** 托盘号 */
private String vehicle_code;
/** 数量 */
private String material_qty;
/** 拆垛工位 */
private String point_code;
/** 分拣工单 */
private String workorder_code;
}

View File

@@ -0,0 +1,12 @@
package org.nl.wms.das.inspection.service.dto;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.das.inspection.service.dao.DasQualityInspection;
/**
* @author lyd
* @date 2023-08-01
**/
public class DasQualityInspectionQuery extends BaseQuery<DasQualityInspection> {
}

View File

@@ -0,0 +1,115 @@
package org.nl.wms.das.inspection.service.impl;
import cn.hutool.core.date.DateUtil;
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.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
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.das.inspection.service.IDasQualityInspectionService;
import org.nl.wms.das.inspection.service.dao.mapper.DasQualityInspectionMapper;
import org.nl.wms.das.inspection.service.dao.DasQualityInspection;
import org.nl.wms.database.material.service.IMdBaseMaterialService;
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
import org.nl.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest;
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.sch.point.service.ISchBasePointService;
import org.nl.wms.sch.point.service.dao.SchBasePoint;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.Set;
/**
* @description 服务实现
* @author lyd
* @date 2023-08-01
**/
@Slf4j
@Service
public class DasQualityInspectionServiceImpl extends ServiceImpl<DasQualityInspectionMapper, DasQualityInspection> implements IDasQualityInspectionService {
@Autowired
private DasQualityInspectionMapper dasQualityInspectionMapper;
@Autowired
private ISchBasePointService pointService;
@Autowired
private IPdmBdWorkorderService workorderService;
@Autowired
private IMdBaseMaterialService materialService;
@Override
public IPage<DasQualityInspection> queryAll(Map whereJson, PageQuery page){
LambdaQueryWrapper<DasQualityInspection> lam = new LambdaQueryWrapper<>();
IPage<DasQualityInspection> pages = new Page<>(page.getPage() + 1, page.getSize());
dasQualityInspectionMapper.selectPage(pages, lam);
return pages;
}
@Override
public void create(DasQualityInspection entity) {
String now = DateUtil.now();
entity.setInspection_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setInspection_time(now);
dasQualityInspectionMapper.insert(entity);
}
@Override
public void update(DasQualityInspection entity) {
DasQualityInspection dto = dasQualityInspectionMapper.selectById(entity.getInspection_id());
if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!");
String now = DateUtil.now();
entity.setInspection_time(now);
dasQualityInspectionMapper.updateById(entity);
}
@Override
public void deleteAll(Set<String> ids) {
// 真删除
dasQualityInspectionMapper.deleteBatchIds(ids);
}
@Override
public void createByAcs(ApplyTaskRequest applyTaskRequest) {
String deviceCode = applyTaskRequest.getDevice_code();
if (ObjectUtil.isEmpty(deviceCode)) {
throw new BadRequestException("质检记录-拆垛工位不能为空");
}
String vehicleCode = applyTaskRequest.getVehicle_code();
if (ObjectUtil.isEmpty(vehicleCode)) {
throw new BadRequestException("质检记录-载具编码不能为空");
}
LambdaQueryWrapper<SchBasePoint> pointLam = new QueryWrapper<SchBasePoint>().lambda();
pointLam.eq(SchBasePoint::getPoint_code, deviceCode);
SchBasePoint one = pointService.getOne(pointLam); // 拆垛工位
// 生产中的工单, 如果ACS能给就直接查
PdmBdWorkorder deviceProductionTask = workorderService.getDeviceProductionTask(one.getParent_point_code());
if (ObjectUtil.isEmpty(deviceProductionTask)) {
throw new BadRequestException("质检记录-设备[" + one.getParent_point_code() + "]未存在生产中的工单");
}
MdBaseMaterial baseMaterial = materialService.getById(deviceProductionTask.getMaterial_id());
if (ObjectUtil.isEmpty(baseMaterial)) {
throw new BadRequestException("质检记录-物料ID[" + deviceProductionTask.getMaterial_id() + "]不存在");
}
DasQualityInspection dasQualityInspection = new DasQualityInspection();
dasQualityInspection.setInspection_id(IdUtil.getSnowflake(1,1).nextIdStr());
dasQualityInspection.setPoint_code(deviceCode);
dasQualityInspection.setInspection_time(DateUtil.now());
dasQualityInspection.setVehicle_code(vehicleCode);
dasQualityInspection.setMaterial_qty("1");
dasQualityInspection.setHalf_material_code(baseMaterial.getHalf_material_code());
dasQualityInspection.setWorkorder_code(deviceProductionTask.getWorkorder_code());
dasQualityInspectionMapper.insert(dasQualityInspection);
}
}

View File

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import org.nl.wms.ext.acs.service.dto.ResultForAcs;
import org.nl.wms.ext.acs.service.dto.to.acs.PutActionRequest;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
import java.util.List;
import java.util.Map;
@@ -20,7 +21,7 @@ public interface WmsToAcsService {
* @param workorder
* @return
*/
ResultForAcs order(PdmBdWorkorder workorder);
ResultForAcs order(AcsWorkOrderVo workorder);
/**
* 下发信号 - 覆膜机释放托盘

View File

@@ -12,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import org.nl.common.exception.BadRequestException;
import org.nl.config.MapOf;
import org.nl.system.service.notice.ISysNoticeService;
import org.nl.wms.das.inspection.service.IDasQualityInspectionService;
import org.nl.wms.database.brick.service.IMdBaseBrickInfoService;
import org.nl.wms.database.material.service.IMdBaseMaterialService;
import org.nl.wms.database.material.service.dao.MdBaseMaterial;
@@ -98,6 +99,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Autowired
private RedissonClient redissonClient;
@Autowired
private IDasQualityInspectionService qualityInspectionService;
@Autowired
private IPdmBdMaterialResidueService materialResidueService;
@Autowired
private IPdmBdVehicleBindingService vehicleBindingService;
@@ -316,6 +319,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
return requestNo;
}
/** 质检记录 */
public BaseResponse qualityInspection(JSONObject param) {
ApplyTaskRequest applyTaskRequest = param.toJavaObject(ApplyTaskRequest.class);
// 记录质检信息
qualityInspectionService.createByAcs(applyTaskRequest);
return BaseResponse.responseOk(applyTaskRequest.getRequestNo());
}
/** 分拣 - 记录钢托与木托的绑定 */
public BaseResponse recordVehicleBiding(JSONObject param) {
FeedBackSplitPalletStationRequest request = param.toJavaObject(FeedBackSplitPalletStationRequest.class);
@@ -394,7 +405,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
PdmBdWorkorder bdWorkorder = workorderService.getByCode(workorderCode);
if (bdWorkorder == null) {
return BaseResponse.responseError(requestNo, "物料信息为空!");
return BaseResponse.responseError(requestNo, "未找到工单号[" + workorderCode + "]的记录!");
}
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode());
bdWorkorder.setRealproducestart_date(DateUtil.now());
@@ -412,7 +423,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
PdmBdWorkorder bdWorkorder = workorderService.getByCode(workorderCode);
if (bdWorkorder == null) {
return BaseResponse.responseError(requestNo, "物料信息为空!");
return BaseResponse.responseError(requestNo, "未找到工单号[" + workorderCode + "]的记录!");
}
bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode());
bdWorkorder.setRealproduceend_date(DateUtil.now());
@@ -528,6 +539,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
@Deprecated
@Transactional(rollbackFor = Exception.class)
public BaseResponse pressRequestMaterial(JSONObject param) { // (公共接口进来)只是给我一个下料位(中间位置)
// todo: 换成acs请求修改设备点位为空位并且更新时间
String requestNo = param.getString("requestNo");
// 压机、原材料物料(混碾)、压机工单、叫料时间
String deviceCode = param.getString("device_code");// 几号压机下料位

View File

@@ -8,6 +8,7 @@ import org.nl.wms.ext.acs.service.dto.ResultForAcs;
import org.nl.wms.ext.acs.service.dto.to.acs.PutActionRequest;
import org.nl.wms.ext.record.service.ISysInteractRecordService;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.task.AcsUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +16,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* @Author: lyd
@@ -27,9 +29,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
@Autowired
private ISysInteractRecordService interactRecordService;
@Override
public ResultForAcs order(PdmBdWorkorder workorder) {
public ResultForAcs order(AcsWorkOrderVo workorder) {
String api = "api/wms/order";
List<PdmBdWorkorder> list = new ArrayList<>();
List<AcsWorkOrderVo> list = new CopyOnWriteArrayList<>();
list.add(workorder);
ResultForAcs resultForAcs = ResultForAcs.requestOk();
try {

View File

@@ -8,6 +8,7 @@ import org.nl.wms.ext.acs.service.dto.ResultForAcs;
import org.nl.wms.ext.acs.service.dto.to.BaseResponse;
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
import java.util.Map;
import java.util.Set;
@@ -50,5 +51,20 @@ public interface ISysInteractRecordService extends IService<SysInteractRecord> {
*/
void saveRecord(Object request, BaseResponse response, String direction);
void saveRecord(PdmBdWorkorder workorder, ResultForAcs resultForAcs, String lmsAcs);
/**
*
* @param workorder
* @param resultForAcs
* @param direction
*/
void saveRecord(AcsWorkOrderVo workorder, ResultForAcs resultForAcs, String direction);
/**
*
* @param code
* @param request
* @param response
* @param direction
*/
<T> void saveRecord(String code, Object request, T response, String direction);
}

View File

@@ -17,9 +17,11 @@ import org.nl.wms.ext.record.service.ISysInteractRecordService;
import org.nl.wms.ext.record.service.dao.mapper.SysInteractRecordMapper;
import org.nl.wms.ext.record.service.dao.SysInteractRecord;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.Map;
import java.util.Set;
@@ -71,7 +73,7 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
entity.setInteract_code(response.getRequestNo());
entity.setCode(response.getCode());
entity.setMessage(response.getMessage());
entity.setRecord_time(DateUtil.now());
entity.setRecord_time(DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss.SSS"));
entity.setDirection(direction);
entity.setRequest_param(JSONObject.toJSONString(param));
entity.setResponse_param(JSONObject.toJSONString(response));
@@ -80,7 +82,7 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
}
@Override
public void saveRecord(PdmBdWorkorder workorder, ResultForAcs resultForAcs, String lmsAcs) {
public void saveRecord(AcsWorkOrderVo workorder, ResultForAcs resultForAcs, String lmsAcs) {
SysInteractRecord entity = new SysInteractRecord();
entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setInteract_code(workorder.getWorkorder_code());
@@ -94,4 +96,29 @@ public class SysInteractRecordServiceImpl extends ServiceImpl<SysInteractRecordM
sysInteractRecordMapper.insert(entity);
}
@Override
public <T> void saveRecord(String code, Object request, T response, String direction) {
SysInteractRecord entity = new SysInteractRecord();
entity.setInteract_id(IdUtil.getSnowflake(1, 1).nextIdStr());
entity.setRecord_time(DateUtil.now());
entity.setDirection(direction);
entity.setRequest_param(JSONObject.toJSONString(request));
entity.setResponse_param(JSONObject.toJSONString(response));
if (response instanceof BaseResponse) {
BaseResponse re = (BaseResponse) response;
entity.setInteract_code(re.getRequestNo());
entity.setCode(re.getCode());
entity.setMessage(re.getMessage());
entity.setIs_success(re.getCode() == HttpStatus.HTTP_OK);
}
if (response instanceof ResultForAcs) {
ResultForAcs re = (ResultForAcs) response;
entity.setInteract_code(IdUtil.simpleUUID()); // todo: 暂定
entity.setCode(re.getStatus());
entity.setMessage(re.getMessage());
entity.setIs_success(re.getStatus() == HttpStatus.HTTP_OK);
}
sysInteractRecordMapper.insert(entity);
}
}

View File

@@ -0,0 +1,60 @@
package org.nl.wms.pda.controller;
import cn.dev33.satoken.annotation.SaIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.das.devicecheck.service.IDasDeviceCheckRecordService;
import org.nl.wms.das.devicecheck.service.dao.DasDeviceCheckRecord;
import org.nl.wms.pda.service.PdaService;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: lyd
* @Description: 手持接口
* @Date: 2023/8/1
*/
@Slf4j
@RestController
@Api(tags = "手持接口")
@RequestMapping("/api/pda")
public class PdaController {
@Autowired
private IDasDeviceCheckRecordService deviceCheckRecordService;
@Autowired
private PdaService pdaService;
@PostMapping("/deviceCheck/verify")
@Log("设备点检")
@ApiOperation("设备点检")
@SaIgnore
public ResponseEntity<Object> deviceCheck(@Validated @RequestBody DasDeviceCheckRecord entity){
deviceCheckRecordService.create(entity);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/deviceCheck/deviceInfo")
@Log("设备下拉框数据")
@ApiOperation("设备下拉框数据")
@SaIgnore
public ResponseEntity<Object> deviceInfo(){
return new ResponseEntity<>(pdaService.getDeviceInfo(), HttpStatus.OK);
}
@PostMapping("/deviceCheck/deviceStatus")
@Log("设备状态下拉框数据")
@ApiOperation("设备状态下拉框数据")
@SaIgnore
public ResponseEntity<Object> deviceStatus(){
return new ResponseEntity<>(pdaService.getDeviceStatus(), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.pda.service;
import org.nl.wms.pda.service.dao.vo.DropdownListVo;
import java.util.List;
/**
* @Author: lyd
* @Description:
* @Date: 2023/8/1
*/
public interface PdaService {
List<DropdownListVo> getDeviceInfo();
List<DropdownListVo> getDeviceStatus();
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.pda.service.dao.mapper;
import org.nl.wms.pda.service.dao.vo.DropdownListVo;
import java.util.List;
/**
* @Author: lyd
* @Description: 手持mapper接口
* @Date: 2023/8/1
*/
public interface PdaMapper {
List<DropdownListVo> getDeviceInfo();
List<DropdownListVo> getDictByCode(String code);
}

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.pda.service.dao.mapper.PdaMapper">
<select id="getDeviceInfo" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
SELECT
p.point_code AS `value`,
p.point_name AS label
FROM
`sch_base_point` p
WHERE p.region_code = 'YZ' AND p.point_type = '1' AND p.point_code = p.parent_point_code
</select>
<select id="getDictByCode" resultType="org.nl.wms.pda.service.dao.vo.DropdownListVo">
SELECT
`value`,
label
FROM
`sys_dict`
WHERE `code` = #{code}
</select>
</mapper>

View File

@@ -0,0 +1,16 @@
package org.nl.wms.pda.service.dao.vo;
import lombok.Data;
import java.io.Serializable;
/**
* @Author: lyd
* @Description: 下拉框数据
* @Date: 2023/8/1
*/
@Data
public class DropdownListVo implements Serializable {
private String value;
private String label;
}

View File

@@ -0,0 +1,32 @@
package org.nl.wms.pda.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.pda.service.PdaService;
import org.nl.wms.pda.service.dao.mapper.PdaMapper;
import org.nl.wms.pda.service.dao.vo.DropdownListVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Author: lyd
* @Description: 实现类
* @Date: 2023/8/1
*/
@Slf4j
@Service
public class PdaServiceImpl implements PdaService {
@Autowired
private PdaMapper pdaMapper;
@Override
public List<DropdownListVo> getDeviceInfo() {
// 暂定压机区域
return pdaMapper.getDeviceInfo();
}
@Override
public List<DropdownListVo> getDeviceStatus() {
return pdaMapper.getDictByCode("device_status");
}
}

View File

@@ -41,4 +41,16 @@ public class PdmBdProductionProcessTracking implements Serializable {
private String vehicle_code;
@TableField(exist = false)
private String point_name;
@TableField(exist = false)
private String device_code;
@TableField(exist = false)
private String material_code;
@TableField(exist = false)
private String material_name;
@TableField(exist = false)
private String pcsn;
@TableField(exist = false)
private String half_material_code;
@TableField(exist = false)
private String raw_material_code;
}

View File

@@ -6,11 +6,19 @@
SELECT
pt.*,
vg.vehicle_code,
p.point_name
p.point_name,
vg.pcsn,
w.point_code AS device_code,
m.material_code,
m.material_name,
m.half_material_code,
m.raw_material_code
FROM
`pdm_bd_production_process_tracking` pt
LEFT JOIN sch_base_vehiclematerialgroup vg ON vg.buss_move_id = pt.buss_move_id
LEFT JOIN sch_base_point p ON p.point_code = pt.process_location
LEFT JOIN pdm_bd_workorder w ON w.workorder_code = vg.workorder_code
LEFT JOIN md_base_material m ON m.material_id = vg.material_id
ORDER BY pt.buss_move_id, pt.record_time
</select>
</mapper>

View File

@@ -89,6 +89,8 @@ public class PdmBdWorkorder implements Serializable {
@ApiModelProperty(value = "外部标识")
private String ext_id;
@ApiModelProperty(value = "外部数据")
private String ext_data;
@ApiModelProperty(value = "是否删除")
private Boolean is_delete;

View File

@@ -3,6 +3,7 @@ package org.nl.wms.pdm.workorder.service.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery;
/**
@@ -12,4 +13,11 @@ import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery;
public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
IPage<PdmBdWorkorder> selectPageLeftJoin(IPage<PdmBdWorkorder> pages, PdmBdWorkorderQuery query);
/**
* 获取需要下发的工单
* @param workorderId
* @return
*/
AcsWorkOrderVo toAcsWorkOrderById(String workorderId);
}

View File

@@ -30,4 +30,22 @@
</if>
</where>
</select>
<select id="toAcsWorkOrderById" resultType="org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo">
SELECT
w.workorder_code,
w.point_code AS device_code,
w.plan_qty,
m.half_material_code AS material_code,
0 AS a,
0 AS b,
0 AS h,
0 AS w,
0 AS `size`,
0 AS single_weight,
0 AS drawing_address
FROM
`pdm_bd_workorder` w
LEFT JOIN md_base_material m ON m.material_id = w.material_id
WHERE w.workorder_id = #{workorderId}
</select>
</mapper>

View File

@@ -0,0 +1,23 @@
package org.nl.wms.pdm.workorder.service.dao.vo;
import lombok.Data;
/**
* @Author: lyd
* @Description: 下发工单给ACS
* @Date: 2023/8/1
*/
@Data
public class AcsWorkOrderVo {
private String workorder_code;
private String device_code;
private String material_code;
private String plan_qty;
private String a;
private String b;
private String h;
private String w;
private String size; // 尺寸允许误差
private String single_weight; // 单重允许误差
private String drawing_address; // 图纸地址
}

View File

@@ -79,6 +79,9 @@ public class PdmBdWorkorderDto implements Serializable {
/** 外部标识 */
private String ext_id;
/** 外部标识 */
private String ext_data;
/** 是否删除 */
private Boolean is_delete;

View File

@@ -20,6 +20,7 @@ import org.nl.wms.ext.acs.service.dto.ResultForAcs;
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.mapper.PdmBdWorkorderMapper;
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery;
import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
@@ -131,9 +132,11 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
if (ObjectUtil.isNotEmpty(bdWorkorder)) {
throw new BadRequestException("该设备已有生产工单,不能重复下发");
}
ResultForAcs resultForAcs = null;
// 重装数据回ACS重新根据id找一遍省的改动以上代码
AcsWorkOrderVo acsWorkOrderVo = pdmBdWorkorderMapper.toAcsWorkOrderById(pdmBdWorkorder.getWorkorder_id());
ResultForAcs resultForAcs;
try {
resultForAcs = wmsToAcsService.order(pdmBdWorkorder);
resultForAcs = wmsToAcsService.order(acsWorkOrderVo);
} catch (Exception e) {
log.error("工单下发异常:" + e.getMessage());
// 通知

View File

@@ -11,10 +11,13 @@ import org.nl.wms.report.service.ReportService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* @Author: lyd
* @Description: 报表管理
@@ -23,13 +26,13 @@ import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@Api(tags = "报表管理")
@RequestMapping("/api/report/v1")
@RequestMapping("/api/report")
public class ReportController {
@Autowired
private ReportService reportService;
@PostMapping("/mudTransfer")
@GetMapping("/mudTransfer")
@Log("泥料转运记录表")
@ApiOperation("泥料转运记录表")
public ResponseEntity<Object> mudTransfer(JSONObject json, PageQuery page){
@@ -37,11 +40,24 @@ public class ReportController {
return null;
}
@PostMapping("/inventoryAlert")
@GetMapping("/inventoryAlert")
@Log("库存物料提示记录表")
@ApiOperation("库存物料提示记录表")
public ResponseEntity<Object> inventoryAlert(JSONObject json, PageQuery page){
// return new ResponseEntity<>(TableDataInfo.build(reportService.inventoryAlert(json,page)), HttpStatus.OK);
return null;
}
@GetMapping("/intoKilnReport")
@Log("入窑记录报表")
@ApiOperation("入窑记录报表")
public ResponseEntity<Object> intoKilnReport(Map json, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(reportService.intoKilnReport(json,page)), HttpStatus.OK);
}
@GetMapping("/outKilnReport")
@Log("出窑窑记录报表")
@ApiOperation("出窑窑记录报表")
public ResponseEntity<Object> outKilnReport(Map json, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(reportService.outKilnReport(json,page)), HttpStatus.OK);
}
}

View File

@@ -1,8 +1,10 @@
package org.nl.wms.report.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.report.service.dao.vo.IOKilnReportVo;
import java.util.Map;
/**
* @Author: lyd
@@ -10,6 +12,9 @@ import org.nl.common.domain.query.PageQuery;
* @Date: 2023/7/21
*/
public interface ReportService {
IPage<IOKilnReportVo> intoKilnReport(Map json, PageQuery page);
IPage<IOKilnReportVo> outKilnReport(Map json, PageQuery page);
// IPage<> mudTransfer(JSONObject json, PageQuery page);
}

View File

@@ -1,9 +1,16 @@
package org.nl.wms.report.service.dao.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.nl.wms.report.service.dao.vo.IOKilnReportVo;
/**
* @Author: lyd
* @Description: 报表mapper
* @Date: 2023/7/21
*/
public interface ReportMapper {
IPage<IOKilnReportVo> intoKilnReportByPage(IPage<IOKilnReportVo> pages, JSONObject query);
IPage<IOKilnReportVo> outKilnReportByPage(IPage<IOKilnReportVo> pages, JSONObject object);
}

View File

@@ -1,5 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.report.service.dao.mapper.ReportMapper">
<select id="intoKilnReportByPage" resultType="org.nl.wms.report.service.dao.vo.IOKilnReportVo">
SELECT
vg.into_kiln_time,
vg.vehicle_code,
vg.pcsn,
vg.material_qty,
m.material_code,
m.material_name
FROM
`sch_base_vehiclematerialgroup` vg
LEFT JOIN md_base_material m ON m.material_id = vg.material_id
WHERE vg.into_kiln_time IS NOT NULL AND vg.out_kiln_time IS NULL
</select>
<select id="outKilnReportByPage" resultType="org.nl.wms.report.service.dao.vo.IOKilnReportVo">
SELECT
vg.into_kiln_time,
vg.out_kiln_time,
vg.vehicle_code,
vg.pcsn,
vg.material_qty,
m.material_code,
m.material_name
FROM
`sch_base_vehiclematerialgroup` vg
LEFT JOIN md_base_material m ON m.material_id = vg.material_id
WHERE vg.into_kiln_time IS NOT NULL AND vg.out_kiln_time IS NOT NULL
</select>
</mapper>

View File

@@ -0,0 +1,19 @@
package org.nl.wms.report.service.dao.vo;
import lombok.Data;
/**
* @Author: lyd
* @Description: 出入窑记录报表
* @Date: 2023/8/1
*/
@Data
public class IOKilnReportVo {
private String into_kiln_time;
private String out_kiln_time;
private String vehicle_code;
private String pcsn;
private String material_qty;
private String material_code;
private String material_name;
}

View File

@@ -1,9 +1,18 @@
package org.nl.wms.report.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.report.service.ReportService;
import org.nl.wms.report.service.dao.mapper.ReportMapper;
import org.nl.wms.report.service.dao.vo.IOKilnReportVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @Author: lyd
* @Description:
@@ -12,4 +21,19 @@ import org.springframework.stereotype.Service;
@Slf4j
@Service
public class ReportServiceImpl implements ReportService {
@Autowired
private ReportMapper reportMapper;
@Override
public IPage<IOKilnReportVo> intoKilnReport(Map query, PageQuery page) {
IPage<IOKilnReportVo> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = reportMapper.intoKilnReportByPage(pages, new JSONObject(query));
return pages;
}
@Override
public IPage<IOKilnReportVo> outKilnReport(Map query, PageQuery page) {
IPage<IOKilnReportVo> pages = new Page<>(page.getPage() + 1, page.getSize());
pages = reportMapper.outKilnReportByPage(pages, new JSONObject(query));
return pages;
}
}

View File

@@ -67,4 +67,9 @@ public class GeneralDefinition {
public static final String IS_CONNECT_ACS = "is_connect_acs";
/** ACS路径 */
public static final String ACS_URL = "acs_url";
// 完成/取消
/** 任务完成 */
public static final String TASK_FINISH = "任务完成";
/** 任务取消 */
public static final String TASK_CANCEL = "任务取消";
}

View File

@@ -138,7 +138,7 @@
// }
// // 任务完成
// taskObj.setTask_status(TaskStatus.FINISHED.getCode());
// taskObj.setRemark("任务完成");
// taskObj.setRemark(GeneralDefinition.TASK_FINISH);
// }
// if (status.equals(TaskStatus.CANCELED)) { // 取消
// // 起点解锁
@@ -146,7 +146,7 @@
// startPointObj.setIng_task_code("");
// pointService.update(startPointObj);
// }
// taskObj.setRemark("任务取消");
// taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
// taskObj.setTask_status(TaskStatus.CANCELED.getCode());
// }
// taskService.update(taskObj);

View File

@@ -156,7 +156,7 @@ public class CTQKTask extends AbstractTask {
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
@@ -173,7 +173,7 @@ public class CTQKTask extends AbstractTask {
pointService.updateById(startPointObj);
}
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);

View File

@@ -152,7 +152,7 @@ public class DTSKTask extends AbstractTask {
PointUtils.clearPoint(startPointObj);
}
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -169,7 +169,7 @@ public class DTSKTask extends AbstractTask {
pointService.update(endPointObj);
}
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -323,7 +323,7 @@ public class FJMKTask extends AbstractTask {
vehiclematerialgroupService.updateById(vehicleMaterialGroupObj);
}
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -344,7 +344,7 @@ public class FJMKTask extends AbstractTask {
pointService.updateById(bzxPointObj);
}
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);

View File

@@ -211,7 +211,7 @@ public class FJQKTask extends AbstractTask {
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -226,7 +226,7 @@ public class FJQKTask extends AbstractTask {
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);

View File

@@ -201,7 +201,7 @@ public class FJQLTask extends AbstractTask {
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -216,7 +216,7 @@ public class FJQLTask extends AbstractTask {
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -238,7 +238,7 @@ public class FJRKTask extends AbstractTask {
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
PointUtils.clearPoint(startPointObj);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -255,7 +255,7 @@ public class FJRKTask extends AbstractTask {
pointService.updateById(endPointObj);
}
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);

View File

@@ -180,7 +180,7 @@ public class FJSKTask extends AbstractTask {
vehiclematerialgroupService.updateById(vehiclematerialgroup);
}
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -196,7 +196,7 @@ public class FJSKTask extends AbstractTask {
pointService.update(endPointObj);
}
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -209,7 +209,7 @@ public class FJSLTask extends AbstractTask {
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -225,7 +225,7 @@ public class FJSLTask extends AbstractTask {
PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -208,15 +208,15 @@ public class HNMLTask extends AbstractTask {
parentPointCode = split[responseObj.getInteger("direction") - 1];
}
// 找到父点位
SchBasePoint serviceOne = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
SchBasePoint yjDevice = pointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
.eq(SchBasePoint::getPoint_code, parentPointCode));
// 父点位(设备)需要切换成非空状态
PointUtils.setUpdateByType(serviceOne, taskFinishedType);
serviceOne.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
pointService.updateById(serviceOne);
PointUtils.setUpdateByType(yjDevice, taskFinishedType);
yjDevice.setPoint_status(PointStatusEnum.FULL_POINT.getCode());
pointService.updateById(yjDevice);
// 找压机工单
PdmBdWorkorder one = workorderService.getOne(new LambdaQueryWrapper<PdmBdWorkorder>()
.eq(serviceOne != null, PdmBdWorkorder::getPoint_code, serviceOne.getPoint_code())
.eq(yjDevice != null, PdmBdWorkorder::getPoint_code, yjDevice.getPoint_code())
.eq(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.PRODUCING.getCode()));
if (ObjectUtil.isNotEmpty(one)) {
// 给组盘数据设置批次:压制工单+混砂机号+碾次
@@ -239,7 +239,7 @@ public class HNMLTask extends AbstractTask {
vehiclematerialgroupService.updateById(groupEntity);
// 起点清空 - 由ACS请求修改
// PointUtils.clearPoint(startPointObj);
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
@@ -257,7 +257,7 @@ public class HNMLTask extends AbstractTask {
PointUtils.setUpdateByType(one, taskFinishedType);
pointService.updateById(one);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -140,7 +140,7 @@
// }
// // 任务完成
// taskObj.setTask_status(TaskStatus.FINISHED.getCode());
// taskObj.setRemark("任务完成");
// taskObj.setRemark(GeneralDefinition.TASK_FINISH);
// }
// if (status.equals(TaskStatus.CANCELED)) { // 取消
// // 起点解锁

View File

@@ -12,6 +12,8 @@ import java.util.List;
* @Date: 2023/6/19
*/
public interface HNMapper extends BaseMapper<JSONObject> {
// 通过叫料单
List<SchBasePoint> findPointForHNML(List<String> regionCode, String materialId);
// 通过工单与点位更新
List<SchBasePoint> findPointForHNMLAndWorkOrder(List<String> regionCode, String materialCode);
}

View File

@@ -221,7 +221,7 @@ public class CYZCTask extends AbstractTask {
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -235,7 +235,7 @@ public class CYZCTask extends AbstractTask {
endPointObj.setIng_task_code("");
pointService.update(endPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -157,7 +157,7 @@ public class GZYQLTask extends AbstractTask {
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -172,7 +172,7 @@ public class GZYQLTask extends AbstractTask {
PointUtils.setUpdateByType(startPointObj, taskFinishedType);
pointService.updateById(startPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -166,7 +166,7 @@ public class YZQKTask extends AbstractTask {
}
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);

View File

@@ -181,7 +181,7 @@ public class YZSKTask extends AbstractTask {
pointService.updateById(endPointObj);
}
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType); // 区分完成者
taskService.updateById(taskObj);
@@ -197,7 +197,7 @@ public class YZSKTask extends AbstractTask {
PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);

View File

@@ -316,7 +316,7 @@ public class YZSLTask extends AbstractTask {
PointUtils.clearPoint(startPointObj);
// 任务完成
taskObj.setTask_status(TaskStatus.FINISHED.getCode());
taskObj.setRemark("任务完成");
taskObj.setRemark(GeneralDefinition.TASK_FINISH);
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);
taskService.updateById(taskObj);
@@ -332,7 +332,7 @@ public class YZSLTask extends AbstractTask {
PointUtils.setUpdateByType(endPointObj, taskFinishedType);
pointService.updateById(endPointObj);
}
taskObj.setRemark("任务取消");
taskObj.setRemark(GeneralDefinition.TASK_CANCEL);
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
taskObj.setFinished_type(taskFinishedType.getCode());
TaskUtils.setUpdateByType(taskObj, taskFinishedType);