From e2775bc7d0107411ee124afe96a108879a639cab Mon Sep 17 00:00:00 2001 From: Leon <3066758958@qq.com> Date: Tue, 29 Jun 2021 16:19:38 +0800 Subject: [PATCH] =?UTF-8?q?SFC=E8=B7=9F=E8=B8=AA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/CustomFieldConstant.java | 37 ++---- .../mesnac/common/enums/HandleEnum.java | 2 + .../service/impl/InterfaceServiceImpl.java | 2 +- .../service/impl/SfcDataServiceImpl.java | 58 --------- .../controller/SfcDataController.java | 7 +- .../production}/mapper/SfcDataMapper.java | 4 +- .../mesnac/production}/model/SfcData.java | 4 +- .../production}/service/SfcDataService.java | 6 +- .../service/impl/SfcDataServiceImpl.java | 114 ++++++++++++++++++ .../main/resources/mapper/SfcDataMapper.xml | 8 +- 10 files changed, 144 insertions(+), 98 deletions(-) delete mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcDataServiceImpl.java rename {meapi/src/main/java/com/foreverwin/mesnac/meapi => production/src/main/java/com/foreverwin/mesnac/production}/mapper/SfcDataMapper.java (71%) rename {meapi/src/main/java/com/foreverwin/mesnac/meapi => production/src/main/java/com/foreverwin/mesnac/production}/model/SfcData.java (96%) rename {meapi/src/main/java/com/foreverwin/mesnac/meapi => production/src/main/java/com/foreverwin/mesnac/production}/service/SfcDataService.java (77%) create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcDataServiceImpl.java rename {meapi => production}/src/main/resources/mapper/SfcDataMapper.xml (98%) 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 bf1b995b..302e2a9d 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,14 +7,7 @@ package com.foreverwin.mesnac.common.constant; * @since 2021-05-12 */ public class CustomFieldConstant { - /** - * 物料 - */ - public static final String ITEM_CUSTOM_FIELD_ACCESSORY_TYPE = "ACCESSORY_TYPE";//辅料类型 - /** - * 工单 - */ /** * 资源 @@ -26,34 +19,30 @@ public class CustomFieldConstant { */ public static final String WORK_CENTER_CUSTOM_FIELD_PROCESS_CONTROL= "PROCESS_CONTROL";//工控程序 - /** - * 物料清单 - */ - public static final String BOM_COMPONENT_CUSTOM_FIELD_STEP_ID = "STEP_ID";//步骤 - - - //工厂 - public static String SO_FACTORY = "FACTORY"; + public static final String SO_FACTORY = "FACTORY"; //工作指令 - public static String SO_WORK_ORDER = "WORK_ORDER"; + public static final String SO_WORK_ORDER = "WORK_ORDER"; //项目号 - public static String SO_ITEM_NUMER = "ITEM_NUMBER"; + public static final String SO_ITEM_NUMBER = "ITEM_NUMBER"; //工单类型 - public static String SO_SHOP_ORDER_TYPE = "SHOP_ORDER_TYPE"; + public static final String SO_SHOP_ORDER_TYPE = "SHOP_ORDER_TYPE"; //产品类型 - public static String SO_PRODUCT_CATEGORY = "PRODUCT_CATEGORY"; + public static final String SO_PRODUCT_CATEGORY = "PRODUCT_CATEGORY"; //工单备注 - public static String SO_COMMENTS = "COMMENTS"; + public static final String SO_COMMENTS = "COMMENTS"; //是否开始生产 - public static String SO_START_PRODUCT = "START_PRODUCT"; + public static final String SO_START_PRODUCT = "START_PRODUCT"; //************************************************************************************** - public static String ROUTER_OP_PROD_TIME = "PROD_TIME"; - public static String ROUTER_OP_OUT_SOURCE = "OUT_SOURCE"; + public static final String ROUTER_OP_PROD_TIME = "PROD_TIME"; + public static final String ROUTER_OP_OUT_SOURCE = "OUT_SOURCE"; //************************************************************************************** - public static String BOM_COM_STEP_ID = "STEP_ID"; + public static final String BOM_COM_STEP_ID = "STEP_ID"; + + + public static final String SFC_DATA_LOCATION = "LOCATION"; } 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 7f84e4c9..633abb1a 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 @@ -26,6 +26,8 @@ public enum HandleEnum { /**车间作业控制*/ SFC_BOM( "SFCBOMBO:", "SFCBOMBO:{0}" ), + SFC_DATA( "SFCDataBO:", "SFCDataBO:{0},{1}" ), + /**物料*/ ITEM( "ItemBO:", "ItemBO:{0},{1},{2}" ), diff --git a/integration/src/main/java/com/foreverwin/mesnac/integration/service/impl/InterfaceServiceImpl.java b/integration/src/main/java/com/foreverwin/mesnac/integration/service/impl/InterfaceServiceImpl.java index cd52a844..ad562bb6 100644 --- a/integration/src/main/java/com/foreverwin/mesnac/integration/service/impl/InterfaceServiceImpl.java +++ b/integration/src/main/java/com/foreverwin/mesnac/integration/service/impl/InterfaceServiceImpl.java @@ -463,7 +463,7 @@ public class InterfaceServiceImpl implements InterfaceService { if (StringUtil.notBlank(shopOrderSyncRequest.getITEM_NUMBER())) { customFields = new CustomFields(); customFields.setHandle(shopOrderBo); - customFields.setAttribute(CustomFieldConstant.SO_ITEM_NUMER); + customFields.setAttribute(CustomFieldConstant.SO_ITEM_NUMBER); customFields.setValue(shopOrderSyncRequest.getITEM_NUMBER()); customFieldsList.add(customFields); } diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcDataServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcDataServiceImpl.java deleted file mode 100644 index 5c14c8ad..00000000 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcDataServiceImpl.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.foreverwin.mesnac.meapi.service.impl; - -import com.foreverwin.mesnac.meapi.service.SfcService; -import com.foreverwin.mesnac.meapi.service.WorkCenterService; -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.meapi.model.SfcData; -import com.foreverwin.mesnac.meapi.mapper.SfcDataMapper; -import com.foreverwin.mesnac.meapi.service.SfcDataService; -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; -import java.util.logging.Handler; - -/** - *

- * 服务实现类 - *

- * - * @author Leon.L - * @since 2021-06-29 - */ -@Service -@Transactional(rollbackFor = Exception.class) -public class SfcDataServiceImpl extends ServiceImpl implements SfcDataService { - - @Autowired - private SfcService sfcService; - @Autowired - private SfcDataMapper sfcDataMapper; - @Autowired - private WorkCenterService workCenterService; - - @Override - public IPage selectPage(FrontPage frontPage, SfcData sfcData) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.setEntity(sfcData); - return super.page(frontPage.getPagePlus(), queryWrapper); - } - - @Override - public List selectList(SfcData sfcData) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.setEntity(sfcData); - return super.list(queryWrapper); - } - - @Override - public void saveSfcLocation(String site, String sfc, String location) { - - } - - -} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcDataController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcDataController.java index 971159cf..bf567f09 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcDataController.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcDataController.java @@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import com.foreverwin.mesnac.meapi.service.SfcDataService; -import com.foreverwin.mesnac.meapi.model.SfcData; +import com.foreverwin.mesnac.production.service.SfcDataService; +import com.foreverwin.mesnac.production.model.SfcData; import java.util.List; /** @@ -135,7 +135,8 @@ public class SfcDataController { } String site = CommonMethods.getSite(); - sfcDataService.saveSfcLocation(site, sfc, location); + String user = CommonMethods.getUser(); + sfcDataService.saveSfcLocation(site, user, sfc, location); } catch (Exception e) { return R.failed(e.getMessage()); } diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcDataMapper.java b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcDataMapper.java similarity index 71% rename from meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcDataMapper.java rename to production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcDataMapper.java index d486be66..556c728c 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcDataMapper.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcDataMapper.java @@ -1,6 +1,6 @@ -package com.foreverwin.mesnac.meapi.mapper; +package com.foreverwin.mesnac.production.mapper; -import com.foreverwin.mesnac.meapi.model.SfcData; +import com.foreverwin.mesnac.production.model.SfcData; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springframework.stereotype.Repository; diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcData.java similarity index 96% rename from meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java rename to production/src/main/java/com/foreverwin/mesnac/production/model/SfcData.java index 7e65fd09..11e77b50 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcData.java @@ -1,4 +1,4 @@ -package com.foreverwin.mesnac.meapi.model; +package com.foreverwin.mesnac.production.model; import java.io.Serializable; @@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; -import java.io.Serializable; -import com.baomidou.mybatisplus.annotation.IdType; /** *

diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcDataService.java similarity index 77% rename from meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java rename to production/src/main/java/com/foreverwin/mesnac/production/service/SfcDataService.java index 05366856..1b0669d6 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcDataService.java @@ -1,7 +1,7 @@ -package com.foreverwin.mesnac.meapi.service; +package com.foreverwin.mesnac.production.service; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.foreverwin.mesnac.meapi.model.SfcData; +import com.foreverwin.mesnac.production.model.SfcData; import com.baomidou.mybatisplus.extension.service.IService; import com.foreverwin.modular.core.util.FrontPage; @@ -33,5 +33,5 @@ public interface SfcDataService extends IService { * @param sfc * @param location */ - void saveSfcLocation(String site, String sfc, String location); + void saveSfcLocation(String site, String user, String sfc, String location); } \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcDataServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcDataServiceImpl.java new file mode 100644 index 00000000..d41a2dcc --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcDataServiceImpl.java @@ -0,0 +1,114 @@ +package com.foreverwin.mesnac.production.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.foreverwin.mesnac.common.constant.CustomFieldConstant; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.meapi.model.Sfc; +import com.foreverwin.mesnac.meapi.model.WorkCenter; +import com.foreverwin.mesnac.meapi.service.SfcService; +import com.foreverwin.mesnac.meapi.service.WorkCenterService; +import com.foreverwin.modular.core.exception.BusinessException; +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.production.model.SfcData; +import com.foreverwin.mesnac.production.mapper.SfcDataMapper; +import com.foreverwin.mesnac.production.service.SfcDataService; +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.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

