From 1b65bd962e35ccb2aa0b816382ecbe3b459b23cb Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Fri, 28 Jul 2023 14:44:26 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E5=8E=8B=E6=9C=BA=E6=B3=A5=E6=96=99?= =?UTF-8?q?=E6=AE=8B=E4=BD=99=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-system/doc/wms.xls | Bin 323072 -> 360960 bytes .../wms/ext/acs/service/dto/SignalData.java | 6 ++ .../ext/acs/service/dto/to/BaseRequest.java | 9 ++ .../acs/service/impl/AcsToWmsServiceImpl.java | 12 +++ .../PdmBdMaterialResidueController.java | 66 ++++++++++++ .../service/IPdmBdMaterialResidueService.java | 49 +++++++++ .../service/dao/PdmBdMaterialResidue.java | 46 ++++++++ .../mapper/PdmBdMaterialResidueMapper.java | 12 +++ .../dao/mapper/PdmBdMaterialResidueMapper.xml | 5 + .../service/dto/PdmBdMaterialResidueDto.java | 34 ++++++ .../dto/PdmBdMaterialResidueQuery.java | 12 +++ .../impl/PdmBdMaterialResidueServiceImpl.java | 90 ++++++++++++++++ .../service/IPdmBdWorkorderService.java | 2 + .../impl/PdmBdWorkorderServiceImpl.java | 14 ++- .../task_manage/task/tasks/fj/FJQKTask.java | 12 ++- .../task_manage/task/tasks/yz/YZSLTask.java | 9 ++ .../main/java/org/nl/wms/util/TaskUtils.java | 21 ++++ .../src/views/wms/pdm/residue/index.vue | 102 ++++++++++++++++++ .../wms/pdm/residue/pdmBdMaterialResidue.js | 27 +++++ 19 files changed, 523 insertions(+), 5 deletions(-) create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/controller/PdmBdMaterialResidueController.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/IPdmBdMaterialResidueService.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/PdmBdMaterialResidue.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.xml create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueDto.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueQuery.java create mode 100644 lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/impl/PdmBdMaterialResidueServiceImpl.java create mode 100644 lms/nladmin-ui/src/views/wms/pdm/residue/index.vue create mode 100644 lms/nladmin-ui/src/views/wms/pdm/residue/pdmBdMaterialResidue.js diff --git a/lms/nladmin-system/doc/wms.xls b/lms/nladmin-system/doc/wms.xls index d3e88f6ba9347f2122b3ef83e16ac74ddd033c2b..99dc07db1f483f64c8a81856eb2cebf8e9358fca 100644 GIT binary patch delta 47410 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%0D8JR7{6O{*YqLgy~55hZKh^37vX6h6R6029?S# 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 Rqi(CL`WE)lt5!)>{|}bH3X}i< delta 15298 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 parameters = new HashMap(); + public static BaseRequest createRequest() { + BaseRequest baseRequest = new BaseRequest(); + baseRequest.setRequestNo(IdUtil.simpleUUID()); + baseRequest.setRequestDate(DateUtil.now()); + return baseRequest; + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index beeb436..41d0937 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -27,6 +27,7 @@ import org.nl.wms.ext.acs.service.dto.to.acs.GetPalletizeResponse; import org.nl.wms.ext.record.service.ISysInteractRecordService; import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService; import org.nl.wms.pdm.record.service.dao.PdmBdRequestMaterialRecord; +import org.nl.wms.pdm.residue.service.IPdmBdMaterialResidueService; import org.nl.wms.pdm.track.service.IPdmBdProductionProcessTrackingService; import org.nl.wms.pdm.track.service.dao.PdmBdProductionProcessTracking; import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; @@ -93,6 +94,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { private IPdmBdProductionProcessTrackingService processTrackingService; @Autowired private RedissonClient redissonClient; + @Autowired + private IPdmBdMaterialResidueService materialResidueService; @Override public BaseResponse acsApply(JSONObject param) { @@ -308,6 +311,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return requestNo; } + /** 反馈压机残留重量*/ + public BaseResponse applyFeedbackWeight(JSONObject param) { + ApplyTaskRequest applyTaskRequest = param.toJavaObject(ApplyTaskRequest.class); + materialResidueService.addByApplyTaskRequest(applyTaskRequest); + return BaseResponse.responseOk(applyTaskRequest.getRequestNo()); + } + /** 申请贴标 */ public BaseResponse applyLabelling(JSONObject param) { // 木托盘号##物料编码##数量##吨量(单重X数量)##生产日期##成型工单号(mes提供压制工单) @@ -350,6 +360,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return BaseResponse.responseError(requestNo, "物料信息为空!"); } bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.PRODUCING.getCode()); + bdWorkorder.setRealproducestart_date(DateUtil.now()); workorderService.update(bdWorkorder); return BaseResponse.responseOk(requestNo); } @@ -366,6 +377,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { return BaseResponse.responseError(requestNo, "物料信息为空!"); } bdWorkorder.setWorkorder_status(WorkOrderStatusEnum.COMPLETE.getCode()); + bdWorkorder.setRealproduceend_date(DateUtil.now()); workorderService.update(bdWorkorder); return BaseResponse.responseOk(requestNo); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/controller/PdmBdMaterialResidueController.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/controller/PdmBdMaterialResidueController.java new file mode 100644 index 0000000..3df312a --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/controller/PdmBdMaterialResidueController.java @@ -0,0 +1,66 @@ +package org.nl.wms.pdm.residue.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.pdm.residue.service.IPdmBdMaterialResidueService; +import org.nl.wms.pdm.residue.service.dao.PdmBdMaterialResidue; +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-07-28 +**/ +@Slf4j +@RestController +@Api(tags = "压机泥料剩余记录管理") +@RequestMapping("/api/pdmBdMaterialResidue") +public class PdmBdMaterialResidueController { + + @Autowired + private IPdmBdMaterialResidueService pdmBdMaterialResidueService; + + @GetMapping + @Log("查询压机泥料剩余记录") + @ApiOperation("查询压机泥料剩余记录") + //@SaCheckPermission("@el.check('pdmBdMaterialResidue:list')") + public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ + return new ResponseEntity<>(TableDataInfo.build(pdmBdMaterialResidueService.queryAll(whereJson,page)),HttpStatus.OK); + } + + @PostMapping + @Log("新增压机泥料剩余记录") + @ApiOperation("新增压机泥料剩余记录") + //@SaCheckPermission("@el.check('pdmBdMaterialResidue:add')") + public ResponseEntity create(@Validated @RequestBody PdmBdMaterialResidue entity){ + pdmBdMaterialResidueService.create(entity); + return new ResponseEntity<>(HttpStatus.CREATED); + } + + @PutMapping + @Log("修改压机泥料剩余记录") + @ApiOperation("修改压机泥料剩余记录") + //@SaCheckPermission("@el.check('pdmBdMaterialResidue:edit')") + public ResponseEntity update(@Validated @RequestBody PdmBdMaterialResidue entity){ + pdmBdMaterialResidueService.update(entity); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + + @Log("删除压机泥料剩余记录") + @ApiOperation("删除压机泥料剩余记录") + //@SaCheckPermission("@el.check('pdmBdMaterialResidue:del')") + @DeleteMapping + public ResponseEntity delete(@RequestBody Set ids) { + pdmBdMaterialResidueService.deleteAll(ids); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/IPdmBdMaterialResidueService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/IPdmBdMaterialResidueService.java new file mode 100644 index 0000000..dfec403 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/IPdmBdMaterialResidueService.java @@ -0,0 +1,49 @@ +package org.nl.wms.pdm.residue.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.ext.acs.service.dto.to.wms.ApplyTaskRequest; +import org.nl.wms.pdm.residue.service.dao.PdmBdMaterialResidue; + +import java.util.Map; +import java.util.Set; + +/** +* @description 服务接口 +* @author lyd +* @date 2023-07-28 +**/ +public interface IPdmBdMaterialResidueService extends IService { + + /** + * 查询数据分页 + * @param whereJson 条件 + * @param pageable 分页参数 + * @return IPage + */ + IPage queryAll(Map whereJson, PageQuery pageable); + + /** + * 创建 + * @param entity / + */ + void create(PdmBdMaterialResidue entity); + + /** + * 编辑 + * @param entity / + */ + void update(PdmBdMaterialResidue entity); + + /** + * 多选删除 + * @param ids / + */ + void deleteAll(Set ids); + + /** + * 添加数据 + */ + void addByApplyTaskRequest(ApplyTaskRequest applyTaskRequest); +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/PdmBdMaterialResidue.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/PdmBdMaterialResidue.java new file mode 100644 index 0000000..980ddbc --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/PdmBdMaterialResidue.java @@ -0,0 +1,46 @@ +package org.nl.wms.pdm.residue.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-07-28 +**/ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("pdm_bd_material_residue") +public class PdmBdMaterialResidue 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 raw_material_code; + + @ApiModelProperty(value = "设备编码") + private String device_code; + + @ApiModelProperty(value = "泥料编码") + private String weight; + + @ApiModelProperty(value = "工单号") + private String workorder_code; + + @ApiModelProperty(value = "物料id") + private String material_id; + + @ApiModelProperty(value = "记录时间") + private String record_time; + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.java new file mode 100644 index 0000000..da60465 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.java @@ -0,0 +1,12 @@ +package org.nl.wms.pdm.residue.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.pdm.residue.service.dao.PdmBdMaterialResidue; + +/** +* @author lyd +* @date 2023-07-28 +**/ +public interface PdmBdMaterialResidueMapper extends BaseMapper { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.xml b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.xml new file mode 100644 index 0000000..2110a28 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dao/mapper/PdmBdMaterialResidueMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueDto.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueDto.java new file mode 100644 index 0000000..dd40ff7 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueDto.java @@ -0,0 +1,34 @@ +package org.nl.wms.pdm.residue.service.dto; + +import lombok.Data; +import java.io.Serializable; + +/** +* @description / +* @author lyd +* @date 2023-07-28 +**/ +@Data +public class PdmBdMaterialResidueDto implements Serializable { + + /** 记录标识 */ + private String record_id; + + /** 泥料编码 */ + private String raw_material_code; + + /** 设备编码 */ + private String device_code; + + /** 泥料编码 */ + private String weight; + + /** 工单号 */ + private String workorder_code; + + /** 物料id */ + private String material_id; + + /** 记录时间 */ + private String record_time; +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueQuery.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueQuery.java new file mode 100644 index 0000000..90fff91 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/dto/PdmBdMaterialResidueQuery.java @@ -0,0 +1,12 @@ +package org.nl.wms.pdm.residue.service.dto; + +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.pdm.residue.service.dao.PdmBdMaterialResidue; + +/** +* @author lyd +* @date 2023-07-28 +**/ +public class PdmBdMaterialResidueQuery extends BaseQuery { + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/impl/PdmBdMaterialResidueServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/impl/PdmBdMaterialResidueServiceImpl.java new file mode 100644 index 0000000..0b25678 --- /dev/null +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/residue/service/impl/PdmBdMaterialResidueServiceImpl.java @@ -0,0 +1,90 @@ +package org.nl.wms.pdm.residue.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.wms.ext.acs.service.dto.to.wms.ApplyTaskRequest; +import org.nl.wms.pdm.residue.service.IPdmBdMaterialResidueService; +import org.nl.wms.pdm.residue.service.dao.mapper.PdmBdMaterialResidueMapper; +import org.nl.wms.pdm.residue.service.dao.PdmBdMaterialResidue; +import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; +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-07-28 +**/ +@Slf4j +@Service +public class PdmBdMaterialResidueServiceImpl extends ServiceImpl implements IPdmBdMaterialResidueService { + + @Autowired + private PdmBdMaterialResidueMapper pdmBdMaterialResidueMapper; + @Autowired + private IPdmBdWorkorderService workorderService; + + @Override + public IPage queryAll(Map whereJson, PageQuery page){ + LambdaQueryWrapper lam = new LambdaQueryWrapper<>(); + IPage pages = new Page<>(page.getPage() + 1, page.getSize()); + pdmBdMaterialResidueMapper.selectPage(pages, lam); + return pages; + } + + @Override + public void create(PdmBdMaterialResidue entity) { + entity.setRecord_id(IdUtil.getSnowflake(1, 1).nextIdStr()); + entity.setRecord_time(DateUtil.now()); + pdmBdMaterialResidueMapper.insert(entity); + } + + @Override + public void update(PdmBdMaterialResidue entity) { + PdmBdMaterialResidue dto = pdmBdMaterialResidueMapper.selectById(entity.getRecord_id()); + if (dto == null) throw new BadRequestException("被删除或无权限,操作失败!"); + String now = DateUtil.now(); + entity.setRecord_time(now); + + pdmBdMaterialResidueMapper.updateById(entity); + } + + @Override + public void deleteAll(Set ids) { + // 真删除 + pdmBdMaterialResidueMapper.deleteBatchIds(ids); + } + + @Override + public void addByApplyTaskRequest(ApplyTaskRequest applyTaskRequest) { + // 查找工单 + PdmBdWorkorder code = workorderService.getByCode(applyTaskRequest.getOrder_code()); + PdmBdMaterialResidue materialResidue = new PdmBdMaterialResidue(); + materialResidue.setRecord_id(IdUtil.getSnowflake(1,1).nextIdStr()); + if (ObjectUtil.isNotEmpty(code)) { + materialResidue.setMaterial_id(code.getMaterial_id()); + } + materialResidue.setWorkorder_code(applyTaskRequest.getOrder_code()); + materialResidue.setDevice_code(applyTaskRequest.getDevice_code()); + materialResidue.setRaw_material_code(applyTaskRequest.getMaterial_code()); + materialResidue.setWeight(applyTaskRequest.getWeight()); + materialResidue.setRecord_time(DateUtil.now()); + pdmBdMaterialResidueMapper.insert(materialResidue); + + } + +} diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java index 9ca5064..b4d71f6 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/IPdmBdWorkorderService.java @@ -47,4 +47,6 @@ public interface IPdmBdWorkorderService extends IService { * @return */ PdmBdWorkorder getDeviceProductionTask(String deviceCode); + + PdmBdWorkorder getByCode(String orderCode); } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java index 00ff6e2..3d1bbff 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/impl/PdmBdWorkorderServiceImpl.java @@ -16,6 +16,7 @@ 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.dto.PdmBdWorkorderQuery; +import org.nl.wms.sch.task_manage.GeneralDefinition; import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -65,11 +66,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl lam = new QueryWrapper().lambda(); + lam.eq(PdmBdWorkorder::getWorkorder_code, orderCode); + return pdmBdWorkorderMapper.selectOne(lam); + } + } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java index 66fdca8..22e724e 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/FJQKTask.java @@ -6,6 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.exception.BadRequestException; import org.nl.common.utils.CodeUtil; import org.nl.system.service.notice.ISysNoticeService; +import org.nl.wms.ext.acs.service.dto.SignalData; +import org.nl.wms.ext.acs.service.dto.to.BaseRequest; +import org.nl.wms.ext.acs.service.dto.to.acs.PutActionRequest; 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; @@ -28,6 +31,7 @@ import org.nl.wms.util.TaskUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -120,7 +124,13 @@ public class FJQKTask extends AbstractTask { SchBasePoint endPointObj = fjMapper.findPointForFJQK(startRegionStr, new JSONObject() .fluentPut("vehicleType", vehicleType).fluentPut("pointType", GeneralDefinition.DEVICE_POINT)); // todo: 请求ACS释放一个木托盘 -// AcsUtil.notifyAcs("", ) +// SignalData signalData = SignalData.buildSignalData("to_command", "1"); +// List signalList = new ArrayList<>(); +// signalList.add(signalData); +// PutActionRequest putActionRequest = (PutActionRequest) BaseRequest.createRequest(); +// putActionRequest.setDevice_code(endPointObj.getDevice_code()); +// putActionRequest.setList(signalList); +// AcsUtil.notifyAcs("", putActionRequest); // 这个点的父点位为起点 return ObjectUtil.isNotEmpty(endPointObj) ? endPointObj : null; } diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java index b310d5e..9c89193 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/yz/YZSLTask.java @@ -2,6 +2,7 @@ package org.nl.wms.sch.task_manage.task.tasks.yz; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -34,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -301,6 +303,13 @@ public class YZSLTask extends AbstractTask { processTracking.setProcess_location(endPoint); processTracking.setRecord_time(DateUtil.now()); processTrackingService.create(processTracking); + // 工单统计实际数量 + Integer materialQty = vehiclematerialgroup.getMaterial_qty(); + PdmBdWorkorder bdWorkorder = workorderService.getByCode(vehiclematerialgroup.getWorkorder_code()); + BigDecimal realQty = bdWorkorder.getReal_qty(); + bdWorkorder.setReal_qty(NumberUtil.add(realQty, materialQty)); + TaskUtils.setWorkOrderUpdateByType(bdWorkorder, taskFinishedType); + workorderService.updateById(bdWorkorder); } // 起点清空 PointUtils.setUpdateByType(startPointObj, taskFinishedType); diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java index 70c5017..5090034 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/util/TaskUtils.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.nl.common.utils.SecurityUtils; import org.nl.config.SpringContextHolder; +import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder; import org.nl.wms.sch.group.service.dao.SchBaseVehiclematerialgroup; import org.nl.wms.sch.task.service.ISchBaseTaskService; import org.nl.wms.sch.task.service.dao.SchBaseTask; @@ -63,6 +64,26 @@ public class TaskUtils { setGroupUpdateByPC(groupEntity); } } + public static void setWorkOrderUpdateByAcs(PdmBdWorkorder pdmBdWorkorder) { + pdmBdWorkorder.setUpdate_id(GeneralDefinition.ACS_ID); + pdmBdWorkorder.setUpdate_name(GeneralDefinition.ACS_NAME); + pdmBdWorkorder.setUpdate_time(DateUtil.now()); + } + + public static void setWorkOrderUpdateByPC(PdmBdWorkorder pdmBdWorkorder) { + pdmBdWorkorder.setUpdate_id(SecurityUtils.getCurrentUserId()); + pdmBdWorkorder.setUpdate_name(SecurityUtils.getCurrentNickName()); + pdmBdWorkorder.setUpdate_time(DateUtil.now()); + } + + // 根据类型去判断谁修改的 + public static void setWorkOrderUpdateByType(PdmBdWorkorder groupEntity, TaskFinishedTypeEnum taskFinishedType) { + if (taskFinishedType.equals(TaskFinishedTypeEnum.AUTO_ACS)) { + setWorkOrderUpdateByAcs(groupEntity); + } else { + setWorkOrderUpdateByPC(groupEntity); + } + } public static void setUpdateAuto(SchBaseTask taskObj) { diff --git a/lms/nladmin-ui/src/views/wms/pdm/residue/index.vue b/lms/nladmin-ui/src/views/wms/pdm/residue/index.vue new file mode 100644 index 0000000..c22a6c7 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/residue/index.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/lms/nladmin-ui/src/views/wms/pdm/residue/pdmBdMaterialResidue.js b/lms/nladmin-ui/src/views/wms/pdm/residue/pdmBdMaterialResidue.js new file mode 100644 index 0000000..f9fba98 --- /dev/null +++ b/lms/nladmin-ui/src/views/wms/pdm/residue/pdmBdMaterialResidue.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/pdmBdMaterialResidue', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pdmBdMaterialResidue/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pdmBdMaterialResidue', + method: 'put', + data + }) +} + +export default { add, edit, del }