From be05ddfdc4661ca6cf999965b143beb07c576221 Mon Sep 17 00:00:00 2001 From: philip <244793088@qq.com> Date: Mon, 2 Aug 2021 23:59:45 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=BD=A6=E9=97=B4=E8=BD=AC=E5=85=A5?= =?UTF-8?q?=E8=BD=AC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mesnac/meapi/mapper/SfcMapper.java | 2 - .../WorkShopTransferController.java | 140 +++++ .../production/dto/WorkShopTransferDto.java | 110 ++++ .../mapper/WorkShopTransferMapper.java | 21 + .../production/model/WorkShopTransfer.java | 281 ++++++++++ .../service/WorkShopTransferService.java | 32 ++ .../service/impl/SplitSfcServiceImpl.java | 9 +- .../impl/WorkShopTransferServiceImpl.java | 155 ++++++ .../main/resources/mapper/SplitSfcMapper.xml | 2 +- .../mapper/WorkShopTransferMapper.xml | 513 ++++++++++++++++++ 10 files changed, 1261 insertions(+), 4 deletions(-) create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/controller/WorkShopTransferController.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/dto/WorkShopTransferDto.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/mapper/WorkShopTransferMapper.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/model/WorkShopTransfer.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/service/WorkShopTransferService.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java create mode 100644 production/src/main/resources/mapper/WorkShopTransferMapper.xml diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcMapper.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcMapper.java index cbcd832d..9dc9a0fe 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcMapper.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcMapper.java @@ -28,8 +28,6 @@ public interface SfcMapper extends BaseMapper { SfcDto findSfcData(@Param("site") String site, @Param("sfc") String sfc); - Sfc findBySfc(@Param("sfc") Sfc sfc); - IPage pageByResrce(Page pagePlus,@Param("ew") QueryWrapper queryWrapper,@Param("locale")String locale); String findOperationBySfc(@Param("site")String site,@Param("sfc")String sfc); diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/WorkShopTransferController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/WorkShopTransferController.java new file mode 100644 index 00000000..706f738d --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/WorkShopTransferController.java @@ -0,0 +1,140 @@ +package com.foreverwin.mesnac.production.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.production.model.WorkShopTransfer; +import com.foreverwin.mesnac.production.service.WorkShopTransferService; +import com.foreverwin.modular.core.util.FrontPage; +import com.foreverwin.modular.core.util.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * + * @author Philip + * @since 2021-08-02 + */ +@RestController +@RequestMapping("/Z-WORK-SHOP-TRANSFER") +public class WorkShopTransferController { + + @Autowired + public WorkShopTransferService workShopTransferService; + + @ResponseBody + @GetMapping("/sfcEnter") + public R sfcEnter(WorkShopTransfer workShopTransfer) { + return R.ok(workShopTransferService.sfcEnter(workShopTransfer)); + } + + @ResponseBody + @GetMapping("/transfer") + public R transfer(WorkShopTransfer workShopTransfer) { + return R.ok(workShopTransferService.transfer(workShopTransfer)); + } + + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getWorkShopTransferById(@PathVariable String id) { + return R.ok( workShopTransferService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getWorkShopTransferList(WorkShopTransfer workShopTransfer){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(workShopTransfer); + result = workShopTransferService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, WorkShopTransfer workShopTransfer){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(workShopTransfer); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(WorkShopTransfer::getHandle, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getSite, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getWorkCenter, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getSfc, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getShopOrder, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getItem, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getLastOperation, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getStepId, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getOperation, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getType, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getIsOutSource, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getComments, frontPage.getGlobalQuery()) + .or().like(WorkShopTransfer::getCreateUser, frontPage.getGlobalQuery()) + ); + } + result = workShopTransferService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param workShopTransfer 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody WorkShopTransfer workShopTransfer) { + return R.ok(workShopTransferService.save(workShopTransfer)); + } + + /** + * 修改 + * @param workShopTransfer 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody WorkShopTransfer workShopTransfer) { + return R.ok(workShopTransferService.updateById(workShopTransfer)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(workShopTransferService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(workShopTransferService.removeByIds(ids)); + } +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/dto/WorkShopTransferDto.java b/production/src/main/java/com/foreverwin/mesnac/production/dto/WorkShopTransferDto.java new file mode 100644 index 00000000..9164444f --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/dto/WorkShopTransferDto.java @@ -0,0 +1,110 @@ +package com.foreverwin.mesnac.production.dto; + +import com.foreverwin.mesnac.production.model.WorkShopTransfer; + +import java.math.BigDecimal; + +public class WorkShopTransferDto extends WorkShopTransfer { + private String lastOperation; + private String lastOperationDesc; + private String map; + private String workOrder; + private String itemDesc; + private String itemNumber; + private String operationDesc; + private BigDecimal qty; + private String status; + private String dispatchNo; + private String resrce; + + public String getResrce() { + return resrce; + } + + public void setResrce(String resrce) { + this.resrce = resrce; + } + + public String getDispatchNo() { + return dispatchNo; + } + + public void setDispatchNo(String dispatchNo) { + this.dispatchNo = dispatchNo; + } + + @Override + public String getLastOperation() { + return lastOperation; + } + + @Override + public void setLastOperation(String lastOperation) { + this.lastOperation = lastOperation; + } + + public String getLastOperationDesc() { + return lastOperationDesc; + } + + public void setLastOperationDesc(String lastOperationDesc) { + this.lastOperationDesc = lastOperationDesc; + } + + public String getMap() { + return map; + } + + public void setMap(String map) { + this.map = map; + } + + public String getWorkOrder() { + return workOrder; + } + + public void setWorkOrder(String workOrder) { + this.workOrder = workOrder; + } + + public String getItemDesc() { + return itemDesc; + } + + public void setItemDesc(String itemDesc) { + this.itemDesc = itemDesc; + } + + public String getItemNumber() { + return itemNumber; + } + + public void setItemNumber(String itemNumber) { + this.itemNumber = itemNumber; + } + + public String getOperationDesc() { + return operationDesc; + } + + public void setOperationDesc(String operationDesc) { + this.operationDesc = operationDesc; + } + + @Override + public BigDecimal getQty() { + return qty; + } + + public void setQty(BigDecimal qty) { + this.qty = qty; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/production/src/main/java/com/foreverwin/mesnac/production/mapper/WorkShopTransferMapper.java b/production/src/main/java/com/foreverwin/mesnac/production/mapper/WorkShopTransferMapper.java new file mode 100644 index 00000000..54869e04 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/mapper/WorkShopTransferMapper.java @@ -0,0 +1,21 @@ +package com.foreverwin.mesnac.production.mapper; + +import com.foreverwin.mesnac.production.dto.WorkShopTransferDto; +import com.foreverwin.mesnac.production.model.WorkShopTransfer; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +/** + *

+ * 车间转移记录 Mapper 接口 + *

+ * + * @author Philip + * @since 2021-07-30 + */ +@Repository +public interface WorkShopTransferMapper extends BaseMapper { + + WorkShopTransferDto getSfcData(@Param("site") String site,@Param("sfc") String sfc); +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/model/WorkShopTransfer.java b/production/src/main/java/com/foreverwin/mesnac/production/model/WorkShopTransfer.java new file mode 100644 index 00000000..2edda834 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/model/WorkShopTransfer.java @@ -0,0 +1,281 @@ +package com.foreverwin.mesnac.production.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.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * 车间转移记录 + *

+ * + * @author Philip + * @since 2021-08-02 + */ + +@TableName("Z_WORK_SHOP_TRANSFER") + +public class WorkShopTransfer extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + /** + * 站点 + */ + @TableField("SITE") + private String site; + /** + * 车间 + */ + @TableField("WORK_CENTER") + private String workCenter; + /** + * 产品条码 + */ + @TableField("SFC") + private String sfc; + /** + * 工单 + */ + @TableField("SHOP_ORDER") + private String shopOrder; + /** + * 物料 + */ + @TableField("ITEM") + private String item; + /** + * 上工序 + */ + @TableField("LAST_OPERATION") + private String lastOperation; + /** + * 步骤 + */ + @TableField("STEP_ID") + private String stepId; + /** + * 转入或转出工序 + */ + @TableField("OPERATION") + private String operation; + /** + * 数量 + */ + @TableField("QTY") + private BigDecimal qty; + /** + * 类型:转入转出 + */ + @TableField("TYPE") + private String type; + /** + * 是否外协工序 + */ + @TableField("IS_OUT_SOURCE") + private String isOutSource; + /** + * 备注 + */ + @TableField("COMMENTS") + private String comments; + /** + * 创建人 + */ + @TableField("CREATE_USER") + private String createUser; + /** + * 创建时间 + */ + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + + + 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 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 getShopOrder() { + return shopOrder; + } + + public void setShopOrder(String shopOrder) { + this.shopOrder = shopOrder; + } + + public String getItem() { + return item; + } + + public void setItem(String item) { + this.item = item; + } + + public String getLastOperation() { + return lastOperation; + } + + public void setLastOperation(String lastOperation) { + this.lastOperation = lastOperation; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + public BigDecimal getQty() { + return qty; + } + + public void setQty(BigDecimal qty) { + this.qty = qty; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getIsOutSource() { + return isOutSource; + } + + public void setIsOutSource(String isOutSource) { + this.isOutSource = isOutSource; + } + + public String getComments() { + return comments; + } + + public void setComments(String comments) { + this.comments = comments; + } + + 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 static final String HANDLE = "HANDLE"; + +public static final String SITE = "SITE"; + +public static final String WORK_CENTER = "WORK_CENTER"; + +public static final String SFC = "SFC"; + +public static final String SHOP_ORDER = "SHOP_ORDER"; + +public static final String ITEM = "ITEM"; + +public static final String LAST_OPERATION = "LAST_OPERATION"; + +public static final String STEP_ID = "STEP_ID"; + +public static final String OPERATION = "OPERATION"; + +public static final String QTY = "QTY"; + +public static final String TYPE = "TYPE"; + +public static final String IS_OUT_SOURCE = "IS_OUT_SOURCE"; + +public static final String COMMENTS = "COMMENTS"; + +public static final String CREATE_USER = "CREATE_USER"; + +public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "WorkShopTransfer{" + + "handle = " + handle + + ", site = " + site + + ", workCenter = " + workCenter + + ", sfc = " + sfc + + ", shopOrder = " + shopOrder + + ", item = " + item + + ", lastOperation = " + lastOperation + + ", stepId = " + stepId + + ", operation = " + operation + + ", qty = " + qty + + ", type = " + type + + ", isOutSource = " + isOutSource + + ", comments = " + comments + + ", createUser = " + createUser + + ", createdDateTime = " + createdDateTime + + "}"; + } +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/WorkShopTransferService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/WorkShopTransferService.java new file mode 100644 index 00000000..73918e73 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/WorkShopTransferService.java @@ -0,0 +1,32 @@ +package com.foreverwin.mesnac.production.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.production.model.WorkShopTransfer; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 车间转移记录 服务类 + *

+ * + * @author Philip + * @since 2021-07-30 + */ +public interface WorkShopTransferService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, WorkShopTransfer workShopTransfer); + + List selectList(WorkShopTransfer workShopTransfer); + + WorkShopTransfer sfcEnter(WorkShopTransfer workShopTransfer); + + Object transfer(WorkShopTransfer workShopTransfer); +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java index 9c5f0fcb..54b6ccee 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SplitSfcServiceImpl.java @@ -4,9 +4,11 @@ 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.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.service.SfcDispatchCommonService; import com.foreverwin.mesnac.common.util.ExceptionUtil; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.dto.SfcDto; +import com.foreverwin.mesnac.meapi.service.ShopOrderService; import com.foreverwin.mesnac.production.dto.SplitSfcDto; import com.foreverwin.mesnac.production.mapper.SplitSfcMapper; import com.foreverwin.mesnac.production.model.SplitSfc; @@ -44,7 +46,10 @@ public class SplitSfcServiceImpl extends ServiceImpl i @Autowired private SplitSfcMapper splitSfcMapper; - + @Autowired + private SfcDispatchCommonService sfcDispatchCommonService; + @Autowired + private ShopOrderService shopOrderService; @Override public IPage selectPage(FrontPage frontPage, SplitSfc splitSfc) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -157,6 +162,8 @@ public class SplitSfcServiceImpl extends ServiceImpl i splitSfc.setCreateUser(CommonMethods.getUser()); splitSfc.setCreatedDateTime(LocalDateTime.now()); save(splitSfc); + String workCenterBo = shopOrderService.getById(HandleEnum.SHOP_ORDER.getHandle(site, sfcData.getShopOrder())).getPlannedWorkCenterBo(); + sfcDispatchCommonService.saveSfcDispatch(site,CommonMethods.getUser(),StringUtil.trimHandle(workCenterBo),sfc, sfcData.getShopOrder(),routerBo); return splitSfc; } catch (Exception e) { ExceptionUtil.throwException(e); diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java new file mode 100644 index 00000000..d42af850 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java @@ -0,0 +1,155 @@ +package com.foreverwin.mesnac.production.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.common.enums.DispatchStatusEnum; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.service.SfcDispatchCommonService; +import com.foreverwin.mesnac.common.util.ExceptionUtil; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.meapi.model.Operation; +import com.foreverwin.mesnac.meapi.model.Router; +import com.foreverwin.mesnac.meapi.service.OperationService; +import com.foreverwin.mesnac.meapi.service.RouterService; +import com.foreverwin.mesnac.production.dto.WorkShopTransferDto; +import com.foreverwin.mesnac.production.mapper.SfcCrossMapper; +import com.foreverwin.mesnac.production.mapper.WorkShopTransferMapper; +import com.foreverwin.mesnac.production.model.StepOperation; +import com.foreverwin.mesnac.production.model.WorkShopTransfer; +import com.foreverwin.mesnac.production.service.SfcCrossService; +import com.foreverwin.mesnac.production.service.WorkShopTransferService; +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.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +/** + *

+ * 车间转移记录 服务实现类 + *

+ * + * @author Philip + * @since 2021-07-30 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class WorkShopTransferServiceImpl extends ServiceImpl implements WorkShopTransferService { + + @Autowired + private SfcDispatchCommonService sfcDispatchCommonService; + @Autowired + private WorkShopTransferMapper workShopTransferMapper; + @Autowired + private OperationService operationService; + @Autowired + private SfcCrossService sfcCrossService; + @Autowired + private SfcCrossMapper sfcCrossMapper; + @Autowired + private RouterService routerService; + + @Override + public IPage selectPage(FrontPage frontPage, WorkShopTransfer workShopTransfer) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(workShopTransfer); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(WorkShopTransfer workShopTransfer) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(workShopTransfer); + return super.list(queryWrapper); + } + + @Override + public WorkShopTransferDto sfcEnter(WorkShopTransfer workShopTransfer) { + //条码是否在工作中心下 + String site = CommonMethods.getSite(); + String sfc = workShopTransfer.getSfc(); + String workCenter = workShopTransfer.getWorkCenter(); + if (StringUtil.isBlank(sfc)) { + throw new BaseException("产品条码不能为空"); + } + + WorkShopTransferDto dto = workShopTransferMapper.getSfcData(site, sfc); + if (dto == null) { + throw new BaseException("未找到该产品条码"); + } + if (StringUtil.isBlank(dto.getWorkCenter()) || !dto.getWorkCenter().equals(workCenter)) { + throw new BaseException("产品条码不在所选车间"); + } + //查询上一工序 + Router router = routerService.getRouterBySfcBo(HandleEnum.SFC.getHandle(site, sfc)); + int seq = 0; + List stepOperationList = sfcCrossMapper.findRouterOperationByRouterBo(site, router.getHandle(), LocaleContextHolder.getLocale().getLanguage()); + for (int i = 0; i < stepOperationList.size(); i++) { + StepOperation stepOperation = stepOperationList.get(i); + if (stepOperation.getStepId().equals(dto.getStepId())) { + seq = i; + } + } + if (seq != 0) { + StepOperation stepOperation = stepOperationList.get(seq - 1); + dto.setLastOperation(stepOperation.getOperation()); + dto.setLastOperationDesc(stepOperation.getDescription()); + } + return dto; + } + + @Override + public Object transfer(WorkShopTransfer workShopTransfer) { + String site = CommonMethods.getSite(); + String user = CommonMethods.getUser(); + WorkShopTransferDto dto = sfcEnter(workShopTransfer); + String isOutSource = dto.getIsOutSource(); + String sfcBO = HandleEnum.SFC.getHandle(site, workShopTransfer.getSfc()); + if (StringUtil.notBlank(isOutSource) && isOutSource.equals("Y")) { + //转出开始 + try { + Operation currentRevisionRef = operationService.getCurrentRevisionRef(site, dto.getOperation()); + if (workShopTransfer.getType().equals("OUT")) { + sfcCrossService.startAction(site, currentRevisionRef.getHandle(), dto.getResrce(), sfcBO, dto.getQty()); + //更改派工单状态 + sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dto.getDispatchNo(), DispatchStatusEnum.START.getCode()); + } else { + //转入完成 + sfcCrossService.completeAction(site, currentRevisionRef.getHandle(), dto.getResrce(), sfcBO, dto.getQty()); + //更改派工单状态 + sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dto.getDispatchNo(), DispatchStatusEnum.COMPLETE.getCode()); + } + } catch (Exception e) { + ExceptionUtil.throwException(e); + } + } + + WorkShopTransfer transferLog = new WorkShopTransfer(); + transferLog.setHandle(UUID.randomUUID().toString()); + transferLog.setSite(site); + transferLog.setWorkCenter(dto.getWorkCenter()); + transferLog.setSfc(dto.getSfc()); + transferLog.setShopOrder(dto.getShopOrder()); + transferLog.setItem(dto.getItem()); + transferLog.setLastOperation(dto.getLastOperation()); + transferLog.setStepId(dto.getStepId()); + transferLog.setOperation(dto.getOperation()); + transferLog.setQty(dto.getQty()); + transferLog.setType(workShopTransfer.getType()); + transferLog.setIsOutSource(isOutSource); + transferLog.setComments(workShopTransfer.getComments()); + transferLog.setCreateUser(user); + transferLog.setCreatedDateTime(LocalDateTime.now()); + save(transferLog); + return null; + } + + +} \ No newline at end of file diff --git a/production/src/main/resources/mapper/SplitSfcMapper.xml b/production/src/main/resources/mapper/SplitSfcMapper.xml index da57dfc6..10a68aa5 100644 --- a/production/src/main/resources/mapper/SplitSfcMapper.xml +++ b/production/src/main/resources/mapper/SplitSfcMapper.xml @@ -379,7 +379,7 @@ diff --git a/production/src/main/resources/mapper/WorkShopTransferMapper.xml b/production/src/main/resources/mapper/WorkShopTransferMapper.xml new file mode 100644 index 00000000..e4a76d85 --- /dev/null +++ b/production/src/main/resources/mapper/WorkShopTransferMapper.xml @@ -0,0 +1,513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HANDLE, SITE, WORK_CENTER, SFC, SHOP_ORDER, ITEM, LAST_OPERATION, STEP_ID, OPERATION, QTY, TYPE, IS_OUT_SOURCE, COMMENTS, CREATE_USER, CREATED_DATE_TIME + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO Z_WORK_SHOP_TRANSFER + + HANDLE, + SITE, + WORK_CENTER, + SFC, + SHOP_ORDER, + ITEM, + LAST_OPERATION, + STEP_ID, + OPERATION, + QTY, + TYPE, + IS_OUT_SOURCE, + COMMENTS, + CREATE_USER, + CREATED_DATE_TIME, + VALUES + + #{handle}, + #{site}, + #{workCenter}, + #{sfc}, + #{shopOrder}, + #{item}, + #{lastOperation}, + #{stepId}, + #{operation}, + #{qty}, + #{type}, + #{isOutSource}, + #{comments}, + #{createUser}, + #{createdDateTime}, + + + + + INSERT INTO Z_WORK_SHOP_TRANSFER + + + VALUES + + #{handle}, + #{site}, + #{workCenter}, + #{sfc}, + #{shopOrder}, + #{item}, + #{lastOperation}, + #{stepId}, + #{operation}, + #{qty}, + #{type}, + #{isOutSource}, + #{comments}, + #{createUser}, + #{createdDateTime}, + + + + + + UPDATE Z_WORK_SHOP_TRANSFER + SITE=#{et.site}, + WORK_CENTER=#{et.workCenter}, + SFC=#{et.sfc}, + SHOP_ORDER=#{et.shopOrder}, + ITEM=#{et.item}, + LAST_OPERATION=#{et.lastOperation}, + STEP_ID=#{et.stepId}, + OPERATION=#{et.operation}, + QTY=#{et.qty}, + TYPE=#{et.type}, + IS_OUT_SOURCE=#{et.isOutSource}, + COMMENTS=#{et.comments}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_WORK_SHOP_TRANSFER + SITE=#{et.site}, + WORK_CENTER=#{et.workCenter}, + SFC=#{et.sfc}, + SHOP_ORDER=#{et.shopOrder}, + ITEM=#{et.item}, + LAST_OPERATION=#{et.lastOperation}, + STEP_ID=#{et.stepId}, + OPERATION=#{et.operation}, + QTY=#{et.qty}, + TYPE=#{et.type}, + IS_OUT_SOURCE=#{et.isOutSource}, + COMMENTS=#{et.comments}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_WORK_SHOP_TRANSFER + SITE=#{et.site}, + WORK_CENTER=#{et.workCenter}, + SFC=#{et.sfc}, + SHOP_ORDER=#{et.shopOrder}, + ITEM=#{et.item}, + LAST_OPERATION=#{et.lastOperation}, + STEP_ID=#{et.stepId}, + OPERATION=#{et.operation}, + QTY=#{et.qty}, + TYPE=#{et.type}, + IS_OUT_SOURCE=#{et.isOutSource}, + COMMENTS=#{et.comments}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + + + + + HANDLE=#{ew.entity.handle} + AND SITE=#{ew.entity.site} + AND WORK_CENTER=#{ew.entity.workCenter} + AND SFC=#{ew.entity.sfc} + AND SHOP_ORDER=#{ew.entity.shopOrder} + AND ITEM=#{ew.entity.item} + AND LAST_OPERATION=#{ew.entity.lastOperation} + AND STEP_ID=#{ew.entity.stepId} + AND OPERATION=#{ew.entity.operation} + AND QTY=#{ew.entity.qty} + AND TYPE=#{ew.entity.type} + AND IS_OUT_SOURCE=#{ew.entity.isOutSource} + AND COMMENTS=#{ew.entity.comments} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_WORK_SHOP_TRANSFER WHERE HANDLE=#{handle} + + + + DELETE FROM Z_WORK_SHOP_TRANSFER + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM Z_WORK_SHOP_TRANSFER + + + + + HANDLE=#{ew.entity.handle} + + AND SITE=#{ew.entity.site} + AND WORK_CENTER=#{ew.entity.workCenter} + AND SFC=#{ew.entity.sfc} + AND SHOP_ORDER=#{ew.entity.shopOrder} + AND ITEM=#{ew.entity.item} + AND LAST_OPERATION=#{ew.entity.lastOperation} + AND STEP_ID=#{ew.entity.stepId} + AND OPERATION=#{ew.entity.operation} + AND QTY=#{ew.entity.qty} + AND TYPE=#{ew.entity.type} + AND IS_OUT_SOURCE=#{ew.entity.isOutSource} + AND COMMENTS=#{ew.entity.comments} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_WORK_SHOP_TRANSFER WHERE HANDLE IN ( + #{item} + ) + + + + From 3173a234be56b1581081a17056cd86a04d319f8b Mon Sep 17 00:00:00 2001 From: zpl Date: Tue, 3 Aug 2021 11:04:03 +0800 Subject: [PATCH 2/3] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mesnac/common/constant/Constants.java | 6 ++++++ .../common/controller/ToolController.java | 2 +- .../common/service/impl/ToolServiceImpl.java | 5 ++++- .../impl/ResourceRepairTaskServiceImpl.java | 17 ++++++++++------- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java b/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java index 4e31ad21..31e2ec81 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/constant/Constants.java @@ -161,5 +161,11 @@ public interface Constants { // 在制品标签 String PRINT_TYPE_SFC = "SFC"; + /** + * 刀具状态,Y-使用,N-报废/删除 + */ + String TOOL_STATUS_Y = "Y"; + String TOOL_STATUS_N = "N"; + } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java index e6166cce..ca5a858a 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java @@ -150,7 +150,7 @@ public class ToolController { try{ return R.ok(toolService.getOneToolByToolNo(tool)); }catch (Exception e){ - return R.failed("数据保存失败" + e.getMessage()); + return R.failed("数据查询失败" + e.getMessage()); } } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java index e1e77be6..eecaf520 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; 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.common.constant.Constants; import com.foreverwin.mesnac.common.enums.HandleEnum; import com.foreverwin.mesnac.common.mapper.ToolMapper; import com.foreverwin.mesnac.common.model.Tool; @@ -59,12 +60,14 @@ public class ToolServiceImpl extends ServiceImpl implements To tool.setHandle(handle); Tool byId = toolMapper.selectById(handle); if (byId != null){ + tool.setStatus(Constants.TOOL_STATUS_Y); tool.setCreateUser(byId.getCreateUser()); tool.setCreatedDateTime(byId.getCreatedDateTime()); tool.setModifyUser(user); tool.setModifiedDateTime(LocalDateTime.now()); toolMapper.updateById(tool); - }else{ + } else{ + tool.setStatus(Constants.TOOL_STATUS_Y); tool.setCreateUser(user); tool.setCreatedDateTime(LocalDateTime.now()); toolMapper.insert(tool); diff --git a/equip/src/main/java/com/foreverwin/mesnac/equip/service/impl/ResourceRepairTaskServiceImpl.java b/equip/src/main/java/com/foreverwin/mesnac/equip/service/impl/ResourceRepairTaskServiceImpl.java index 0eed958a..7cb7608f 100644 --- a/equip/src/main/java/com/foreverwin/mesnac/equip/service/impl/ResourceRepairTaskServiceImpl.java +++ b/equip/src/main/java/com/foreverwin/mesnac/equip/service/impl/ResourceRepairTaskServiceImpl.java @@ -86,7 +86,16 @@ public class ResourceRepairTaskServiceImpl extends ServiceImpl collection = new ArrayList<>(); for (int i = 0; i < ncSplit.length; i++) { collection.add(HandleEnum.NC_CODE.getHandle(site,ncSplit[i])); @@ -95,12 +104,6 @@ public class ResourceRepairTaskServiceImpl extends ServiceImpl nextNumber = nextNumberHelper.getNextNumber(site, Constants.RESOURCE_REPAIR_TASK, 1); resourceRepairTask.setRepairNo(nextNumber.get(0)); From 0e7c096137019b796d69a7f8423f962c13c55ed1 Mon Sep 17 00:00:00 2001 From: zpl Date: Tue, 3 Aug 2021 15:40:24 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=88=80=E5=85=B7=E6=A8=A1=E5=9D=97bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/controller/ToolController.java | 4 +- .../mesnac/common/service/ToolService.java | 2 +- .../common/service/impl/ToolServiceImpl.java | 78 ++++++++++--------- .../dataimport/handler/ToolHandler.java | 11 ++- 4 files changed, 54 insertions(+), 41 deletions(-) diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java index ca5a858a..f339eb78 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ToolController.java @@ -146,11 +146,11 @@ public class ToolController { @ResponseBody @GetMapping("/getOneToolByToolNo") - public R getOneToolByToolNo(String tool) { + public R getOneToolByToolNo(Tool tool) { try{ return R.ok(toolService.getOneToolByToolNo(tool)); }catch (Exception e){ - return R.failed("数据查询失败" + e.getMessage()); + return R.failed("数据查询失败:" + e.getMessage()); } } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/ToolService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/ToolService.java index 45cdd70e..00f1b8d5 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/ToolService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/ToolService.java @@ -38,7 +38,7 @@ public interface ToolService extends IService { * @param tool * @return */ - Tool getOneToolByToolNo(String tool); + Tool getOneToolByToolNo(Tool tool); /** * 删除刀具: diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java index eecaf520..3a445a94 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/ToolServiceImpl.java @@ -76,10 +76,15 @@ public class ToolServiceImpl extends ServiceImpl implements To } @Override - public Tool getOneToolByToolNo(String tool) { + public Tool getOneToolByToolNo(Tool tool) { String site = CommonMethods.getSite(); - String handle = HandleEnum.TOOL.getHandle(site, tool); - return toolMapper.selectById(handle); + String handle = HandleEnum.TOOL.getHandle(site, tool.getTool()); + tool.setHandle(handle); + List tools = toolService.selectList(tool); + if (tools.size() == 1){ + return tools.get(0); + } + throw BusinessException.build("查询失败!"); } @Override @@ -100,7 +105,6 @@ public class ToolServiceImpl extends ServiceImpl implements To @Override public String saveOrUpdateToolByImport(JSONObject json, String sqlType) { String user = CommonMethods.getUser(); - Tool target = new Tool(); String site = json.getString("site").trim(); String tool = json.getString("tool").trim(); String handle = HandleEnum.TOOL.getHandle(site, tool).trim(); @@ -108,9 +112,13 @@ public class ToolServiceImpl extends ServiceImpl implements To String specification = json.getString("specification").trim(); String brand = json.getString("brand").trim(); String remark = json.getString("remark").trim(); - if (tool==null || tool != ""){ + if (tool == null || tool.equals("")){ return "刀具编号不能为空"; + //throw BusinessException.build("刀具编号不能为空!"); } + Tool target = new Tool(); + target.setStatus(Constants.TOOL_STATUS_Y); + target.setSite(site); switch (sqlType){ case "insert": target.setTool(tool); @@ -121,10 +129,11 @@ public class ToolServiceImpl extends ServiceImpl implements To target.setCreateUser(user); target.setCreatedDateTime(LocalDateTime.now()); toolMapper.insert(target); - break; + return "新增一条数据成功"; case "update": Tool byId = toolMapper.selectById(handle); if (byId == null){ + //throw BusinessException.build("更新失败,刀具编号不存在!"); return "更新失败,刀具编号不存在!"; } if (description != ""){ @@ -140,40 +149,39 @@ public class ToolServiceImpl extends ServiceImpl implements To byId.setRemark(remark); } toolMapper.updateById(byId); - break; + return "更新一条数据成功"; case "both": Tool selId = toolMapper.selectById(handle); - if (selId != null){ - if (description != ""){ - selId.setDescription(description); - } - if (specification != ""){ - selId.setSpecification(specification); - } - if (brand != ""){ - selId.setBrand(brand); - } - if (remark != ""){ - selId.setRemark(remark); - } - selId.setModifyUser(user); - selId.setModifiedDateTime(LocalDateTime.now()); - toolMapper.updateById(selId); - break; + if (selId == null){ + target.setTool(tool); + target.setHandle(handle); + target.setDescription(description); + target.setSpecification(specification); + target.setBrand(brand); + target.setCreateUser(user); + target.setCreatedDateTime(LocalDateTime.now()); + toolMapper.insert(target); + return "新增一条数据成功"; } - target.setTool(tool); - target.setHandle(handle); - target.setDescription(description); - target.setSpecification(specification); - target.setBrand(brand); - target.setCreateUser(user); - target.setCreatedDateTime(LocalDateTime.now()); - toolMapper.insert(target); - break; + if (description != ""){ + selId.setDescription(description); + } + if (specification != ""){ + selId.setSpecification(specification); + } + if (brand != ""){ + selId.setBrand(brand); + } + if (remark != ""){ + selId.setRemark(remark); + } + selId.setModifyUser(user); + selId.setModifiedDateTime(LocalDateTime.now()); + toolMapper.updateById(selId); + return "更新一条数据成功"; default: - return "更新/导入类型未找到!"; + throw BusinessException.build("更新/导入类型未找到!"); } - return "导入成功"; } diff --git a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/ToolHandler.java b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/ToolHandler.java index 61174ce6..72a60aae 100644 --- a/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/ToolHandler.java +++ b/dataimport/src/main/java/com/foreverwin/mesnac/dataimport/handler/ToolHandler.java @@ -34,10 +34,10 @@ public class ToolHandler extends BaseHandler { buffer.append(e.getMessage() + "\n"); } - if (buffer.length() > 0) { + /*if (buffer.length() > 0) { buffer.insert(0, I18nUtil.getI18nText("MaterData.import.Summary", new Object[]{row + failedNumber[0], row, failedNumber[0]}) + "\n"); throw BusinessException.build(buffer.toString()); - } + }*/ buffer.insert(0, I18nUtil.getI18nText("MaterData.import.Summary", new Object[]{row + failedNumber[0], row, failedNumber[0]}) + "\n"); return buffer.toString(); @@ -61,7 +61,12 @@ public class ToolHandler extends BaseHandler { jsonObject.put("site", site); try { String msg = toolService.saveOrUpdateToolByImport(jsonObject, mode); - buffer.append("第" + index + "行:" + msg + "\n"); + if (msg.indexOf("成功") == -1){ + buffer.append("第" + index + "行【失败】:" + msg + "\n"); + failedNumber[0]++; + return 0; + } + buffer.append("第" + index + "行【成功】:" + msg + "\n"); return 1; } catch (Exception e) { params[2] = e.getMessage();