+ * 服务实现类 + *

+ * + * @author Leon.L + * @since 2021-06-29 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class SfcDataServiceImpl extends ServiceImpl implements SfcDataService { + + @Autowired + private SfcService sfcService; + @Autowired + private SfcDataMapper sfcDataMapper; + @Autowired + private WorkCenterService workCenterService; + + @Override + public IPage selectPage(FrontPage frontPage, SfcData sfcData) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcData); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(SfcData sfcData) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcData); + return super.list(queryWrapper); + } + + @Override + public void saveSfcLocation(String site, String user, String sfc, String location) { + String sfcBo = HandleEnum.SFC.getHandle(site, sfc); + Sfc sfcModel = sfcService.getById(sfcBo); + if (sfcModel == null) { + throw BusinessException.build("SFC【" +sfc+"】不存在"); + } + + //位置所录入的字符串“_”前的字符为车间代码 + if (!location.contains("_")) { + throw BusinessException.build("输入的位置【" +location+ "】格式不正确:必须包含符号【_】,并且符号之前必须是车间代码"); + } + String workCenterBo = HandleEnum.WORK_CENTER.getHandle(site, location.split("_")[0]); + WorkCenter workCenterModel = workCenterService.getById(workCenterBo); + if (workCenterModel == null || !"LEVEL4".equals(workCenterModel.getWcCategory())) { + throw BusinessException.build("位置【" +location+"】中符号【_】之前的不是车间代码"); + } + + LocalDateTime nowDate = LocalDateTime.now(); + //查询是否存在 + Map map = new HashMap<>(); + map.put(SfcData.SFC_BO, sfcBo); + map.put(SfcData.DATA_FIELD, CustomFieldConstant.SFC_DATA_LOCATION); + List sfcDataList = sfcDataMapper.selectByMap(map); + + if (sfcDataList == null || sfcDataList.size() <= 0) { + //记录位置到SFC + SfcData sfcData = new SfcData(); + sfcData.setHandle(HandleEnum.SFC_DATA.getHandle(site, sfcBo, CustomFieldConstant.SFC_DATA_LOCATION)); + sfcData.setSfcBo(sfcBo); + sfcData.setDataField(CustomFieldConstant.SFC_DATA_LOCATION); + sfcData.setDataAttr(location); + sfcData.setDateTime(nowDate); + sfcData.setUserBo(HandleEnum.USER.getHandle(site, user)); + sfcData.setCreatedDateTime(nowDate); + sfcDataMapper.insert(sfcData); + } else { + //更新位置到SFC + SfcData sfcData = sfcDataList.get(0); + sfcData.setDataAttr(location); + sfcData.setDateTime(nowDate); + sfcData.setModifiedDateTime(nowDate); + + Wrapper updateWrapper = new UpdateWrapper<>(); + SfcData tjSfcData = new SfcData(); + tjSfcData.setSfcBo(sfcBo); + tjSfcData.setDataField(CustomFieldConstant.SFC_DATA_LOCATION); + ((UpdateWrapper) updateWrapper).setEntity(tjSfcData); + sfcDataMapper.update(sfcData, updateWrapper); + } + } + + +} \ No newline at end of file diff --git a/meapi/src/main/resources/mapper/SfcDataMapper.xml b/production/src/main/resources/mapper/SfcDataMapper.xml similarity index 98% rename from meapi/src/main/resources/mapper/SfcDataMapper.xml rename to production/src/main/resources/mapper/SfcDataMapper.xml index 1d330bb8..5c4a147f 100644 --- a/meapi/src/main/resources/mapper/SfcDataMapper.xml +++ b/production/src/main/resources/mapper/SfcDataMapper.xml @@ -1,9 +1,9 @@ - + - + @@ -208,7 +208,7 @@ - + INSERT INTO SFC_DATA HANDLE, @@ -232,7 +232,7 @@ - + INSERT INTO SFC_DATA