diff --git a/doc/设计文档/数据库设计/mes-pro.sql b/doc/设计文档/数据库设计/mes-pro.sql index 09f566c..49604c9 100644 --- a/doc/设计文档/数据库设计/mes-pro.sql +++ b/doc/设计文档/数据库设计/mes-pro.sql @@ -371,51 +371,6 @@ create table pro_task_issue ( ) engine=innodb auto_increment=200 comment = '生产任务投料表'; - - --- ---------------------------- --- 4、流转单表 --- ---------------------------- -drop table if exists pro_trans_order; -create table pro_trans_order ( - trans_order_id bigint(20) not null auto_increment comment '流转单ID', - trans_order_code varchar(64) comment '流转单编号', - task_id bigint(20) not null comment '生产任务ID', - task_code varchar(64) comment '生产任务编号', - workstation_id bigint(20) not null comment '工作站ID', - workstation_code varchar(64) comment '工作站编号', - workstation_name varchar(255) comment '工作站名称', - process_id bigint(20) comment '工序ID', - process_code varchar(64) comment '工序编号', - process_name varchar(255) comment '工序名称', - workorder_id bigint(20) comment '生产工单ID', - workorder_code varchar(64) comment '生产工单编号', - workorder_name varchar(255) comment '生产工单名称', - batch_code varchar(64) comment '批次号', - item_id bigint(20) comment '产品物料ID', - item_code varchar(64) not null comment '产品物料编码', - item_name varchar(255) not null comment '产品物料名称', - specification varchar(500) default null comment '规格型号', - unit_of_measure varchar(64) not null comment '单位', - barcode_url varchar(255) comment '赋码地址', - quantity_transfered double(12,2) comment '流转数量', - produce_date datetime comment '生产日期', - remark varchar(500) default '' comment '备注', - attr1 varchar(64) default null comment '预留字段1', - attr2 varchar(255) default null comment '预留字段2', - attr3 int(11) default 0 comment '预留字段3', - attr4 int(11) default 0 comment '预留字段4', - create_by varchar(64) default '' comment '创建者', - create_time datetime comment '创建时间', - update_by varchar(64) default '' comment '更新者', - update_time datetime comment '更新时间', - primary key (trans_order_id) -) engine=innodb auto_increment=200 comment = '流转单表'; - - - - - -- ---------------------------- -- 4、物料消耗记录表 -- ---------------------------- @@ -640,3 +595,45 @@ create table pro_card_process ( ) engine=innodb auto_increment=200 comment = '工序流转卡-工序信息表'; + +-- ---------------------------- +-- 4、SN流转-工序信息表 +-- ---------------------------- +drop table if exists pro_sn_process; +create table pro_sn_process ( + record_id bigint(20) not null auto_increment comment '流水ID', + sn_id bigint(20) not null comment '流转卡ID', + sn_code varchar(64) comment '流转卡编号', + seq_num int(11) default 1 comment '序号', + process_id bigint(20) comment '工序ID', + process_code varchar(64) comment '工序编号', + process_name varchar(255) comment '工序名称', + input_time datetime comment '进入工序时间', + output_time datetime comment '出工序时间', + quantity_input double(12,2) comment '投入数量', + quantity_output double(12,2) comment '产出数量', + quantity_unquanlify double(12,2) comment '不合格品数量', + workstation_id bigint(20) not null comment '工作站ID', + workstation_code varchar(64) comment '工作站编号', + workstation_name varchar(125) comment '工作站名称', + user_id bigint(20) not null comment '用户ID', + user_name varchar(64) comment '用户名', + nick_name varchar(125) comment '名称', + ipqc_id bigint(20) comment '过程检验单ID', + remark varchar(500) default '' comment '备注', + attr1 varchar(64) default null comment '预留字段1', + attr2 varchar(255) default null comment '预留字段2', + attr3 int(11) default 0 comment '预留字段3', + attr4 int(11) default 0 comment '预留字段4', + create_by varchar(64) default '' comment '创建者', + create_time datetime comment '创建时间', + update_by varchar(64) default '' comment '更新者', + update_time datetime comment '更新时间', + primary key (record_id) +) engine=innodb auto_increment=200 comment = 'SN流转-工序信息表'; + + + + + + diff --git a/doc/设计文档/数据库设计/mes-wm.sql b/doc/设计文档/数据库设计/mes-wm.sql index b7ac3c2..c2a81cd 100644 --- a/doc/设计文档/数据库设计/mes-wm.sql +++ b/doc/设计文档/数据库设计/mes-wm.sql @@ -1183,6 +1183,8 @@ create table wm_sn ( specification varchar(500) comment '规格型号', unit_of_measure varchar(64) comment '单位', batch_code varchar(255) comment '批次号', + gen_date datetime comment '生成时间', + workorder_id bigint(20) comment '生产工单ID', remark varchar(500) default '' comment '备注', attr1 varchar(64) default null comment '预留字段1', attr2 varchar(255) default null comment '预留字段2', diff --git a/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java b/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java index c5aa37f..a192e62 100644 --- a/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java +++ b/ktg-common/src/main/java/com/ktg/common/constant/UserConstants.java @@ -103,6 +103,7 @@ public class UserConstants public static final String TRANSFER_CODE ="TRANSFER_CODE"; //移库 public static final String STOCKTAKING_CODE ="STOCKTAKING_CODE"; //盘库单 public static final String FEEDBACK_CODE ="FEEDBACK_CODE"; //报工单 + public static final String CARD_CODE = "CARD_CODE";//流转卡 /** * 单据的状态类型 diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProCardController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProCardController.java new file mode 100644 index 0000000..e4ce632 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProCardController.java @@ -0,0 +1,111 @@ +package com.ktg.mes.pro.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ktg.common.constant.UserConstants; +import com.ktg.common.utils.StringUtils; +import com.ktg.mes.pro.domain.ProWorkorder; +import com.ktg.mes.pro.service.IProWorkorderService; +import com.ktg.system.strategy.AutoCodeUtil; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.mes.pro.domain.ProCard; +import com.ktg.mes.pro.service.IProCardService; +import com.ktg.common.utils.poi.ExcelUtil; +import com.ktg.common.core.page.TableDataInfo; + +/** + * 工序流转卡Controller + * + * @author yinjinlu + * @date 2024-07-04 + */ +@RestController +@RequestMapping("/mes/pro/procard") +public class ProCardController extends BaseController +{ + @Autowired + private IProCardService proCardService; + + /** + * 查询工序流转卡列表 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:list')") + @GetMapping("/list") + public TableDataInfo list(ProCard proCard) + { + startPage(); + List list = proCardService.selectProCardList(proCard); + return getDataTable(list); + } + + /** + * 导出工序流转卡列表 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:export')") + @Log(title = "工序流转卡", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProCard proCard) + { + List list = proCardService.selectProCardList(proCard); + ExcelUtil util = new ExcelUtil(ProCard.class); + util.exportExcel(response, list, "工序流转卡数据"); + } + + /** + * 获取工序流转卡详细信息 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:query')") + @GetMapping(value = "/{cardId}") + public AjaxResult getInfo(@PathVariable("cardId") Long cardId) + { + return AjaxResult.success(proCardService.selectProCardByCardId(cardId)); + } + + /** + * 新增工序流转卡 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:add')") + @Log(title = "工序流转卡", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProCard proCard) + { + + return toAjax(proCardService.insertProCard(proCard)); + } + + /** + * 修改工序流转卡 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:edit')") + @Log(title = "工序流转卡", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProCard proCard) + { + return toAjax(proCardService.updateProCard(proCard)); + } + + /** + * 删除工序流转卡 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:remove')") + @Log(title = "工序流转卡", businessType = BusinessType.DELETE) + @DeleteMapping("/{cardIds}") + public AjaxResult remove(@PathVariable Long[] cardIds) + { + return toAjax(proCardService.deleteProCardByCardIds(cardIds)); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProCardProcessController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProCardProcessController.java new file mode 100644 index 0000000..2523cc5 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProCardProcessController.java @@ -0,0 +1,104 @@ +package com.ktg.mes.pro.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.mes.pro.domain.ProCardProcess; +import com.ktg.mes.pro.service.IProCardProcessService; +import com.ktg.common.utils.poi.ExcelUtil; +import com.ktg.common.core.page.TableDataInfo; + +/** + * 工序流转卡-工序信息Controller + * + * @author yinjinlu + * @date 2024-07-04 + */ +@RestController +@RequestMapping("/mes/pro/procardprocess") +public class ProCardProcessController extends BaseController +{ + @Autowired + private IProCardProcessService proCardProcessService; + + /** + * 查询工序流转卡-工序信息列表 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procardprocess:list')") + @GetMapping("/list") + public TableDataInfo list(ProCardProcess proCardProcess) + { + startPage(); + List list = proCardProcessService.selectProCardProcessList(proCardProcess); + return getDataTable(list); + } + + /** + * 导出工序流转卡-工序信息列表 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procardprocess:export')") + @Log(title = "工序流转卡-工序信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProCardProcess proCardProcess) + { + List list = proCardProcessService.selectProCardProcessList(proCardProcess); + ExcelUtil util = new ExcelUtil(ProCardProcess.class); + util.exportExcel(response, list, "工序流转卡-工序信息数据"); + } + + /** + * 获取工序流转卡-工序信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procardprocess:query')") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") Long recordId) + { + return AjaxResult.success(proCardProcessService.selectProCardProcessByRecordId(recordId)); + } + + /** + * 新增工序流转卡-工序信息 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procardprocess:add')") + @Log(title = "工序流转卡-工序信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProCardProcess proCardProcess) + { + return toAjax(proCardProcessService.insertProCardProcess(proCardProcess)); + } + + /** + * 修改工序流转卡-工序信息 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procardprocess:edit')") + @Log(title = "工序流转卡-工序信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProCardProcess proCardProcess) + { + return toAjax(proCardProcessService.updateProCardProcess(proCardProcess)); + } + + /** + * 删除工序流转卡-工序信息 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procardprocess:remove')") + @Log(title = "工序流转卡-工序信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable Long[] recordIds) + { + return toAjax(proCardProcessService.deleteProCardProcessByRecordIds(recordIds)); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProSnProcessController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProSnProcessController.java new file mode 100644 index 0000000..93cf0ce --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/ProSnProcessController.java @@ -0,0 +1,104 @@ +package com.ktg.mes.pro.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.mes.pro.domain.ProSnProcess; +import com.ktg.mes.pro.service.IProSnProcessService; +import com.ktg.common.utils.poi.ExcelUtil; +import com.ktg.common.core.page.TableDataInfo; + +/** + * SN流转-工序信息Controller + * + * @author yinjinlu + * @date 2024-11-22 + */ +@RestController +@RequestMapping("/mes/pro/prosnprocess") +public class ProSnProcessController extends BaseController +{ + @Autowired + private IProSnProcessService proSnProcessService; + + /** + * 查询SN流转-工序信息列表 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:list')") + @GetMapping("/list") + public TableDataInfo list(ProSnProcess proSnProcess) + { + startPage(); + List list = proSnProcessService.selectProSnProcessList(proSnProcess); + return getDataTable(list); + } + + /** + * 导出SN流转-工序信息列表 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:export')") + @Log(title = "SN流转-工序信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProSnProcess proSnProcess) + { + List list = proSnProcessService.selectProSnProcessList(proSnProcess); + ExcelUtil util = new ExcelUtil(ProSnProcess.class); + util.exportExcel(response, list, "SN流转-工序信息数据"); + } + + /** + * 获取SN流转-工序信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:query')") + @GetMapping(value = "/{recordId}") + public AjaxResult getInfo(@PathVariable("recordId") Long recordId) + { + return AjaxResult.success(proSnProcessService.selectProSnProcessByRecordId(recordId)); + } + + /** + * 新增SN流转-工序信息 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:add')") + @Log(title = "SN流转-工序信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProSnProcess proSnProcess) + { + return toAjax(proSnProcessService.insertProSnProcess(proSnProcess)); + } + + /** + * 修改SN流转-工序信息 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:edit')") + @Log(title = "SN流转-工序信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProSnProcess proSnProcess) + { + return toAjax(proSnProcessService.updateProSnProcess(proSnProcess)); + } + + /** + * 删除SN流转-工序信息 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:remove')") + @Log(title = "SN流转-工序信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{recordIds}") + public AjaxResult remove(@PathVariable Long[] recordIds) + { + return toAjax(proSnProcessService.deleteProSnProcessByRecordIds(recordIds)); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProCardMobController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProCardMobController.java new file mode 100644 index 0000000..767cf30 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProCardMobController.java @@ -0,0 +1,119 @@ +package com.ktg.mes.pro.controller.mobile; + +import com.ktg.common.annotation.Log; +import com.ktg.common.constant.UserConstants; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.common.utils.StringUtils; +import com.ktg.mes.pro.domain.ProCard; +import com.ktg.mes.pro.domain.ProWorkorder; +import com.ktg.mes.pro.service.IProCardService; +import com.ktg.mes.pro.service.IProWorkorderService; +import com.ktg.system.strategy.AutoCodeUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author yinjinlu + * @description + * @date 2024/11/18 + */ +@Api +@RestController +@RequestMapping("/mobile/pro/procard") +public class ProCardMobController extends BaseController { + + @Autowired + private IProCardService proCardService; + + @Autowired + private IProWorkorderService proWorkorderService; + + @Autowired + private AutoCodeUtil autoCodeUtil; + + /** + * 查询工序流转卡列表 + */ + @ApiOperation("查询工序流转卡清单接口") + @PreAuthorize("@ss.hasPermi('mes:pro:procard:list')") + @GetMapping("/list") + public AjaxResult list(ProCard proCard) + { + List list = proCardService.selectProCardList(proCard); + return AjaxResult.success(list); + } + + /** + * 查询流经某个工作站的所有流转卡 + * 查询条件:工作站、生产工单 + * @return + */ + @ApiOperation("查询某个工作站下指定工单的所有流转卡接口") + @PreAuthorize("@ss.hasPermi('mes:pro:procard:list')") + @GetMapping("/getStationList") + public AjaxResult getStationList(ProCard card){ + List list = proCardService.getStationList(card); + return AjaxResult.success(list); + } + + /** + * 获取工序流转卡详细信息 + */ + @ApiOperation("根据流转卡编号查询流转卡详细信息接口") + @PreAuthorize("@ss.hasPermi('mes:pro:procard:query')") + @GetMapping(value = "/{cardCode}") + public AjaxResult getInfo(@PathVariable("cardCode") String cardCode) + { + ProCard param = new ProCard(); + param.setCardCode(cardCode); + List cards = proCardService.selectProCardList(param); + if(!CollectionUtils.isEmpty(cards)){ + return AjaxResult.success(cards.get(0)); + } + return AjaxResult.error("未查询到对应的流转卡!"); + } + + /** + * 新增工序流转卡 + */ + @ApiOperation("新增流转卡接口") + @PreAuthorize("@ss.hasPermi('mes:pro:procard:add')") + @Log(title = "工序流转卡", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProCard proCard) + { + if(!StringUtils.isNotNull(proCard.getWorkorderId())){ + return AjaxResult.error("请传递生产工单参数!"); + } + + if(!StringUtils.isNotNull(proCard.getQuantityTransfered())){ + return AjaxResult.error("请传递流转数量参数!"); + } + + ProWorkorder workorder = proWorkorderService.selectProWorkorderByWorkorderId(proCard.getWorkorderId()); + if(!StringUtils.isNotNull(workorder)){ + return AjaxResult.error("生产工单无效!"); + } + + proCard.setCardCode(autoCodeUtil.genSerialCode(UserConstants.CARD_CODE,null)); + proCard.setWorkorderCode(workorder.getWorkorderCode()); + proCard.setWorkorderName(workorder.getWorkorderName()); + proCard.setItemId(workorder.getProductId()); + proCard.setItemCode(workorder.getProductCode()); + proCard.setItemName(workorder.getProductName()); + proCard.setSpecification(workorder.getProductSpc()); + proCard.setUnitOfMeasure(workorder.getUnitOfMeasure()); + proCard.setBatchCode(workorder.getBatchCode()); + proCard.setStatus(UserConstants.ORDER_STATUS_CONFIRMED); + proCardService.insertProCard(proCard); + return AjaxResult.success(proCard); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProCardProcessMobController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProCardProcessMobController.java new file mode 100644 index 0000000..5641d3a --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProCardProcessMobController.java @@ -0,0 +1,111 @@ +package com.ktg.mes.pro.controller.mobile; + +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.core.page.TableDataInfo; +import com.ktg.common.enums.BusinessType; +import com.ktg.common.utils.StringUtils; +import com.ktg.mes.md.domain.MdWorkstation; +import com.ktg.mes.md.service.IMdWorkstationService; +import com.ktg.mes.pro.domain.ProCard; +import com.ktg.mes.pro.domain.ProCardProcess; +import com.ktg.mes.pro.service.IProCardProcessService; +import com.ktg.mes.pro.service.IProCardService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + * @author yinjinlu + * @description + * @date 2024/11/22 + */ +@Api +@RestController +@RequestMapping("/mobile/pro/procardprocess") +public class ProCardProcessMobController extends BaseController { + + @Autowired + private IProCardProcessService proCardProcessService; + + @Autowired + private IProCardService proCardService; + + @Autowired + private IMdWorkstationService mdWorkstationService; + + + /** + * 查询工序流转卡-工序信息列表 + */ + @PreAuthorize("@ss.hasPermi('mes:pro:procard:list')") + @GetMapping("/list") + public AjaxResult list(ProCardProcess proCardProcess) + { + List list = proCardProcessService.selectProCardProcessList(proCardProcess); + return AjaxResult.success(list); + } + + /** + * 新增工序流转卡-工序信息 + */ + @ApiOperation("新增流转卡在某个工作站流转记录接口") + @PreAuthorize("@ss.hasPermi('mes:pro:procard:add')") + @Log(title = "工序流转卡-工序信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProCardProcess proCardProcess) + { + if(!StringUtils.isNotNull(proCardProcess.getCardCode())){ + return AjaxResult.error("请传递流转卡编号参数!"); + } + + if(!StringUtils.isNotNull(proCardProcess.getQuantityInput())){ + return AjaxResult.error("请输入流转数量!"); + } + + ProCard p1 = new ProCard(); + p1.setCardCode(proCardProcess.getCardCode()); + List cardList = proCardService.selectProCardList(p1); + ProCard card = null; + if(!CollectionUtils.isEmpty(cardList)){ + card = cardList.get(0); + }else{ + return AjaxResult.error("流转卡无效!"); + } + + proCardProcess.setCardId(card.getCardId()); + + + + if(!StringUtils.isNotNull(proCardProcess.getWorkstationId())){ + return AjaxResult.error("请传递工作站参数!"); + } + + MdWorkstation workstation = mdWorkstationService.selectMdWorkstationByWorkstationId(proCardProcess.getWorkstationId()); + if(StringUtils.isNotNull(workstation)){ + proCardProcess.setWorkstationCode(workstation.getWorkstationCode()); + proCardProcess.setWorkstationName(workstation.getWorkstationName()); + proCardProcess.setProcessId(workstation.getProcessId()); + proCardProcess.setProcessCode(workstation.getProcessCode()); + proCardProcess.setProcessName(workstation.getProcessName()); + }else{ + return AjaxResult.error("工作站无效!"); + } + + proCardProcess.setInputTime(new Date()); + proCardProcess.setUserId(getUserId()); + proCardProcess.setUserName(getUsername()); + proCardProcess.setNickName(getLoginUser().getUser().getNickName()); + + proCardProcessService.insertProCardProcess(proCardProcess); + + return AjaxResult.success(proCardProcess); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProSnProcessMobController.java b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProSnProcessMobController.java new file mode 100644 index 0000000..05c0aed --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/controller/mobile/ProSnProcessMobController.java @@ -0,0 +1,93 @@ +package com.ktg.mes.pro.controller.mobile; + +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.common.utils.StringUtils; +import com.ktg.mes.md.domain.MdWorkstation; +import com.ktg.mes.md.service.IMdWorkstationService; +import com.ktg.mes.pro.domain.ProSnProcess; +import com.ktg.mes.pro.service.IProSnProcessService; +import com.ktg.mes.wm.domain.WmSn; +import com.ktg.mes.wm.service.IWmSnService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @author yinjinlu + * @description + * @date 2024/11/22 + */ + + +@Api +@RestController +@RequestMapping("/mobile/pro/prosn") +public class ProSnProcessMobController extends BaseController { + + @Autowired + private IProSnProcessService proSnProcessService; + + @Autowired + private IWmSnService wmSnService; + + @Autowired + private IMdWorkstationService mdWorkstationService; + + /** + * 新增SN流转-工序信息 + */ + @PreAuthorize("@ss.hasPermi('pro:prosnprocess:add')") + @Log(title = "SN流转-工序信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProSnProcess proSnProcess) + { + if(!StringUtils.isNotNull(proSnProcess.getSnCode())){ + return AjaxResult.error("请传递SN编号参数!"); + } + + WmSn param = new WmSn(); + param.setSnCode(proSnProcess.getSnCode()); + List snList = wmSnService.selectWmSnList(param); + + if(CollectionUtils.isEmpty(snList)){ + return AjaxResult.error("SN编码无效!"); + }else { + proSnProcess.setSnId(snList.get(0).getSnId()); + } + + if(!StringUtils.isNotNull(proSnProcess.getWorkstationId())){ + return AjaxResult.error("请传递工作站参数!"); + } + + MdWorkstation workstation = mdWorkstationService.selectMdWorkstationByWorkstationId(proSnProcess.getWorkstationId()); + if(StringUtils.isNotNull(workstation)){ + proSnProcess.setWorkstationCode(workstation.getWorkstationCode()); + proSnProcess.setWorkstationName(workstation.getWorkstationName()); + proSnProcess.setProcessId(workstation.getProcessId()); + proSnProcess.setProcessCode(workstation.getProcessCode()); + proSnProcess.setProcessName(workstation.getProcessName()); + }else{ + return AjaxResult.error("工作站无效!"); + } + + proSnProcess.setInputTime(new Date()); + proSnProcess.setUserId(getUserId()); + proSnProcess.setUserName(getUsername()); + proSnProcess.setNickName(getLoginUser().getUser().getNickName()); + proSnProcess.setQuantityInput(BigDecimal.ONE); + proSnProcessService.insertProSnProcess(proSnProcess); + + return AjaxResult.success(proSnProcess); + } + +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProCard.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProCard.java new file mode 100644 index 0000000..b5fd15d --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProCard.java @@ -0,0 +1,308 @@ +package com.ktg.mes.pro.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ktg.common.annotation.Excel; +import com.ktg.common.core.domain.BaseEntity; + +/** + * 工序流转卡对象 pro_card + * + * @author yinjinlu + * @date 2024-07-04 + */ +public class ProCard extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 流转卡ID */ + private Long cardId; + + /** 流转卡编号 */ + @Excel(name = "流转卡编号") + private String cardCode; + + /** 生产工单ID */ + @Excel(name = "生产工单ID") + private Long workorderId; + + /** 生产工单编号 */ + @Excel(name = "生产工单编号") + private String workorderCode; + + /** 生产工单名称 */ + @Excel(name = "生产工单名称") + private String workorderName; + + /** 批次号 */ + @Excel(name = "批次号") + private String batchCode; + + /** 产品物料ID */ + @Excel(name = "产品物料ID") + private Long itemId; + + /** 产品物料编码 */ + @Excel(name = "产品物料编码") + private String itemCode; + + /** 产品物料名称 */ + @Excel(name = "产品物料名称") + private String itemName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String specification; + + /** 单位 */ + @Excel(name = "单位") + private String unitOfMeasure; + + /** 赋码地址 */ + @Excel(name = "赋码地址") + private String barcodeUrl; + + /** 流转数量 */ + @Excel(name = "流转数量") + private BigDecimal quantityTransfered; + + /** 流转卡状态 */ + @Excel(name = "流转卡状态") + private String status; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private Long attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private Long attr4; + + + private Long workstationId; + + /** 进入工序时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + private Date inputTime; + + + public void setCardId(Long cardId) + { + this.cardId = cardId; + } + + public Long getCardId() + { + return cardId; + } + public void setCardCode(String cardCode) + { + this.cardCode = cardCode; + } + + public String getCardCode() + { + return cardCode; + } + public void setWorkorderId(Long workorderId) + { + this.workorderId = workorderId; + } + + public Long getWorkorderId() + { + return workorderId; + } + public void setWorkorderCode(String workorderCode) + { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() + { + return workorderCode; + } + public void setWorkorderName(String workorderName) + { + this.workorderName = workorderName; + } + + public String getWorkorderName() + { + return workorderName; + } + public void setBatchCode(String batchCode) + { + this.batchCode = batchCode; + } + + public String getBatchCode() + { + return batchCode; + } + public void setItemId(Long itemId) + { + this.itemId = itemId; + } + + public Long getItemId() + { + return itemId; + } + public void setItemCode(String itemCode) + { + this.itemCode = itemCode; + } + + public String getItemCode() + { + return itemCode; + } + public void setItemName(String itemName) + { + this.itemName = itemName; + } + + public String getItemName() + { + return itemName; + } + public void setSpecification(String specification) + { + this.specification = specification; + } + + public String getSpecification() + { + return specification; + } + public void setUnitOfMeasure(String unitOfMeasure) + { + this.unitOfMeasure = unitOfMeasure; + } + + public String getUnitOfMeasure() + { + return unitOfMeasure; + } + public void setBarcodeUrl(String barcodeUrl) + { + this.barcodeUrl = barcodeUrl; + } + + public String getBarcodeUrl() + { + return barcodeUrl; + } + public void setQuantityTransfered(BigDecimal quantityTransfered) + { + this.quantityTransfered = quantityTransfered; + } + + public BigDecimal getQuantityTransfered() + { + return quantityTransfered; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + public void setAttr1(String attr1) + { + this.attr1 = attr1; + } + + public String getAttr1() + { + return attr1; + } + public void setAttr2(String attr2) + { + this.attr2 = attr2; + } + + public String getAttr2() + { + return attr2; + } + public void setAttr3(Long attr3) + { + this.attr3 = attr3; + } + + public Long getAttr3() + { + return attr3; + } + public void setAttr4(Long attr4) + { + this.attr4 = attr4; + } + + public Long getAttr4() + { + return attr4; + } + + public Long getWorkstationId() { + return workstationId; + } + + public void setWorkstationId(Long workstationId) { + this.workstationId = workstationId; + } + + public Date getInputTime() { + return inputTime; + } + + public void setInputTime(Date inputTime) { + this.inputTime = inputTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("cardId", getCardId()) + .append("cardCode", getCardCode()) + .append("workorderId", getWorkorderId()) + .append("workorderCode", getWorkorderCode()) + .append("workorderName", getWorkorderName()) + .append("batchCode", getBatchCode()) + .append("itemId", getItemId()) + .append("itemCode", getItemCode()) + .append("itemName", getItemName()) + .append("specification", getSpecification()) + .append("unitOfMeasure", getUnitOfMeasure()) + .append("barcodeUrl", getBarcodeUrl()) + .append("quantityTransfered", getQuantityTransfered()) + .append("status", getStatus()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProCardProcess.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProCardProcess.java new file mode 100644 index 0000000..9790fe9 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProCardProcess.java @@ -0,0 +1,355 @@ +package com.ktg.mes.pro.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ktg.common.annotation.Excel; +import com.ktg.common.core.domain.BaseEntity; + +/** + * 工序流转卡-工序信息对象 pro_card_process + * + * @author yinjinlu + * @date 2024-07-04 + */ +public class ProCardProcess extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 流水ID */ + private Long recordId; + + /** 流转卡ID */ + @Excel(name = "流转卡ID") + private Long cardId; + + /** 流转卡编号 */ + @Excel(name = "流转卡编号") + private String cardCode; + + /** 序号 */ + @Excel(name = "序号") + private Long seqNum; + + /** 工序ID */ + @Excel(name = "工序ID") + private Long processId; + + /** 工序编号 */ + @Excel(name = "工序编号") + private String processCode; + + /** 工序名称 */ + @Excel(name = "工序名称") + private String processName; + + /** 进入工序时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "进入工序时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date inputTime; + + /** 出工序时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "出工序时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date outputTime; + + /** 投入数量 */ + @Excel(name = "投入数量") + private BigDecimal quantityInput; + + /** 产出数量 */ + @Excel(name = "产出数量") + private BigDecimal quantityOutput; + + /** 不合格品数量 */ + @Excel(name = "不合格品数量") + private BigDecimal quantityUnquanlify; + + /** 工作站ID */ + @Excel(name = "工作站ID") + private Long workstationId; + + /** 工作站编号 */ + @Excel(name = "工作站编号") + private String workstationCode; + + /** 工作站名称 */ + @Excel(name = "工作站名称") + private String workstationName; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long userId; + + /** 用户名 */ + @Excel(name = "用户名") + private String userName; + + /** 名称 */ + @Excel(name = "名称") + private String nickName; + + /** 过程检验单ID */ + @Excel(name = "过程检验单ID") + private Long ipqcId; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private Long attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private Long attr4; + + public void setRecordId(Long recordId) + { + this.recordId = recordId; + } + + public Long getRecordId() + { + return recordId; + } + public void setCardId(Long cardId) + { + this.cardId = cardId; + } + + public Long getCardId() + { + return cardId; + } + public void setCardCode(String cardCode) + { + this.cardCode = cardCode; + } + + public String getCardCode() + { + return cardCode; + } + public void setSeqNum(Long seqNum) + { + this.seqNum = seqNum; + } + + public Long getSeqNum() + { + return seqNum; + } + public void setProcessId(Long processId) + { + this.processId = processId; + } + + public Long getProcessId() + { + return processId; + } + public void setProcessCode(String processCode) + { + this.processCode = processCode; + } + + public String getProcessCode() + { + return processCode; + } + public void setProcessName(String processName) + { + this.processName = processName; + } + + public String getProcessName() + { + return processName; + } + public void setInputTime(Date inputTime) + { + this.inputTime = inputTime; + } + + public Date getInputTime() + { + return inputTime; + } + public void setOutputTime(Date outputTime) + { + this.outputTime = outputTime; + } + + public Date getOutputTime() + { + return outputTime; + } + public void setQuantityInput(BigDecimal quantityInput) + { + this.quantityInput = quantityInput; + } + + public BigDecimal getQuantityInput() + { + return quantityInput; + } + public void setQuantityOutput(BigDecimal quantityOutput) + { + this.quantityOutput = quantityOutput; + } + + public BigDecimal getQuantityOutput() + { + return quantityOutput; + } + public void setQuantityUnquanlify(BigDecimal quantityUnquanlify) + { + this.quantityUnquanlify = quantityUnquanlify; + } + + public BigDecimal getQuantityUnquanlify() + { + return quantityUnquanlify; + } + public void setWorkstationId(Long workstationId) + { + this.workstationId = workstationId; + } + + public Long getWorkstationId() + { + return workstationId; + } + public void setWorkstationCode(String workstationCode) + { + this.workstationCode = workstationCode; + } + + public String getWorkstationCode() + { + return workstationCode; + } + public void setWorkstationName(String workstationName) + { + this.workstationName = workstationName; + } + + public String getWorkstationName() + { + return workstationName; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getUserName() + { + return userName; + } + public void setNickName(String nickName) + { + this.nickName = nickName; + } + + public String getNickName() + { + return nickName; + } + public void setIpqcId(Long ipqcId) + { + this.ipqcId = ipqcId; + } + + public Long getIpqcId() + { + return ipqcId; + } + public void setAttr1(String attr1) + { + this.attr1 = attr1; + } + + public String getAttr1() + { + return attr1; + } + public void setAttr2(String attr2) + { + this.attr2 = attr2; + } + + public String getAttr2() + { + return attr2; + } + public void setAttr3(Long attr3) + { + this.attr3 = attr3; + } + + public Long getAttr3() + { + return attr3; + } + public void setAttr4(Long attr4) + { + this.attr4 = attr4; + } + + public Long getAttr4() + { + return attr4; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("cardId", getCardId()) + .append("cardCode", getCardCode()) + .append("seqNum", getSeqNum()) + .append("processId", getProcessId()) + .append("processCode", getProcessCode()) + .append("processName", getProcessName()) + .append("inputTime", getInputTime()) + .append("outputTime", getOutputTime()) + .append("quantityInput", getQuantityInput()) + .append("quantityOutput", getQuantityOutput()) + .append("quantityUnquanlify", getQuantityUnquanlify()) + .append("workstationId", getWorkstationId()) + .append("workstationCode", getWorkstationCode()) + .append("workstationName", getWorkstationName()) + .append("userId", getUserId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("ipqcId", getIpqcId()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProSnProcess.java b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProSnProcess.java new file mode 100644 index 0000000..5713bde --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/domain/ProSnProcess.java @@ -0,0 +1,362 @@ +package com.ktg.mes.pro.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ktg.common.annotation.Excel; +import com.ktg.common.core.domain.BaseEntity; + +/** + * SN流转-工序信息对象 pro_sn_process + * + * @author yinjinlu + * @date 2024-11-22 + */ +public class ProSnProcess extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 流水ID */ + private Long recordId; + + /** SNID */ + @Excel(name = "SNID") + private Long snId; + + /** SN编号 */ + @Excel(name = "SN编号") + private String snCode; + + /** 序号 */ + @Excel(name = "序号") + private Long seqNum; + + /** 工序ID */ + @Excel(name = "工序ID") + private Long processId; + + /** 工序编号 */ + @Excel(name = "工序编号") + private String processCode; + + /** 工序名称 */ + @Excel(name = "工序名称") + private String processName; + + /** 进入工序时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "进入工序时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date inputTime; + + /** 出工序时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "出工序时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date outputTime; + + /** 投入数量 */ + @Excel(name = "投入数量") + private BigDecimal quantityInput; + + /** 产出数量 */ + @Excel(name = "产出数量") + private BigDecimal quantityOutput; + + /** 不合格品数量 */ + @Excel(name = "不合格品数量") + private BigDecimal quantityUnquanlify; + + /** 工作站ID */ + @Excel(name = "工作站ID") + private Long workstationId; + + /** 工作站编号 */ + @Excel(name = "工作站编号") + private String workstationCode; + + /** 工作站名称 */ + @Excel(name = "工作站名称") + private String workstationName; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long userId; + + /** 用户名 */ + @Excel(name = "用户名") + private String userName; + + /** 名称 */ + @Excel(name = "名称") + private String nickName; + + /** 过程检验单ID */ + @Excel(name = "过程检验单ID") + private Long ipqcId; + + + private Long workOrderId; + + /** 预留字段1 */ + private String attr1; + + /** 预留字段2 */ + private String attr2; + + /** 预留字段3 */ + private Long attr3; + + /** 预留字段4 */ + private Long attr4; + + public void setRecordId(Long recordId) + { + this.recordId = recordId; + } + + public Long getRecordId() + { + return recordId; + } + public void setSnId(Long snId) + { + this.snId = snId; + } + + public Long getSnId() + { + return snId; + } + public void setSnCode(String snCode) + { + this.snCode = snCode; + } + + public String getSnCode() + { + return snCode; + } + public void setSeqNum(Long seqNum) + { + this.seqNum = seqNum; + } + + public Long getSeqNum() + { + return seqNum; + } + public void setProcessId(Long processId) + { + this.processId = processId; + } + + public Long getProcessId() + { + return processId; + } + public void setProcessCode(String processCode) + { + this.processCode = processCode; + } + + public String getProcessCode() + { + return processCode; + } + public void setProcessName(String processName) + { + this.processName = processName; + } + + public String getProcessName() + { + return processName; + } + public void setInputTime(Date inputTime) + { + this.inputTime = inputTime; + } + + public Date getInputTime() + { + return inputTime; + } + public void setOutputTime(Date outputTime) + { + this.outputTime = outputTime; + } + + public Date getOutputTime() + { + return outputTime; + } + public void setQuantityInput(BigDecimal quantityInput) + { + this.quantityInput = quantityInput; + } + + public BigDecimal getQuantityInput() + { + return quantityInput; + } + public void setQuantityOutput(BigDecimal quantityOutput) + { + this.quantityOutput = quantityOutput; + } + + public BigDecimal getQuantityOutput() + { + return quantityOutput; + } + public void setQuantityUnquanlify(BigDecimal quantityUnquanlify) + { + this.quantityUnquanlify = quantityUnquanlify; + } + + public BigDecimal getQuantityUnquanlify() + { + return quantityUnquanlify; + } + public void setWorkstationId(Long workstationId) + { + this.workstationId = workstationId; + } + + public Long getWorkstationId() + { + return workstationId; + } + public void setWorkstationCode(String workstationCode) + { + this.workstationCode = workstationCode; + } + + public String getWorkstationCode() + { + return workstationCode; + } + public void setWorkstationName(String workstationName) + { + this.workstationName = workstationName; + } + + public String getWorkstationName() + { + return workstationName; + } + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + public void setUserName(String userName) + { + this.userName = userName; + } + + public String getUserName() + { + return userName; + } + public void setNickName(String nickName) + { + this.nickName = nickName; + } + + public String getNickName() + { + return nickName; + } + public void setIpqcId(Long ipqcId) + { + this.ipqcId = ipqcId; + } + + public Long getIpqcId() + { + return ipqcId; + } + public void setAttr1(String attr1) + { + this.attr1 = attr1; + } + + public String getAttr1() + { + return attr1; + } + public void setAttr2(String attr2) + { + this.attr2 = attr2; + } + + public String getAttr2() + { + return attr2; + } + public void setAttr3(Long attr3) + { + this.attr3 = attr3; + } + + public Long getAttr3() + { + return attr3; + } + public void setAttr4(Long attr4) + { + this.attr4 = attr4; + } + + public Long getAttr4() + { + return attr4; + } + + public Long getWorkOrderId() { + return workOrderId; + } + + public void setWorkOrderId(Long workOrderId) { + this.workOrderId = workOrderId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("snId", getSnId()) + .append("snCode", getSnCode()) + .append("seqNum", getSeqNum()) + .append("processId", getProcessId()) + .append("processCode", getProcessCode()) + .append("processName", getProcessName()) + .append("inputTime", getInputTime()) + .append("outputTime", getOutputTime()) + .append("quantityInput", getQuantityInput()) + .append("quantityOutput", getQuantityOutput()) + .append("quantityUnquanlify", getQuantityUnquanlify()) + .append("workstationId", getWorkstationId()) + .append("workstationCode", getWorkstationCode()) + .append("workstationName", getWorkstationName()) + .append("userId", getUserId()) + .append("userName", getUserName()) + .append("nickName", getNickName()) + .append("ipqcId", getIpqcId()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProCardMapper.java b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProCardMapper.java new file mode 100644 index 0000000..815ebd1 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProCardMapper.java @@ -0,0 +1,64 @@ +package com.ktg.mes.pro.mapper; + +import java.util.List; +import com.ktg.mes.pro.domain.ProCard; + +/** + * 工序流转卡Mapper接口 + * + * @author yinjinlu + * @date 2024-07-04 + */ +public interface ProCardMapper +{ + /** + * 查询工序流转卡 + * + * @param cardId 工序流转卡主键 + * @return 工序流转卡 + */ + public ProCard selectProCardByCardId(Long cardId); + + /** + * 查询工序流转卡列表 + * + * @param proCard 工序流转卡 + * @return 工序流转卡集合 + */ + public List selectProCardList(ProCard proCard); + + + public List getStationList(ProCard card); + + /** + * 新增工序流转卡 + * + * @param proCard 工序流转卡 + * @return 结果 + */ + public int insertProCard(ProCard proCard); + + /** + * 修改工序流转卡 + * + * @param proCard 工序流转卡 + * @return 结果 + */ + public int updateProCard(ProCard proCard); + + /** + * 删除工序流转卡 + * + * @param cardId 工序流转卡主键 + * @return 结果 + */ + public int deleteProCardByCardId(Long cardId); + + /** + * 批量删除工序流转卡 + * + * @param cardIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProCardByCardIds(Long[] cardIds); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProCardProcessMapper.java b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProCardProcessMapper.java new file mode 100644 index 0000000..e7bd7e8 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProCardProcessMapper.java @@ -0,0 +1,61 @@ +package com.ktg.mes.pro.mapper; + +import java.util.List; +import com.ktg.mes.pro.domain.ProCardProcess; + +/** + * 工序流转卡-工序信息Mapper接口 + * + * @author yinjinlu + * @date 2024-07-04 + */ +public interface ProCardProcessMapper +{ + /** + * 查询工序流转卡-工序信息 + * + * @param recordId 工序流转卡-工序信息主键 + * @return 工序流转卡-工序信息 + */ + public ProCardProcess selectProCardProcessByRecordId(Long recordId); + + /** + * 查询工序流转卡-工序信息列表 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 工序流转卡-工序信息集合 + */ + public List selectProCardProcessList(ProCardProcess proCardProcess); + + /** + * 新增工序流转卡-工序信息 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 结果 + */ + public int insertProCardProcess(ProCardProcess proCardProcess); + + /** + * 修改工序流转卡-工序信息 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 结果 + */ + public int updateProCardProcess(ProCardProcess proCardProcess); + + /** + * 删除工序流转卡-工序信息 + * + * @param recordId 工序流转卡-工序信息主键 + * @return 结果 + */ + public int deleteProCardProcessByRecordId(Long recordId); + + /** + * 批量删除工序流转卡-工序信息 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProCardProcessByRecordIds(Long[] recordIds); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProSnProcessMapper.java b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProSnProcessMapper.java new file mode 100644 index 0000000..e4617ab --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/mapper/ProSnProcessMapper.java @@ -0,0 +1,62 @@ +package com.ktg.mes.pro.mapper; + +import java.util.List; +import com.ktg.mes.pro.domain.ProSnProcess; + +/** + * SN流转-工序信息Mapper接口 + * + * @author yinjinlu + * @date 2024-11-22 + */ +public interface ProSnProcessMapper +{ + /** + * 查询SN流转-工序信息 + * + * @param recordId SN流转-工序信息主键 + * @return SN流转-工序信息 + */ + public ProSnProcess selectProSnProcessByRecordId(Long recordId); + + /** + * 查询SN流转-工序信息列表 + * + * @param proSnProcess SN流转-工序信息 + * @return SN流转-工序信息集合 + */ + public List selectProSnProcessList(ProSnProcess proSnProcess); + + + /** + * 新增SN流转-工序信息 + * + * @param proSnProcess SN流转-工序信息 + * @return 结果 + */ + public int insertProSnProcess(ProSnProcess proSnProcess); + + /** + * 修改SN流转-工序信息 + * + * @param proSnProcess SN流转-工序信息 + * @return 结果 + */ + public int updateProSnProcess(ProSnProcess proSnProcess); + + /** + * 删除SN流转-工序信息 + * + * @param recordId SN流转-工序信息主键 + * @return 结果 + */ + public int deleteProSnProcessByRecordId(Long recordId); + + /** + * 批量删除SN流转-工序信息 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProSnProcessByRecordIds(Long[] recordIds); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProCardProcessService.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProCardProcessService.java new file mode 100644 index 0000000..34800b3 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProCardProcessService.java @@ -0,0 +1,61 @@ +package com.ktg.mes.pro.service; + +import java.util.List; +import com.ktg.mes.pro.domain.ProCardProcess; + +/** + * 工序流转卡-工序信息Service接口 + * + * @author yinjinlu + * @date 2024-07-04 + */ +public interface IProCardProcessService +{ + /** + * 查询工序流转卡-工序信息 + * + * @param recordId 工序流转卡-工序信息主键 + * @return 工序流转卡-工序信息 + */ + public ProCardProcess selectProCardProcessByRecordId(Long recordId); + + /** + * 查询工序流转卡-工序信息列表 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 工序流转卡-工序信息集合 + */ + public List selectProCardProcessList(ProCardProcess proCardProcess); + + /** + * 新增工序流转卡-工序信息 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 结果 + */ + public int insertProCardProcess(ProCardProcess proCardProcess); + + /** + * 修改工序流转卡-工序信息 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 结果 + */ + public int updateProCardProcess(ProCardProcess proCardProcess); + + /** + * 批量删除工序流转卡-工序信息 + * + * @param recordIds 需要删除的工序流转卡-工序信息主键集合 + * @return 结果 + */ + public int deleteProCardProcessByRecordIds(Long[] recordIds); + + /** + * 删除工序流转卡-工序信息信息 + * + * @param recordId 工序流转卡-工序信息主键 + * @return 结果 + */ + public int deleteProCardProcessByRecordId(Long recordId); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProCardService.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProCardService.java new file mode 100644 index 0000000..b5f144b --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProCardService.java @@ -0,0 +1,68 @@ +package com.ktg.mes.pro.service; + +import java.util.List; +import com.ktg.mes.pro.domain.ProCard; + +/** + * 工序流转卡Service接口 + * + * @author yinjinlu + * @date 2024-07-04 + */ +public interface IProCardService +{ + /** + * 查询工序流转卡 + * + * @param cardId 工序流转卡主键 + * @return 工序流转卡 + */ + public ProCard selectProCardByCardId(Long cardId); + + /** + * 查询工序流转卡列表 + * + * @param proCard 工序流转卡 + * @return 工序流转卡集合 + */ + public List selectProCardList(ProCard proCard); + + /** + * 查询指定生产工单在指定工作站下的流转单记录 + * @param card + * @return + */ + public List getStationList(ProCard card); + + /** + * 新增工序流转卡 + * + * @param proCard 工序流转卡 + * @return 结果 + */ + public int insertProCard(ProCard proCard); + + /** + * 修改工序流转卡 + * + * @param proCard 工序流转卡 + * @return 结果 + */ + public int updateProCard(ProCard proCard); + + /** + * 批量删除工序流转卡 + * + * @param cardIds 需要删除的工序流转卡主键集合 + * @return 结果 + */ + public int deleteProCardByCardIds(Long[] cardIds); + + /** + * 删除工序流转卡信息 + * + * @param cardId 工序流转卡主键 + * @return 结果 + */ + public int deleteProCardByCardId(Long cardId); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProSnProcessService.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProSnProcessService.java new file mode 100644 index 0000000..4b4881d --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/IProSnProcessService.java @@ -0,0 +1,61 @@ +package com.ktg.mes.pro.service; + +import java.util.List; +import com.ktg.mes.pro.domain.ProSnProcess; + +/** + * SN流转-工序信息Service接口 + * + * @author yinjinlu + * @date 2024-11-22 + */ +public interface IProSnProcessService +{ + /** + * 查询SN流转-工序信息 + * + * @param recordId SN流转-工序信息主键 + * @return SN流转-工序信息 + */ + public ProSnProcess selectProSnProcessByRecordId(Long recordId); + + /** + * 查询SN流转-工序信息列表 + * + * @param proSnProcess SN流转-工序信息 + * @return SN流转-工序信息集合 + */ + public List selectProSnProcessList(ProSnProcess proSnProcess); + + /** + * 新增SN流转-工序信息 + * + * @param proSnProcess SN流转-工序信息 + * @return 结果 + */ + public int insertProSnProcess(ProSnProcess proSnProcess); + + /** + * 修改SN流转-工序信息 + * + * @param proSnProcess SN流转-工序信息 + * @return 结果 + */ + public int updateProSnProcess(ProSnProcess proSnProcess); + + /** + * 批量删除SN流转-工序信息 + * + * @param recordIds 需要删除的SN流转-工序信息主键集合 + * @return 结果 + */ + public int deleteProSnProcessByRecordIds(Long[] recordIds); + + /** + * 删除SN流转-工序信息信息 + * + * @param recordId SN流转-工序信息主键 + * @return 结果 + */ + public int deleteProSnProcessByRecordId(Long recordId); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProCardProcessServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProCardProcessServiceImpl.java new file mode 100644 index 0000000..10f3b05 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProCardProcessServiceImpl.java @@ -0,0 +1,96 @@ +package com.ktg.mes.pro.service.impl; + +import java.util.List; +import com.ktg.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ktg.mes.pro.mapper.ProCardProcessMapper; +import com.ktg.mes.pro.domain.ProCardProcess; +import com.ktg.mes.pro.service.IProCardProcessService; + +/** + * 工序流转卡-工序信息Service业务层处理 + * + * @author yinjinlu + * @date 2024-07-04 + */ +@Service +public class ProCardProcessServiceImpl implements IProCardProcessService +{ + @Autowired + private ProCardProcessMapper proCardProcessMapper; + + /** + * 查询工序流转卡-工序信息 + * + * @param recordId 工序流转卡-工序信息主键 + * @return 工序流转卡-工序信息 + */ + @Override + public ProCardProcess selectProCardProcessByRecordId(Long recordId) + { + return proCardProcessMapper.selectProCardProcessByRecordId(recordId); + } + + /** + * 查询工序流转卡-工序信息列表 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 工序流转卡-工序信息 + */ + @Override + public List selectProCardProcessList(ProCardProcess proCardProcess) + { + return proCardProcessMapper.selectProCardProcessList(proCardProcess); + } + + /** + * 新增工序流转卡-工序信息 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 结果 + */ + @Override + public int insertProCardProcess(ProCardProcess proCardProcess) + { + proCardProcess.setCreateTime(DateUtils.getNowDate()); + return proCardProcessMapper.insertProCardProcess(proCardProcess); + } + + /** + * 修改工序流转卡-工序信息 + * + * @param proCardProcess 工序流转卡-工序信息 + * @return 结果 + */ + @Override + public int updateProCardProcess(ProCardProcess proCardProcess) + { + proCardProcess.setUpdateTime(DateUtils.getNowDate()); + return proCardProcessMapper.updateProCardProcess(proCardProcess); + } + + /** + * 批量删除工序流转卡-工序信息 + * + * @param recordIds 需要删除的工序流转卡-工序信息主键 + * @return 结果 + */ + @Override + public int deleteProCardProcessByRecordIds(Long[] recordIds) + { + return proCardProcessMapper.deleteProCardProcessByRecordIds(recordIds); + } + + /** + * 删除工序流转卡-工序信息信息 + * + * @param recordId 工序流转卡-工序信息主键 + * @return 结果 + */ + @Override + public int deleteProCardProcessByRecordId(Long recordId) + { + return proCardProcessMapper.deleteProCardProcessByRecordId(recordId); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProCardServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProCardServiceImpl.java new file mode 100644 index 0000000..8cfdaa7 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProCardServiceImpl.java @@ -0,0 +1,106 @@ +package com.ktg.mes.pro.service.impl; + +import java.util.List; +import com.ktg.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ktg.mes.pro.mapper.ProCardMapper; +import com.ktg.mes.pro.domain.ProCard; +import com.ktg.mes.pro.service.IProCardService; + +/** + * 工序流转卡Service业务层处理 + * + * @author yinjinlu + * @date 2024-07-04 + */ +@Service +public class ProCardServiceImpl implements IProCardService +{ + @Autowired + private ProCardMapper proCardMapper; + + /** + * 查询工序流转卡 + * + * @param cardId 工序流转卡主键 + * @return 工序流转卡 + */ + @Override + public ProCard selectProCardByCardId(Long cardId) + { + return proCardMapper.selectProCardByCardId(cardId); + } + + /** + * 查询工序流转卡列表 + * + * @param proCard 工序流转卡 + * @return 工序流转卡 + */ + @Override + public List selectProCardList(ProCard proCard) + { + return proCardMapper.selectProCardList(proCard); + } + + /** + * 查询指定生产工单在指定工作站下的流转单记录 + * @param card + * @return + */ + @Override + public List getStationList(ProCard card) { + return proCardMapper.getStationList(card); + } + + /** + * 新增工序流转卡 + * + * @param proCard 工序流转卡 + * @return 结果 + */ + @Override + public int insertProCard(ProCard proCard) + { + proCard.setCreateTime(DateUtils.getNowDate()); + return proCardMapper.insertProCard(proCard); + } + + /** + * 修改工序流转卡 + * + * @param proCard 工序流转卡 + * @return 结果 + */ + @Override + public int updateProCard(ProCard proCard) + { + proCard.setUpdateTime(DateUtils.getNowDate()); + return proCardMapper.updateProCard(proCard); + } + + /** + * 批量删除工序流转卡 + * + * @param cardIds 需要删除的工序流转卡主键 + * @return 结果 + */ + @Override + public int deleteProCardByCardIds(Long[] cardIds) + { + return proCardMapper.deleteProCardByCardIds(cardIds); + } + + /** + * 删除工序流转卡信息 + * + * @param cardId 工序流转卡主键 + * @return 结果 + */ + @Override + public int deleteProCardByCardId(Long cardId) + { + return proCardMapper.deleteProCardByCardId(cardId); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProSnProcessServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProSnProcessServiceImpl.java new file mode 100644 index 0000000..290ca5b --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/pro/service/impl/ProSnProcessServiceImpl.java @@ -0,0 +1,96 @@ +package com.ktg.mes.pro.service.impl; + +import java.util.List; +import com.ktg.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ktg.mes.pro.mapper.ProSnProcessMapper; +import com.ktg.mes.pro.domain.ProSnProcess; +import com.ktg.mes.pro.service.IProSnProcessService; + +/** + * SN流转-工序信息Service业务层处理 + * + * @author yinjinlu + * @date 2024-11-22 + */ +@Service +public class ProSnProcessServiceImpl implements IProSnProcessService +{ + @Autowired + private ProSnProcessMapper proSnProcessMapper; + + /** + * 查询SN流转-工序信息 + * + * @param recordId SN流转-工序信息主键 + * @return SN流转-工序信息 + */ + @Override + public ProSnProcess selectProSnProcessByRecordId(Long recordId) + { + return proSnProcessMapper.selectProSnProcessByRecordId(recordId); + } + + /** + * 查询SN流转-工序信息列表 + * + * @param proSnProcess SN流转-工序信息 + * @return SN流转-工序信息 + */ + @Override + public List selectProSnProcessList(ProSnProcess proSnProcess) + { + return proSnProcessMapper.selectProSnProcessList(proSnProcess); + } + + /** + * 新增SN流转-工序信息 + * + * @param proSnProcess SN流转-工序信息 + * @return 结果 + */ + @Override + public int insertProSnProcess(ProSnProcess proSnProcess) + { + proSnProcess.setCreateTime(DateUtils.getNowDate()); + return proSnProcessMapper.insertProSnProcess(proSnProcess); + } + + /** + * 修改SN流转-工序信息 + * + * @param proSnProcess SN流转-工序信息 + * @return 结果 + */ + @Override + public int updateProSnProcess(ProSnProcess proSnProcess) + { + proSnProcess.setUpdateTime(DateUtils.getNowDate()); + return proSnProcessMapper.updateProSnProcess(proSnProcess); + } + + /** + * 批量删除SN流转-工序信息 + * + * @param recordIds 需要删除的SN流转-工序信息主键 + * @return 结果 + */ + @Override + public int deleteProSnProcessByRecordIds(Long[] recordIds) + { + return proSnProcessMapper.deleteProSnProcessByRecordIds(recordIds); + } + + /** + * 删除SN流转-工序信息信息 + * + * @param recordId SN流转-工序信息主键 + * @return 结果 + */ + @Override + public int deleteProSnProcessByRecordId(Long recordId) + { + return proSnProcessMapper.deleteProSnProcessByRecordId(recordId); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmSnController.java b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmSnController.java index 53e2f80..ac71660 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmSnController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmSnController.java @@ -6,7 +6,9 @@ import javax.servlet.http.HttpServletResponse; import cn.hutool.core.date.DateUtil; import com.ktg.common.constant.UserConstants; +import com.ktg.common.utils.StringUtils; import com.ktg.system.strategy.AutoCodeUtil; +import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -88,6 +90,23 @@ public class WmSnController extends BaseController return AjaxResult.success(wmSnService.selectWmSnBySnId(snId)); } + @ApiOperation("查询某个工作站下指定工单的所有SN过站记录接口") + @PreAuthorize("@ss.hasPermi('mes:pro:procard:list')") + @GetMapping("/getStationList") + public AjaxResult getStationList(WmSn sn){ + if(!StringUtils.isNotNull(sn.getWorkOrderId())){ + return AjaxResult.error("请指定生产工单ID"); + } + + if(StringUtils.isNotNull(sn.getWorkStationId())){ + return AjaxResult.error("请指定工作站!"); + } + + List snList = wmSnService.getStationList(sn); + return AjaxResult.success(snList); + } + + /** * 新增SN码 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmSn.java b/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmSn.java index 1ccf3ea..4bdb903 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmSn.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmSn.java @@ -49,6 +49,13 @@ public class WmSn extends BaseEntity @Excel(name = "批次号") private String batchCode; + + private Long workOrderId; + + private Date inputTime; + + private Long workStationId; + /** * SN码的数量 */ @@ -196,6 +203,31 @@ public class WmSn extends BaseEntity return attr4; } + + public Long getWorkOrderId() { + return workOrderId; + } + + public void setWorkOrderId(Long workOrderId) { + this.workOrderId = workOrderId; + } + + public Date getInputTime() { + return inputTime; + } + + public void setInputTime(Date inputTime) { + this.inputTime = inputTime; + } + + public Long getWorkStationId() { + return workStationId; + } + + public void setWorkStationId(Long workStationId) { + this.workStationId = workStationId; + } + @Override public String toString() { return "WmSn{" + diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmSnMapper.java b/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmSnMapper.java index 3300482..e8f9d8c 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmSnMapper.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmSnMapper.java @@ -1,6 +1,8 @@ package com.ktg.mes.wm.mapper; import java.util.List; + +import com.ktg.mes.pro.domain.ProSnProcess; import com.ktg.mes.wm.domain.WmSn; /** @@ -34,6 +36,13 @@ public interface WmSnMapper */ public List selectSnList(WmSn wmSn); + /** + * 查询指定SN的流转记录 + * @param sn + * @return + */ + public List getStationList(WmSn sn); + /** * 新增SN码 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmSnService.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmSnService.java index f83d333..a4aff0a 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmSnService.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmSnService.java @@ -34,6 +34,14 @@ public interface IWmSnService */ public List selectSnList(WmSn wmSn); + + /** + * 查询指定SN的流转记录 + * @param sn + * @return + */ + public List getStationList(WmSn sn); + /** * 新增SN码 * diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmSnServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmSnServiceImpl.java index 186d5c5..c3c8fd7 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmSnServiceImpl.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmSnServiceImpl.java @@ -49,6 +49,11 @@ public class WmSnServiceImpl implements IWmSnService return wmSnMapper.selectSnList(wmSn); } + @Override + public List getStationList(WmSn sn) { + return wmSnMapper.getStationList(sn); + } + /** * 新增SN码 * diff --git a/ktg-mes/src/main/resources/mapper/pro/ProCardMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProCardMapper.xml new file mode 100644 index 0000000..435dce4 --- /dev/null +++ b/ktg-mes/src/main/resources/mapper/pro/ProCardMapper.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select card_id, card_code, workorder_id, workorder_code, workorder_name, batch_code, item_id, item_code, item_name, specification, unit_of_measure, barcode_url, quantity_transfered, status, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_card + + + + + + + + + + + insert into pro_card + + card_code, + workorder_id, + workorder_code, + workorder_name, + batch_code, + item_id, + item_code, + item_name, + specification, + unit_of_measure, + barcode_url, + quantity_transfered, + status, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + + + #{cardCode}, + #{workorderId}, + #{workorderCode}, + #{workorderName}, + #{batchCode}, + #{itemId}, + #{itemCode}, + #{itemName}, + #{specification}, + #{unitOfMeasure}, + #{barcodeUrl}, + #{quantityTransfered}, + #{status}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update pro_card + + card_code = #{cardCode}, + workorder_id = #{workorderId}, + workorder_code = #{workorderCode}, + workorder_name = #{workorderName}, + batch_code = #{batchCode}, + item_id = #{itemId}, + item_code = #{itemCode}, + item_name = #{itemName}, + specification = #{specification}, + unit_of_measure = #{unitOfMeasure}, + barcode_url = #{barcodeUrl}, + quantity_transfered = #{quantityTransfered}, + status = #{status}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where card_id = #{cardId} + + + + delete from pro_card where card_id = #{cardId} + + + + delete from pro_card where card_id in + + #{cardId} + + + \ No newline at end of file diff --git a/ktg-mes/src/main/resources/mapper/pro/ProCardProcessMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProCardProcessMapper.xml new file mode 100644 index 0000000..54cad60 --- /dev/null +++ b/ktg-mes/src/main/resources/mapper/pro/ProCardProcessMapper.xml @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_id, card_id, card_code, seq_num, process_id, process_code, process_name, input_time, output_time, quantity_input, quantity_output, quantity_unquanlify, workstation_id, workstation_code, workstation_name, user_id, user_name, nick_name, ipqc_id, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_card_process + + + + + + + + insert into pro_card_process + + card_id, + card_code, + seq_num, + process_id, + process_code, + process_name, + input_time, + output_time, + quantity_input, + quantity_output, + quantity_unquanlify, + workstation_id, + workstation_code, + workstation_name, + user_id, + user_name, + nick_name, + ipqc_id, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + + + #{cardId}, + #{cardCode}, + #{seqNum}, + #{processId}, + #{processCode}, + #{processName}, + #{inputTime}, + #{outputTime}, + #{quantityInput}, + #{quantityOutput}, + #{quantityUnquanlify}, + #{workstationId}, + #{workstationCode}, + #{workstationName}, + #{userId}, + #{userName}, + #{nickName}, + #{ipqcId}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update pro_card_process + + card_id = #{cardId}, + card_code = #{cardCode}, + seq_num = #{seqNum}, + process_id = #{processId}, + process_code = #{processCode}, + process_name = #{processName}, + input_time = #{inputTime}, + output_time = #{outputTime}, + quantity_input = #{quantityInput}, + quantity_output = #{quantityOutput}, + quantity_unquanlify = #{quantityUnquanlify}, + workstation_id = #{workstationId}, + workstation_code = #{workstationCode}, + workstation_name = #{workstationName}, + user_id = #{userId}, + user_name = #{userName}, + nick_name = #{nickName}, + ipqc_id = #{ipqcId}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where record_id = #{recordId} + + + + delete from pro_card_process where record_id = #{recordId} + + + + delete from pro_card_process where record_id in + + #{recordId} + + + \ No newline at end of file diff --git a/ktg-mes/src/main/resources/mapper/pro/ProSnProcessMapper.xml b/ktg-mes/src/main/resources/mapper/pro/ProSnProcessMapper.xml new file mode 100644 index 0000000..7aa8046 --- /dev/null +++ b/ktg-mes/src/main/resources/mapper/pro/ProSnProcessMapper.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select record_id, sn_id, sn_code, seq_num, process_id, process_code, process_name, input_time, output_time, quantity_input, quantity_output, quantity_unquanlify, workstation_id, workstation_code, workstation_name, user_id, user_name, nick_name, ipqc_id, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_sn_process + + + + + + + + insert into pro_sn_process + + sn_id, + sn_code, + seq_num, + process_id, + process_code, + process_name, + input_time, + output_time, + quantity_input, + quantity_output, + quantity_unquanlify, + workstation_id, + workstation_code, + workstation_name, + user_id, + user_name, + nick_name, + ipqc_id, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + + + #{snId}, + #{snCode}, + #{seqNum}, + #{processId}, + #{processCode}, + #{processName}, + #{inputTime}, + #{outputTime}, + #{quantityInput}, + #{quantityOutput}, + #{quantityUnquanlify}, + #{workstationId}, + #{workstationCode}, + #{workstationName}, + #{userId}, + #{userName}, + #{nickName}, + #{ipqcId}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update pro_sn_process + + sn_id = #{snId}, + sn_code = #{snCode}, + seq_num = #{seqNum}, + process_id = #{processId}, + process_code = #{processCode}, + process_name = #{processName}, + input_time = #{inputTime}, + output_time = #{outputTime}, + quantity_input = #{quantityInput}, + quantity_output = #{quantityOutput}, + quantity_unquanlify = #{quantityUnquanlify}, + workstation_id = #{workstationId}, + workstation_code = #{workstationCode}, + workstation_name = #{workstationName}, + user_id = #{userId}, + user_name = #{userName}, + nick_name = #{nickName}, + ipqc_id = #{ipqcId}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where record_id = #{recordId} + + + + delete from pro_sn_process where record_id = #{recordId} + + + + delete from pro_sn_process where record_id in + + #{recordId} + + + \ No newline at end of file diff --git a/ktg-mes/src/main/resources/mapper/wm/WmSnMapper.xml b/ktg-mes/src/main/resources/mapper/wm/WmSnMapper.xml index 1abf016..c18436c 100644 --- a/ktg-mes/src/main/resources/mapper/wm/WmSnMapper.xml +++ b/ktg-mes/src/main/resources/mapper/wm/WmSnMapper.xml @@ -14,6 +14,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -27,7 +29,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select sn_id, sn_code, item_id, item_code, item_name, specification, unit_of_measure, batch_code,gen_date, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_sn + select sn_id, sn_code, item_id, item_code, item_name, specification, unit_of_measure, batch_code, work_order_id, gen_date, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_sn @@ -63,7 +66,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by item_id, item_code, item_name, specification, unit_of_measure, batch_code, gen_date order by item_id,batch_code desc - + + + + insert into wm_sn @@ -74,6 +88,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" specification, unit_of_measure, batch_code, + work_order_id, gen_date, remark, attr1, @@ -93,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{specification}, #{unitOfMeasure}, #{batchCode}, + #{workOrderId}, #{genDate}, #{remark}, #{attr1}, @@ -116,6 +132,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" specification = #{specification}, unit_of_measure = #{unitOfMeasure}, batch_code = #{batchCode}, + work_order_id = #{workOrderId}, remark = #{remark}, attr1 = #{attr1}, attr2 = #{attr2}, diff --git a/ktg-print/pom.xml b/ktg-print/pom.xml index 5b4d998..6a18b2b 100644 --- a/ktg-print/pom.xml +++ b/ktg-print/pom.xml @@ -22,7 +22,11 @@ netty-all 4.1.65.Final - + + io.swagger + swagger-models + 1.6.2 + com.google.protobuf protobuf-java diff --git a/ktg-print/src/main/java/com/ktg/print/controller/mobile/PrintPrinterMobileController.java b/ktg-print/src/main/java/com/ktg/print/controller/mobile/PrintPrinterMobileController.java new file mode 100644 index 0000000..2a0fd84 --- /dev/null +++ b/ktg-print/src/main/java/com/ktg/print/controller/mobile/PrintPrinterMobileController.java @@ -0,0 +1,36 @@ +package com.ktg.print.controller.mobile; + +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.print.domain.PrintPrinterConfig; +import com.ktg.print.service.IPrintPrinterConfigService; +import io.swagger.annotations.Api; +import com.ktg.common.core.controller.BaseController; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author yinjinlu + * @description + * @date 2024/11/24 + */ +@Api("标签打印机查询接口") +@RestController +@RequestMapping("/mobile/print/printerconfig") +public class PrintPrinterMobileController extends BaseController { + + @Autowired + private IPrintPrinterConfigService printPrinterConfigService; + + @ApiOperation("查询打印机清单") + @GetMapping("/list") + public AjaxResult getPrinterList(PrintPrinterConfig param){ + List list = printPrinterConfigService.selectPrintPrinterConfigList(param); + return AjaxResult.success(list); + } + +}