From a4d0209f800ce37cd554c692ef65903caad9b4d7 Mon Sep 17 00:00:00 2001 From: philip <244793088@qq.com> Date: Thu, 24 Jun 2021 13:51:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=89=8D=E5=87=86=E5=A4=87=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/CustomFieldConstant.java | 25 + .../controller/ProdReadyTaskController.java | 136 ++++ .../ProdReadyTaskDetailController.java | 124 +++ .../mesnac/common/enums/HandleEnum.java | 9 + .../mapper/ProdReadyTaskDetailMapper.java | 18 + .../common/mapper/ProdReadyTaskMapper.java | 18 + .../mesnac/common/model/ProdReadyTask.java | 424 +++++++++++ .../common/model/ProdReadyTaskDetail.java | 185 +++++ .../service/ProdReadyTaskDetailService.java | 28 + .../common/service/ProdReadyTaskService.java | 30 + .../service/impl/CommonServiceImpl.java | 5 +- .../impl/ProdReadyTaskDetailServiceImpl.java | 46 ++ .../impl/ProdReadyTaskServiceImpl.java | 196 +++++ .../mapper/ProdReadyTaskDetailMapper.xml | 386 ++++++++++ .../resources/mapper/ProdReadyTaskMapper.xml | 626 ++++++++++++++++ .../meapi/controller/ShopOrderController.java | 4 +- .../mesnac/meapi/dto/BomComponentDto.java | 33 + .../meapi/mapper/BomComponentMapper.java | 43 ++ .../mesnac/meapi/mapper/BomMapper.java | 21 + .../meapi/mapper/BomOperationMapper.java | 18 + .../mesnac/meapi/mapper/SfcBomMapper.java | 18 + .../foreverwin/mesnac/meapi/model/Bom.java | 348 +++++++++ .../mesnac/meapi/model/BomComponent.java | 401 ++++++++++ .../mesnac/meapi/model/BomOperation.java | 82 ++ .../foreverwin/mesnac/meapi/model/SfcBom.java | 155 ++++ .../meapi/service/BomComponentService.java | 96 +++ .../meapi/service/BomOperationService.java | 28 + .../mesnac/meapi/service/BomService.java | 43 ++ .../mesnac/meapi/service/SfcBomService.java | 30 + .../service/impl/BomComponentServiceImpl.java | 128 ++++ .../service/impl/BomOperationServiceImpl.java | 47 ++ .../meapi/service/impl/BomServiceImpl.java | 108 +++ .../meapi/service/impl/SfcBomServiceImpl.java | 59 ++ .../resources/mapper/BomComponentMapper.xml | 709 ++++++++++++++++++ meapi/src/main/resources/mapper/BomMapper.xml | 550 ++++++++++++++ .../resources/mapper/BomOperationMapper.xml | 279 +++++++ .../main/resources/mapper/SfcBomMapper.xml | 346 +++++++++ production/pom.xml | 6 - 38 files changed, 5799 insertions(+), 9 deletions(-) create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskDetailController.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskDetailMapper.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskMapper.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTaskDetail.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskDetailService.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskDetailServiceImpl.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskServiceImpl.java create mode 100644 common/src/main/resources/mapper/ProdReadyTaskDetailMapper.xml create mode 100644 common/src/main/resources/mapper/ProdReadyTaskMapper.xml create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/dto/BomComponentDto.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomComponentMapper.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomMapper.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomOperationMapper.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcBomMapper.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/model/Bom.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomComponent.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomOperation.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcBom.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomComponentService.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomOperationService.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomService.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcBomService.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomComponentServiceImpl.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomOperationServiceImpl.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomServiceImpl.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcBomServiceImpl.java create mode 100644 meapi/src/main/resources/mapper/BomComponentMapper.xml create mode 100644 meapi/src/main/resources/mapper/BomMapper.xml create mode 100644 meapi/src/main/resources/mapper/BomOperationMapper.xml create mode 100644 meapi/src/main/resources/mapper/SfcBomMapper.xml diff --git a/common/src/main/java/com/foreverwin/mesnac/common/constant/CustomFieldConstant.java b/common/src/main/java/com/foreverwin/mesnac/common/constant/CustomFieldConstant.java index 5677660f..a126880e 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/constant/CustomFieldConstant.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/constant/CustomFieldConstant.java @@ -7,6 +7,31 @@ package com.foreverwin.mesnac.common.constant; * @since 2021-05-12 */ public class CustomFieldConstant { + /** + * 物料 + */ + public static final String ITEM_CUSTOM_FIELD_ACCESSORY_TYPE = "ACCESSORY_TYPE";//辅料类型 + + /** + * 工单 + */ + + /** + * 资源 + */ + public static final String RESRCE_CUSTOM_FIELD_PROCESS_CONTROL = "PROCESS_CONTROL";//工控程序 + + /** + * 工作中心 + */ + public static final String WORK_CENTER_CUSTOM_FIELD_PROCESS_CONTROL= "PROCESS_CONTROL";//工控程序 + + /** + * 物料清单 + */ + public static final String BOM_COMPONENT_CUSTOM_FIELD_STEP_ID = "STEP_ID";//步骤 + + } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java new file mode 100644 index 00000000..381a4ade --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java @@ -0,0 +1,136 @@ +package com.foreverwin.mesnac.common.controller; + +import com.foreverwin.modular.core.util.R; +import com.foreverwin.modular.core.util.FrontPage; +import com.foreverwin.modular.core.util.CommonMethods; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import com.foreverwin.mesnac.common.service.ProdReadyTaskService; +import com.foreverwin.mesnac.common.model.ProdReadyTask; +import java.util.List; + +/** + * + * @author Philip + * @since 2021-06-23 + */ +@RestController +@RequestMapping("/Z-PROD-READY-TASK") +public class ProdReadyTaskController { + + @Autowired + public ProdReadyTaskService prodReadyTaskService; + + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getProdReadyTaskById(@PathVariable String id) { + return R.ok( prodReadyTaskService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getProdReadyTaskList(ProdReadyTask prodReadyTask){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTask); + result = prodReadyTaskService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, ProdReadyTask prodReadyTask){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTask); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(ProdReadyTask::getHandle, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getSite, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getTaskNo, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getSfcDispatchBo, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getShopOrder, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getWorkCenter, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getSfc, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getOperation, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getStepId, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getItem, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getResrce, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getReslut, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getStatus, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getCreateUser, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getModifyUser, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getReadyUser, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getCompleteUser, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getCancelUser, frontPage.getGlobalQuery()) + .or().like(ProdReadyTask::getRemarks, frontPage.getGlobalQuery()) + ); + } + result = prodReadyTaskService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param prodReadyTask 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody ProdReadyTask prodReadyTask) { + return R.ok(prodReadyTaskService.save(prodReadyTask)); + } + + /** + * 修改 + * @param prodReadyTask 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody ProdReadyTask prodReadyTask) { + return R.ok(prodReadyTaskService.updateById(prodReadyTask)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(prodReadyTaskService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(prodReadyTaskService.removeByIds(ids)); + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskDetailController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskDetailController.java new file mode 100644 index 00000000..37e90a49 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskDetailController.java @@ -0,0 +1,124 @@ +package com.foreverwin.mesnac.common.controller; + +import com.foreverwin.modular.core.util.R; +import com.foreverwin.modular.core.util.FrontPage; +import com.foreverwin.modular.core.util.CommonMethods; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import com.foreverwin.mesnac.common.service.ProdReadyTaskDetailService; +import com.foreverwin.mesnac.common.model.ProdReadyTaskDetail; +import java.util.List; + +/** + * + * @author Philip + * @since 2021-06-23 + */ +@RestController +@RequestMapping("/Z-PROD-READY-TASK-DETAIL") +public class ProdReadyTaskDetailController { + + @Autowired + public ProdReadyTaskDetailService prodReadyTaskDetailService; + + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getProdReadyTaskDetailById(@PathVariable String id) { + return R.ok( prodReadyTaskDetailService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getProdReadyTaskDetailList(ProdReadyTaskDetail prodReadyTaskDetail){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTaskDetail); + result = prodReadyTaskDetailService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, ProdReadyTaskDetail prodReadyTaskDetail){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTaskDetail); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(ProdReadyTaskDetail::getHandle, frontPage.getGlobalQuery()) + .or().like(ProdReadyTaskDetail::getProdReadyTaskBo, frontPage.getGlobalQuery()) + .or().like(ProdReadyTaskDetail::getInspectionItem, frontPage.getGlobalQuery()) + .or().like(ProdReadyTaskDetail::getReslut, frontPage.getGlobalQuery()) + .or().like(ProdReadyTaskDetail::getRemarks, frontPage.getGlobalQuery()) + .or().like(ProdReadyTaskDetail::getCreateUser, frontPage.getGlobalQuery()) + .or().like(ProdReadyTaskDetail::getModifyUser, frontPage.getGlobalQuery()) + ); + } + result = prodReadyTaskDetailService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param prodReadyTaskDetail 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody ProdReadyTaskDetail prodReadyTaskDetail) { + return R.ok(prodReadyTaskDetailService.save(prodReadyTaskDetail)); + } + + /** + * 修改 + * @param prodReadyTaskDetail 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody ProdReadyTaskDetail prodReadyTaskDetail) { + return R.ok(prodReadyTaskDetailService.updateById(prodReadyTaskDetail)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(prodReadyTaskDetailService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(prodReadyTaskDetailService.removeByIds(ids)); + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java index 90cdc093..814bf48f 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java @@ -14,6 +14,9 @@ public enum HandleEnum { /**车间作业控制*/ SFC( "SFCBO:", "SFCBO:{0},{1}" ), + /**工单*/ + SHOP_ORDER( "ShopOrderBO:", "ShopOrderBO:{0},{1}" ), + /**车间作业控制*/ SFC_BOM( "SFCBOMBO:", "SFCBOMBO:{0}" ), @@ -74,6 +77,12 @@ public enum HandleEnum { /**物料批次**/ ITEM_BATCH("ItemBatchBo", "ItemBatchBo:{0},{1},{2}"), + /**产前准备任务**/ + PROD_READY_TASK("ProdReadyTaskBO", "ProdReadyTaskBO:{0},{1}"), + + /**产前准备任务**/ + PROD_READY_TASK_DETAIL("ProdReadyTaskDetailBO", "ProdReadyTaskDetailBO:{0},{1}"), + /**设备检验任务的检验项**/ RESOURCE_INSPECT_TASK_PARAM("ResourceInspectTaskParamBo","ResourceInspectTaskParamBo:{0},{1}"); diff --git a/common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskDetailMapper.java b/common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskDetailMapper.java new file mode 100644 index 00000000..7170a98a --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskDetailMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.common.mapper; + +import com.foreverwin.mesnac.common.model.ProdReadyTaskDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 生产准备任务明细表 Mapper 接口 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +@Repository +public interface ProdReadyTaskDetailMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskMapper.java b/common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskMapper.java new file mode 100644 index 00000000..7f4b4ead --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/mapper/ProdReadyTaskMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.common.mapper; + +import com.foreverwin.mesnac.common.model.ProdReadyTask; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 生产准备任务主表 Mapper 接口 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +@Repository +public interface ProdReadyTaskMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java b/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java new file mode 100644 index 00000000..1bee25cf --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java @@ -0,0 +1,424 @@ +package com.foreverwin.mesnac.common.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * 生产准备任务主表 + *

+ * + * @author Philip + * @since 2021-06-23 + */ + +@TableName("Z_PROD_READY_TASK") + +public class ProdReadyTask extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + /** + * 站点 + */ + @TableField("SITE") + private String site; + /** + * 任务号 + */ + @TableField("TASK_NO") + private String taskNo; + /** + * 派工任务handle + */ + @TableField("SFC_DISPATCH_BO") + private String sfcDispatchBo; + /** + * 工单 + */ + @TableField("SHOP_ORDER") + private String shopOrder; + /** + * 车间 + */ + @TableField("WORK_CENTER") + private String workCenter; + /** + * 产品条码 + */ + @TableField("SFC") + private String sfc; + /** + * 工序 + */ + @TableField("OPERATION") + private String operation; + /** + * 步骤 + */ + @TableField("STEP_ID") + private String stepId; + /** + * 物料 + */ + @TableField("ITEM") + private String item; + /** + * 资源 + */ + @TableField("RESRCE") + private String resrce; + /** + * 检验结果 + */ + @TableField("RESLUT") + private String reslut; + /** + * 待准备、准备中、完成、取消 + */ + @TableField("STATUS") + private String status; + /** + * 创建人 + */ + @TableField("CREATE_USER") + private String createUser; + /** + * 创建时间 + */ + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + /** + * 修改人 + */ + @TableField("MODIFY_USER") + private String modifyUser; + /** + * 修改时间 + */ + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + /** + * 准备人 + */ + @TableField("READY_USER") + private String readyUser; + /** + * 准备时间 + */ + @TableField("READY_DATE_TIME") + private LocalDateTime readyDateTime; + /** + * 完成时间 + */ + @TableField("COMPLETE_DATE_TIME") + private LocalDateTime completeDateTime; + /** + * 完成人 + */ + @TableField("COMPLETE_USER") + private String completeUser; + /** + * 取消时间 + */ + @TableField("CANCEL_DATE_TIME") + private LocalDateTime cancelDateTime; + /** + * 取消人 + */ + @TableField("CANCEL_USER") + private String cancelUser; + /** + * 备注 + */ + @TableField("REMARKS") + private String remarks; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getTaskNo() { + return taskNo; + } + + public void setTaskNo(String taskNo) { + this.taskNo = taskNo; + } + + public String getSfcDispatchBo() { + return sfcDispatchBo; + } + + public void setSfcDispatchBo(String sfcDispatchBo) { + this.sfcDispatchBo = sfcDispatchBo; + } + + public String getShopOrder() { + return shopOrder; + } + + public void setShopOrder(String shopOrder) { + this.shopOrder = shopOrder; + } + + public String getWorkCenter() { + return workCenter; + } + + public void setWorkCenter(String workCenter) { + this.workCenter = workCenter; + } + + public String getSfc() { + return sfc; + } + + public void setSfc(String sfc) { + this.sfc = sfc; + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } + + public String getItem() { + return item; + } + + public void setItem(String item) { + this.item = item; + } + + public String getResrce() { + return resrce; + } + + public void setResrce(String resrce) { + this.resrce = resrce; + } + + public String getReslut() { + return reslut; + } + + public void setReslut(String reslut) { + this.reslut = reslut; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + public String getModifyUser() { + return modifyUser; + } + + public void setModifyUser(String modifyUser) { + this.modifyUser = modifyUser; + } + + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; + } + + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; + } + + public String getReadyUser() { + return readyUser; + } + + public void setReadyUser(String readyUser) { + this.readyUser = readyUser; + } + + public LocalDateTime getReadyDateTime() { + return readyDateTime; + } + + public void setReadyDateTime(LocalDateTime readyDateTime) { + this.readyDateTime = readyDateTime; + } + + public LocalDateTime getCompleteDateTime() { + return completeDateTime; + } + + public void setCompleteDateTime(LocalDateTime completeDateTime) { + this.completeDateTime = completeDateTime; + } + + public String getCompleteUser() { + return completeUser; + } + + public void setCompleteUser(String completeUser) { + this.completeUser = completeUser; + } + + public LocalDateTime getCancelDateTime() { + return cancelDateTime; + } + + public void setCancelDateTime(LocalDateTime cancelDateTime) { + this.cancelDateTime = cancelDateTime; + } + + public String getCancelUser() { + return cancelUser; + } + + public void setCancelUser(String cancelUser) { + this.cancelUser = cancelUser; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + +public static final String HANDLE = "HANDLE"; + +public static final String SITE = "SITE"; + +public static final String TASK_NO = "TASK_NO"; + +public static final String SFC_DISPATCH_BO = "SFC_DISPATCH_BO"; + +public static final String SHOP_ORDER = "SHOP_ORDER"; + +public static final String WORK_CENTER = "WORK_CENTER"; + +public static final String SFC = "SFC"; + +public static final String OPERATION = "OPERATION"; + +public static final String STEP_ID = "STEP_ID"; + +public static final String ITEM = "ITEM"; + +public static final String RESRCE = "RESRCE"; + +public static final String RESLUT = "RESLUT"; + +public static final String STATUS = "STATUS"; + +public static final String CREATE_USER = "CREATE_USER"; + +public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + +public static final String MODIFY_USER = "MODIFY_USER"; + +public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + +public static final String READY_USER = "READY_USER"; + +public static final String READY_DATE_TIME = "READY_DATE_TIME"; + +public static final String COMPLETE_DATE_TIME = "COMPLETE_DATE_TIME"; + +public static final String COMPLETE_USER = "COMPLETE_USER"; + +public static final String CANCEL_DATE_TIME = "CANCEL_DATE_TIME"; + +public static final String CANCEL_USER = "CANCEL_USER"; + +public static final String REMARKS = "REMARKS"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "ProdReadyTask{" + + "handle = " + handle + + ", site = " + site + + ", taskNo = " + taskNo + + ", sfcDispatchBo = " + sfcDispatchBo + + ", shopOrder = " + shopOrder + + ", workCenter = " + workCenter + + ", sfc = " + sfc + + ", operation = " + operation + + ", stepId = " + stepId + + ", item = " + item + + ", resrce = " + resrce + + ", reslut = " + reslut + + ", status = " + status + + ", createUser = " + createUser + + ", createdDateTime = " + createdDateTime + + ", modifyUser = " + modifyUser + + ", modifiedDateTime = " + modifiedDateTime + + ", readyUser = " + readyUser + + ", readyDateTime = " + readyDateTime + + ", completeDateTime = " + completeDateTime + + ", completeUser = " + completeUser + + ", cancelDateTime = " + cancelDateTime + + ", cancelUser = " + cancelUser + + ", remarks = " + remarks + + "}"; + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTaskDetail.java b/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTaskDetail.java new file mode 100644 index 00000000..7840d246 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTaskDetail.java @@ -0,0 +1,185 @@ +package com.foreverwin.mesnac.common.model; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.TableField; +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; + +/** + *

+ * 生产准备任务明细表 + *

+ * + * @author Philip + * @since 2021-06-23 + */ + +@TableName("Z_PROD_READY_TASK_DETAIL") + +public class ProdReadyTaskDetail extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + /** + * 检验任务handle + */ + @TableField("PROD_READY_TASK_BO") + private String prodReadyTaskBo; + /** + * 检验参数 + */ + @TableField("INSPECTION_ITEM") + private String inspectionItem; + /** + * 检验结果 + */ + @TableField("RESLUT") + private String reslut; + /** + * 备注 + */ + @TableField("REMARKS") + private String remarks; + /** + * 创建人 + */ + @TableField("CREATE_USER") + private String createUser; + /** + * 创建时间 + */ + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + /** + * 修改人 + */ + @TableField("MODIFY_USER") + private String modifyUser; + /** + * 修改时间 + */ + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getProdReadyTaskBo() { + return prodReadyTaskBo; + } + + public void setProdReadyTaskBo(String prodReadyTaskBo) { + this.prodReadyTaskBo = prodReadyTaskBo; + } + + public String getInspectionItem() { + return inspectionItem; + } + + public void setInspectionItem(String inspectionItem) { + this.inspectionItem = inspectionItem; + } + + public String getReslut() { + return reslut; + } + + public void setReslut(String reslut) { + this.reslut = reslut; + } + + public String getRemarks() { + return remarks; + } + + public void setRemarks(String remarks) { + this.remarks = remarks; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + public String getModifyUser() { + return modifyUser; + } + + public void setModifyUser(String modifyUser) { + this.modifyUser = modifyUser; + } + + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; + } + + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; + } + +public static final String HANDLE = "HANDLE"; + +public static final String PROD_READY_TASK_BO = "PROD_READY_TASK_BO"; + +public static final String INSPECTION_ITEM = "INSPECTION_ITEM"; + +public static final String RESLUT = "RESLUT"; + +public static final String REMARKS = "REMARKS"; + +public static final String CREATE_USER = "CREATE_USER"; + +public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + +public static final String MODIFY_USER = "MODIFY_USER"; + +public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "ProdReadyTaskDetail{" + + "handle = " + handle + + ", prodReadyTaskBo = " + prodReadyTaskBo + + ", inspectionItem = " + inspectionItem + + ", reslut = " + reslut + + ", remarks = " + remarks + + ", createUser = " + createUser + + ", createdDateTime = " + createdDateTime + + ", modifyUser = " + modifyUser + + ", modifiedDateTime = " + modifiedDateTime + + "}"; + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskDetailService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskDetailService.java new file mode 100644 index 00000000..dba50f2e --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskDetailService.java @@ -0,0 +1,28 @@ +package com.foreverwin.mesnac.common.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.model.ProdReadyTaskDetail; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 生产准备任务明细表 服务类 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +public interface ProdReadyTaskDetailService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, ProdReadyTaskDetail prodReadyTaskDetail); + + List selectList(ProdReadyTaskDetail prodReadyTaskDetail); +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java new file mode 100644 index 00000000..c1c26c60 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java @@ -0,0 +1,30 @@ +package com.foreverwin.mesnac.common.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.model.ProdReadyTask; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 生产准备任务主表 服务类 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +public interface ProdReadyTaskService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, ProdReadyTask prodReadyTask); + + List selectList(ProdReadyTask prodReadyTask); + + void createTask(String sfcDispatchBO, String dispatchStatus, String shopOrder, String sfc,String operation, String resrce, String stepId, String workCenter, String planStartTime); +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CommonServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CommonServiceImpl.java index d910147d..075eee47 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CommonServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/CommonServiceImpl.java @@ -13,9 +13,12 @@ import com.foreverwin.mesnac.meapi.service.WorkCenterService; import com.foreverwin.modular.core.exception.BusinessException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; - +@Service +@Transactional(rollbackFor = Exception.class) public class CommonServiceImpl implements CommonService { @Autowired private WorkCenterMemberService workCenterMemberService; diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskDetailServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskDetailServiceImpl.java new file mode 100644 index 00000000..4039efaf --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskDetailServiceImpl.java @@ -0,0 +1,46 @@ +package com.foreverwin.mesnac.common.service.impl; + +import com.foreverwin.modular.core.util.FrontPage; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.model.ProdReadyTaskDetail; +import com.foreverwin.mesnac.common.mapper.ProdReadyTaskDetailMapper; +import com.foreverwin.mesnac.common.service.ProdReadyTaskDetailService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +/** + *

+ * 生产准备任务明细表 服务实现类 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProdReadyTaskDetailServiceImpl extends ServiceImpl implements ProdReadyTaskDetailService { + + + @Autowired + private ProdReadyTaskDetailMapper prodReadyTaskDetailMapper; + + @Override + public IPage selectPage(FrontPage frontPage, ProdReadyTaskDetail prodReadyTaskDetail) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTaskDetail); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(ProdReadyTaskDetail prodReadyTaskDetail) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTaskDetail); + return super.list(queryWrapper); + } + + +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskServiceImpl.java new file mode 100644 index 00000000..0f31a9cc --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ProdReadyTaskServiceImpl.java @@ -0,0 +1,196 @@ +package com.foreverwin.mesnac.common.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.common.constant.Constants; +import com.foreverwin.mesnac.common.constant.CustomFieldConstant; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.mapper.ProdReadyTaskMapper; +import com.foreverwin.mesnac.common.model.ProdReadyTask; +import com.foreverwin.mesnac.common.model.ProdReadyTaskDetail; +import com.foreverwin.mesnac.common.service.ProdReadyTaskDetailService; +import com.foreverwin.mesnac.common.service.ProdReadyTaskService; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.meapi.dto.BomComponentDto; +import com.foreverwin.mesnac.meapi.model.ShopOrder; +import com.foreverwin.mesnac.meapi.service.BomComponentService; +import com.foreverwin.mesnac.meapi.service.CustomFieldsService; +import com.foreverwin.mesnac.meapi.service.ShopOrderService; +import com.foreverwin.modular.core.exception.BaseException; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.FrontPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + *

+ * 生产准备任务主表 服务实现类 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class ProdReadyTaskServiceImpl extends ServiceImpl implements ProdReadyTaskService { + + public static final String P01="P01"; + public static final String P02="P02"; + public static final String P03="P03"; + public static final String STATUS_CANCEL="C"; + public static final String STATUS_DOING="I"; + public static final String STATUS_FINSH="F"; + public static final String STATUS_WAITING="W"; + @Autowired + private ProdReadyTaskMapper prodReadyTaskMapper; + @Autowired + private ProdReadyTaskDetailService prodReadyTaskDetailService; + @Autowired + private BomComponentService bomComponentService; + @Autowired + private CustomFieldsService customFieldsService; + @Autowired + private ShopOrderService shopOrderService; + @Override + public IPage selectPage(FrontPage frontPage, ProdReadyTask prodReadyTask) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTask); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(ProdReadyTask prodReadyTask) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(prodReadyTask); + return super.list(queryWrapper); + } + @Override + public void createTask(String sfcDispatchBO, String dispatchStatus, String shopOrder,String sfc, String operation, String resrce, String stepId, String workCenter, String planStartTime) { + //根据站点及派工BO查询数据 + String site = CommonMethods.getSite(); + String user = CommonMethods.getUser(); + + Date planTime = null; + try { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + planTime = dateFormat.parse(planStartTime); + } + catch (Exception e) { + throw new BaseException("工单[" + shopOrder + "]计划开始时间格式错误,请核查!"); + } + ShopOrder byId = shopOrderService.getById(HandleEnum.SHOP_ORDER.getHandle(site, shopOrder)); + if ("RELEASE".equals(dispatchStatus)) { + ProdReadyTask prodReadyTask=new ProdReadyTask(); + prodReadyTask.setSite(site); + prodReadyTask.setTaskNo(StringUtil.createQUID()); + prodReadyTask.setHandle(HandleEnum.PROD_READY_TASK.getHandle(site,prodReadyTask.getTaskNo())); + prodReadyTask.setSfcDispatchBo(sfcDispatchBO); + prodReadyTask.setShopOrder(shopOrder); + prodReadyTask.setWorkCenter(workCenter); + prodReadyTask.setSfc(sfc); + prodReadyTask.setOperation(operation); + prodReadyTask.setStepId(stepId); + prodReadyTask.setItem(StringUtil.trimHandle(byId.getItemBo())); + prodReadyTask.setResrce(resrce); + prodReadyTask.setCreateUser(user); + prodReadyTask.setCreatedDateTime(LocalDateTime.now()); + prodReadyTask.setModifyUser(user); + prodReadyTask.setModifiedDateTime(LocalDateTime.now()); + List prodReadyTaskDetailList = new ArrayList<>(); + + String sfcBo = HandleEnum.SFC.getHandle(site, sfc); + List bomComponentList = bomComponentService.getSfcBomComponent(sfcBo); + if (!bomComponentList.isEmpty()){ + bomComponentList.forEach(bomComponentDto ->{ + if (bomComponentDto.getOperation().equals(operation)&&bomComponentDto.getStepId().equals(stepId)){ + String accessoryType = bomComponentDto.getAccessoryType(); + //物料P001,校验当前派工单(SFC+工序/步骤)加工是否需要准备物料 + if (accessoryType==null||accessoryType.equals("0")){ + ProdReadyTaskDetail prodReadyTaskDetail=new ProdReadyTaskDetail(); + prodReadyTaskDetail.setHandle(HandleEnum.PROD_READY_TASK_DETAIL.getHandle(prodReadyTask.getHandle(),P01)); + prodReadyTaskDetail.setProdReadyTaskBo(prodReadyTask.getHandle()); + prodReadyTaskDetail.setInspectionItem(P01); + prodReadyTaskDetail.setReslut(""); + prodReadyTaskDetail.setRemarks(""); + prodReadyTaskDetail.setCreateUser(user); + prodReadyTaskDetail.setCreatedDateTime(LocalDateTime.now()); + prodReadyTaskDetail.setModifyUser(user); + prodReadyTaskDetail.setModifiedDateTime(LocalDateTime.now()); + prodReadyTaskDetailList.add(prodReadyTaskDetail); + }else if (accessoryType.equals("1")){ + //刀具P002,校验当前派工单(SFC+工序/步骤)加工是否需要准备物料 + ProdReadyTaskDetail prodReadyTaskDetail=new ProdReadyTaskDetail(); + prodReadyTaskDetail.setHandle(HandleEnum.PROD_READY_TASK_DETAIL.getHandle(prodReadyTask.getHandle(),P02)); + prodReadyTaskDetail.setProdReadyTaskBo(prodReadyTask.getHandle()); + prodReadyTaskDetail.setInspectionItem(P02); + prodReadyTaskDetail.setReslut(""); + prodReadyTaskDetail.setRemarks(""); + prodReadyTaskDetail.setCreateUser(user); + prodReadyTaskDetail.setCreatedDateTime(LocalDateTime.now()); + prodReadyTaskDetail.setModifyUser(user); + prodReadyTaskDetail.setModifiedDateTime(LocalDateTime.now()); + prodReadyTaskDetailList.add(prodReadyTaskDetail); + } + } + } ); + } + //工控程序P003,工控程序,校验是否需要准备工控程序 + String customFieldsValue = customFieldsService.getCustomFieldsValue(HandleEnum.WORK_CENTER.getHandle(site, workCenter), CustomFieldConstant.WORK_CENTER_CUSTOM_FIELD_PROCESS_CONTROL); + if (StringUtil.notBlank(customFieldsValue)&&customFieldsValue.equals(Constants.STATUS_Y)){ + customFieldsValue = customFieldsService.getCustomFieldsValue(HandleEnum.RESOURCE.getHandle(site, resrce), CustomFieldConstant.RESRCE_CUSTOM_FIELD_PROCESS_CONTROL); + if (StringUtil.notBlank(customFieldsValue)&&customFieldsValue.equals(Constants.STATUS_Y)) { + ProdReadyTaskDetail prodReadyTaskDetail=new ProdReadyTaskDetail(); + prodReadyTaskDetail.setHandle(HandleEnum.PROD_READY_TASK_DETAIL.getHandle(prodReadyTask.getHandle(),P03)); + prodReadyTaskDetail.setProdReadyTaskBo(prodReadyTask.getHandle()); + prodReadyTaskDetail.setInspectionItem(P03); + prodReadyTaskDetail.setReslut(""); + prodReadyTaskDetail.setRemarks(""); + prodReadyTaskDetail.setCreateUser(user); + prodReadyTaskDetail.setCreatedDateTime(LocalDateTime.now()); + prodReadyTaskDetail.setModifyUser(user); + prodReadyTaskDetail.setModifiedDateTime(LocalDateTime.now()); + prodReadyTaskDetailList.add(prodReadyTaskDetail); + } + } + if (prodReadyTaskDetailList.size()>0){ + prodReadyTask.setStatus(STATUS_WAITING); + prodReadyTaskDetailService.saveBatch(prodReadyTaskDetailList); + }else { + prodReadyTask.setStatus(STATUS_FINSH); + prodReadyTask.setCompleteUser(user); + prodReadyTask.setCompleteDateTime(LocalDateTime.now()); + } + save(prodReadyTask); + }else if("CANCEL".equals(dispatchStatus)){ + LambdaQueryWrapper lambdaQueryWrapper=new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(ProdReadyTask::getSfcDispatchBo,sfcDispatchBO); + lambdaQueryWrapper.orderByDesc(ProdReadyTask::getCreatedDateTime); + List list = list(lambdaQueryWrapper); + if (list.size()<1){ + throw new BaseException("根据派工主键未找到产前准备任务"); + } + if (list.get(0).getStatus().equals(STATUS_CANCEL)){ + throw new BaseException("产前准备任务任务已取消"); + } + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.set(ProdReadyTask::getStatus,STATUS_CANCEL); + updateWrapper.set(ProdReadyTask::getCancelUser,user); + updateWrapper.set(ProdReadyTask::getCancelDateTime,LocalDateTime.now()); + updateWrapper.eq(ProdReadyTask::getSfcDispatchBo,sfcDispatchBO); + update(updateWrapper); + } + + } + + + +} \ No newline at end of file diff --git a/common/src/main/resources/mapper/ProdReadyTaskDetailMapper.xml b/common/src/main/resources/mapper/ProdReadyTaskDetailMapper.xml new file mode 100644 index 00000000..662a0b7d --- /dev/null +++ b/common/src/main/resources/mapper/ProdReadyTaskDetailMapper.xml @@ -0,0 +1,386 @@ + + + + + + + + + + + + + + + + + + + + HANDLE, PROD_READY_TASK_BO, INSPECTION_ITEM, RESLUT, REMARKS, CREATE_USER, CREATED_DATE_TIME, MODIFY_USER, MODIFIED_DATE_TIME + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO Z_PROD_READY_TASK_DETAIL + + HANDLE, + PROD_READY_TASK_BO, + INSPECTION_ITEM, + RESLUT, + REMARKS, + CREATE_USER, + CREATED_DATE_TIME, + MODIFY_USER, + MODIFIED_DATE_TIME, + VALUES + + #{handle}, + #{prodReadyTaskBo}, + #{inspectionItem}, + #{reslut}, + #{remarks}, + #{createUser}, + #{createdDateTime}, + #{modifyUser}, + #{modifiedDateTime}, + + + + + INSERT INTO Z_PROD_READY_TASK_DETAIL + + + VALUES + + #{handle}, + #{prodReadyTaskBo}, + #{inspectionItem}, + #{reslut}, + #{remarks}, + #{createUser}, + #{createdDateTime}, + #{modifyUser}, + #{modifiedDateTime}, + + + + + + UPDATE Z_PROD_READY_TASK_DETAIL + PROD_READY_TASK_BO=#{et.prodReadyTaskBo}, + INSPECTION_ITEM=#{et.inspectionItem}, + RESLUT=#{et.reslut}, + REMARKS=#{et.remarks}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_PROD_READY_TASK_DETAIL + PROD_READY_TASK_BO=#{et.prodReadyTaskBo}, + INSPECTION_ITEM=#{et.inspectionItem}, + RESLUT=#{et.reslut}, + REMARKS=#{et.remarks}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_PROD_READY_TASK_DETAIL + PROD_READY_TASK_BO=#{et.prodReadyTaskBo}, + INSPECTION_ITEM=#{et.inspectionItem}, + RESLUT=#{et.reslut}, + REMARKS=#{et.remarks}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + + + + + HANDLE=#{ew.entity.handle} + AND PROD_READY_TASK_BO=#{ew.entity.prodReadyTaskBo} + AND INSPECTION_ITEM=#{ew.entity.inspectionItem} + AND RESLUT=#{ew.entity.reslut} + AND REMARKS=#{ew.entity.remarks} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_PROD_READY_TASK_DETAIL WHERE HANDLE=#{handle} + + + + DELETE FROM Z_PROD_READY_TASK_DETAIL + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM Z_PROD_READY_TASK_DETAIL + + + + + HANDLE=#{ew.entity.handle} + + AND PROD_READY_TASK_BO=#{ew.entity.prodReadyTaskBo} + AND INSPECTION_ITEM=#{ew.entity.inspectionItem} + AND RESLUT=#{ew.entity.reslut} + AND REMARKS=#{ew.entity.remarks} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_PROD_READY_TASK_DETAIL WHERE HANDLE IN ( + #{item} + ) + + + + diff --git a/common/src/main/resources/mapper/ProdReadyTaskMapper.xml b/common/src/main/resources/mapper/ProdReadyTaskMapper.xml new file mode 100644 index 00000000..e71491a6 --- /dev/null +++ b/common/src/main/resources/mapper/ProdReadyTaskMapper.xml @@ -0,0 +1,626 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HANDLE, SITE, TASK_NO, SFC_DISPATCH_BO, SHOP_ORDER, WORK_CENTER, SFC, OPERATION, STEP_ID, ITEM, RESRCE, RESLUT, STATUS, CREATE_USER, CREATED_DATE_TIME, MODIFY_USER, MODIFIED_DATE_TIME, READY_USER, READY_DATE_TIME, COMPLETE_DATE_TIME, COMPLETE_USER, CANCEL_DATE_TIME, CANCEL_USER, REMARKS + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO Z_PROD_READY_TASK + + HANDLE, + SITE, + TASK_NO, + SFC_DISPATCH_BO, + SHOP_ORDER, + WORK_CENTER, + SFC, + OPERATION, + STEP_ID, + ITEM, + RESRCE, + RESLUT, + STATUS, + CREATE_USER, + CREATED_DATE_TIME, + MODIFY_USER, + MODIFIED_DATE_TIME, + READY_USER, + READY_DATE_TIME, + COMPLETE_DATE_TIME, + COMPLETE_USER, + CANCEL_DATE_TIME, + CANCEL_USER, + REMARKS, + VALUES + + #{handle}, + #{site}, + #{taskNo}, + #{sfcDispatchBo}, + #{shopOrder}, + #{workCenter}, + #{sfc}, + #{operation}, + #{stepId}, + #{item}, + #{resrce}, + #{reslut}, + #{status}, + #{createUser}, + #{createdDateTime}, + #{modifyUser}, + #{modifiedDateTime}, + #{readyUser}, + #{readyDateTime}, + #{completeDateTime}, + #{completeUser}, + #{cancelDateTime}, + #{cancelUser}, + #{remarks}, + + + + + INSERT INTO Z_PROD_READY_TASK + + + VALUES + + #{handle}, + #{site}, + #{taskNo}, + #{sfcDispatchBo}, + #{shopOrder}, + #{workCenter}, + #{sfc}, + #{operation}, + #{stepId}, + #{item}, + #{resrce}, + #{reslut}, + #{status}, + #{createUser}, + #{createdDateTime}, + #{modifyUser}, + #{modifiedDateTime}, + #{readyUser}, + #{readyDateTime}, + #{completeDateTime}, + #{completeUser}, + #{cancelDateTime}, + #{cancelUser}, + #{remarks}, + + + + + + UPDATE Z_PROD_READY_TASK + SITE=#{et.site}, + TASK_NO=#{et.taskNo}, + SFC_DISPATCH_BO=#{et.sfcDispatchBo}, + SHOP_ORDER=#{et.shopOrder}, + WORK_CENTER=#{et.workCenter}, + SFC=#{et.sfc}, + OPERATION=#{et.operation}, + STEP_ID=#{et.stepId}, + ITEM=#{et.item}, + RESRCE=#{et.resrce}, + RESLUT=#{et.reslut}, + STATUS=#{et.status}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + READY_USER=#{et.readyUser}, + READY_DATE_TIME=#{et.readyDateTime}, + COMPLETE_DATE_TIME=#{et.completeDateTime}, + COMPLETE_USER=#{et.completeUser}, + CANCEL_DATE_TIME=#{et.cancelDateTime}, + CANCEL_USER=#{et.cancelUser}, + REMARKS=#{et.remarks}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_PROD_READY_TASK + SITE=#{et.site}, + TASK_NO=#{et.taskNo}, + SFC_DISPATCH_BO=#{et.sfcDispatchBo}, + SHOP_ORDER=#{et.shopOrder}, + WORK_CENTER=#{et.workCenter}, + SFC=#{et.sfc}, + OPERATION=#{et.operation}, + STEP_ID=#{et.stepId}, + ITEM=#{et.item}, + RESRCE=#{et.resrce}, + RESLUT=#{et.reslut}, + STATUS=#{et.status}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + READY_USER=#{et.readyUser}, + READY_DATE_TIME=#{et.readyDateTime}, + COMPLETE_DATE_TIME=#{et.completeDateTime}, + COMPLETE_USER=#{et.completeUser}, + CANCEL_DATE_TIME=#{et.cancelDateTime}, + CANCEL_USER=#{et.cancelUser}, + REMARKS=#{et.remarks}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_PROD_READY_TASK + SITE=#{et.site}, + TASK_NO=#{et.taskNo}, + SFC_DISPATCH_BO=#{et.sfcDispatchBo}, + SHOP_ORDER=#{et.shopOrder}, + WORK_CENTER=#{et.workCenter}, + SFC=#{et.sfc}, + OPERATION=#{et.operation}, + STEP_ID=#{et.stepId}, + ITEM=#{et.item}, + RESRCE=#{et.resrce}, + RESLUT=#{et.reslut}, + STATUS=#{et.status}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFY_USER=#{et.modifyUser}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + READY_USER=#{et.readyUser}, + READY_DATE_TIME=#{et.readyDateTime}, + COMPLETE_DATE_TIME=#{et.completeDateTime}, + COMPLETE_USER=#{et.completeUser}, + CANCEL_DATE_TIME=#{et.cancelDateTime}, + CANCEL_USER=#{et.cancelUser}, + REMARKS=#{et.remarks}, + + + + + HANDLE=#{ew.entity.handle} + AND SITE=#{ew.entity.site} + AND TASK_NO=#{ew.entity.taskNo} + AND SFC_DISPATCH_BO=#{ew.entity.sfcDispatchBo} + AND SHOP_ORDER=#{ew.entity.shopOrder} + AND WORK_CENTER=#{ew.entity.workCenter} + AND SFC=#{ew.entity.sfc} + AND OPERATION=#{ew.entity.operation} + AND STEP_ID=#{ew.entity.stepId} + AND ITEM=#{ew.entity.item} + AND RESRCE=#{ew.entity.resrce} + AND RESLUT=#{ew.entity.reslut} + AND STATUS=#{ew.entity.status} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND READY_USER=#{ew.entity.readyUser} + AND READY_DATE_TIME=#{ew.entity.readyDateTime} + AND COMPLETE_DATE_TIME=#{ew.entity.completeDateTime} + AND COMPLETE_USER=#{ew.entity.completeUser} + AND CANCEL_DATE_TIME=#{ew.entity.cancelDateTime} + AND CANCEL_USER=#{ew.entity.cancelUser} + AND REMARKS=#{ew.entity.remarks} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_PROD_READY_TASK WHERE HANDLE=#{handle} + + + + DELETE FROM Z_PROD_READY_TASK + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM Z_PROD_READY_TASK + + + + + HANDLE=#{ew.entity.handle} + + AND SITE=#{ew.entity.site} + AND TASK_NO=#{ew.entity.taskNo} + AND SFC_DISPATCH_BO=#{ew.entity.sfcDispatchBo} + AND SHOP_ORDER=#{ew.entity.shopOrder} + AND WORK_CENTER=#{ew.entity.workCenter} + AND SFC=#{ew.entity.sfc} + AND OPERATION=#{ew.entity.operation} + AND STEP_ID=#{ew.entity.stepId} + AND ITEM=#{ew.entity.item} + AND RESRCE=#{ew.entity.resrce} + AND RESLUT=#{ew.entity.reslut} + AND STATUS=#{ew.entity.status} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFY_USER=#{ew.entity.modifyUser} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND READY_USER=#{ew.entity.readyUser} + AND READY_DATE_TIME=#{ew.entity.readyDateTime} + AND COMPLETE_DATE_TIME=#{ew.entity.completeDateTime} + AND COMPLETE_USER=#{ew.entity.completeUser} + AND CANCEL_DATE_TIME=#{ew.entity.cancelDateTime} + AND CANCEL_USER=#{ew.entity.cancelUser} + AND REMARKS=#{ew.entity.remarks} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_PROD_READY_TASK WHERE HANDLE IN ( + #{item} + ) + + + + diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ShopOrderController.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ShopOrderController.java index 69e331ec..30b119f2 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ShopOrderController.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/controller/ShopOrderController.java @@ -1,11 +1,11 @@ package com.foreverwin.mesnac.meapi.controller; -import com.foreverwin.mesnac.common.enums.HandleEnum; import com.foreverwin.modular.core.util.R; import com.foreverwin.modular.core.util.FrontPage; import com.foreverwin.modular.core.util.CommonMethods; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sap.me.status.StatusBOHandle; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -38,7 +38,7 @@ public class ShopOrderController { try { String site = CommonMethods.getSite(); //只查询 可下达 状态的 - String status501Bo = HandleEnum.STATUS.getHandle(site, "501"); + String status501Bo = new StatusBOHandle(site, "501").getValue(); shopOrder.setSite(site); shopOrder.setStatusBo(status501Bo); diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/dto/BomComponentDto.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/dto/BomComponentDto.java new file mode 100644 index 00000000..027ea0b6 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/dto/BomComponentDto.java @@ -0,0 +1,33 @@ +package com.foreverwin.mesnac.meapi.dto; + +import com.foreverwin.mesnac.meapi.model.BomComponent; + +public class BomComponentDto extends BomComponent { + String accessoryType; + String stepId; + String operation; + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + public String getAccessoryType() { + return accessoryType; + } + + public void setAccessoryType(String accessoryType) { + this.accessoryType = accessoryType; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } +} diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomComponentMapper.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomComponentMapper.java new file mode 100644 index 00000000..57a85729 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomComponentMapper.java @@ -0,0 +1,43 @@ +package com.foreverwin.mesnac.meapi.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.foreverwin.mesnac.meapi.dto.BomComponentDto; +import com.foreverwin.mesnac.meapi.model.BomComponent; +import com.foreverwin.mesnac.meapi.model.CustomFields; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +@Repository +public interface BomComponentMapper extends BaseMapper { + + List selectBomComponentByOperation(@Param("bomBo") String bomBo, @Param("operationBo") String operationBo); + + List selectByBomBo(@Param("locale") String locale, @Param("bomBo") String bomBo); + + List selectListByShopOrderBo(@Param("shopOrderBo") String shopOrderBo); + + List selectListByShopOrderBoItemBo(@Param("shopOrderBo") String shopOrderBo, @Param("itemBo") String itemBo, @Param("item") String item); + + List selectListBySfcBoOAndOperationBo(@Param("sfcBo") String sfcBo, @Param("operationBo") String operationBo); + + CustomFields getBomComponentMainFlag(@Param("bomBo") String bomBo, @Param("componentBo") String componentBo); + + + Integer selectNeedAssemblyQty(@Param("bomBo") String bomBo, @Param("operationBo") String operationBo); + + List selectListByBomBoAndBomItemNo(@Param("bomBo") String bomBo, @Param("bomItemNoList") List bomItemNoList); + + List selectShopOrderBomComponentByWorkCenterBo(@Param("workCenterBO") String workCenterBO); + + List getSfcBomComponent(@Param("site")String site, @Param("sfcBo")String sfcBo); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomMapper.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomMapper.java new file mode 100644 index 00000000..932d1ecb --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomMapper.java @@ -0,0 +1,21 @@ +package com.foreverwin.mesnac.meapi.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.foreverwin.mesnac.meapi.model.Bom; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +@Repository +public interface BomMapper extends BaseMapper { + List getBomByItem(@Param("site") String site, @Param("item") String item); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomOperationMapper.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomOperationMapper.java new file mode 100644 index 00000000..61d1b5f4 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/BomOperationMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.meapi.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.foreverwin.mesnac.meapi.model.BomOperation; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +@Repository +public interface BomOperationMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcBomMapper.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcBomMapper.java new file mode 100644 index 00000000..3fa28ac2 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcBomMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.meapi.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.foreverwin.mesnac.meapi.model.SfcBom; +import org.springframework.stereotype.Repository; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Philip + * @since 2021-06-23 + */ +@Repository +public interface SfcBomMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/Bom.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/Bom.java new file mode 100644 index 00000000..83d61168 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/Bom.java @@ -0,0 +1,348 @@ +package com.foreverwin.mesnac.meapi.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + *

+ * + *

+ * + * @author Philip + * @since 2021-6-23 + */ + +@TableName("BOM") + +public class Bom extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + @TableField("CHANGE_STAMP") + private Long changeStamp; + @TableField("SITE") + private String site; + @TableField("BOM") + private String bom; + @TableField("BOM_TYPE") + private String bomType; + @TableField("DESCRIPTION") + private String description; + @TableField("STATUS_BO") + private String statusBo; + @TableField("TMP_BOM") + private String tmpBom; + @TableField("COPIED_FROM_BOM_BO") + private String copiedFromBomBo; + @TableField("REVISION") + private String revision; + @TableField("CURRENT_REVISION") + private String currentRevision; + @TableField("BOM_TEMPLATE") + private String bomTemplate; + @TableField("HAS_BEEN_RELEASED") + private String hasBeenReleased; + @TableField("EFF_START_DATE") + private LocalDateTime effStartDate; + @TableField("EFF_END_DATE") + private LocalDateTime effEndDate; + @TableField("EFFECTIVITY_CONTROL") + private String effectivityControl; + @TableField("PREV_SITE") + private String prevSite; + @TableField("ORIGINAL_TRANSFER_KEY") + private String originalTransferKey; + @TableField("ERP_BILL_OF_MATERIAL") + private String erpBillOfMaterial; + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + @TableField("PARTITION_DATE") + private LocalDateTime partitionDate; + @TableField("MODEL") + private String model; + @TableField(exist = false) + private List bomComponentList; + + public List getBomComponentList() { + return bomComponentList; + } + + public void setBomComponentList(List bomComponentList) { + this.bomComponentList = bomComponentList; + } + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public Long getChangeStamp() { + return changeStamp; + } + + public void setChangeStamp(Long changeStamp) { + this.changeStamp = changeStamp; + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getBom() { + return bom; + } + + public void setBom(String bom) { + this.bom = bom; + } + + public String getBomType() { + return bomType; + } + + public void setBomType(String bomType) { + this.bomType = bomType; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getStatusBo() { + return statusBo; + } + + public void setStatusBo(String statusBo) { + this.statusBo = statusBo; + } + + public String getTmpBom() { + return tmpBom; + } + + public void setTmpBom(String tmpBom) { + this.tmpBom = tmpBom; + } + + public String getCopiedFromBomBo() { + return copiedFromBomBo; + } + + public void setCopiedFromBomBo(String copiedFromBomBo) { + this.copiedFromBomBo = copiedFromBomBo; + } + + public String getRevision() { + return revision; + } + + public void setRevision(String revision) { + this.revision = revision; + } + + public String getCurrentRevision() { + return currentRevision; + } + + public void setCurrentRevision(String currentRevision) { + this.currentRevision = currentRevision; + } + + public String getBomTemplate() { + return bomTemplate; + } + + public void setBomTemplate(String bomTemplate) { + this.bomTemplate = bomTemplate; + } + + public String getHasBeenReleased() { + return hasBeenReleased; + } + + public void setHasBeenReleased(String hasBeenReleased) { + this.hasBeenReleased = hasBeenReleased; + } + + public LocalDateTime getEffStartDate() { + return effStartDate; + } + + public void setEffStartDate(LocalDateTime effStartDate) { + this.effStartDate = effStartDate; + } + + public LocalDateTime getEffEndDate() { + return effEndDate; + } + + public void setEffEndDate(LocalDateTime effEndDate) { + this.effEndDate = effEndDate; + } + + public String getEffectivityControl() { + return effectivityControl; + } + + public void setEffectivityControl(String effectivityControl) { + this.effectivityControl = effectivityControl; + } + + public String getPrevSite() { + return prevSite; + } + + public void setPrevSite(String prevSite) { + this.prevSite = prevSite; + } + + public String getOriginalTransferKey() { + return originalTransferKey; + } + + public void setOriginalTransferKey(String originalTransferKey) { + this.originalTransferKey = originalTransferKey; + } + + public String getErpBillOfMaterial() { + return erpBillOfMaterial; + } + + public void setErpBillOfMaterial(String erpBillOfMaterial) { + this.erpBillOfMaterial = erpBillOfMaterial; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; + } + + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; + } + + public LocalDateTime getPartitionDate() { + return partitionDate; + } + + public void setPartitionDate(LocalDateTime partitionDate) { + this.partitionDate = partitionDate; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + @Override + protected Serializable pkVal() { + return this.handle; + } + + public static final String HANDLE = "HANDLE"; + + public static final String CHANGE_STAMP = "CHANGE_STAMP"; + + public static final String SITE = "SITE"; + + public static final String BOM = "BOM"; + + public static final String BOM_TYPE = "BOM_TYPE"; + + public static final String DESCRIPTION = "DESCRIPTION"; + + public static final String STATUS_BO = "STATUS_BO"; + + public static final String TMP_BOM = "TMP_BOM"; + + public static final String COPIED_FROM_BOM_BO = "COPIED_FROM_BOM_BO"; + + public static final String REVISION = "REVISION"; + + public static final String CURRENT_REVISION = "CURRENT_REVISION"; + + public static final String BOM_TEMPLATE = "BOM_TEMPLATE"; + + public static final String HAS_BEEN_RELEASED = "HAS_BEEN_RELEASED"; + + public static final String EFF_START_DATE = "EFF_START_DATE"; + + public static final String EFF_END_DATE = "EFF_END_DATE"; + + public static final String EFFECTIVITY_CONTROL = "EFFECTIVITY_CONTROL"; + + public static final String PREV_SITE = "PREV_SITE"; + + public static final String ORIGINAL_TRANSFER_KEY = "ORIGINAL_TRANSFER_KEY"; + + public static final String ERP_BILL_OF_MATERIAL = "ERP_BILL_OF_MATERIAL"; + + public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + + public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + + public static final String PARTITION_DATE = "PARTITION_DATE"; + + public static final String MODEL = "MODEL"; + + @Override + public String toString() { + return "Bom{" + + "handle = " + handle + + ", changeStamp = " + changeStamp + + ", site = " + site + + ", bom = " + bom + + ", bomType = " + bomType + + ", description = " + description + + ", statusBo = " + statusBo + + ", tmpBom = " + tmpBom + + ", copiedFromBomBo = " + copiedFromBomBo + + ", revision = " + revision + + ", currentRevision = " + currentRevision + + ", bomTemplate = " + bomTemplate + + ", hasBeenReleased = " + hasBeenReleased + + ", effStartDate = " + effStartDate + + ", effEndDate = " + effEndDate + + ", effectivityControl = " + effectivityControl + + ", prevSite = " + prevSite + + ", originalTransferKey = " + originalTransferKey + + ", erpBillOfMaterial = " + erpBillOfMaterial + + ", createdDateTime = " + createdDateTime + + ", modifiedDateTime = " + modifiedDateTime + + ", partitionDate = " + partitionDate + + ", model = " + model + + "}"; + } +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomComponent.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomComponent.java new file mode 100644 index 00000000..88be2eb6 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomComponent.java @@ -0,0 +1,401 @@ +package com.foreverwin.mesnac.meapi.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author Philip + * @since 2021-6-23 + */ + +@TableName("BOM_COMPONENT") + +public class BomComponent extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("HANDLE") + private String handle; + @TableField("BOM_BO") + private String bomBo; + @TableField("COMPONENT_GBO") + private String componentGbo; + @TableField("SEQUENCE") + private Long sequence; + @TableField("ENABLED") + private String enabled; + @TableField("VALID_START") + private LocalDateTime validStart; + @TableField("VALID_END") + private LocalDateTime validEnd; + @TableField("USE_ITEM_DEFAULTS") + private String useItemDefaults; + @TableField("PRE_ASSEMBLED") + private String preAssembled; + @TableField("ASSY_DATA_TYPE_BO") + private String assyDataTypeBo; + @TableField("QTY") + private Double qty; + @TableField("TEST_PART") + private String testPart; + @TableField("BOM_TEMPLATE") + private String bomTemplate; + @TableField("DISASSEMBLE_OPERATION_BO") + private String disassembleOperationBo; + @TableField("CREATE_TRACKABLE_SFC") + private String createTrackableSfc; + @TableField("MAXIMUM_USAGE") + private Long maximumUsage; + @TableField("MAXIMUM_NC") + private Long maximumNc; + @TableField("ASSEMBLE_AS_REQ") + private String assembleAsReq; + @TableField("AUTO_CONSUME_KIT") + private String autoConsumeKit; + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + @TableField("BOM_COMPONENT_TYPE") + private String bomComponentType; + @TableField("PARENT_SEQUENCE") + private Long parentSequence; + @TableField("ERP_SEQUENCE") + private Long erpSequence; + @TableField("ORDER_ITEM_NUMBER") + private String orderItemNumber; + @TableField("ERP_CHANGE_NUMBER") + private String erpChangeNumber; + @TableField("IDENTIFIER") + private String identifier; + @TableField("STORAGE_LOCATION_BO") + private String storageLocationBo; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getBomBo() { + return bomBo; + } + + public void setBomBo(String bomBo) { + this.bomBo = bomBo; + } + + public String getComponentGbo() { + return componentGbo; + } + + public void setComponentGbo(String componentGbo) { + this.componentGbo = componentGbo; + } + + public Long getSequence() { + return sequence; + } + + public void setSequence(Long sequence) { + this.sequence = sequence; + } + + public String getEnabled() { + return enabled; + } + + public void setEnabled(String enabled) { + this.enabled = enabled; + } + + public LocalDateTime getValidStart() { + return validStart; + } + + public void setValidStart(LocalDateTime validStart) { + this.validStart = validStart; + } + + public LocalDateTime getValidEnd() { + return validEnd; + } + + public void setValidEnd(LocalDateTime validEnd) { + this.validEnd = validEnd; + } + + public String getUseItemDefaults() { + return useItemDefaults; + } + + public void setUseItemDefaults(String useItemDefaults) { + this.useItemDefaults = useItemDefaults; + } + + public String getPreAssembled() { + return preAssembled; + } + + public void setPreAssembled(String preAssembled) { + this.preAssembled = preAssembled; + } + + public String getAssyDataTypeBo() { + return assyDataTypeBo; + } + + public void setAssyDataTypeBo(String assyDataTypeBo) { + this.assyDataTypeBo = assyDataTypeBo; + } + + public Double getQty() { + return qty; + } + + public void setQty(Double qty) { + this.qty = qty; + } + + public String getTestPart() { + return testPart; + } + + public void setTestPart(String testPart) { + this.testPart = testPart; + } + + public String getBomTemplate() { + return bomTemplate; + } + + public void setBomTemplate(String bomTemplate) { + this.bomTemplate = bomTemplate; + } + + public String getDisassembleOperationBo() { + return disassembleOperationBo; + } + + public void setDisassembleOperationBo(String disassembleOperationBo) { + this.disassembleOperationBo = disassembleOperationBo; + } + + public String getCreateTrackableSfc() { + return createTrackableSfc; + } + + public void setCreateTrackableSfc(String createTrackableSfc) { + this.createTrackableSfc = createTrackableSfc; + } + + public Long getMaximumUsage() { + return maximumUsage; + } + + public void setMaximumUsage(Long maximumUsage) { + this.maximumUsage = maximumUsage; + } + + public Long getMaximumNc() { + return maximumNc; + } + + public void setMaximumNc(Long maximumNc) { + this.maximumNc = maximumNc; + } + + public String getAssembleAsReq() { + return assembleAsReq; + } + + public void setAssembleAsReq(String assembleAsReq) { + this.assembleAsReq = assembleAsReq; + } + + public String getAutoConsumeKit() { + return autoConsumeKit; + } + + public void setAutoConsumeKit(String autoConsumeKit) { + this.autoConsumeKit = autoConsumeKit; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; + } + + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; + } + + public String getBomComponentType() { + return bomComponentType; + } + + public void setBomComponentType(String bomComponentType) { + this.bomComponentType = bomComponentType; + } + + public Long getParentSequence() { + return parentSequence; + } + + public void setParentSequence(Long parentSequence) { + this.parentSequence = parentSequence; + } + + public Long getErpSequence() { + return erpSequence; + } + + public void setErpSequence(Long erpSequence) { + this.erpSequence = erpSequence; + } + + public String getOrderItemNumber() { + return orderItemNumber; + } + + public void setOrderItemNumber(String orderItemNumber) { + this.orderItemNumber = orderItemNumber; + } + + public String getErpChangeNumber() { + return erpChangeNumber; + } + + public void setErpChangeNumber(String erpChangeNumber) { + this.erpChangeNumber = erpChangeNumber; + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public String getStorageLocationBo() { + return storageLocationBo; + } + + public void setStorageLocationBo(String storageLocationBo) { + this.storageLocationBo = storageLocationBo; + } + + @Override + protected Serializable pkVal() { + return this.handle; + } + + public static final String HANDLE = "HANDLE"; + + public static final String BOM_BO = "BOM_BO"; + + public static final String COMPONENT_GBO = "COMPONENT_GBO"; + + public static final String SEQUENCE = "SEQUENCE"; + + public static final String ENABLED = "ENABLED"; + + public static final String VALID_START = "VALID_START"; + + public static final String VALID_END = "VALID_END"; + + public static final String USE_ITEM_DEFAULTS = "USE_ITEM_DEFAULTS"; + + public static final String PRE_ASSEMBLED = "PRE_ASSEMBLED"; + + public static final String ASSY_DATA_TYPE_BO = "ASSY_DATA_TYPE_BO"; + + public static final String QTY = "QTY"; + + public static final String TEST_PART = "TEST_PART"; + + public static final String BOM_TEMPLATE = "BOM_TEMPLATE"; + + public static final String DISASSEMBLE_OPERATION_BO = "DISASSEMBLE_OPERATION_BO"; + + public static final String CREATE_TRACKABLE_SFC = "CREATE_TRACKABLE_SFC"; + + public static final String MAXIMUM_USAGE = "MAXIMUM_USAGE"; + + public static final String MAXIMUM_NC = "MAXIMUM_NC"; + + public static final String ASSEMBLE_AS_REQ = "ASSEMBLE_AS_REQ"; + + public static final String AUTO_CONSUME_KIT = "AUTO_CONSUME_KIT"; + + public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + + public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + + public static final String BOM_COMPONENT_TYPE = "BOM_COMPONENT_TYPE"; + + public static final String PARENT_SEQUENCE = "PARENT_SEQUENCE"; + + public static final String ERP_SEQUENCE = "ERP_SEQUENCE"; + + public static final String ORDER_ITEM_NUMBER = "ORDER_ITEM_NUMBER"; + + public static final String ERP_CHANGE_NUMBER = "ERP_CHANGE_NUMBER"; + + public static final String IDENTIFIER = "IDENTIFIER"; + + public static final String STORAGE_LOCATION_BO = "STORAGE_LOCATION_BO"; + + @Override + public String toString() { + return "BomComponent{" + + "handle = " + handle + + ", bomBo = " + bomBo + + ", componentGbo = " + componentGbo + + ", sequence = " + sequence + + ", enabled = " + enabled + + ", validStart = " + validStart + + ", validEnd = " + validEnd + + ", useItemDefaults = " + useItemDefaults + + ", preAssembled = " + preAssembled + + ", assyDataTypeBo = " + assyDataTypeBo + + ", qty = " + qty + + ", testPart = " + testPart + + ", bomTemplate = " + bomTemplate + + ", disassembleOperationBo = " + disassembleOperationBo + + ", createTrackableSfc = " + createTrackableSfc + + ", maximumUsage = " + maximumUsage + + ", maximumNc = " + maximumNc + + ", assembleAsReq = " + assembleAsReq + + ", autoConsumeKit = " + autoConsumeKit + + ", createdDateTime = " + createdDateTime + + ", modifiedDateTime = " + modifiedDateTime + + ", bomComponentType = " + bomComponentType + + ", parentSequence = " + parentSequence + + ", erpSequence = " + erpSequence + + ", orderItemNumber = " + orderItemNumber + + ", erpChangeNumber = " + erpChangeNumber + + ", identifier = " + identifier + + ", storageLocationBo = " + storageLocationBo + + "}"; + } +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomOperation.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomOperation.java new file mode 100644 index 00000000..59ee4997 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/BomOperation.java @@ -0,0 +1,82 @@ +package com.foreverwin.mesnac.meapi.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author Philip + * @since 2021-6-23 + */ + +@TableName("BOM_OPERATION") + +public class BomOperation extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + @TableField("BOM_COMPONENT_BO") + private String bomComponentBo; + @TableField("OPERATION_BO") + private String operationBo; + @TableField("QTY") + private Double qty; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getBomComponentBo() { + return bomComponentBo; + } + + public void setBomComponentBo(String bomComponentBo) { + this.bomComponentBo = bomComponentBo; + } + + public String getOperationBo() { + return operationBo; + } + + public void setOperationBo(String operationBo) { + this.operationBo = operationBo; + } + + public Double getQty() { + return qty; + } + + public void setQty(Double qty) { + this.qty = qty; + } + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "BomOperation{" + + "handle = " + handle + + ", bomComponentBo = " + bomComponentBo + + ", operationBo = " + operationBo + + ", qty = " + qty + + "}"; + } +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcBom.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcBom.java new file mode 100644 index 00000000..b52a378d --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcBom.java @@ -0,0 +1,155 @@ +package com.foreverwin.mesnac.meapi.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + *

+ * + *

+ * + * @author Philip + * @since 2021-6-23 + */ + +@TableName("SFC_BOM") + +public class SfcBom extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("HANDLE") + private String handle; + @TableField("CHANGE_STAMP") + private Long changeStamp; + @TableField("SFC_BO") + private String sfcBo; + @TableField("BOM_BO") + private String bomBo; + @TableField("PREV_SITE") + private String prevSite; + @TableField("ORIGINAL_TRANSFER_KEY") + private String originalTransferKey; + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + @TableField("PARTITION_DATE") + private LocalDateTime partitionDate; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public Long getChangeStamp() { + return changeStamp; + } + + public void setChangeStamp(Long changeStamp) { + this.changeStamp = changeStamp; + } + + public String getSfcBo() { + return sfcBo; + } + + public void setSfcBo(String sfcBo) { + this.sfcBo = sfcBo; + } + + public String getBomBo() { + return bomBo; + } + + public void setBomBo(String bomBo) { + this.bomBo = bomBo; + } + + public String getPrevSite() { + return prevSite; + } + + public void setPrevSite(String prevSite) { + this.prevSite = prevSite; + } + + public String getOriginalTransferKey() { + return originalTransferKey; + } + + public void setOriginalTransferKey(String originalTransferKey) { + this.originalTransferKey = originalTransferKey; + } + + public LocalDateTime getModifiedDateTime() { + return modifiedDateTime; + } + + public void setModifiedDateTime(LocalDateTime modifiedDateTime) { + this.modifiedDateTime = modifiedDateTime; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + + public LocalDateTime getPartitionDate() { + return partitionDate; + } + + public void setPartitionDate(LocalDateTime partitionDate) { + this.partitionDate = partitionDate; + } + +public static final String HANDLE = "HANDLE"; + +public static final String CHANGE_STAMP = "CHANGE_STAMP"; + +public static final String SFC_BO = "SFC_BO"; + +public static final String BOM_BO = "BOM_BO"; + +public static final String PREV_SITE = "PREV_SITE"; + +public static final String ORIGINAL_TRANSFER_KEY = "ORIGINAL_TRANSFER_KEY"; + +public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + +public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + +public static final String PARTITION_DATE = "PARTITION_DATE"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "SfcBom{" + + "handle = " + handle + + ", changeStamp = " + changeStamp + + ", sfcBo = " + sfcBo + + ", bomBo = " + bomBo + + ", prevSite = " + prevSite + + ", originalTransferKey = " + originalTransferKey + + ", modifiedDateTime = " + modifiedDateTime + + ", createdDateTime = " + createdDateTime + + ", partitionDate = " + partitionDate + + "}"; + } +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomComponentService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomComponentService.java new file mode 100644 index 00000000..af83d080 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomComponentService.java @@ -0,0 +1,96 @@ +package com.foreverwin.mesnac.meapi.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.mesnac.meapi.dto.BomComponentDto; +import com.foreverwin.mesnac.meapi.model.BomComponent; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +public interface BomComponentService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, BomComponent bomComponent); + + List selectList(BomComponent bomComponent); + + List listByBomBo(String bomBo); + + List selectListByShopOrderBo(String shopOrderBo); + + List selectListByShopOrderBoItemBo(String shopOrderBo, String itemBo); + + /** + * 校验给定的物料组件在BOM中是否属于主物料 + * @param bomBo + * @param componentBo 物料组件BO + * @return + */ + boolean validateMainComponent(String bomBo, String componentBo); + + /** + * 校验物料是否属于当前物料清单组件 + * @param bomBo + * @param item + * @return + */ + boolean validateComponentOwnerBom(String bomBo, String item); + + + /** + * 装配查询精准追溯BOMComponent + * @param bomBo + * @param operationBo + * @return + */ + + List selectBomComponentByOperation(String bomBo, String operationBo); + + /** + * 查询需要装配的数量 + * @param bomBo + * @param operationBo + * @return + */ + Integer getNeedAssemblyQty(String bomBo, String operationBo); + + + + /** + * 根据sfc和工序查物料清单组件 + * @param site + * @param SfcBo + * @param operation + * @return + */ + List selectListBySfcBoOAndOperationBo(String site, String SfcBo, String operation); + + /** + * 根据BOM和编码查询 + * @param bomBo + * @param bomItemNoList + * @return + */ + List selectListByBomBoAndBomItemNo(String bomBo, List bomItemNoList); + + /** + * 查找产线下未结案工单物料清单 + * @param workCenterBO + */ + List selectShopOrderBomComponentByWorkCenterBo(String workCenterBO); + + List getSfcBomComponent(String sfcBo); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomOperationService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomOperationService.java new file mode 100644 index 00000000..53e8400f --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomOperationService.java @@ -0,0 +1,28 @@ +package com.foreverwin.mesnac.meapi.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.mesnac.meapi.model.BomOperation; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +public interface BomOperationService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, BomOperation bomOperation); + + List selectList(BomOperation bomOperation); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomService.java new file mode 100644 index 00000000..0914c0b5 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/BomService.java @@ -0,0 +1,43 @@ +package com.foreverwin.mesnac.meapi.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.mesnac.meapi.model.Bom; +import com.foreverwin.mesnac.meapi.model.BomComponent; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +public interface BomService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, Bom bom); + + List selectList(Bom bom); + + Bom getBomInfo(String site, String bomBo); + + List getBomOperationComponent(String site, String bomBo, String operation); + + /** + * 是否是当前工序的bom组件 + * @param site + * @param bomBo + * @param operation + * @param itemBo + * @return + */ + List validateItemMatchBomAndOperation(String site, String bomBo, String operation, String itemBo); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcBomService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcBomService.java new file mode 100644 index 00000000..b13bcce8 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcBomService.java @@ -0,0 +1,30 @@ +package com.foreverwin.mesnac.meapi.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.mesnac.meapi.model.SfcBom; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +public interface SfcBomService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, SfcBom sfcBom); + + List selectList(SfcBom sfcBom); + + String selectBomBO(String sfcBo); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomComponentServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomComponentServiceImpl.java new file mode 100644 index 00000000..4601ad00 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomComponentServiceImpl.java @@ -0,0 +1,128 @@ +package com.foreverwin.mesnac.meapi.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.meapi.dto.BomComponentDto; +import com.foreverwin.mesnac.meapi.mapper.BomComponentMapper; +import com.foreverwin.mesnac.meapi.model.BomComponent; +import com.foreverwin.mesnac.meapi.model.CustomFields; +import com.foreverwin.mesnac.meapi.service.BomComponentService; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.FrontPage; +import com.sap.me.frame.Utils; +import com.sap.me.productdefinition.ItemBOHandle; +import com.sap.me.productdefinition.OperationBOHandle; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Locale; + +/** + *

+ * 服务实现类 + *

+ * + * @author Philip + * @since 2021-6-23 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class BomComponentServiceImpl extends ServiceImpl implements BomComponentService { + + + @Autowired + private BomComponentMapper bomComponentMapper; + + @Override + public IPage selectPage(FrontPage frontPage, BomComponent bomComponent) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(bomComponent); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(BomComponent bomComponent) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(bomComponent); + return super.list(queryWrapper); + } + + @Override + public List listByBomBo(String bomBo) { + Locale locale = LocaleContextHolder.getLocale(); + return bomComponentMapper.selectByBomBo(locale.getLanguage(), bomBo); + } + + @Override + public List selectListByShopOrderBo(String shopOrderBo) { + return bomComponentMapper.selectListByShopOrderBo(shopOrderBo); + } + + @Override + public List selectListByShopOrderBoItemBo(String shopOrderBo, String itemBo) { + return bomComponentMapper.selectListByShopOrderBoItemBo(shopOrderBo, itemBo, itemBo.split(",")[1]); + } + + @Override + public boolean validateMainComponent(String bomBo, String componentBo) { + CustomFields customFields = bomComponentMapper.getBomComponentMainFlag(bomBo, componentBo); + if (customFields==null) { + return false; + } + return "A".equals(customFields.getValue().toUpperCase()); + } + + @Override + public boolean validateComponentOwnerBom(String bomBo, String item) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("BOM_BO", bomBo); + List bomComponentList = bomComponentMapper.selectList(queryWrapper); + boolean ownerComponent = false; + if (Utils.isNotEmpty(bomComponentList)) { + for (BomComponent bomComponent : bomComponentList) { + if (Utils.isNotEmpty(item) && item.equals(new ItemBOHandle(bomComponent.getComponentGbo()).getItem())) { + ownerComponent = true; + break; + } + } + } + return ownerComponent; + } + + + @Override + public List selectBomComponentByOperation(String bomBo, String operationBo) { + return bomComponentMapper.selectBomComponentByOperation(bomBo, operationBo); + } + + @Override + public Integer getNeedAssemblyQty(String bomBo, String operationBo) { + return bomComponentMapper.selectNeedAssemblyQty(bomBo, operationBo); + } + + @Override + public List selectListBySfcBoOAndOperationBo(String site, String SfcBo, String operation) { + String OperationBo = new OperationBOHandle(site, operation, "#").getValue(); + return bomComponentMapper.selectListBySfcBoOAndOperationBo(SfcBo, OperationBo); + } + + @Override + public List selectListByBomBoAndBomItemNo(String bomBo, List bomItemNoList) { + return bomComponentMapper.selectListByBomBoAndBomItemNo(bomBo, bomItemNoList); + } + + @Override + public List selectShopOrderBomComponentByWorkCenterBo(String workCenterBO) { + return bomComponentMapper.selectShopOrderBomComponentByWorkCenterBo(workCenterBO); + } + + @Override + public List getSfcBomComponent(String sfcBo) { + return bomComponentMapper.getSfcBomComponent(CommonMethods.getSite(),sfcBo); + } + +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomOperationServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomOperationServiceImpl.java new file mode 100644 index 00000000..4d6cc751 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomOperationServiceImpl.java @@ -0,0 +1,47 @@ +package com.foreverwin.mesnac.meapi.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.meapi.mapper.BomOperationMapper; +import com.foreverwin.mesnac.meapi.model.BomOperation; +import com.foreverwin.mesnac.meapi.service.BomOperationService; +import com.foreverwin.modular.core.util.FrontPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + ** @author Philip + * * @since 2021-6-23 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class BomOperationServiceImpl extends ServiceImpl implements BomOperationService { + + + @Autowired + private BomOperationMapper bomOperationMapper; + + @Override + public IPage selectPage(FrontPage frontPage, BomOperation bomOperation) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(bomOperation); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(BomOperation bomOperation) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(bomOperation); + return super.list(queryWrapper); + } + + +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomServiceImpl.java new file mode 100644 index 00000000..493b39c2 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/BomServiceImpl.java @@ -0,0 +1,108 @@ +package com.foreverwin.mesnac.meapi.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.meapi.mapper.BomMapper; +import com.foreverwin.mesnac.meapi.model.Bom; +import com.foreverwin.mesnac.meapi.service.BomComponentService; +import com.foreverwin.mesnac.meapi.service.BomService; +import com.foreverwin.mesnac.meapi.service.ItemService; +import com.foreverwin.mesnac.meapi.model.BomComponent; +import com.foreverwin.modular.core.util.FrontPage; +import com.sap.me.productdefinition.OperationBOHandle; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author Philip + * @since 2021-6-23 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class BomServiceImpl extends ServiceImpl implements BomService { + + @Autowired + ItemService itemService; + @Autowired + private BomMapper bomMapper; + @Autowired + private BomComponentService bomComponentService; + @Override + public IPage selectPage(FrontPage frontPage, Bom bom) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(bom); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(Bom bom) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(bom); + return super.list(queryWrapper); + } + @Override + public Bom getBomInfo(String site, String bomBo) { + Bom bom = null; + if(bomBo.endsWith("#")) { + String[] temp = bomBo.split(","); + String bomName = temp[1]; + String type = temp[2]; + Bom bom1 = new Bom(); + bom1.setSite(site); + bom1.setBom(bomName); + bom1.setBomType(type); + bom1.setCurrentRevision("true"); + List bomList = this.selectList(bom1); + bom = bomList != null && bomList.size() > 0 ? bomList.get(0) : null; + } else { + bom = bomMapper.selectById(bomBo); + } + if(bom != null) { + List bomComponentList = bomComponentService.listByBomBo(bom.getHandle()); + bom.setBomComponentList(bomComponentList); + } + return bom; + } + @Override + public List getBomOperationComponent(String site, String bomBo,String operation) { + Bom bom = null; + if(bomBo.endsWith("#")) { + String[] temp = bomBo.split(","); + String bomName = temp[1]; + String type = temp[2]; + Bom bom1 = new Bom(); + bom1.setSite(site); + bom1.setBom(bomName); + bom1.setBomType(type); + bom1.setCurrentRevision("true"); + List bomList = this.selectList(bom1); + bom = bomList != null && bomList.size() > 0 ? bomList.get(0) : null; + } else { + bom = bomMapper.selectById(bomBo); + } + if(bom != null) { + String operationBo = new OperationBOHandle(site,operation,"#").getValue(); + List bomComponentList = bomComponentService.selectBomComponentByOperation( bomBo, operationBo ); + return bomComponentList; + } + return null; + } + + @Override + public List validateItemMatchBomAndOperation(String site, String bomBo, String operation, String itemBo) { + String operationBo = new OperationBOHandle(site,operation,"#").getValue(); + List bomComponents = bomComponentService.selectBomComponentByOperation( bomBo, operationBo ); + List collect = bomComponents.stream().filter(e -> itemService.selectCurrent(e.getComponentGbo()).equals(itemBo)).collect(Collectors.toList()); + return collect; + } + +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcBomServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcBomServiceImpl.java new file mode 100644 index 00000000..32c6919b --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcBomServiceImpl.java @@ -0,0 +1,59 @@ +package com.foreverwin.mesnac.meapi.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.meapi.mapper.SfcBomMapper; +import com.foreverwin.mesnac.meapi.model.SfcBom; +import com.foreverwin.mesnac.meapi.service.SfcBomService; +import com.foreverwin.mesnac.meapi.util.StringUtils; +import com.foreverwin.modular.core.exception.BaseException; +import com.foreverwin.modular.core.util.FrontPage; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author Ervin Chen + * @since 2020-10-19 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class SfcBomServiceImpl extends ServiceImpl implements SfcBomService { + + + @Autowired + private SfcBomMapper sfcBomMapper; + + @Override + public IPage selectPage(FrontPage frontPage, SfcBom sfcBom) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcBom); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(SfcBom sfcBom) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcBom); + return super.list(queryWrapper); + } + + @Override + public String selectBomBO(String sfcBo) { + LambdaQueryWrapper lambdaQueryWrapper =new LambdaQueryWrapper<>() ; + lambdaQueryWrapper.eq(SfcBom::getSfcBo,sfcBo); + List list = list(lambdaQueryWrapper); + if(list.isEmpty()){ + throw new BaseException("未找到sfc"+ StringUtils.trimHandle(sfcBo) +"的物料清单"); + } + return list.get(0).getBomBo(); + } +} \ No newline at end of file diff --git a/meapi/src/main/resources/mapper/BomComponentMapper.xml b/meapi/src/main/resources/mapper/BomComponentMapper.xml new file mode 100644 index 00000000..2ec58a68 --- /dev/null +++ b/meapi/src/main/resources/mapper/BomComponentMapper.xml @@ -0,0 +1,709 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HANDLE, BOM_BO, COMPONENT_GBO, SEQUENCE, ENABLED, VALID_START, VALID_END, USE_ITEM_DEFAULTS, PRE_ASSEMBLED, ASSY_DATA_TYPE_BO, QTY, TEST_PART, BOM_TEMPLATE, DISASSEMBLE_OPERATION_BO, CREATE_TRACKABLE_SFC, MAXIMUM_USAGE, MAXIMUM_NC, ASSEMBLE_AS_REQ, AUTO_CONSUME_KIT, CREATED_DATE_TIME, MODIFIED_DATE_TIME, BOM_COMPONENT_TYPE, PARENT_SEQUENCE, ERP_SEQUENCE, ORDER_ITEM_NUMBER, ERP_CHANGE_NUMBER, IDENTIFIER, STORAGE_LOCATION_BO + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO BOM_COMPONENT + + HANDLE, + BOM_BO, + COMPONENT_GBO, + SEQUENCE, + ENABLED, + VALID_START, + VALID_END, + USE_ITEM_DEFAULTS, + PRE_ASSEMBLED, + ASSY_DATA_TYPE_BO, + QTY, + TEST_PART, + BOM_TEMPLATE, + DISASSEMBLE_OPERATION_BO, + CREATE_TRACKABLE_SFC, + MAXIMUM_USAGE, + MAXIMUM_NC, + ASSEMBLE_AS_REQ, + AUTO_CONSUME_KIT, + CREATED_DATE_TIME, + MODIFIED_DATE_TIME, + BOM_COMPONENT_TYPE, + PARENT_SEQUENCE, + ERP_SEQUENCE, + ORDER_ITEM_NUMBER, + ERP_CHANGE_NUMBER, + IDENTIFIER, + STORAGE_LOCATION_BO, + VALUES + + #{handle}, + #{bomBo}, + #{componentGbo}, + #{sequence}, + #{enabled}, + #{validStart}, + #{validEnd}, + #{useItemDefaults}, + #{preAssembled}, + #{assyDataTypeBo}, + #{qty}, + #{testPart}, + #{bomTemplate}, + #{disassembleOperationBo}, + #{createTrackableSfc}, + #{maximumUsage}, + #{maximumNc}, + #{assembleAsReq}, + #{autoConsumeKit}, + #{createdDateTime}, + #{modifiedDateTime}, + #{bomComponentType}, + #{parentSequence}, + #{erpSequence}, + #{orderItemNumber}, + #{erpChangeNumber}, + #{identifier}, + #{storageLocationBo}, + + + + + INSERT INTO BOM_COMPONENT + + + VALUES + + #{handle}, + #{bomBo}, + #{componentGbo}, + #{sequence}, + #{enabled}, + #{validStart}, + #{validEnd}, + #{useItemDefaults}, + #{preAssembled}, + #{assyDataTypeBo}, + #{qty}, + #{testPart}, + #{bomTemplate}, + #{disassembleOperationBo}, + #{createTrackableSfc}, + #{maximumUsage}, + #{maximumNc}, + #{assembleAsReq}, + #{autoConsumeKit}, + #{createdDateTime}, + #{modifiedDateTime}, + #{bomComponentType}, + #{parentSequence}, + #{erpSequence}, + #{orderItemNumber}, + #{erpChangeNumber}, + #{identifier}, + #{storageLocationBo}, + + + + + + + + + + UPDATE BOM_COMPONENT + HANDLE=#{et.handle}, + BOM_BO=#{et.bomBo}, + COMPONENT_GBO=#{et.componentGbo}, + SEQUENCE=#{et.sequence}, + ENABLED=#{et.enabled}, + VALID_START=#{et.validStart}, + VALID_END=#{et.validEnd}, + USE_ITEM_DEFAULTS=#{et.useItemDefaults}, + PRE_ASSEMBLED=#{et.preAssembled}, + ASSY_DATA_TYPE_BO=#{et.assyDataTypeBo}, + QTY=#{et.qty}, + TEST_PART=#{et.testPart}, + BOM_TEMPLATE=#{et.bomTemplate}, + DISASSEMBLE_OPERATION_BO=#{et.disassembleOperationBo}, + CREATE_TRACKABLE_SFC=#{et.createTrackableSfc}, + MAXIMUM_USAGE=#{et.maximumUsage}, + MAXIMUM_NC=#{et.maximumNc}, + ASSEMBLE_AS_REQ=#{et.assembleAsReq}, + AUTO_CONSUME_KIT=#{et.autoConsumeKit}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + BOM_COMPONENT_TYPE=#{et.bomComponentType}, + PARENT_SEQUENCE=#{et.parentSequence}, + ERP_SEQUENCE=#{et.erpSequence}, + ORDER_ITEM_NUMBER=#{et.orderItemNumber}, + ERP_CHANGE_NUMBER=#{et.erpChangeNumber}, + IDENTIFIER=#{et.identifier}, + STORAGE_LOCATION_BO=#{et.storageLocationBo}, + + + + + HANDLE=#{ew.entity.handle} + AND BOM_BO=#{ew.entity.bomBo} + AND COMPONENT_GBO=#{ew.entity.componentGbo} + AND SEQUENCE=#{ew.entity.sequence} + AND ENABLED=#{ew.entity.enabled} + AND VALID_START=#{ew.entity.validStart} + AND VALID_END=#{ew.entity.validEnd} + AND USE_ITEM_DEFAULTS=#{ew.entity.useItemDefaults} + AND PRE_ASSEMBLED=#{ew.entity.preAssembled} + AND ASSY_DATA_TYPE_BO=#{ew.entity.assyDataTypeBo} + AND QTY=#{ew.entity.qty} + AND TEST_PART=#{ew.entity.testPart} + AND BOM_TEMPLATE=#{ew.entity.bomTemplate} + AND DISASSEMBLE_OPERATION_BO=#{ew.entity.disassembleOperationBo} + AND CREATE_TRACKABLE_SFC=#{ew.entity.createTrackableSfc} + AND MAXIMUM_USAGE=#{ew.entity.maximumUsage} + AND MAXIMUM_NC=#{ew.entity.maximumNc} + AND ASSEMBLE_AS_REQ=#{ew.entity.assembleAsReq} + AND AUTO_CONSUME_KIT=#{ew.entity.autoConsumeKit} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND BOM_COMPONENT_TYPE=#{ew.entity.bomComponentType} + AND PARENT_SEQUENCE=#{ew.entity.parentSequence} + AND ERP_SEQUENCE=#{ew.entity.erpSequence} + AND ORDER_ITEM_NUMBER=#{ew.entity.orderItemNumber} + AND ERP_CHANGE_NUMBER=#{ew.entity.erpChangeNumber} + AND IDENTIFIER=#{ew.entity.identifier} + AND STORAGE_LOCATION_BO=#{ew.entity.storageLocationBo} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + DELETE FROM BOM_COMPONENT + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM BOM_COMPONENT + + + + + HANDLE=#{ew.entity.handle} + + AND BOM_BO=#{ew.entity.bomBo} + AND COMPONENT_GBO=#{ew.entity.componentGbo} + AND SEQUENCE=#{ew.entity.sequence} + AND ENABLED=#{ew.entity.enabled} + AND VALID_START=#{ew.entity.validStart} + AND VALID_END=#{ew.entity.validEnd} + AND USE_ITEM_DEFAULTS=#{ew.entity.useItemDefaults} + AND PRE_ASSEMBLED=#{ew.entity.preAssembled} + AND ASSY_DATA_TYPE_BO=#{ew.entity.assyDataTypeBo} + AND QTY=#{ew.entity.qty} + AND TEST_PART=#{ew.entity.testPart} + AND BOM_TEMPLATE=#{ew.entity.bomTemplate} + AND DISASSEMBLE_OPERATION_BO=#{ew.entity.disassembleOperationBo} + AND CREATE_TRACKABLE_SFC=#{ew.entity.createTrackableSfc} + AND MAXIMUM_USAGE=#{ew.entity.maximumUsage} + AND MAXIMUM_NC=#{ew.entity.maximumNc} + AND ASSEMBLE_AS_REQ=#{ew.entity.assembleAsReq} + AND AUTO_CONSUME_KIT=#{ew.entity.autoConsumeKit} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND BOM_COMPONENT_TYPE=#{ew.entity.bomComponentType} + AND PARENT_SEQUENCE=#{ew.entity.parentSequence} + AND ERP_SEQUENCE=#{ew.entity.erpSequence} + AND ORDER_ITEM_NUMBER=#{ew.entity.orderItemNumber} + AND ERP_CHANGE_NUMBER=#{ew.entity.erpChangeNumber} + AND IDENTIFIER=#{ew.entity.identifier} + AND STORAGE_LOCATION_BO=#{ew.entity.storageLocationBo} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/meapi/src/main/resources/mapper/BomMapper.xml b/meapi/src/main/resources/mapper/BomMapper.xml new file mode 100644 index 00000000..f1bce621 --- /dev/null +++ b/meapi/src/main/resources/mapper/BomMapper.xml @@ -0,0 +1,550 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HANDLE, CHANGE_STAMP, SITE, BOM, BOM_TYPE, DESCRIPTION, STATUS_BO, TMP_BOM, COPIED_FROM_BOM_BO, REVISION, CURRENT_REVISION, BOM_TEMPLATE, HAS_BEEN_RELEASED, EFF_START_DATE, EFF_END_DATE, EFFECTIVITY_CONTROL, PREV_SITE, ORIGINAL_TRANSFER_KEY, ERP_BILL_OF_MATERIAL, CREATED_DATE_TIME, MODIFIED_DATE_TIME, PARTITION_DATE, MODEL + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO BOM + + HANDLE, + CHANGE_STAMP, + SITE, + BOM, + BOM_TYPE, + DESCRIPTION, + STATUS_BO, + TMP_BOM, + COPIED_FROM_BOM_BO, + REVISION, + CURRENT_REVISION, + BOM_TEMPLATE, + HAS_BEEN_RELEASED, + EFF_START_DATE, + EFF_END_DATE, + EFFECTIVITY_CONTROL, + PREV_SITE, + ORIGINAL_TRANSFER_KEY, + ERP_BILL_OF_MATERIAL, + CREATED_DATE_TIME, + MODIFIED_DATE_TIME, + PARTITION_DATE, + MODEL, + VALUES + + #{handle}, + #{changeStamp}, + #{site}, + #{bom}, + #{bomType}, + #{description}, + #{statusBo}, + #{tmpBom}, + #{copiedFromBomBo}, + #{revision}, + #{currentRevision}, + #{bomTemplate}, + #{hasBeenReleased}, + #{effStartDate}, + #{effEndDate}, + #{effectivityControl}, + #{prevSite}, + #{originalTransferKey}, + #{erpBillOfMaterial}, + #{createdDateTime}, + #{modifiedDateTime}, + #{partitionDate}, + #{model}, + + + + + INSERT INTO BOM + + + VALUES + + #{handle}, + #{changeStamp}, + #{site}, + #{bom}, + #{bomType}, + #{description}, + #{statusBo}, + #{tmpBom}, + #{copiedFromBomBo}, + #{revision}, + #{currentRevision}, + #{bomTemplate}, + #{hasBeenReleased}, + #{effStartDate}, + #{effEndDate}, + #{effectivityControl}, + #{prevSite}, + #{originalTransferKey}, + #{erpBillOfMaterial}, + #{createdDateTime}, + #{modifiedDateTime}, + #{partitionDate}, + #{model}, + + + + + + + + + + UPDATE BOM + HANDLE=#{et.handle}, + CHANGE_STAMP=#{et.changeStamp}, + SITE=#{et.site}, + BOM=#{et.bom}, + BOM_TYPE=#{et.bomType}, + DESCRIPTION=#{et.description}, + STATUS_BO=#{et.statusBo}, + TMP_BOM=#{et.tmpBom}, + COPIED_FROM_BOM_BO=#{et.copiedFromBomBo}, + REVISION=#{et.revision}, + CURRENT_REVISION=#{et.currentRevision}, + BOM_TEMPLATE=#{et.bomTemplate}, + HAS_BEEN_RELEASED=#{et.hasBeenReleased}, + EFF_START_DATE=#{et.effStartDate}, + EFF_END_DATE=#{et.effEndDate}, + EFFECTIVITY_CONTROL=#{et.effectivityControl}, + PREV_SITE=#{et.prevSite}, + ORIGINAL_TRANSFER_KEY=#{et.originalTransferKey}, + ERP_BILL_OF_MATERIAL=#{et.erpBillOfMaterial}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + PARTITION_DATE=#{et.partitionDate}, + MODEL=#{et.model}, + + + + + HANDLE=#{ew.entity.handle} + AND CHANGE_STAMP=#{ew.entity.changeStamp} + AND SITE=#{ew.entity.site} + AND BOM=#{ew.entity.bom} + AND BOM_TYPE=#{ew.entity.bomType} + AND DESCRIPTION=#{ew.entity.description} + AND STATUS_BO=#{ew.entity.statusBo} + AND TMP_BOM=#{ew.entity.tmpBom} + AND COPIED_FROM_BOM_BO=#{ew.entity.copiedFromBomBo} + AND REVISION=#{ew.entity.revision} + AND CURRENT_REVISION=#{ew.entity.currentRevision} + AND BOM_TEMPLATE=#{ew.entity.bomTemplate} + AND HAS_BEEN_RELEASED=#{ew.entity.hasBeenReleased} + AND EFF_START_DATE=#{ew.entity.effStartDate} + AND EFF_END_DATE=#{ew.entity.effEndDate} + AND EFFECTIVITY_CONTROL=#{ew.entity.effectivityControl} + AND PREV_SITE=#{ew.entity.prevSite} + AND ORIGINAL_TRANSFER_KEY=#{ew.entity.originalTransferKey} + AND ERP_BILL_OF_MATERIAL=#{ew.entity.erpBillOfMaterial} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND PARTITION_DATE=#{ew.entity.partitionDate} + AND MODEL=#{ew.entity.model} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + DELETE FROM BOM + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM BOM + + + + + HANDLE=#{ew.entity.handle} + + AND CHANGE_STAMP=#{ew.entity.changeStamp} + AND SITE=#{ew.entity.site} + AND BOM=#{ew.entity.bom} + AND BOM_TYPE=#{ew.entity.bomType} + AND DESCRIPTION=#{ew.entity.description} + AND STATUS_BO=#{ew.entity.statusBo} + AND TMP_BOM=#{ew.entity.tmpBom} + AND COPIED_FROM_BOM_BO=#{ew.entity.copiedFromBomBo} + AND REVISION=#{ew.entity.revision} + AND CURRENT_REVISION=#{ew.entity.currentRevision} + AND BOM_TEMPLATE=#{ew.entity.bomTemplate} + AND HAS_BEEN_RELEASED=#{ew.entity.hasBeenReleased} + AND EFF_START_DATE=#{ew.entity.effStartDate} + AND EFF_END_DATE=#{ew.entity.effEndDate} + AND EFFECTIVITY_CONTROL=#{ew.entity.effectivityControl} + AND PREV_SITE=#{ew.entity.prevSite} + AND ORIGINAL_TRANSFER_KEY=#{ew.entity.originalTransferKey} + AND ERP_BILL_OF_MATERIAL=#{ew.entity.erpBillOfMaterial} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND PARTITION_DATE=#{ew.entity.partitionDate} + AND MODEL=#{ew.entity.model} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + + diff --git a/meapi/src/main/resources/mapper/BomOperationMapper.xml b/meapi/src/main/resources/mapper/BomOperationMapper.xml new file mode 100644 index 00000000..01d41834 --- /dev/null +++ b/meapi/src/main/resources/mapper/BomOperationMapper.xml @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + HANDLE, BOM_COMPONENT_BO, OPERATION_BO, QTY + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO BOM_OPERATION + + HANDLE, + BOM_COMPONENT_BO, + OPERATION_BO, + QTY, + VALUES + + #{handle}, + #{bomComponentBo}, + #{operationBo}, + #{qty}, + + + + + INSERT INTO BOM_OPERATION + + + VALUES + + #{handle}, + #{bomComponentBo}, + #{operationBo}, + #{qty}, + + + + + + + + + + UPDATE BOM_OPERATION + HANDLE=#{et.handle}, + BOM_COMPONENT_BO=#{et.bomComponentBo}, + OPERATION_BO=#{et.operationBo}, + QTY=#{et.qty}, + + + + + HANDLE=#{ew.entity.handle} + AND BOM_COMPONENT_BO=#{ew.entity.bomComponentBo} + AND OPERATION_BO=#{ew.entity.operationBo} + AND QTY=#{ew.entity.qty} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + DELETE FROM BOM_OPERATION + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM BOM_OPERATION + + + + + HANDLE=#{ew.entity.handle} + + AND BOM_COMPONENT_BO=#{ew.entity.bomComponentBo} + AND OPERATION_BO=#{ew.entity.operationBo} + AND QTY=#{ew.entity.qty} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + diff --git a/meapi/src/main/resources/mapper/SfcBomMapper.xml b/meapi/src/main/resources/mapper/SfcBomMapper.xml new file mode 100644 index 00000000..09a7a870 --- /dev/null +++ b/meapi/src/main/resources/mapper/SfcBomMapper.xml @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + HANDLE, CHANGE_STAMP, SFC_BO, BOM_BO, PREV_SITE, ORIGINAL_TRANSFER_KEY, MODIFIED_DATE_TIME, CREATED_DATE_TIME, PARTITION_DATE + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO SFC_BOM + + HANDLE, + CHANGE_STAMP, + SFC_BO, + BOM_BO, + PREV_SITE, + ORIGINAL_TRANSFER_KEY, + MODIFIED_DATE_TIME, + CREATED_DATE_TIME, + PARTITION_DATE, + VALUES + + #{handle}, + #{changeStamp}, + #{sfcBo}, + #{bomBo}, + #{prevSite}, + #{originalTransferKey}, + #{modifiedDateTime}, + #{createdDateTime}, + #{partitionDate}, + + + + + INSERT INTO SFC_BOM + + + VALUES + + #{handle}, + #{changeStamp}, + #{sfcBo}, + #{bomBo}, + #{prevSite}, + #{originalTransferKey}, + #{modifiedDateTime}, + #{createdDateTime}, + #{partitionDate}, + + + + + + + + + + UPDATE SFC_BOM + HANDLE=#{et.handle}, + CHANGE_STAMP=#{et.changeStamp}, + SFC_BO=#{et.sfcBo}, + BOM_BO=#{et.bomBo}, + PREV_SITE=#{et.prevSite}, + ORIGINAL_TRANSFER_KEY=#{et.originalTransferKey}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + CREATED_DATE_TIME=#{et.createdDateTime}, + PARTITION_DATE=#{et.partitionDate}, + + + + + HANDLE=#{ew.entity.handle} + AND CHANGE_STAMP=#{ew.entity.changeStamp} + AND SFC_BO=#{ew.entity.sfcBo} + AND BOM_BO=#{ew.entity.bomBo} + AND PREV_SITE=#{ew.entity.prevSite} + AND ORIGINAL_TRANSFER_KEY=#{ew.entity.originalTransferKey} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND PARTITION_DATE=#{ew.entity.partitionDate} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + DELETE FROM SFC_BOM + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM SFC_BOM + + + + + HANDLE=#{ew.entity.handle} + + AND CHANGE_STAMP=#{ew.entity.changeStamp} + AND SFC_BO=#{ew.entity.sfcBo} + AND BOM_BO=#{ew.entity.bomBo} + AND PREV_SITE=#{ew.entity.prevSite} + AND ORIGINAL_TRANSFER_KEY=#{ew.entity.originalTransferKey} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND PARTITION_DATE=#{ew.entity.partitionDate} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + diff --git a/production/pom.xml b/production/pom.xml index 348de5f4..1370b9c6 100644 --- a/production/pom.xml +++ b/production/pom.xml @@ -32,12 +32,6 @@ mysql-connector-java 8.0.15 - - - org.apache.httpcomponents - httpclient - 4.5.13 - org.apache.httpcomponents httpclient