diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java index f7d3ecb11..627ee5158 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/IBstIvtCutpointivtService.java @@ -46,17 +46,18 @@ public interface IBstIvtCutpointivtService extends IService { /** * 获取类型状态,没任务的点位 * @param type 点位类型:1套轴对接位,2分切缓存位,3分切对接位 - * @param pointStatus 点位状态:1空位2有气涨轴3有子卷 + * @param pointStatus 点位状态:1空位、2有气涨轴、3有子卷 + * @param area 区域(0上1下) * @param sort 0:不排序,1:正序, 2:倒序 * @return / */ - List getAreaNotTaskPointByStatus(String type, String pointStatus, String sort); + List getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort); /** * 获取同尺寸的气涨轴 * @param type 点位类型:1套轴对接位,2分切缓存位,3分切对接位 * @param size 气涨轴尺寸 - * @param area 区域 + * @param area 区域(0上1下) * @return / */ List getPointByTypeAndShaftSize(String type, String size, String area); @@ -76,4 +77,11 @@ public interface IBstIvtCutpointivtService extends IService { */ BstIvtCutpointivt getPintByAgvCode(String point, boolean flag); + /** + * 获取类型1状态3,没任务的点位 + * @param location 区域:0上1下 + * @param area:区域:B1 B2 B3 B4 + * @return + */ + List getAreaNotTaskPointByLocationAreaAndStatus(String location, String area); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java index fe171b044..4f4fa50aa 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.java @@ -11,7 +11,9 @@ import java.util.List; **/ public interface BstIvtCutpointivtMapper extends BaseMapper { - List getAreaNotTaskPointByStatus(String type, String pointStatus, String sort); + List getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort); List getPointByTypeAndShaftSize(String type, String size, String area); + + List getAreaNotTaskPointByLocationAreaAndStatus(String location, String area); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml index 43179aff9..850de5f8c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/dao/mapper/BstIvtCutpointivtMapper.xml @@ -9,6 +9,7 @@ WHERE bic.point_type = #{type} AND bic.is_used = '1' AND bic.point_status = #{pointStatus} + AND bic.point_location = #{area} AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status '07' @@ -40,4 +41,22 @@ WHERE t.task_status '07' AND (t.point_code1 = bc.truss_point_code1 OR t.point_code1 = bc.truss_point_code2)) + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java index ee1433b33..357c4bdf2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/cutpointivt/service/impl/BstIvtCutpointivtServiceImpl.java @@ -89,8 +89,8 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl getAreaNotTaskPointByStatus(String type, String pointStatus, String sort) { - return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatus(type, pointStatus, sort); + public List getAreaNotTaskPointByStatus(String type, String pointStatus, String area, String sort) { + return bstIvtCutpointivtMapper.getAreaNotTaskPointByStatus(type, pointStatus, area, sort); } @Override @@ -113,4 +113,9 @@ public class BstIvtCutpointivtServiceImpl extends ServiceImpl getAreaNotTaskPointByLocationAreaAndStatus(String location, String area) { + return bstIvtCutpointivtMapper.getAreaNotTaskPointByLocationAreaAndStatus(location, area); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/controller/BstIvtScaleboundController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/controller/BstIvtScaleboundController.java new file mode 100644 index 000000000..c72055bc0 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/controller/BstIvtScaleboundController.java @@ -0,0 +1,60 @@ +package org.nl.b_lms.bst.ivt.scale.bound.controller; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.b_lms.bst.ivt.scale.bound.service.IBstIvtScaleboundService; +import org.nl.b_lms.bst.ivt.scale.bound.service.dao.BstIvtScalebound; +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 2024-03-12 +**/ +@Slf4j +@RestController +@RequestMapping("/api/bstIvtScalebound") +public class BstIvtScaleboundController { + + @Autowired + private IBstIvtScaleboundService bstIvtScaleboundService; + + @GetMapping + @Log("查询设备与称重机绑定") + //@SaCheckPermission("@el.check('bstIvtScalebound:list')") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(bstIvtScaleboundService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增设备与称重机绑定") + //@SaCheckPermission("@el.check('bstIvtScalebound:add')") + public ResponseEntity + create(@Validated @RequestBody BstIvtScalebound entity){ + bstIvtScaleboundService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改设备与称重机绑定") + //@SaCheckPermission("@el.check('bstIvtScalebound:edit')") + public ResponseEntity update(@Validated @RequestBody BstIvtScalebound entity){ + bstIvtScaleboundService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除设备与称重机绑定") + //@SaCheckPermission("@el.check('bstIvtScalebound:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + bstIvtScaleboundService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/IBstIvtScaleboundService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/IBstIvtScaleboundService.java new file mode 100644 index 000000000..7d05b2e7e --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/IBstIvtScaleboundService.java @@ -0,0 +1,43 @@ +package org.nl.b_lms.bst.ivt.scale.bound.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.b_lms.bst.ivt.scale.bound.service.dao.BstIvtScalebound; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2024-03-12 +**/ +public interface IBstIvtScaleboundService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(BstIvtScalebound entity); + + /** + * 编辑 + * @param entity / + */ + void update(BstIvtScalebound entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java new file mode 100644 index 000000000..c36f43e27 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/BstIvtScalebound.java @@ -0,0 +1,34 @@ +package org.nl.b_lms.bst.ivt.scale.bound.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** +* @description 添加'@Builder'注解最好不好添加'@NoArgsConstructor' +* @author lyd +* @date 2024-03-12 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("bst_ivt_scalebound") +public class BstIvtScalebound implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "scale_id", type = IdType.NONE) + /** id标识 */ + private String scale_id; + + /** 设备编码 */ + private String device_code; + + /** 称重机编码 */ + private String scale_code; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/mapper/BstIvtScaleboundMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/mapper/BstIvtScaleboundMapper.java new file mode 100644 index 000000000..bf6b64c70 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/mapper/BstIvtScaleboundMapper.java @@ -0,0 +1,12 @@ +package org.nl.b_lms.bst.ivt.scale.bound.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.bst.ivt.scale.bound.service.dao.BstIvtScalebound; + +/** +* @author lyd +* @date 2024-03-12 +**/ +public interface BstIvtScaleboundMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/mapper/BstIvtScaleboundMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/mapper/BstIvtScaleboundMapper.xml new file mode 100644 index 000000000..d018f99a8 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dao/mapper/BstIvtScaleboundMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dto/BstIvtScaleboundDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dto/BstIvtScaleboundDto.java new file mode 100644 index 000000000..0ef1f8ad7 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dto/BstIvtScaleboundDto.java @@ -0,0 +1,25 @@ +package org.nl.b_lms.bst.ivt.scale.bound.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.Builder; +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2024-03-12 +**/ +@Data +public class BstIvtScaleboundDto implements Serializable { + + /** id标识 */ + private String scale_id; + + /** 设备编码 */ + private String device_code; + + /** 称重机编码 */ + private String scale_code; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dto/BstIvtScaleboundQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dto/BstIvtScaleboundQuery.java new file mode 100644 index 000000000..01d50fb59 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/dto/BstIvtScaleboundQuery.java @@ -0,0 +1,12 @@ +package org.nl.b_lms.bst.ivt.scale.bound.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.b_lms.bst.ivt.scale.bound.service.dao.BstIvtScalebound; + +/** +* @author lyd +* @date 2024-03-12 +**/ +public class BstIvtScaleboundQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/impl/BstIvtScaleboundServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/impl/BstIvtScaleboundServiceImpl.java new file mode 100644 index 000000000..3b0878730 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/bound/service/impl/BstIvtScaleboundServiceImpl.java @@ -0,0 +1,63 @@ +package org.nl.b_lms.bst.ivt.scale.bound.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +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.modules.common.exception.BadRequestException; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.b_lms.bst.ivt.scale.bound.service.IBstIvtScaleboundService; +import org.nl.b_lms.bst.ivt.scale.bound.service.dao.mapper.BstIvtScaleboundMapper; +import org.nl.b_lms.bst.ivt.scale.bound.service.dao.BstIvtScalebound; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务实现 +* @author lyd +* @date 2024-03-12 +**/ +@Slf4j +@Service +public class BstIvtScaleboundServiceImpl extends ServiceImpl implements IBstIvtScaleboundService { + + @Autowired + private BstIvtScaleboundMapper bstIvtScaleboundMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + bstIvtScaleboundMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(BstIvtScalebound entity) { + + entity.setScale_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + bstIvtScaleboundMapper.insert(entity); + } + + @Override + public void update(BstIvtScalebound entity) { + BstIvtScalebound dto = bstIvtScaleboundMapper.selectById(entity.getScale_id()); + if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!"); + bstIvtScaleboundMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + bstIvtScaleboundMapper.deleteBatchIds(ids); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/controller/BstIvtScalehistoryController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/controller/BstIvtScalehistoryController.java new file mode 100644 index 000000000..4a6da8cfe --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/controller/BstIvtScalehistoryController.java @@ -0,0 +1,60 @@ +package org.nl.b_lms.bst.ivt.scale.history.controller; + +import lombok.extern.slf4j.Slf4j; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.modules.logging.annotation.Log; +import org.nl.b_lms.bst.ivt.scale.history.service.IBstIvtScalehistoryService; +import org.nl.b_lms.bst.ivt.scale.history.service.dao.BstIvtScalehistory; +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 2024-03-12 +**/ +@Slf4j +@RestController +@RequestMapping("/api/bstIvtScalehistory") +public class BstIvtScalehistoryController { + + @Autowired + private IBstIvtScalehistoryService bstIvtScalehistoryService; + + @GetMapping + @Log("查询称重历史记录") + //@SaCheckPermission("@el.check('bstIvtScalehistory:list')") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(bstIvtScalehistoryService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增称重历史记录") + //@SaCheckPermission("@el.check('bstIvtScalehistory:add')") + public ResponseEntity + create(@Validated @RequestBody BstIvtScalehistory entity){ + bstIvtScalehistoryService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改称重历史记录") + //@SaCheckPermission("@el.check('bstIvtScalehistory:edit')") + public ResponseEntity update(@Validated @RequestBody BstIvtScalehistory entity){ + bstIvtScalehistoryService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除称重历史记录") + //@SaCheckPermission("@el.check('bstIvtScalehistory:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + bstIvtScalehistoryService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/IBstIvtScalehistoryService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/IBstIvtScalehistoryService.java new file mode 100644 index 000000000..180baa496 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/IBstIvtScalehistoryService.java @@ -0,0 +1,43 @@ +package org.nl.b_lms.bst.ivt.scale.history.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.b_lms.bst.ivt.scale.history.service.dao.BstIvtScalehistory; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2024-03-12 +**/ +public interface IBstIvtScalehistoryService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(BstIvtScalehistory entity); + + /** + * 编辑 + * @param entity / + */ + void update(BstIvtScalehistory entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/BstIvtScalehistory.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/BstIvtScalehistory.java new file mode 100644 index 000000000..dc409f7fd --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/BstIvtScalehistory.java @@ -0,0 +1,46 @@ +package org.nl.b_lms.bst.ivt.scale.history.service.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; + +/** +* @description 添加'@Builder'注解最好不好添加'@NoArgsConstructor' +* @author lyd +* @date 2024-03-12 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("bst_ivt_scalehistory") +public class BstIvtScalehistory implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "history_id", type = IdType.NONE) + /** id标识 */ + private String history_id; + + /** 设备编码 */ + private String device_code; + + /** 称重机编码 */ + private String scale_code; + + /** 当前重量 */ + private String current_weight; + + /** 上次重量 */ + private String last_weight; + + /** 重量差 */ + private String weight_gap; + + /** 记录时间 */ + private String record_time; + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/mapper/BstIvtScalehistoryMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/mapper/BstIvtScalehistoryMapper.java new file mode 100644 index 000000000..c3eabb6b5 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/mapper/BstIvtScalehistoryMapper.java @@ -0,0 +1,12 @@ +package org.nl.b_lms.bst.ivt.scale.history.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.b_lms.bst.ivt.scale.history.service.dao.BstIvtScalehistory; + +/** +* @author lyd +* @date 2024-03-12 +**/ +public interface BstIvtScalehistoryMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/mapper/BstIvtScalehistoryMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/mapper/BstIvtScalehistoryMapper.xml new file mode 100644 index 000000000..feb521f06 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dao/mapper/BstIvtScalehistoryMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dto/BstIvtScalehistoryDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dto/BstIvtScalehistoryDto.java new file mode 100644 index 000000000..35634b1a6 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dto/BstIvtScalehistoryDto.java @@ -0,0 +1,37 @@ +package org.nl.b_lms.bst.ivt.scale.history.service.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.Builder; +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2024-03-12 +**/ +@Data +public class BstIvtScalehistoryDto implements Serializable { + + /** id标识 */ + private String history_id; + + /** 设备编码 */ + private String device_code; + + /** 称重机编码 */ + private String scale_code; + + /** 当前重量 */ + private String current_weight; + + /** 上次重量 */ + private String last_weight; + + /** 重量差 */ + private String weight_gap; + + /** 记录时间 */ + private String record_time; +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dto/BstIvtScalehistoryQuery.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dto/BstIvtScalehistoryQuery.java new file mode 100644 index 000000000..bf3418f92 --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/dto/BstIvtScalehistoryQuery.java @@ -0,0 +1,12 @@ +package org.nl.b_lms.bst.ivt.scale.history.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.b_lms.bst.ivt.scale.history.service.dao.BstIvtScalehistory; + +/** +* @author lyd +* @date 2024-03-12 +**/ +public class BstIvtScalehistoryQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/impl/BstIvtScalehistoryServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/impl/BstIvtScalehistoryServiceImpl.java new file mode 100644 index 000000000..3f272e4df --- /dev/null +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/bst/ivt/scale/history/service/impl/BstIvtScalehistoryServiceImpl.java @@ -0,0 +1,69 @@ +package org.nl.b_lms.bst.ivt.scale.history.service.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +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.modules.common.exception.BadRequestException; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.b_lms.bst.ivt.scale.history.service.IBstIvtScalehistoryService; +import org.nl.b_lms.bst.ivt.scale.history.service.dao.mapper.BstIvtScalehistoryMapper; +import org.nl.b_lms.bst.ivt.scale.history.service.dao.BstIvtScalehistory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务实现 +* @author lyd +* @date 2024-03-12 +**/ +@Slf4j +@Service +public class BstIvtScalehistoryServiceImpl extends ServiceImpl implements IBstIvtScalehistoryService { + + @Autowired + private BstIvtScalehistoryMapper bstIvtScalehistoryMapper; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + bstIvtScalehistoryMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(BstIvtScalehistory entity) { + String now = DateUtil.now(); + + entity.setHistory_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setRecord_time(now); + bstIvtScalehistoryMapper.insert(entity); + } + + @Override + public void update(BstIvtScalehistory entity) { + BstIvtScalehistory dto = bstIvtScalehistoryMapper.selectById(entity.getHistory_id()); + if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!"); + + String now = DateUtil.now(); + entity.setRecord_time(now); + + bstIvtScalehistoryMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + bstIvtScalehistoryMapper.deleteBatchIds(ids); + } + +} diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java index 1df15b381..5c2b8e733 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/controller/PdmBiSubpackagerelationController.java @@ -3,6 +3,7 @@ package org.nl.b_lms.pdm.subpackagerelation.controller; import java.util.Set; import java.util.Map; +import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.common.TableDataInfo; import org.springframework.web.bind.annotation.*; @@ -48,6 +49,31 @@ public class PdmBiSubpackagerelationController { } + /** + * 查询订单装箱信息 + * + * @param whereJson 查询条件 + * @param page 分页参数 + */ + @GetMapping("/queryContainerization") + @Log("查询订单装箱信息") + public ResponseEntity queryContainerization(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(pdmBiSubpackagerelationService.queryContainerization(whereJson, page)), HttpStatus.OK); + } + + + /** + * 根据订单号查询子卷信息 + * + * @param whereJson 查询条件 + */ + @GetMapping("/queryContainerNameBySaleOrder") + @Log("查询订单装箱信息") + public ResponseEntity queryContainerNameBySaleOrder(@RequestParam Map whereJson) { + return new ResponseEntity<>(TableDataInfo.build(pdmBiSubpackagerelationService.queryContainerNameBySaleOrder(whereJson)), HttpStatus.OK); + } + + /** * 新增数据 * @@ -76,6 +102,14 @@ public class PdmBiSubpackagerelationController { return new ResponseEntity<>(HttpStatus.OK); } + @PostMapping("/updateEntityList") + @Log("子卷分配木箱规格") + //@SaCheckPermission("@el.check(updateEntityList)") + public ResponseEntity updateEntityList(@RequestBody JSONObject whereJson) { + pdmBiSubpackagerelationService.updateEntityList(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + /** * 删除数据 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java index 0b55ab7c1..6f9ccfdc8 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/PdmBiSubpackagerelation.java @@ -3,6 +3,7 @@ package org.nl.b_lms.pdm.subpackagerelation.dao; import java.math.BigDecimal; import java.io.Serializable; +import jdk.nashorn.internal.ir.annotations.Ignore; import lombok.*; import lombok.Data; import lombok.Builder; @@ -20,11 +21,7 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; * @since 2024-02-01 */ @Data -@Builder -@ToString -@AllArgsConstructor -@EqualsAndHashCode(callSuper = false) -@SuppressWarnings("serial") +@EqualsAndHashCode(callSuper = true) @TableName("pdm_bi_subpackagerelation") public class PdmBiSubpackagerelation extends Model { @@ -36,7 +33,7 @@ public class PdmBiSubpackagerelation extends Model { * 子卷包装标识 */ @TableId(value = "workorder_id", type = IdType.NONE) - private Long workorder_id; + private String workorder_id; /** @@ -186,7 +183,6 @@ public class PdmBiSubpackagerelation extends Model { /** * 创建时间 */ - @TableField(fill = FieldFill.INSERT) private String create_time; @@ -309,6 +305,11 @@ public class PdmBiSubpackagerelation extends Model { */ private String ext_code; + /** + * 木箱组 + */ + private String box_group; + /** * 获取主键值 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java index 2e1c77d0c..de347e5b0 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/mapper/PdmBiSubpackagerelationMapper.java @@ -1,8 +1,13 @@ package org.nl.b_lms.pdm.subpackagerelation.dao.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +import java.util.List; +import java.util.Map; + /** * {@code @Description:} 子卷包装关系表(PdmBiSubpackagerelation)数据持久层 * {@code @Author:} gbx @@ -12,4 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface PdmBiSubpackagerelationMapper extends BaseMapper { + List selectGroupedSubPackageRelation(Page page, Map whereJson); + } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml index 6c542686c..c95b46bcd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dao/xml/PdmBiSubpackagerelationMapper.xml @@ -2,5 +2,19 @@ + diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java index e10974569..988bb5607 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/dto/PdmBiSubpackagerelationDto.java @@ -22,7 +22,7 @@ public class PdmBiSubpackagerelationDto implements Serializable { /** * 子卷包装标识 */ - private Long workorder_id; + private String workorder_id; /** * 木箱唯一码 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java index 51227c501..562e886b9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/IpdmBiSubpackagerelationService.java @@ -1,13 +1,16 @@ package org.nl.b_lms.pdm.subpackagerelation.service; +import com.alibaba.fastjson.JSONObject; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; import java.util.Map; import java.util.Set; import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; +import org.springframework.web.bind.annotation.RequestBody; /** @@ -29,6 +32,33 @@ public interface IpdmBiSubpackagerelationService extends IService queryAll(Map whereJson, PageQuery pageable); + /** + * 查询订单装箱信息 + * + * @param whereJson 查询条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryContainerization(Map whereJson, PageQuery pageable); + + + /** + * 根据订单号查询子卷信息 + * + * @param whereJson 查询条件 + * @return List + */ + List queryContainerNameBySaleOrder(Map whereJson); + + + /** + * 子卷分配木箱规格 + * + * @param whereJson 分配信息 + */ + void updateEntityList(@RequestBody JSONObject whereJson); + + /** * 创建 * diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java index 0143b6f05..81b88d157 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/pdm/subpackagerelation/service/impl/PdmBiSubpackagerelationServiceImpl.java @@ -1,6 +1,12 @@ package org.nl.b_lms.pdm.subpackagerelation.service.impl; +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import org.apache.commons.collections4.MapUtils; import org.nl.b_lms.pdm.subpackagerelation.dao.PdmBiSubpackagerelation; import org.nl.b_lms.pdm.subpackagerelation.dao.mapper.PdmBiSubpackagerelationMapper; import org.nl.b_lms.pdm.subpackagerelation.service.IpdmBiSubpackagerelationService; @@ -13,8 +19,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.nl.common.domain.query.PageQuery; import javax.annotation.Resource; -import java.util.Map; -import java.util.Set; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; /** @@ -39,11 +46,85 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { + return pdmBiSubpackagerelationMapper.selectPage(new Page<>(page.getPage() + 1, page.getSize()), new QueryWrapper() .lambda()); } + /** + * 查询订单装箱信息 + * + * @param whereJson 查询条件 + * @param pageable 分页参数 + */ + @Override + public IPage queryContainerization(Map whereJson, PageQuery pageable) { + IPage resultPage = new Page<>(pageable.getPage(), pageable.getSize()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (whereJson.containsKey("customer_description")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_description, whereJson.get("customer_description")); + } + if (whereJson.containsKey("sale_order_name")) { + queryWrapper.like(PdmBiSubpackagerelation::getSale_order_name, whereJson.get("sale_order_name")); + } + if (whereJson.containsKey("customer_name")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_name, whereJson.get("customer_name")); + } + if (whereJson.containsKey("status")) { + if ("99".equals(whereJson.get("status"))) { + queryWrapper.eq(PdmBiSubpackagerelation::getStatus, whereJson.get("status")); + } else { + queryWrapper.lt(PdmBiSubpackagerelation::getStatus, "99"); + } + } + queryWrapper.groupBy(PdmBiSubpackagerelation::getSale_order_name) + .orderByDesc(PdmBiSubpackagerelation::getCreate_time); + return pdmBiSubpackagerelationMapper.selectPage(resultPage, queryWrapper); + } + + + /** + * 根据订单号查询子卷信息 + * + * @param whereJson 查询条件 + */ + @Override + public List queryContainerNameBySaleOrder(Map whereJson) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (whereJson.containsKey("customer_description")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_description, whereJson.get("customer_description")); + } + if (whereJson.containsKey("sale_order_name")) { + queryWrapper.eq(PdmBiSubpackagerelation::getSale_order_name, whereJson.get("sale_order_name")); + } + if (whereJson.containsKey("customer_name")) { + queryWrapper.like(PdmBiSubpackagerelation::getCustomer_name, whereJson.get("customer_name")); + } + if (whereJson.containsKey("status")) { + if ("99".equals(whereJson.get("status"))) { + queryWrapper.eq(PdmBiSubpackagerelation::getStatus, whereJson.get("status")); + } else { + queryWrapper.ge(PdmBiSubpackagerelation::getStatus, whereJson.get("status")); + } + } + queryWrapper.orderByDesc(PdmBiSubpackagerelation::getBox_group); + List pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper.selectList(queryWrapper); + Map countByGroup = pdmBiSubpackagerelationList.stream() + .filter(item -> item.getBox_group() != null) + .collect(Collectors.groupingBy(PdmBiSubpackagerelation::getBox_group, Collectors.counting())); + pdmBiSubpackagerelationList.forEach(item -> { + if (item.getBox_group() != null) { + item.setQuanlity_in_box(BigDecimal.valueOf(countByGroup.getOrDefault(item.getBox_group(), null))); + } else { + item.setQuanlity_in_box(BigDecimal.ZERO); + item.setBox_group("0"); + } + }); + return pdmBiSubpackagerelationList; + } + + /** * 创建 * @@ -69,6 +150,36 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl entityList = JSONObject.parseArray(whereJson.getJSONArray("tableMater").toJSONString(), PdmBiSubpackagerelation.class).stream() + .map(PdmBiSubpackagerelation::getWorkorder_id) + .map(String::valueOf) + .collect(Collectors.toList()); + ; + if (entityList.isEmpty()) { + return; + } + List pdmBiSubpackagerelationList = pdmBiSubpackagerelationMapper + .selectList(new LambdaQueryWrapper().eq(PdmBiSubpackagerelation::getSale_order_name, whereJson.getString("sale_order_name"))); + Integer maxBoxGroup = pdmBiSubpackagerelationList.stream() + .map(PdmBiSubpackagerelation::getBox_group) + .filter(Objects::nonNull) + .map(Integer::parseInt) + .max(Integer::compareTo) + .orElse(0) + 1; + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.set("box_type", whereJson.getString("checked")); + updateWrapper.set("box_group", maxBoxGroup); + updateWrapper.in("workorder_id", entityList); + pdmBiSubpackagerelationMapper.update(null, updateWrapper); + } + /** * 多选删除 @@ -89,11 +200,11 @@ public class PdmBiSubpackagerelationServiceImpl extends ServiceImpl emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2","0","0"); emptyPoints.forEach(empty -> { // 标箔:1,锂电:2 String specification = empty.getQzz_generation(); - String location; + String location = empty.getPoint_location(); String area; - if ("1".equals(specification)) { - location = "0"; - if ("0".equals(empty.getPoint_location())) { + if (SlitterConstant.SLITTER_STANDARD_FOIL.equals(specification)) { + if (SlitterConstant.SLITTER_AREA_UP.equals(location)) { area = "B2"; } else { area = "B4"; } } else { - location = "1"; - if ("0".equals(empty.getPoint_location())) { + if (SlitterConstant.SLITTER_AREA_UP.equals(location)) { area = "B1"; } else { area = "B3"; @@ -81,15 +75,15 @@ public class AutoCallAirShaftTask { List plans = slittingproductionplanService.getAllCutPlan(area); if (plans.size() == 0) { // 如果不需要套轴,就只做拔轴 - makePullShaft(empty); + makePullShaft(empty, area); return; } // 查看套轴对接位是否满了 - List emptyShaftPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "0"); + List emptyShaftPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", location, "0"); // 如果满了就只做拔轴 if (emptyShaftPoint.size() == 0) { // 如果不需要套轴,就只做拔轴 - makePullShaft(empty); + makePullShaft(empty, area); return; } // 获取一个分切计划的Dto。一根轴可能有两个分切计划 @@ -104,7 +98,7 @@ public class AutoCallAirShaftTask { // 获取其中一条 PdmBiSlittingproductionplan needPlan = needPlans.get(0); String qzzSize = needPlan.getQzz_size(); - // 从套轴对接位获取相同气涨轴大小 + // 从套轴对接位获取相同气涨轴大小 (同标箔或者锂电分开) List qzzPoint = bcutpointivtService.getPointByTypeAndShaftSize("1", qzzSize, area); if (qzzPoint.size() == 0) { // 调用ACS滚条气涨轴下来 @@ -133,16 +127,25 @@ public class AutoCallAirShaftTask { param.put("qzz_no", ObjectUtil.isNotEmpty(startPoint.getQzz_no1()) ? startPoint.getQzz_no1() : startPoint.getQzz_no2()); param.put("needPlan", planDto); + param.put("is_pulling", "1"); param.put("is_bushing", "1"); param.put("task_type", "6"); param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); param.put("qzz_size", needPlan.getQzz_size()); - // 设置子卷号 + // 纸管规格、是否拔轴 for (PdmBiSlittingproductionplan plan : needPlans) { if ("1".equals(plan.getLeft_or_right())) { - param.put("left", plan.getContainer_name()); + if ("1".equals(plan.getPaper_tube_or_FRP())) { + param.put("left", plan.getPaper_tube_model()); + } else { + param.put("left", plan.getFRP_model()); + } } else { - param.put("right", plan.getContainer_name()); + if ("1".equals(plan.getPaper_tube_or_FRP())) { + param.put("right", plan.getPaper_tube_model()); + } else { + param.put("right", plan.getFRP_model()); + } } } trussCallAirShaftTask.createTask(param); @@ -169,7 +172,7 @@ public class AutoCallAirShaftTask { throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴"); } BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - // todo: 访问acs判断是否有无气涨轴 + // todo: 访问acs判断有无气涨轴 boolean flag = true; if (!flag) { // 气涨轴库没有对应的气涨轴,就到气涨轴暂存区获取 @@ -256,11 +259,12 @@ public class AutoCallAirShaftTask { } /** - * 不需要套轴,就只做拔轴 + * 不需要套轴,就只做拔轴(区分标箔、锂电) * @param empty 空的插拔轴点位 + * @param area 区域 */ - private void makePullShaft(BstIvtShafttubeivt empty) { - List notTaskPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "3", "0"); + private void makePullShaft(BstIvtShafttubeivt empty, String area) { + List notTaskPoints = bcutpointivtService.getAreaNotTaskPointByLocationAreaAndStatus(empty.getPoint_location(), area); if (notTaskPoints.size() == 0) { return; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java index fb35334d1..3fe06c025 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSendAirShaftAgvTask.java @@ -49,7 +49,7 @@ public class AutoSendAirShaftAgvTask { @SneakyThrows public void run() { // 获取套轴对接位有气涨轴没任务的点位 - List cutPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "2", "0"); + List cutPoints = bcutpointivtService.getAreaNotTaskPointByStatus("1", "2", "0", "0"); for (BstIvtCutpointivt cutPoint : cutPoints) { // 获取分切计划 List collect = Stream.of(cutPoint.getQzz_no1(), cutPoint.getQzz_no2()) @@ -63,6 +63,7 @@ public class AutoSendAirShaftAgvTask { } // 获取任意一条 PdmBiSlittingproductionplan demoPlan = plans.get(0); + // 区域(B1, B2, B3, B4) String area = demoPlan.getResource_name().substring(0, 2); StIvtCutpointivt deviceCut = cutpointivtService.getOne(new LambdaQueryWrapper() .eq(StIvtCutpointivt::getExt_code, demoPlan.getResource_name())); @@ -81,7 +82,7 @@ public class AutoSendAirShaftAgvTask { } // 如果两个气涨轴编码则表示一组满了 // 查找分切对接没任务的空位 - List emptyPoint = slitterMapper.getEmptyCutPointNotTask(deviceCut.getSort_seq()); + List emptyPoint = slitterMapper.getEmptyCutPointNotTask(area, deviceCut.getSort_seq()); if (emptyPoint.size() == 0) { log.warn("找不到对应的位置!"); return; diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java index b87c4b471..33fde1b1d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/auto/AutoSlitterDownAgvTask.java @@ -55,7 +55,7 @@ public class AutoSlitterDownAgvTask { cutPointIvts.forEach(cut -> { // cut是起点 // 1、先去对应的套轴对接位,没有气涨轴(空位),没有任务的点位 - List areaEmptyNotTaskPoint = cutpointivtService.getAreaNotTaskPointByStatus("1", "1", "2"); + List areaEmptyNotTaskPoint = cutpointivtService.getAreaNotTaskPointByStatus("1", "1", "0", "2"); if (areaEmptyNotTaskPoint.size() > 0) { BstIvtCutpointivt endPoint = areaEmptyNotTaskPoint.get(0); RLock lock = redissonClient.getLock(endPoint.getPoint_code()); @@ -79,7 +79,7 @@ public class AutoSlitterDownAgvTask { } } else if (areaEmptyNotTaskPoint.size() == 0 && "3".equals(cut.getPoint_type())) { // 2、没有位置,就去分切缓存位 - areaEmptyNotTaskPoint = cutpointivtService.getAreaNotTaskPointByStatus("3", "1", "0"); + areaEmptyNotTaskPoint = cutpointivtService.getAreaNotTaskPointByStatus("3", "1", "0","0"); } if (areaEmptyNotTaskPoint.size() == 0) { log.warn(cut.getProduct_area() + "该区域暂无位置存放满轴"); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java index 2a2867529..75ef98154 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/constant/SlitterConstant.java @@ -11,5 +11,29 @@ public interface SlitterConstant { * 任务区域:暂定Test */ String SLITTER_TASK_AREA = "B2"; + /** + * 是/可能/使用... + */ + String SLITTER_YES = "1"; + /** + * 否/不可能/不用... + */ + String SLITTER_NO = "0"; + /** + * 标箔:1 + */ + String SLITTER_STANDARD_FOIL = "1"; + /** + * 锂电:2 + */ + String SLITTER_LITHIUM_BATTERY = "2"; + /** + * 区域:上 + */ + String SLITTER_AREA_UP = "0"; + /** + * 区域:下 + */ + String SLITTER_AREA_DOWN = "1"; } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java index c2412e9bc..d5c7dc6c1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/controller/SlitterController.java @@ -39,6 +39,8 @@ public class SlitterController { return new ResponseEntity<>(slitterService.acsFinishLoadShaft(entity), HttpStatus.OK); } else if ("3".equals(entity.getString("type"))) { return new ResponseEntity<>(slitterService.acsFinishShaftPluckTube(entity), HttpStatus.OK); + } else if ("5".equals(entity.getString("type"))) { + return new ResponseEntity<>(slitterService.acsSendShaftToCache(entity), HttpStatus.OK); } return new ResponseEntity<>(slitterService.acsRequestShaftLoadTube(entity), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java index abde7834e..7f9e2c266 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.java @@ -35,10 +35,11 @@ public interface SlitterMapper { /** * 获取分切机下料位没任务的点位 - * @param sortSeq + * @param area 区域 + * @param sortSeq 设备序号 * @return */ - List getEmptyCutPointNotTask(BigDecimal sortSeq); + List getEmptyCutPointNotTask(String area, BigDecimal sortSeq); /** * 获取分切机下一组分切计划对应的点位 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml index 7b3f09349..89129599b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/mapper/SlitterMapper.xml @@ -46,6 +46,7 @@ FROM `bst_ivt_cutpointivt` bcp WHERE bcp.point_type = '3' AND bcp.point_status = '1' AND bcp.is_used = '1' + AND bcp.product_area = #{area} AND 0 = ( SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status '07' AND (t.point_code2 = bcp.point_code OR t.point_code2 = bcp.truss_point_code1 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java index 9a7a03e6f..020f0bed1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/SlitterService.java @@ -48,4 +48,31 @@ public interface SlitterService { * @return */ JSONObject mesSlittingMachineSendMaterial(JSONObject param); + + + /** + * 分切子卷获取LMS,AGV废箔称重重量 + * @param param "ResourceName": "设备编码" + * @return + * { + * "RTOAL": 1, + * "RTMSG": "操作成功!", + * "RTYPE": "S", + * "RTDAT": [ + * { + * "ResourceName": "设备号", + * "Weight": "差异重量", + * “WeighDate”:"称重时间" + * } + * ] + * } + */ + JSONObject mesGetWeighingOfWasteFoil(JSONObject param); + + /** + * 分切子卷获取LMS,AGV废箔称重重量MES提交废箔成功 + * @param param + * @return + */ + JSONObject mesGetFinishWeighingOfWasteFoil(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index 2ed1e3743..bcecfc454 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -8,8 +8,12 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.nl.b_lms.bst.ivt.cutpointivt.service.IBstIvtCutpointivtService; import org.nl.b_lms.bst.ivt.cutpointivt.service.dao.BstIvtCutpointivt; +import org.nl.b_lms.bst.ivt.scale.bound.service.IBstIvtScaleboundService; +import org.nl.b_lms.bst.ivt.scale.bound.service.dao.BstIvtScalebound; +import org.nl.b_lms.bst.ivt.scale.history.service.IBstIvtScalehistoryService; import org.nl.b_lms.bst.ivt.shafttubeivt.service.IBstIvtShafttubeivtService; import org.nl.b_lms.bst.ivt.shafttubeivt.service.dao.BstIvtShafttubeivt; import org.nl.b_lms.pdm.bi.slittingproductionplan.service.IPdmBiSlittingproductionplanService; @@ -20,12 +24,14 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.slitter.SendCopperFoilSubRollTrussTask; import org.nl.b_lms.sch.tasks.slitter.SlitterDownTrussTask; +import org.nl.b_lms.sch.tasks.slitter.TrussCallShaftCacheTask; import org.nl.b_lms.sch.tasks.slitter.TrussSendAirShaftTask; import org.nl.b_lms.sch.tasks.slitter.constant.SlitterConstant; import org.nl.b_lms.sch.tasks.slitter.mapper.SlitterMapper; import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.common.utils.TaskUtils; import org.nl.modules.common.exception.BadRequestException; +import org.nl.wms.ext.acs.service.WmsToAcsService; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; @@ -43,6 +49,7 @@ import java.util.stream.Stream; * @author lyd * @date 2024-02-26 **/ +@Slf4j @Service public class SlitterServiceImpl implements SlitterService { @@ -66,31 +73,38 @@ public class SlitterServiceImpl implements SlitterService { private SendCopperFoilSubRollTrussTask sendCopperFoilSubRollTrussTask; @Autowired private RedissonClient redissonClient; + @Autowired + private TrussCallShaftCacheTask trussCallShaftCacheTask; + @Autowired + private IBstIvtScaleboundService scaleBoundService; + @Autowired + private IBstIvtScalehistoryService scaleHistoryService; + @Autowired + private WmsToAcsService wmsToAcsService; - @SneakyThrows @Override public JSONObject acsRequestShaftLoadTube(JSONObject param) { JSONObject res = new JSONObject(); JSONObject con = new JSONObject(); String deviceCode = param.getString("device_code"); - RLock lock = redissonClient.getLock(deviceCode); - boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); - try { - if (tryLock) { - String size = param.getString("size"); - BstIvtShafttubeivt point = shafttubeivtService.getByPointCode(deviceCode, false); - res.put("device_code", deviceCode); - res.put("data", con); - con.put("left", point.getTube_code1()); - con.put("right", point.getTube_code2()); - } else { - throw new BadRequestException("系统繁忙,稍后在试"); - } - } finally { - if (tryLock) { - lock.unlock(); - } + String size = param.getString("size"); + BstIvtShafttubeivt point = shafttubeivtService.getByPointCode(deviceCode, false); + // 判断尺寸是否相同 + if (!size.equals(point.getQzz_size())) { + log.error("设备:{}对应的气胀轴尺寸不批对,需要气胀轴尺寸:{},实际尺寸:{}", deviceCode, point.getQzz_size(), size); + throw new BadRequestException("设备:{ " + deviceCode + " }对应的气胀轴尺寸不批对" + + ",需要气胀轴尺寸:{ " + point.getQzz_size() + " },实际尺寸:{ " + size + " }"); } + res.put("device_code", deviceCode); + res.put("data", con); + con.put("left", point.getTube_code1()); + con.put("left_size", ObjectUtil.isNotEmpty(point.getTube_name1()) + ? point.getTube_name1().split("\\|")[2].charAt(0) : ""); + con.put("right", point.getTube_code2()); + con.put("right_size", ObjectUtil.isNotEmpty(point.getTube_name2()) + ? point.getTube_name2().split("\\|")[2].charAt(0) : ""); + con.put("number", ObjectUtil.isNotEmpty(point.getTube_code1()) && ObjectUtil.isNotEmpty(point.getTube_code2()) + ? "2" : "1"); res.put("code", HttpStatus.HTTP_OK); res.put("message", "任务请求成功!"); return res; @@ -101,41 +115,34 @@ public class SlitterServiceImpl implements SlitterService { public JSONObject acsFinishShaftPluckTube(JSONObject param) { JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); - RLock lock = redissonClient.getLock(deviceCode); - boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); - try { - if (tryLock) { - // 气涨轴编码 - String qzzNo = param.getString("qzz_no"); - List plans = slittingproductionplanService.getByQzzNo(qzzNo); - if (plans.size() == 0) { - throw new BadRequestException("查询不到气胀轴编码「" + qzzNo + "」对应的子卷信息!"); - } - PdmBiSlittingproductionplan plan; - if ("1".equals(deviceCode.substring(deviceCode.length() - 1))) { - plan = plans.stream().filter(p -> "1".equals(p.getLeft_or_right())).findFirst().orElse(null); - } else { - plan = plans.stream().filter(p -> "2".equals(p.getLeft_or_right())).findFirst().orElse(null); - } - // 查找终点 todo: 如何确认是废箔还是成品 - // todo: 暂时写死去成品称重 + // 气涨轴编码 + String qzzNo = param.getString("qzz_no"); + String direction = param.getString("direction"); + List plans = slittingproductionplanService.getByQzzNo(qzzNo); + if (plans.size() == 0) { + throw new BadRequestException("查询不到气胀轴编码「" + qzzNo + "」对应的子卷信息!"); + } + PdmBiSlittingproductionplan plan; + if ("1".equals(direction)) { + plan = plans.stream().filter(p -> "1".equals(p.getLeft_or_right())).findFirst().orElse(null); + } else { + plan = plans.stream().filter(p -> "2".equals(p.getLeft_or_right())).findFirst().orElse(null); + } + if (plan == null) { + log.error("设备{}, 找不到气胀轴编码{}对应的分切计划!参数:{}",deviceCode, qzzNo, param); + throw new BadRequestException("找不到气胀轴编码{ " + qzzNo + " }的分切计划!"); + } + // 查找终点 todo: 如何确认是废箔还是成品 + // todo: 暂时写死去成品称重 // BstIvtShafttubeivt one = shafttubeivtService.getOne(new LambdaQueryWrapper() // .eq(BstIvtShafttubeivt::getPoint_type, "4").eq(BstIvtShafttubeivt::getPoint_location, "0")); - JSONObject taskParam = new JSONObject(); - taskParam.put("point_code1", deviceCode); - taskParam.put("point_code2", "B_CZW01"); - taskParam.put("material_code", plan.getContainer_name()); - taskParam.put("task_type", "6"); - taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - sendCopperFoilSubRollTrussTask.createTask(taskParam); - } else { - throw new BadRequestException("系统繁忙,稍后在试"); - } - } finally { - if (tryLock) { - lock.unlock(); - } - } + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", deviceCode); + taskParam.put("point_code2", "B_CZW01"); + taskParam.put("material_code", plan.getContainer_name()); + taskParam.put("task_type", "6"); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + sendCopperFoilSubRollTrussTask.createTask(taskParam); res.put("code", HttpStatus.HTTP_OK); res.put("message", "任务请求成功!"); return res; @@ -147,38 +154,28 @@ public class SlitterServiceImpl implements SlitterService { // 参数:设备号,type,插拔轴位,qzzSize JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); - RLock lock = redissonClient.getLock(deviceCode); - boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); - try { - if (tryLock) { - String qzzNo = param.getString("qzz_no"); - if (ObjectUtil.isEmpty(qzzNo)) { - throw new BadRequestException("气涨轴编码不能为空!"); - } - List plans = slittingproductionplanService.getByQzzNo(qzzNo); - if (plans.size() == 0) { - throw new BadRequestException("查询不到气胀轴编码「" + qzzNo + "」对应的子卷信息!"); - } - // 反馈 纸管尺寸 - JSONObject r = new JSONObject(); - res.put("data", r); - r.put("device_code", deviceCode); - for (PdmBiSlittingproductionplan plan : plans) { - String s = String.valueOf("1".equals(plan.getPaper_tube_or_FRP()) - ? plan.getPaper_tube_model() - : plan.getFRP_model().split("\\|")[2].charAt(0)); - if ("1".equals(plan.getLeft_or_right())) { - r.put("left_size", s); - } else { - r.put("right_size", s); - } - } + String qzzNo = param.getString("qzz_no"); + if (ObjectUtil.isEmpty(qzzNo)) { + log.error("气涨轴编码不能为空!"); + throw new BadRequestException("气涨轴编码不能为空!"); + } + List plans = slittingproductionplanService.getByQzzNo(qzzNo); + if (plans.size() == 0) { + log.error("查询不到气胀轴编码「" + qzzNo + "」对应的子卷信息!"); + throw new BadRequestException("查询不到气胀轴编码「" + qzzNo + "」对应的子卷信息!"); + } + // 反馈 纸管尺寸 + JSONObject r = new JSONObject(); + res.put("data", r); + r.put("device_code", deviceCode); + for (PdmBiSlittingproductionplan plan : plans) { + String s = String.valueOf("1".equals(plan.getPaper_tube_or_FRP()) + ? plan.getPaper_tube_model().split("\\|")[2].charAt(0) + : plan.getFRP_model().split("\\|")[2].charAt(0)); + if ("1".equals(plan.getLeft_or_right())) { + r.put("left_size", s); } else { - throw new BadRequestException("系统繁忙,稍后在试"); - } - } finally { - if (tryLock) { - lock.unlock(); + r.put("right_size", s); } } res.put("code", HttpStatus.HTTP_OK); @@ -191,93 +188,84 @@ public class SlitterServiceImpl implements SlitterService { @Transactional(rollbackFor = Exception.class) public JSONObject acsFinishLoadShaft(JSONObject param) { JSONObject res = new JSONObject(); + // 穿拔轴位 String deviceCode = param.getString("device_code"); - RLock lock = redissonClient.getLock(deviceCode); - boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); + // todo: 纸管 + String weight1 = param.getString("weight1"); + String material1 = param.getString("material1"); + String weight2 = param.getString("weight2"); + String material2 = param.getString("material2"); + // 判断是否有未完成的任务 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, deviceCode) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + log.error("点位[{}]存在未完成得任务!", deviceCode); + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); + } + BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtShafttubeivt::getPoint_code, deviceCode)); + // 获取分切计划 + List collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2()) + .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); + List plans = slittingproductionplanService.list(new LambdaQueryWrapper() + .in(PdmBiSlittingproductionplan::getContainer_name, collect) + .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); + if (plans.size() == 0) { + log.error("找不到[{}]对应的分切计划!", collect); + throw new BadRequestException("找不到[" + collect + "]对应的分切计划!"); + } + // 当前套轴的分切计划 + PdmBiSlittingproductionplan demoPlan = plans.get(0); + // 查找是否有同组的气胀轴位置 + BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan); + if (ObjectUtil.isEmpty(cutPoint)) { + // 也有可能在路上, 获取任务的终点 + String endPoint = slitterMapper.getSameGroupTaskPoint(demoPlan); + if (ObjectUtil.isNotEmpty(endPoint)) { + cutPoint = bcutpointivtService.getOne(new LambdaQueryWrapper() + .eq(BstIvtCutpointivt::getTruss_point_code1, endPoint).or() + .eq(BstIvtCutpointivt::getTruss_point_code2, endPoint)); + } + } + if (ObjectUtil.isEmpty(cutPoint)) { + // 获取一个空位 (上下区域) + List emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus( + "1", "1", startPoint.getPoint_location(), "1"); + if (emptyNotTaskPoint.size() == 0) { + throw new BadRequestException("找不到可用套轴对接位!"); + } + cutPoint = emptyNotTaskPoint.get(0); + } + // 枷锁 + RLock lockPoint = redissonClient.getLock(cutPoint.getPoint_code()); + boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS); try { - if (tryLock) { - String taskCode = param.getString("task_code"); - // todo: 纸管 - String weight1 = param.getString("weight1"); - String material1 = param.getString("material1"); - String weight2 = param.getString("weight2"); - String material2 = param.getString("material2"); - // 判断是否有未完成的任务 - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getPoint_code1, deviceCode) - .lt(SchBaseTask::getTask_status, "07")); - if (list.size() > 0) { - throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); - } - BstIvtShafttubeivt startPoint = shafttubeivtService.getOne(new LambdaQueryWrapper() - .eq(BstIvtShafttubeivt::getPoint_code, deviceCode)); - // 获取分切计划 - List collect = Stream.of(startPoint.getContainer_name1(), startPoint.getContainer_name2()) - .filter(value -> value != null && !value.isEmpty()).collect(Collectors.toList()); - List plans = slittingproductionplanService.list(new LambdaQueryWrapper() - .in(PdmBiSlittingproductionplan::getContainer_name, collect) - .eq(PdmBiSlittingproductionplan::getIs_delete, "0")); - if (plans.size() == 0) { - throw new BadRequestException("找不到[" + collect + "]对应的分切计划!"); - } - // 当前套轴的分切计划 - PdmBiSlittingproductionplan demoPlan = plans.get(0); - // 查找是否有同组的气胀轴位置 - BstIvtCutpointivt cutPoint = slitterMapper.getSameGroupPoint(demoPlan); - if (ObjectUtil.isEmpty(cutPoint)) { - // 也有可能在路上, 获取任务的终点 - String endPoint = slitterMapper.getSameGroupTaskPoint(demoPlan); - if (ObjectUtil.isNotEmpty(endPoint)) { - cutPoint = bcutpointivtService.getOne(new LambdaQueryWrapper() - .eq(BstIvtCutpointivt::getTruss_point_code1, endPoint).or() - .eq(BstIvtCutpointivt::getTruss_point_code2, endPoint)); - } - } - if (ObjectUtil.isEmpty(cutPoint)) { - // 获取一个空位 - List emptyNotTaskPoint = bcutpointivtService.getAreaNotTaskPointByStatus("1", "1", "1"); - if (emptyNotTaskPoint.size() == 0) { - throw new BadRequestException("找不到可用套轴对接位!"); - } - cutPoint = emptyNotTaskPoint.get(0); - } - // 枷锁 - RLock lockPoint = redissonClient.getLock(cutPoint.getPoint_code()); - boolean tryLockPoint = lockPoint.tryLock(5, TimeUnit.SECONDS); - try { - if (tryLockPoint) { - // 分切计划设置套轴完成 - String qzzNo = IdUtil.getSnowflake(1,1).nextIdStr(); - plans.forEach(plan -> { - plan.setIs_child_tz_ok("1"); - plan.setQzzno(qzzNo); - TaskUtils.updateOptMessageBySlitterPlan(plan); - }); - slittingproductionplanService.updateBatchById(plans); - // 创建任务 - JSONObject taskParam = new JSONObject(); - taskParam.put("point_code1", startPoint.getPoint_code()); - taskParam.put("point_code2", "1".equals(demoPlan.getUp_or_down()) - ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); - taskParam.put("vehicle_code1", "1".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); - taskParam.put("vehicle_code2", "2".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); - taskParam.put("task_type", "6"); - taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - trussSendAirShaftTask.createTask(taskParam); - } else { - throw new BadRequestException("系统繁忙,稍后在试"); - } - } finally { - if (tryLockPoint) { - lockPoint.unlock(); - } - } + if (tryLockPoint) { + // 分切计划设置套轴完成 + String qzzNo = IdUtil.getSnowflake(1,1).nextIdStr(); + plans.forEach(plan -> { + plan.setIs_child_tz_ok("1"); + plan.setQzzno(qzzNo); + TaskUtils.updateOptMessageBySlitterPlan(plan); + }); + slittingproductionplanService.updateBatchById(plans); + // 创建任务 + JSONObject taskParam = new JSONObject(); + taskParam.put("point_code1", startPoint.getPoint_code()); + taskParam.put("point_code2", "1".equals(demoPlan.getUp_or_down()) + ? cutPoint.getTruss_point_code1() : cutPoint.getTruss_point_code2()); + taskParam.put("vehicle_code1", "1".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("vehicle_code2", "2".equals(demoPlan.getUp_or_down()) ? qzzNo : ""); + taskParam.put("task_type", "6"); + taskParam.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + trussSendAirShaftTask.createTask(taskParam); } else { throw new BadRequestException("系统繁忙,稍后在试"); } } finally { - if (tryLock) { - lock.unlock(); + if (tryLockPoint) { + lockPoint.unlock(); } } res.put("code", HttpStatus.HTTP_OK); @@ -290,43 +278,32 @@ public class SlitterServiceImpl implements SlitterService { public JSONObject acsSendShaftToCache(JSONObject param) { JSONObject res = new JSONObject(); String deviceCode = param.getString("device_code"); - RLock lock = redissonClient.getLock(deviceCode); - boolean tryLock = lock.tryLock(10, TimeUnit.SECONDS); - try { - if (tryLock) { - String qzzSize = param.getString("qzz_size"); - // 判断是否有未完成的任务 - List list = taskService.list(new LambdaQueryWrapper() - .eq(SchBaseTask::getPoint_code1, deviceCode) - .lt(SchBaseTask::getTask_status, "07")); - if (list.size() > 0) { - throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); - } - BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); - // 临时存放气涨轴尺寸 - startPoint.setQzz_size(qzzSize); - // 获取空位 - List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); - if (shafttubeivts.size() == 0) { - throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); - } - BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - // 创建任务 - param.put("point_code1", deviceCode); - param.put("point_code2", shafttubeivt.getPoint_code()); - // hint: 当前分切计划的气涨轴尺寸 - param.put("qzz_size", qzzSize); - param.put("task_type", "6"); - param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - param.put("is_bushing", "0"); - } else { - throw new BadRequestException("系统繁忙,稍后在试"); - } - } finally { - if (tryLock) { - lock.unlock(); - } + String qzzSize = param.getString("size"); + // 判断是否有未完成的任务 + List list = taskService.list(new LambdaQueryWrapper() + .eq(SchBaseTask::getPoint_code1, deviceCode) + .lt(SchBaseTask::getTask_status, "07")); + if (list.size() > 0) { + throw new BadRequestException("点位[" + deviceCode + "]存在未完成得任务!"); } + BstIvtShafttubeivt startPoint = shafttubeivtService.getByPointCode(deviceCode, false); + // 临时存放气涨轴尺寸 + startPoint.setQzz_size(qzzSize); + // 获取空位 + List shafttubeivts = shafttubeivtService.getNotTaskShaftCacheEmpty(startPoint); + if (shafttubeivts.size() == 0) { + throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); + } + BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); + // 创建任务 + param.put("point_code1", deviceCode); + param.put("point_code2", shafttubeivt.getPoint_code()); + // hint: 当前分切计划的气涨轴尺寸 + param.put("qzz_size", qzzSize); + param.put("task_type", "6"); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + param.put("is_bushing", "0"); + trussCallShaftCacheTask.createTask(param); res.put("code", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res; @@ -360,6 +337,7 @@ public class SlitterServiceImpl implements SlitterService { // 获得设备 StIvtCutpointivt device = cutpointivtService.getOne(new LambdaQueryWrapper() .eq(StIvtCutpointivt::getExt_code, demoPlan.getResource_name())); + String area = demoPlan.getResource_name().substring(0, 2); // 获取当前分切机的下一组分切计划(最多四条分切计划) // hint: 获取到的分切可能是不同组的但具有一定时间顺序 List timePlans = slittingproductionplanService.list(new LambdaQueryWrapper() @@ -372,7 +350,7 @@ public class SlitterServiceImpl implements SlitterService { if (timePlans.size() == 0) { // 如果没有下一组的分切计划,就只做下卷任务(判断下单/下双) // 获取分切对接位没任务的空位置 - List emptyPoints = slitterMapper.getEmptyCutPointNotTask(device.getSort_seq()); + List emptyPoints = slitterMapper.getEmptyCutPointNotTask(area, device.getSort_seq()); if (emptyPoints.size() == 0) { throw new BadRequestException("分切机【" + device.getExt_code() + "】找不到对应的对接位!"); } @@ -508,4 +486,67 @@ public class SlitterServiceImpl implements SlitterService { res.put("message", "子卷出站任务生成成功!"); return res; } + + @Override + public JSONObject mesGetWeighingOfWasteFoil(JSONObject param) { + JSONObject res = new JSONObject(); + JSONObject resData = new JSONObject(); + String resourceName = param.getString("ResourceName"); + // 获取称的设备号 + BstIvtScalebound scaleEquipment = scaleBoundService.getOne(new LambdaQueryWrapper() + .eq(BstIvtScalebound::getDevice_code, resourceName)); + // 下发给acs称重 + JSONArray acsParam = new JSONArray(); + JSONObject acsWeighing = new JSONObject(); + acsWeighing.put("device_code", scaleEquipment.getScale_code()); + acsWeighing.put("code", "to_command"); + acsWeighing.put("value", "6"); + acsWeighing.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + acsParam.add(acsWeighing); + JSONObject action = wmsToAcsService.action(acsParam); + if (HttpStatus.HTTP_OK == action.getInteger("status")) { + // 记录数据库 + res.put("RTOAL", 1); + res.put("RTMSG", "操作成功!"); + res.put("RTYPE", "S"); + res.put("RTDAT", resData); + resData.put("ResourceName", resourceName); + resData.put("Weight", ""); + resData.put("WeighDate", ""); + return res; + } + res.put("RTOAL", 0); + res.put("RTMSG", "称重失败!"); + res.put("RTYPE", "F"); + return res; + } + + @Override + public JSONObject mesGetFinishWeighingOfWasteFoil(JSONObject param) { + JSONObject res = new JSONObject(); + String resourceName = param.getString("ResourceName"); + // 获取称的设备号 + BstIvtScalebound scaleEquipment = scaleBoundService.getOne(new LambdaQueryWrapper() + .eq(BstIvtScalebound::getDevice_code, resourceName)); + // 下发给acs称重 + JSONArray acsParam = new JSONArray(); + JSONObject acsWeighing = new JSONObject(); + acsWeighing.put("device_code", scaleEquipment.getScale_code()); + acsWeighing.put("code", "to_command"); + acsWeighing.put("value", "8"); + acsWeighing.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + acsParam.add(acsWeighing); + JSONObject action = wmsToAcsService.action(acsParam); + if (HttpStatus.HTTP_OK == action.getInteger("status")) { + // 记录数据库 + res.put("RTOAL", 1); + res.put("RTMSG", "操作成功!"); + res.put("RTYPE", "S"); + return res; + } + res.put("RTOAL", 0); + res.put("RTMSG", "操作失败!"); + res.put("RTYPE", "F"); + return res; + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java index a0bb901e2..0ca4dbb4c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/impl/StIvtIostorinvOutServiceImpl.java @@ -1145,6 +1145,8 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl getQZZInfo(@RequestBody JSONObject jo) { return new ResponseEntity<>(acsToWmsService.getQZZInfo(jo), HttpStatus.OK); @@ -177,5 +177,10 @@ public class AcsToWmsController { return new ResponseEntity<>(acsToWmsService.deviceApplyExceptional(whereJson), HttpStatus.OK); } - + @PostMapping("/slitterApply") + @Log(value = "二期分切请求", isInterfaceLog = true, interfaceLogType = InterfaceLogType.ACS_TO_LMS) + @SaIgnore + public ResponseEntity slitterApply(@RequestBody JSONObject param) { + return new ResponseEntity<>(acsToWmsService.slitterApply(param), HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java index 86c1f3bfc..59e8ea10a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/AcsToWmsService.java @@ -167,4 +167,11 @@ public interface AcsToWmsService { * } */ JSONObject deviceApplyExceptional(JSONObject whereJson); + + /** + * 二期分切请求 + * @param param / + * @return / + */ + JSONObject slitterApply(JSONObject param); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 5443e3323..4d645910f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -21,6 +21,7 @@ import org.nl.b_lms.sch.task.dao.SchBaseTask; import org.nl.b_lms.sch.task.service.IschBaseTaskService; import org.nl.b_lms.sch.tasks.TwoBoxExcepTask; import org.nl.b_lms.sch.tasks.first_floor_area.MzhcwTask; +import org.nl.b_lms.sch.tasks.slitter.service.SlitterService; import org.nl.b_lms.storage_manage.ios.enums.IOSEnum; import org.nl.b_lms.storage_manage.ios.enums.TASKEnum; import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.*; @@ -47,6 +48,7 @@ import org.nl.wms.st.inbill.service.RawAssistIStorService; import org.nl.wms.st.inbill.service.StorPublicService; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -126,6 +128,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Resource private MzhcwTask mzhcwTask; + private final SlitterService slitterService; + /** * task_id:任务标识 @@ -2012,6 +2016,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { point_code = inBussManageService.taskExceptional(whereJson); } } + + if (ObjectUtil.isEmpty(point_code)) { + throw new BadRequestException("点位为空!"); + } + result.put("status", HttpStatus.OK.value()); result.put("message", "下发成功!"); result.put("point_code", point_code); @@ -2029,4 +2038,56 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return result; } + @SneakyThrows + @Override + public JSONObject slitterApply(JSONObject param) { + log.info("slitterApply请求参数:---------------------------------------------{}", param); + JSONObject res = new JSONObject(); + String deviceCode = param.getString("device_code"); + String type = param.getString("type"); + if (ObjectUtil.isEmpty(type)) { + throw new BadRequestException("任务类型「type」不能为空"); + } + RLock lock = redissonClient.getLock(deviceCode); + boolean tryLock = lock.tryLock(5, TimeUnit.SECONDS); + try { + if (tryLock) { + switch (type) { + case "1": + // 申请套管 + res = slitterService.acsRequestShaftLoadTube(param); + break; + case "2": + // 套管完成 + res = slitterService.acsFinishLoadShaft(param); + break; + case "3": + // 拔轴完成 + res = slitterService.acsFinishShaftPluckTube(param); + break; + case "4": + // 申请拔轴 + res = slitterService.acsRequestShaftPluckTube(param); + break; + case "5": + // 缓存线已满,生产桁架任务 + res = slitterService.acsSendShaftToCache(param); + break; + default: + log.error("slitterApply任务类型「{}」无效!,参数:---------------------------------------------{}", type, param); + throw new BadRequestException("任务类型「" + type + "」无效!"); + } + } else { + log.error("slitterApply系统繁忙,参数:---------------------------------------------{}", param); + throw new BadRequestException("系统繁忙,请稍后再试!"); + } + } finally { + if (tryLock) { + lock.unlock(); + } + } + log.info("slitterApply返回参数:---------------------------------------------{}", res); + return res; + } + } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java index 471357d34..08ad052de 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/AcsTaskDto.java @@ -59,7 +59,6 @@ public class AcsTaskDto { * 扩展参数 */ private String params; - private String params2; /** * 温度 */ @@ -109,7 +108,7 @@ public class AcsTaskDto { /** * 任务扩展字段 */ - private String interaction_json; + private JSONObject interaction_json; /** * 空点位 */ diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java index ca6799924..b702db515 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/TaskServiceImpl.java @@ -32,6 +32,7 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.concurrent.TimeUnit; /** @@ -139,8 +140,15 @@ public class TaskServiceImpl implements TaskService { // 任务处理类 String processing_class = taskObj.getString("handle_class"); String message = ""; + try { - Object obj = SpringContextHolder.getBean(Class.forName(processing_class)); + Object obj = new Object(); + try { + obj = SpringContextHolder.getBean(Class.forName(processing_class)); + } catch (Exception e) { + Class clz = Class.forName(processing_class); + obj = clz.newInstance(); + } // 调用每个任务类的method_name()强制结束方法 Method m = obj.getClass().getMethod(method_name, String.class); JSONObject result = (JSONObject) m.invoke(obj, task_id); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java index a04fda9c5..c9ba1ce8a 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/rest/CheckOutBillController.java @@ -1,5 +1,6 @@ package org.nl.wms.st.outbill.rest; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -403,6 +404,7 @@ public class CheckOutBillController { @PostMapping("/testBoxLash") @Log("木箱捆扎测试") + @SaIgnore public ResponseEntity testBoxLash(@RequestBody JSONObject whereJson) { lashManageService.createLashTask(whereJson); return new ResponseEntity<>(HttpStatus.OK); diff --git a/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/bound/bstIvtScalebound.js b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/bound/bstIvtScalebound.js new file mode 100644 index 000000000..8832aad49 --- /dev/null +++ b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/bound/bstIvtScalebound.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bstIvtScalebound', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bstIvtScalebound/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bstIvtScalebound', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/bound/index.vue b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/bound/index.vue new file mode 100644 index 000000000..cf6cc7d48 --- /dev/null +++ b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/bound/index.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/history/bstIvtScalehistory.js b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/history/bstIvtScalehistory.js new file mode 100644 index 000000000..96dc9d26c --- /dev/null +++ b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/history/bstIvtScalehistory.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/bstIvtScalehistory', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/bstIvtScalehistory/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/bstIvtScalehistory', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/history/index.vue b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/history/index.vue new file mode 100644 index 000000000..8d71217ed --- /dev/null +++ b/lms/nladmin-ui/src/views/b_lms/bst/ivt/scale/history/index.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/stor/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/stor/index.vue index b4cbebe95..7aada34c7 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/stor/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/stor/index.vue @@ -204,7 +204,6 @@ import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect' import '@riophae/vue-treeselect/dist/vue-treeselect.css' import { getDepts, getDeptSuperior } from '@/views/system/dept/dept' import { isvalidPhone } from '@/utils/validate' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' const defaultForm = { stor_id: null, diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/struct/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/struct/index.vue index 70cc19381..8ca226768 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/struct/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/struct/index.vue @@ -30,6 +30,7 @@ > @@ -281,8 +282,7 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' -import crudUserStor, { getSect } from '@/views/wms/basedata/st/userStor/userStor' +import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' /* import checkoutbill from "@/api/wms/st/core/outbill/checkoutbill";*/ const defaultForm = { diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue new file mode 100644 index 000000000..b2c910040 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/DivDialog.vue @@ -0,0 +1,399 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue new file mode 100644 index 000000000..f2417fa47 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/MaterDialog.vue @@ -0,0 +1,183 @@ + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue new file mode 100644 index 000000000..d56249729 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/index.vue @@ -0,0 +1,304 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/materattr.js b/lms/nladmin-ui/src/views/wms/pdm/sub/materattr.js new file mode 100644 index 000000000..9ffb28d02 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/materattr.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/structattr', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/structattr/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/structattr', + method: 'put', + data + }) +} + +export default { add, edit, del } diff --git a/lms/nladmin-ui/src/views/wms/pdm/sub/packagerelation.js b/lms/nladmin-ui/src/views/wms/pdm/sub/packagerelation.js new file mode 100644 index 000000000..096920efe --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/sub/packagerelation.js @@ -0,0 +1,43 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/subpackagerelation', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pdmBiSubpackagerelation/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pdmBiSubpackagerelation', + method: 'put', + data + }) +} + +export function queryContainerization(params) { + return request({ + url: '/api/pdmBiSubpackagerelation/queryContainerNameBySaleOrder', + method: 'get', + params + }) +} + +export function updateEntityList(data) { + return request({ + url: '/api/pdmBiSubpackagerelation/updateEntityList', + method: 'post', + data + }) +} + +export default { add, edit, del, queryContainerization, updateEntityList } diff --git a/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue b/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue index a25c4d06e..88e160c39 100644 --- a/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue +++ b/lms/nladmin-ui/src/views/wms/pub/StructDialog.vue @@ -71,7 +71,6 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' import crudStructattr from '@/views/wms/basedata/st/struct/structattr' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' export default { diff --git a/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue b/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue index 062b70d4a..0bf8bbab8 100644 --- a/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue +++ b/lms/nladmin-ui/src/views/wms/st/inStor/change/AddDtl.vue @@ -92,7 +92,7 @@ :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > - + @@ -101,7 +101,7 @@ - + @@ -119,7 +119,6 @@ import CRUD, { header, presenter } from '@crud/crud' import rrOperation from '@crud/RR.operation' import pagination from '@crud/Pagination' -import crudSectattr from '@/views/wms/basedata/st/sect/sectattr' import crudUserStor from '@/views/wms/basedata/st/userStor/userStor' import handmovestor from '@/views/wms/st/inStor/moveStor/handmovestor' diff --git a/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue index e7097c3d3..53a4a205d 100644 --- a/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue @@ -203,11 +203,10 @@