From b5932fdeb056d60f099c5b3f7563f0062f01e5d9 Mon Sep 17 00:00:00 2001 From: Leon <3066758958@qq.com> Date: Tue, 29 Jun 2021 15:23:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E4=B8=BB=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MobileWorkStationController.java | 42 +++ .../mesnac/common/enums/HandleEnum.java | 3 + .../mapper/MobileWorkStationMapper.java | 16 + .../mesnac/common/model/ActivityOption.java | 34 ++ .../common/model/MobileWorkStationData.java | 156 ++++++++ .../service/MobileWorkStationService.java | 20 ++ .../impl/MobileWorkStationServiceImpl.java | 48 +++ .../mesnac/common/util/ExcelUtils.java | 10 +- .../mapper/MobileWorkStationMapper.xml | 56 +++ .../service/impl/SfcDispatchServiceImpl.java | 44 ++- .../minth/generator/GeneratorApplication.java | 6 +- .../meapi/controller/SfcController.java | 22 ++ .../foreverwin/mesnac/meapi/dto/SfcDto.java | 58 ++- .../mesnac/meapi/mapper/SfcDataMapper.java | 18 + .../mesnac/meapi/mapper/SfcMapper.java | 4 + .../mesnac/meapi/model/SfcData.java | 143 ++++++++ .../mesnac/meapi/service/SfcDataService.java | 37 ++ .../mesnac/meapi/service/SfcService.java | 10 + .../service/impl/SfcDataServiceImpl.java | 58 +++ .../meapi/service/impl/SfcServiceImpl.java | 6 + .../main/resources/mapper/SfcDataMapper.xml | 332 ++++++++++++++++++ meapi/src/main/resources/mapper/SfcMapper.xml | 27 ++ .../controller/SfcDataController.java | 145 ++++++++ 23 files changed, 1279 insertions(+), 16 deletions(-) create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/controller/MobileWorkStationController.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/mapper/MobileWorkStationMapper.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/model/ActivityOption.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/model/MobileWorkStationData.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/service/MobileWorkStationService.java create mode 100644 common/src/main/java/com/foreverwin/mesnac/common/service/impl/MobileWorkStationServiceImpl.java create mode 100644 common/src/main/resources/mapper/MobileWorkStationMapper.xml create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/mapper/SfcDataMapper.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java create mode 100644 meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcDataServiceImpl.java create mode 100644 meapi/src/main/resources/mapper/SfcDataMapper.xml create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/controller/SfcDataController.java diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/MobileWorkStationController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/MobileWorkStationController.java new file mode 100644 index 00000000..9cc7eb63 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/MobileWorkStationController.java @@ -0,0 +1,42 @@ +package com.foreverwin.mesnac.common.controller; + +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.model.MobileWorkStationData; +import com.foreverwin.mesnac.common.service.MobileWorkStationService; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * + * @author Syngna + * @since 2020-01-04 + */ +@RestController +@RequestMapping("/mobileWorkStations") +public class MobileWorkStationController { + + @Autowired + public MobileWorkStationService mobileWorkStationService; + + @GetMapping("listMobileWorkStationApplication") + public R listMobileWorkStationApplication(String workStation) { + + List result; + try { + String site = CommonMethods.getSite(); + String user = CommonMethods.getUser(); + String userBo = HandleEnum.USER.getHandle(site, user); + result = mobileWorkStationService.listMobileWorkStationApplication(site, userBo, workStation); + } + catch (Exception e) { + return R.failed(e.getMessage()); + } + return R.ok(result); + } +} \ 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 bb699136..7f84e4c9 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}" ), + /**用户**/ + USER("UserBO:", "UserBO:{0},{1}"), + /**物料清单**/ BOM("BOMBO:","BOMBO:{0},{1},{2},{3}"), diff --git a/common/src/main/java/com/foreverwin/mesnac/common/mapper/MobileWorkStationMapper.java b/common/src/main/java/com/foreverwin/mesnac/common/mapper/MobileWorkStationMapper.java new file mode 100644 index 00000000..9e052197 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/mapper/MobileWorkStationMapper.java @@ -0,0 +1,16 @@ +package com.foreverwin.mesnac.common.mapper; + +import com.foreverwin.mesnac.common.model.ActivityOption; +import com.foreverwin.mesnac.common.model.MobileWorkStationData; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface MobileWorkStationMapper { + + List selectActivityOptionList(@Param("activityBoList") List activityBoList); + + List selectMobileWorkStationList(@Param("site") String site, @Param("userBo") String userBo, @Param("workStation") String workStation); +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/ActivityOption.java b/common/src/main/java/com/foreverwin/mesnac/common/model/ActivityOption.java new file mode 100644 index 00000000..96c7193f --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/ActivityOption.java @@ -0,0 +1,34 @@ +package com.foreverwin.mesnac.common.model; + +public class ActivityOption { + + private String activity; + + private String key; + + private String value; + + public String getActivity() { + return activity; + } + + public void setActivity(String activity) { + this.activity = activity; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/MobileWorkStationData.java b/common/src/main/java/com/foreverwin/mesnac/common/model/MobileWorkStationData.java new file mode 100644 index 00000000..0c85d251 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/MobileWorkStationData.java @@ -0,0 +1,156 @@ +package com.foreverwin.mesnac.common.model; + +import java.util.List; + +public class MobileWorkStationData { + + private String workStationBo; + + private String canChangeOperation; + + private String canChangeResource; + + private String defaultOperationBo; + + private String defaultResourceBo; + + private String mainInputPrompt; + + private String sequence; + + private String buttonId; + + private String buttonSize; + + private String label; + + private String imageIcon; + + private String activityBo; + + private String activity; + + private String classOrProgram; + + private List activityOptionList; + + public String getWorkStationBo() { + return workStationBo; + } + + public void setWorkStationBo(String workStationBo) { + this.workStationBo = workStationBo; + } + + public String getCanChangeOperation() { + return canChangeOperation; + } + + public void setCanChangeOperation(String canChangeOperation) { + this.canChangeOperation = canChangeOperation; + } + + public String getCanChangeResource() { + return canChangeResource; + } + + public void setCanChangeResource(String canChangeResource) { + this.canChangeResource = canChangeResource; + } + + public String getDefaultOperationBo() { + return defaultOperationBo; + } + + public void setDefaultOperationBo(String defaultOperationBo) { + this.defaultOperationBo = defaultOperationBo; + } + + public String getDefaultResourceBo() { + return defaultResourceBo; + } + + public void setDefaultResourceBo(String defaultResourceBo) { + this.defaultResourceBo = defaultResourceBo; + } + + public String getMainInputPrompt() { + return mainInputPrompt; + } + + public void setMainInputPrompt(String mainInputPrompt) { + this.mainInputPrompt = mainInputPrompt; + } + + public String getSequence() { + return sequence; + } + + public void setSequence(String sequence) { + this.sequence = sequence; + } + + public String getButtonId() { + return buttonId; + } + + public void setButtonId(String buttonId) { + this.buttonId = buttonId; + } + + public String getButtonSize() { + return buttonSize; + } + + public void setButtonSize(String buttonSize) { + this.buttonSize = buttonSize; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getImageIcon() { + return imageIcon; + } + + public void setImageIcon(String imageIcon) { + this.imageIcon = imageIcon; + } + + public String getActivityBo() { + return activityBo; + } + + public void setActivityBo(String activityBo) { + this.activityBo = activityBo; + } + + public String getActivity() { + return activity; + } + + public void setActivity(String activity) { + this.activity = activity; + } + + public String getClassOrProgram() { + return classOrProgram; + } + + public void setClassOrProgram(String classOrProgram) { + this.classOrProgram = classOrProgram; + } + + public List getActivityOptionList() { + return activityOptionList; + } + + public void setActivityOptionList(List activityOptionList) { + this.activityOptionList = activityOptionList; + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/MobileWorkStationService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/MobileWorkStationService.java new file mode 100644 index 00000000..20715d9c --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/MobileWorkStationService.java @@ -0,0 +1,20 @@ +package com.foreverwin.mesnac.common.service; + + + +import com.foreverwin.mesnac.common.model.MobileWorkStationData; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Syngna + * @since 2019-05-30 + */ +public interface MobileWorkStationService { + + List listMobileWorkStationApplication(String site, String userBo, String workStation); +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/MobileWorkStationServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/MobileWorkStationServiceImpl.java new file mode 100644 index 00000000..cdcce445 --- /dev/null +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/MobileWorkStationServiceImpl.java @@ -0,0 +1,48 @@ +package com.foreverwin.mesnac.common.service.impl; + +import com.foreverwin.mesnac.common.mapper.MobileWorkStationMapper; +import com.foreverwin.mesnac.common.model.ActivityOption; +import com.foreverwin.mesnac.common.model.MobileWorkStationData; +import com.foreverwin.mesnac.common.service.MobileWorkStationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 移动维护服务实现类 + *

