新增工单页面批量选择工单物料进行出库

This commit is contained in:
psh
2024-04-09 16:06:13 +08:00
parent 3b0b5bc2cf
commit 7b8ab73513
9 changed files with 101 additions and 94 deletions

View File

@@ -68,7 +68,9 @@ public class StandardAutodoorDeviceDriver extends AbstractOpcDeviceDriver implem
}
if (close != last_close) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号close" + last_close + "->" + close);
if(close ==1 ){
this.writing("to_close","0");
}
}
if (toClose != last_toClose) {
logServer.deviceExecuteLog(this.device_code, "", "", "信号toClose" + last_toClose + "->" + toClose);

View File

@@ -13,6 +13,7 @@ import org.nl.common.logging.annotation.Log;
import org.nl.wms.mes.domain.*;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.service.dao.PdmBdWorkorderDetail;
import org.nl.wms.sch.material.service.dao.Material;
import org.nl.wms.sch.material.service.dao.mapper.MaterialMapper;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
@@ -108,6 +109,13 @@ public class MesController {
entity.setCreate_name("MES");
entity.setCreate_time(DateUtil.now());
pdmBdWorkorderService.create(entity);
for(QPMES098RequestBodyItem2 qpmes098RequestBodyItem2:qpmes098Request.getBODY().get(0).getITEM2()){
PdmBdWorkorderDetail pdmBdWorkorderDetail=new PdmBdWorkorderDetail();
pdmBdWorkorderDetail.setReal_qty(BigDecimal.valueOf(0));
pdmBdWorkorderDetail.setWorkorder_code(entity.getWorkorder_code());
pdmBdWorkorderDetail.copyFrom(qpmes098RequestBodyItem2);
pdmBdWorkorderService.createDetail(pdmBdWorkorderDetail);
}
qpmes098ResponseBody.setMESSAGE("工单下发成功");
qpmes098ResponseBody.setSTATUS("S");
qpmes098ResponseBody.setFKEY_VALUE01(qpmes098Request.getBODY().get(0).getAUFNR());

View File

@@ -4,19 +4,34 @@ import lombok.Data;
@Data
public class QPMES098RequestBodyItem2 {
/** 订单行项目编号 **/
private String POSNR;
/** 预留行项目编号 **/
private String RSPOS;
/** 移动类型 **/
private String BWART;
/** 物料编码 **/
private String MATNR;
/** 物料名称 **/
private String MAKTX;
/** 产品类别 **/
private String MTYPE;
/** 产品类别描述 **/
private String MTYTXT;
/** 数量 **/
private String BDMNG;
/** 计量单位 **/
private String MEINS;
/** 物料供应标识 **/
private String BEIKZ;
/** 预留字段11 **/
private String ZRSV11;
/** 预留字段12 **/
private String ZRSV12;
/** 预留字段13 **/
private String ZRSV13;
/** 预留字段14 **/
private String ZRSV14;
/** 预留字段15 **/
private String ZRSV15;
}

View File

@@ -8,6 +8,7 @@ import org.nl.common.domain.query.PageQuery;
import org.nl.common.logging.annotation.Log;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.service.dao.PdmBdWorkorderDetail;
import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -16,51 +17,23 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Set;
/**
* @author lyd
* @date 2023-05-05
**/
@Slf4j
@RestController
@Api(tags = "工单管理管理")
@RequestMapping("/api/pdmBdWorkorder")
public class PdmBdWorkorderController {
@Api(tags = "工单详情管理")
@RequestMapping("/api/pdmBdWorkorderDetail")
public class PdmBdWorkorderDetailController {
@Autowired
private IPdmBdWorkorderService pdmBdWorkorderService;
@GetMapping
@Log("查询工单管理")
@ApiOperation("查询工单管理")
@Log("查询工单详情管理")
@ApiOperation("查询工单详情管理")
//@SaCheckPermission("@el.check('pdmBdWorkorder:list')")
public ResponseEntity<Object> query(PdmBdWorkorderQuery query, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryAll(query,page)),HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryAllDetail(query,page)),HttpStatus.OK);
}
@PostMapping
@Log("新增工单管理")
@ApiOperation("新增工单管理")
//@SaCheckPermission("@el.check('pdmBdWorkorder:add')")
public ResponseEntity<Object> create(@Validated @RequestBody PdmBdWorkorder entity){
pdmBdWorkorderService.create(entity);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PutMapping
@Log("修改工单管理")
@ApiOperation("修改工单管理")
//@SaCheckPermission("@el.check('pdmBdWorkorder:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody PdmBdWorkorder entity){
pdmBdWorkorderService.update(entity);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@Log("删除工单管理")
@ApiOperation("删除工单管理")
//@SaCheckPermission("@el.check('pdmBdWorkorder:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
pdmBdWorkorderService.deleteAll(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -1,47 +1,56 @@
package org.nl.wms.pdm.controller;
import com.alibaba.fastjson.JSONObject;
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.pda.service.PdaService;
import org.nl.wms.pdm.service.IPdmBdWorkorderService;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.service.dao.PdmBdWorkorderDetail;
import org.nl.wms.pdm.service.dao.PointDetailAdd;
import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery;
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.Set;
@Slf4j
@RestController
@Api(tags = "工单详情管理")
@RequestMapping("/api/pdmBdWorkorderDetail")
public class PdmBdWorkorderDetailController {
@RequestMapping("/api/pointDetail")
public class PointDetailController {
@Autowired
private IPdmBdWorkorderService pdmBdWorkorderService;
@GetMapping
@Log("查询工单详情管理")
@ApiOperation("查询工单详情管理")
//@SaCheckPermission("@el.check('pdmBdWorkorder:list')")
public ResponseEntity<Object> query(PdmBdWorkorderQuery query, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryAllDetail(query,page)),HttpStatus.OK);
}
@Autowired
private PdaService pdaService;
@GetMapping
@Log("根据物料查询点位库存")
@ApiOperation("根据物料查询点位库存")
//@SaCheckPermission("@el.check('pdmBdWorkorder:list')")
public ResponseEntity<Object> queryPointDetail(String PalletSN, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryPointDetail(PalletSN,page)),HttpStatus.OK);
public ResponseEntity<Object> query(String productname, PageQuery page){
return new ResponseEntity<>(TableDataInfo.build(pdmBdWorkorderService.queryPointDetail(productname,page)),HttpStatus.OK);
}
@PostMapping("/add")
@Log("批量新增原材料出库任务")
@ApiOperation("批量新增原材料出库任务")
//@SaCheckPermission("@el.check('pdmBdWorkorder:list')")
public ResponseEntity<Object> add(@RequestBody PointDetailAdd pointDetailAdd){
log.info("批量新增原材料出库任务:"+pointDetailAdd.toString());
for(String point_code:pointDetailAdd.getPointCodes()){
JSONObject param=new JSONObject();
param.put("start_point",point_code);
param.put("time",pointDetailAdd.getTime());
param.put("mode",pointDetailAdd.getMode());
param.put("workorder_code",pointDetailAdd.getWorkorder_code());
pdaService.yclck(param);
}
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.pdm.service.dao.PdmBdWorkorder;
import org.nl.wms.pdm.service.dao.PdmBdWorkorderDetail;
import org.nl.wms.pdm.service.dao.PointDetail;
import org.nl.wms.pdm.service.dto.PdmBdWorkorderQuery;
import java.util.Set;
@@ -40,4 +42,14 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
* @param ids /
*/
void deleteAll(Set<String> ids);
/**
* 创建
* @param entity /
*/
void createDetail(PdmBdWorkorderDetail entity);
IPage<PdmBdWorkorderDetail> queryAllDetail(PdmBdWorkorderQuery query, PageQuery page);
IPage<PointDetail> queryPointDetail(String productname, PageQuery page);
}

View File

@@ -1,50 +1,27 @@
package org.nl.wms.pdm.service.dto;
package org.nl.wms.pdm.service.dao;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nl.wms.mes.domain.QPMES060RequestBody;
import org.nl.wms.mes.domain.QPMES098RequestBodyItem2;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sch_base_material")
public class PdmBdWorkorderDetail implements Serializable {
@TableName("pmd_bd_workorder_detail")
public class PdmBdWorkorderDetail extends QPMES098RequestBodyItem2 implements Serializable {
/** 工单编号 */
private String workorder_code;
/** 实际数量 */
private BigDecimal real_qty;
/** 订单行项目编号 **/
private String POSNR;
/** 预留行项目编号 **/
private String RSPOS;
/** 移动类型 **/
private String BWART;
/** 物料编码 **/
private String MATNR;
/** 物料名称 **/
private String MAKTX;
/** 产品类别 **/
private String MTYPE;
/** 产品类别描述 **/
private String MTYTXT;
/** 数量 **/
private String BDMNG;
/** 计量单位 **/
private String MEINS;
/** 物料供应标识 **/
private String BEIKZ;
/** 预留字段11 **/
private String ZRSV11;
/** 预留字段12 **/
private String ZRSV12;
/** 预留字段13 **/
private String ZRSV13;
/** 预留字段14 **/
private String ZRSV14;
/** 预留字段15 **/
private String ZRSV15;
public void copyFrom(QPMES098RequestBodyItem2 source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}

View File

@@ -1,2 +1,11 @@
package org.nl.wms.pdm.service.dao;public class PointDetail {
package org.nl.wms.pdm.service.dao;
import lombok.Data;
@Data
public class PointDetail {
private String point_code;
private String productName;
private String PalletSN;
private String qty;
}

View File

@@ -2,10 +2,12 @@ package org.nl.wms.pdm.service.dao;
import lombok.Data;
import java.util.List;
@Data
public class PointDetail {
private String point_code;
private String productName;
private String PalletSN;
private String qty;
public class PointDetailAdd {
private List<String> pointCodes;
private String mode;
private String time;
private String workorder_code;
}