+ * + * @author Syngna + * @since 2020-01-04 + */ +@Service +public class MobileWorkStationServiceImpl implements MobileWorkStationService { + + @Autowired + private MobileWorkStationMapper mobileWorkStationMapper; + + @Override + public List listMobileWorkStationApplication(String site, String userBo, String workStation) { + List workStationDataList = mobileWorkStationMapper.selectMobileWorkStationList(site, userBo, workStation); + if(workStationDataList == null || workStationDataList.size() == 0) { + return new ArrayList<>(); + } + List activityList = workStationDataList.stream().map(MobileWorkStationData::getActivityBo).collect(Collectors.toList()); + List activityOptionList = mobileWorkStationMapper.selectActivityOptionList(activityList); + for(MobileWorkStationData mobileWorkStationData : workStationDataList) { + if(mobileWorkStationData.getActivityOptionList() == null) { + mobileWorkStationData.setActivityOptionList(new ArrayList<>()); + } + for(ActivityOption activityOption: activityOptionList) { + if(activityOption.getActivity().equals(mobileWorkStationData.getActivity())) { + mobileWorkStationData.getActivityOptionList().add(activityOption); + } + } + } + return workStationDataList; + } +} \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/util/ExcelUtils.java b/common/src/main/java/com/foreverwin/mesnac/common/util/ExcelUtils.java index b55ccdf2..c483f6fa 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/util/ExcelUtils.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/util/ExcelUtils.java @@ -2,6 +2,7 @@ package com.foreverwin.mesnac.common.util; import com.foreverwin.mesnac.common.model.ExcelColumn; import com.foreverwin.modular.core.exception.BusinessException; +import org.apache.commons.fileupload.FileItem; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.CharUtils; import org.apache.commons.lang.StringUtils; @@ -40,12 +41,17 @@ public class ExcelUtils { private final static String EXCEL2003 = "xls"; private final static String EXCEL2007 = "xlsx"; - public static List readExcel(String fileType, Class tClass, MultipartFile multipartFile){ + public static List readExcel(String fileType, Class tClass, MultipartFile multipartFile, FileItem fileItem){ Workbook workbook = null; List dataList = new ArrayList<>(); try { - InputStream inputStream = multipartFile.getInputStream(); + InputStream inputStream = null; + if (multipartFile != null && !multipartFile.isEmpty()) { + inputStream = multipartFile.getInputStream(); + } else { + inputStream = fileItem.getInputStream(); + } //分析文件格式 if (EXCEL2003.equals(fileType)) { diff --git a/common/src/main/resources/mapper/MobileWorkStationMapper.xml b/common/src/main/resources/mapper/MobileWorkStationMapper.xml new file mode 100644 index 00000000..dfb3859e --- /dev/null +++ b/common/src/main/resources/mapper/MobileWorkStationMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java index e3ea8dc8..9561b9ce 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java @@ -17,11 +17,13 @@ import com.foreverwin.mesnac.dispatch.service.UserResourceService; import com.foreverwin.mesnac.meapi.service.ResrceService; import com.foreverwin.mesnac.meapi.util.StringUtils; import com.foreverwin.modular.core.exception.BusinessException; +import org.apache.commons.fileupload.FileItem; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; import java.time.LocalDateTime; @@ -38,7 +40,7 @@ import java.util.stream.Collectors; * @author Leon.L * @since 2021-06-02 */ -@Service +@Service("sfcDispatchService") @Transactional(rollbackFor = Exception.class) public class SfcDispatchServiceImpl extends ServiceImpl implements SfcDispatchService { @@ -173,7 +175,7 @@ public class SfcDispatchServiceImpl extends ServiceImpl sfcDispatchList; try { - sfcDispatchList = ExcelUtils.readExcel(fileType, SfcDispatchDto.class, multipartFile); + sfcDispatchList = ExcelUtils.readExcel(fileType, SfcDispatchDto.class, multipartFile, null); } finally { if (inputStream != null){ try { @@ -190,6 +192,36 @@ public class SfcDispatchServiceImpl extends ServiceImpl sfcDispatchList; + try { + sfcDispatchList = ExcelUtils.readExcel(fileType, SfcDispatchDto.class, null, fileItem); + } finally { + if (inputStream != null){ + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + if (sfcDispatchList == null || sfcDispatchList.size() <= 0) { + throw BusinessException.build("上传的Excel没有数据,或者数据格式不正确"); + } + + + //调用业务处理逻辑 + StringBuffer message = new StringBuffer(); + this.sfcDispatch(site, user, DispatchStatusEnum.IMPORT.getCode(), message, sfcDispatchList); + + return message.toString(); + } + /** @@ -264,14 +296,8 @@ public class SfcDispatchServiceImpl extends ServiceImpl + * Mapper 接口 + *

+ * + * @author Leon.L + * @since 2021-06-29 + */ +@Repository +public interface SfcDataMapper extends BaseMapper { + +} \ No newline at end of file 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 29d76ead..42dfb822 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 @@ -1,7 +1,9 @@ package com.foreverwin.mesnac.meapi.mapper; +import com.foreverwin.mesnac.meapi.dto.SfcDto; import com.foreverwin.mesnac.meapi.model.Sfc; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import java.util.List; @@ -20,4 +22,6 @@ public interface SfcMapper extends BaseMapper { * 获取资源上活动的sfc */ List getSfcListByResrceBO(String resrceBO); + + SfcDto findSfcData(@Param("site") String site, @Param("sfc") String sfc); } \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java new file mode 100644 index 00000000..7e65fd09 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/model/SfcData.java @@ -0,0 +1,143 @@ +package com.foreverwin.mesnac.meapi.model; + +import java.io.Serializable; + +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; + +/** + *

+ * + *

+ * + * @author Leon.L + * @since 2021-06-29 + */ + +@TableName("SFC_DATA") +public class SfcData extends Model { + + private static final long serialVersionUID = 1L; + + @TableField("HANDLE") + private String handle; + @TableField("SFC_BO") + private String sfcBo; + @TableField("DATE_TIME") + private LocalDateTime dateTime; + @TableField("DATA_FIELD") + private String dataField; + @TableField("DATA_ATTR") + private String dataAttr; + @TableField("USER_BO") + private String userBo; + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + @TableField("MODIFIED_DATE_TIME") + private LocalDateTime modifiedDateTime; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getSfcBo() { + return sfcBo; + } + + public void setSfcBo(String sfcBo) { + this.sfcBo = sfcBo; + } + + public LocalDateTime getDateTime() { + return dateTime; + } + + public void setDateTime(LocalDateTime dateTime) { + this.dateTime = dateTime; + } + + public String getDataField() { + return dataField; + } + + public void setDataField(String dataField) { + this.dataField = dataField; + } + + public String getDataAttr() { + return dataAttr; + } + + public void setDataAttr(String dataAttr) { + this.dataAttr = dataAttr; + } + + public String getUserBo() { + return userBo; + } + + public void setUserBo(String userBo) { + this.userBo = userBo; + } + + 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 static final String HANDLE = "HANDLE"; + + public static final String SFC_BO = "SFC_BO"; + + public static final String DATE_TIME = "DATE_TIME"; + + public static final String DATA_FIELD = "DATA_FIELD"; + + public static final String DATA_ATTR = "DATA_ATTR"; + + public static final String USER_BO = "USER_BO"; + + public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + + public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "SfcData{" + + "handle = " + handle + + ", sfcBo = " + sfcBo + + ", dateTime = " + dateTime + + ", dataField = " + dataField + + ", dataAttr = " + dataAttr + + ", userBo = " + userBo + + ", createdDateTime = " + createdDateTime + + ", modifiedDateTime = " + modifiedDateTime + + "}"; + } +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java new file mode 100644 index 00000000..05366856 --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcDataService.java @@ -0,0 +1,37 @@ +package com.foreverwin.mesnac.meapi.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.meapi.model.SfcData; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author Leon.L + * @since 2021-06-29 + */ +public interface SfcDataService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, SfcData sfcData); + + List selectList(SfcData sfcData); + + /** + * 保存SFC的跟追位置 + * + * @param site + * @param sfc + * @param location + */ + void saveSfcLocation(String site, String sfc, String location); +} \ No newline at end of file diff --git a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcService.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcService.java index 7fec1cc5..5a7f5ac7 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcService.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/SfcService.java @@ -1,6 +1,7 @@ package com.foreverwin.mesnac.meapi.service; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.meapi.dto.SfcDto; import com.foreverwin.mesnac.meapi.model.Sfc; import com.baomidou.mybatisplus.extension.service.IService; import com.foreverwin.modular.core.util.FrontPage; @@ -35,4 +36,13 @@ public interface SfcService extends IService { * 获取资源上活动的sfc */ List getSfcListByResrceBO(String resrceBO); + + /** + * 查询生产批次的基本信息 + * + * @param site + * @param sfc + * @return + */ + SfcDto findSfcData(String site, String sfc); } \ No newline at end of file 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 new file mode 100644 index 00000000..5c14c8ad --- /dev/null +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcDataServiceImpl.java @@ -0,0 +1,58 @@ +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/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcServiceImpl.java b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcServiceImpl.java index 52e18561..5871376d 100644 --- a/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcServiceImpl.java +++ b/meapi/src/main/java/com/foreverwin/mesnac/meapi/service/impl/SfcServiceImpl.java @@ -1,5 +1,6 @@ package com.foreverwin.mesnac.meapi.service.impl; +import com.foreverwin.mesnac.meapi.dto.SfcDto; import com.foreverwin.modular.core.util.FrontPage; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -57,5 +58,10 @@ public class SfcServiceImpl extends ServiceImpl implements SfcSe return sfc; } + @Override + public SfcDto findSfcData(String site, String sfc) { + return sfcMapper.findSfcData(site, sfc); + } + } \ No newline at end of file diff --git a/meapi/src/main/resources/mapper/SfcDataMapper.xml b/meapi/src/main/resources/mapper/SfcDataMapper.xml new file mode 100644 index 00000000..1d330bb8 --- /dev/null +++ b/meapi/src/main/resources/mapper/SfcDataMapper.xml @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + HANDLE, SFC_BO, DATE_TIME, DATA_FIELD, DATA_ATTR, USER_BO, CREATED_DATE_TIME, MODIFIED_DATE_TIME + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO SFC_DATA + + HANDLE, + SFC_BO, + DATE_TIME, + DATA_FIELD, + DATA_ATTR, + USER_BO, + CREATED_DATE_TIME, + MODIFIED_DATE_TIME, + VALUES + + #{handle}, + #{sfcBo}, + #{dateTime}, + #{dataField}, + #{dataAttr}, + #{userBo}, + #{createdDateTime}, + #{modifiedDateTime}, + + + + + INSERT INTO SFC_DATA + + + VALUES + + #{handle}, + #{sfcBo}, + #{dateTime}, + #{dataField}, + #{dataAttr}, + #{userBo}, + #{createdDateTime}, + #{modifiedDateTime}, + + + + + + + + + + UPDATE SFC_DATA + HANDLE=#{et.handle}, + SFC_BO=#{et.sfcBo}, + DATE_TIME=#{et.dateTime}, + DATA_FIELD=#{et.dataField}, + DATA_ATTR=#{et.dataAttr}, + USER_BO=#{et.userBo}, + CREATED_DATE_TIME=#{et.createdDateTime}, + MODIFIED_DATE_TIME=#{et.modifiedDateTime}, + + + + + HANDLE=#{ew.entity.handle} + AND SFC_BO=#{ew.entity.sfcBo} + AND DATE_TIME=#{ew.entity.dateTime} + AND DATA_FIELD=#{ew.entity.dataField} + AND DATA_ATTR=#{ew.entity.dataAttr} + AND USER_BO=#{ew.entity.userBo} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + DELETE FROM SFC_DATA + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM SFC_DATA + + + + + HANDLE=#{ew.entity.handle} + + AND SFC_BO=#{ew.entity.sfcBo} + AND DATE_TIME=#{ew.entity.dateTime} + AND DATA_FIELD=#{ew.entity.dataField} + AND DATA_ATTR=#{ew.entity.dataAttr} + AND USER_BO=#{ew.entity.userBo} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + AND MODIFIED_DATE_TIME=#{ew.entity.modifiedDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + + diff --git a/meapi/src/main/resources/mapper/SfcMapper.xml b/meapi/src/main/resources/mapper/SfcMapper.xml index e765d0cf..e61d6e16 100644 --- a/meapi/src/main/resources/mapper/SfcMapper.xml +++ b/meapi/src/main/resources/mapper/SfcMapper.xml @@ -35,6 +35,16 @@ + + + + + + + + + + HANDLE, CHANGE_STAMP, SITE, SFC, STATUS_BO, SHOP_ORDER_BO, QTY, QTY_DONE, QTY_SCRAPPED, QTY_HISTORICAL_MIN, QTY_HISTORICAL_MAX, ITEM_BO, PRIORITY, LOCATION, RMA_MAX_TIMES_PROCESSED, LCC_BO, ORIGINAL_STATUS_BO, QTY_MULT_PERFORMED, ACTUAL_COMP_DATE, PREV_SITE, ORIGINAL_TRANSFER_KEY, IMMEDIATE_ARCHIVE, TRANSFER_DATETIME, TRANSFER_USER, SN_DONE, AIN_EQUIPMENT_ID, CREATED_DATE_TIME, MODIFIED_DATE_TIME, PARTITION_DATE @@ -634,4 +644,21 @@ WHERE RES.HANDLE = #{resrceBO} ORDER BY IW.DATE_STARTED DESC + + 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 new file mode 100644 index 00000000..971159cf --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcDataController.java @@ -0,0 +1,145 @@ +package com.foreverwin.mesnac.production.controller; + +import com.foreverwin.mesnac.meapi.util.StringUtils; +import com.foreverwin.modular.core.exception.BusinessException; +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.meapi.service.SfcDataService; +import com.foreverwin.mesnac.meapi.model.SfcData; +import java.util.List; + +/** + * + * @author Leon.L + * @since 2021-06-29 + */ +@RestController +@RequestMapping("/SFC-DATA") +public class SfcDataController { + + @Autowired + public SfcDataService sfcDataService; + + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getSfcDataById(@PathVariable String id) { + return R.ok( sfcDataService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getSfcDataList(SfcData sfcData){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcData); + result = sfcDataService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, SfcData sfcData){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcData); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(SfcData::getHandle, frontPage.getGlobalQuery()) + .or().like(SfcData::getSfcBo, frontPage.getGlobalQuery()) + .or().like(SfcData::getDataField, frontPage.getGlobalQuery()) + .or().like(SfcData::getDataAttr, frontPage.getGlobalQuery()) + .or().like(SfcData::getUserBo, frontPage.getGlobalQuery()) + ); + } + result = sfcDataService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param sfcData 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody SfcData sfcData) { + return R.ok(sfcDataService.save(sfcData)); + } + + /** + * 修改 + * @param sfcData 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody SfcData sfcData) { + return R.ok(sfcDataService.updateById(sfcData)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(sfcDataService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(sfcDataService.removeByIds(ids)); + } + + + @ResponseBody + @GetMapping("/saveSfcLocation") + public R saveSfcLocation(String sfc, String location) { + try { + if (StringUtils.isBlank(sfc)) { + throw BusinessException.build("SFC不能为空"); + } + if (StringUtils.isBlank(location)) { + throw BusinessException.build("位置不能为空"); + } + + String site = CommonMethods.getSite(); + sfcDataService.saveSfcLocation(site, sfc, location); + } catch (Exception e) { + return R.failed(e.getMessage()); + } + + return R.ok(); + } +} \ No newline at end of file