Browse Source

初始化配置

JCM 3 years ago
parent
commit
386c0d279d
63 changed files with 2055 additions and 0 deletions
  1. 39 0
      application-facade/src/main/java/com/factory/config/LocalDateTimeConverter.java
  2. 57 0
      application-facade/src/main/java/com/factory/controller/web/UserController.java
  3. 102 0
      application-facade/src/main/java/com/factory/entity/excel/ExcelFillCellMergeStrategy.java
  4. 36 0
      application-facade/src/main/java/com/factory/entity/excel/TestFileUtil.java
  5. 29 0
      application-facade/src/main/java/com/factory/entity/vo/req/UserInsertReq.java
  6. 25 0
      application-facade/src/main/java/com/factory/entity/vo/req/UserLockReq.java
  7. 22 0
      application-facade/src/main/java/com/factory/entity/vo/req/UserPageQueryReq.java
  8. 37 0
      application-facade/src/main/java/com/factory/entity/vo/res/FileRes.java
  9. 39 0
      application-facade/src/main/java/com/factory/entity/vo/res/UserRes.java
  10. 51 0
      application-facade/src/main/java/com/factory/entity/vo/res/benteler/PagePlanRes.java
  11. 17 0
      application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniCheckItemMapper.java
  12. 17 0
      application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniCheckResultMapper.java
  13. 17 0
      application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniCheckTypeMapper.java
  14. 17 0
      application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniVersionItemMapper.java
  15. 17 0
      application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniVersionMapper.java
  16. 17 0
      application-facade/src/main/java/com/factory/mapper/benteler/BentelerPlanMapper.java
  17. 16 0
      application-facade/src/main/java/com/factory/service/benteler/BentelerIniCheckItemService.java
  18. 16 0
      application-facade/src/main/java/com/factory/service/benteler/BentelerIniCheckResultService.java
  19. 16 0
      application-facade/src/main/java/com/factory/service/benteler/BentelerIniCheckTypeService.java
  20. 16 0
      application-facade/src/main/java/com/factory/service/benteler/BentelerIniVersionItemService.java
  21. 45 0
      application-facade/src/main/java/com/factory/service/benteler/BentelerIniVersionService.java
  22. 18 0
      application-facade/src/main/java/com/factory/service/benteler/BentelerPlanService.java
  23. 16 0
      application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniCheckItemServiceImpl.java
  24. 16 0
      application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniCheckResultServiceImpl.java
  25. 16 0
      application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniCheckTypeServiceImpl.java
  26. 16 0
      application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniVersionItemServiceImpl.java
  27. 113 0
      application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniVersionServiceImpl.java
  28. 16 0
      application-facade/src/main/java/com/factory/service/impl/benteler/BentelerPlanServiceImpl.java
  29. 43 0
      application-facade/src/main/java/com/factory/service/impl/remote/DeptServiceImpl.java
  30. 26 0
      application-facade/src/main/java/com/factory/service/impl/remote/DictServiceImpl.java
  31. 37 0
      application-facade/src/main/java/com/factory/service/impl/remote/FileInfoServiceImpl.java
  32. 11 0
      application-facade/src/main/java/com/factory/service/impl/remote/MenuServiceImpl.java
  33. 12 0
      application-facade/src/main/java/com/factory/service/impl/remote/PermissionServiceImpl.java
  34. 12 0
      application-facade/src/main/java/com/factory/service/impl/remote/RolePermissionServiceImpl.java
  35. 12 0
      application-facade/src/main/java/com/factory/service/impl/remote/RoleServiceImpl.java
  36. 190 0
      application-facade/src/main/java/com/factory/service/impl/remote/UserInfoServiceImpl.java
  37. 35 0
      application-facade/src/main/java/com/factory/service/impl/remote/UserRoleServiceImpl.java
  38. 11 0
      application-facade/src/main/java/com/factory/service/remote/DeptService.java
  39. 11 0
      application-facade/src/main/java/com/factory/service/remote/DictService.java
  40. 10 0
      application-facade/src/main/java/com/factory/service/remote/FileInfoService.java
  41. 7 0
      application-facade/src/main/java/com/factory/service/remote/MenuService.java
  42. 8 0
      application-facade/src/main/java/com/factory/service/remote/PermissionService.java
  43. 8 0
      application-facade/src/main/java/com/factory/service/remote/RolePermissionService.java
  44. 9 0
      application-facade/src/main/java/com/factory/service/remote/RoleService.java
  45. 28 0
      application-facade/src/main/java/com/factory/service/remote/UserInfoService.java
  46. 19 0
      application-facade/src/main/java/com/factory/service/remote/UserRoleService.java
  47. 195 0
      application-facade/src/main/java/com/factory/util/PdfHandler.java
  48. 29 0
      application-facade/src/main/java/com/factory/util/assembler/WebFileInfoAssembler.java
  49. 33 0
      application-facade/src/main/java/com/factory/util/event/JsonSerializerManage.java
  50. 24 0
      common-base/src/main/java/com/factory/base/entity/auth/FileType.java
  51. 18 0
      common-base/src/main/java/com/factory/base/entity/auth/MenuType.java
  52. 10 0
      common-base/src/main/java/com/factory/base/entity/constant/CacheConstant.java
  53. 96 0
      common-base/src/main/java/com/factory/base/entity/constant/RemoteCommonConstants.java
  54. 17 0
      common-base/src/main/java/com/factory/base/entity/constant/RemoteRedisConstants.java
  55. 59 0
      common-base/src/main/java/com/factory/base/entity/constant/SystemConstant.java
  56. 13 0
      common-base/src/main/java/com/factory/base/entity/enumPo/CheckType.java
  57. 13 0
      common-base/src/main/java/com/factory/base/entity/enumPo/CheckTypeSubmit.java
  58. 69 0
      common-base/src/main/java/com/factory/base/entity/enumPo/FrequencyType.java
  59. 15 0
      common-base/src/main/java/com/factory/base/entity/enumPo/ResStatus.java
  60. 13 0
      common-base/src/main/java/com/factory/base/entity/enumPo/RoleEnum.java
  61. 14 0
      common-base/src/main/java/com/factory/base/entity/enumPo/VersionAuditStatus.java
  62. 49 0
      common-base/src/main/java/com/factory/base/util/CopyNullPreperty.java
  63. 40 0
      common-base/src/main/java/com/factory/base/util/CopyUtil.java

+ 39 - 0
application-facade/src/main/java/com/factory/config/LocalDateTimeConverter.java

@@ -0,0 +1,39 @@
+package com.factory.config;
+
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+public class LocalDateTimeConverter implements Converter<LocalDateTime> {
+
+
+    @Override
+    public Class<LocalDateTime> supportJavaTypeKey() {
+        return LocalDateTime.class;
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+    @Override
+    public LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
+                                           GlobalConfiguration globalConfiguration) {
+        return LocalDateTime.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+    }
+
+    @Override
+    public CellData<String> convertToExcelData(LocalDateTime value, ExcelContentProperty contentProperty,
+                                               GlobalConfiguration globalConfiguration) {
+        return new CellData<>(value.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+    }
+
+
+}

+ 57 - 0
application-facade/src/main/java/com/factory/controller/web/UserController.java

@@ -0,0 +1,57 @@
+package com.factory.controller.web;
+
+import com.factory.service.remote.UserInfoService;
+import com.factory.entity.vo.req.UserInsertReq;
+import com.factory.entity.vo.req.UserLockReq;
+import com.factory.entity.vo.req.UserPageQueryReq;
+import com.factory.entity.vo.res.UserRes;
+import com.factory.base.entity.aggregates.PageBean;
+import com.factory.base.entity.aggregates.ResponseBean;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 用户管理
+ *
+ * @author JCM
+ * @date 2021/5/13 10:53
+ */
+@Api(tags = "用户管理")
+@RestController
+@RequestMapping("/userController")
+public class UserController {
+
+    @Autowired
+    private UserInfoService userInfoService;
+
+    @ApiOperation("账户列表")
+    @PostMapping("/selectUser")
+    public ResponseBean<PageBean<UserRes>> selectUser(@RequestBody UserPageQueryReq userPageQueryReq){
+        return userInfoService.selectUser(userPageQueryReq);
+    }
+
+    @ApiOperation("用户新增")
+    @PostMapping("/insertUser")
+    public ResponseBean<String> insertUser(@RequestBody UserInsertReq userInsertReq){
+        return userInfoService.insertUser(userInsertReq);
+    }
+
+    @ApiOperation("用户修改")
+    @PostMapping("/updateUser")
+    public ResponseBean<String> updateUser(@RequestBody UserInsertReq userInsertReq){
+        return userInfoService.updateUser(userInsertReq);
+    }
+
+    @ApiOperation("用户禁用")
+    @PostMapping("/userLock")
+    public ResponseBean<String> userLock(@RequestBody UserLockReq userLockReq){
+        return userInfoService.userLock(userLockReq);
+    }
+
+
+}

+ 102 - 0
application-facade/src/main/java/com/factory/entity/excel/ExcelFillCellMergeStrategy.java

@@ -0,0 +1,102 @@
+package com.factory.entity.excel;
+
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.handler.CellWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import lombok.Data;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.util.CellRangeAddress;
+
+import java.util.List;
+
+@Data
+public class ExcelFillCellMergeStrategy implements CellWriteHandler {
+	/**
+	 * 合并字段的下标
+	 */
+	private int[] mergeColumnIndex;
+	/**
+	 * 合并几行
+	 */
+	private int mergeRowIndex;
+
+	public ExcelFillCellMergeStrategy() {
+	}
+
+	public ExcelFillCellMergeStrategy(int mergeRowIndex, int[] mergeColumnIndex) {
+		this.mergeRowIndex = mergeRowIndex;
+		this.mergeColumnIndex = mergeColumnIndex;
+	}
+
+	@Override
+	public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row,
+                                 Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+
+	}
+
+	@Override
+	public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell,
+                                Head head, Integer integer, Boolean aBoolean) {
+
+	}
+
+	@Override
+	public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
+                                       CellData cellData, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+
+	}
+
+	@Override
+	public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
+                                 List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
+//当前行
+		int curRowIndex = cell.getRowIndex();
+		//当前列
+		int curColIndex = cell.getColumnIndex();
+
+		if (curRowIndex > mergeRowIndex) {
+			for (int i = 0; i < mergeColumnIndex.length; i++) {
+				if (curColIndex == mergeColumnIndex[i]) {
+					mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex);
+					break;
+				}
+			}
+		}
+	}
+
+	private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) {
+		//获取当前行的当前列的数据和上一行的当前列列数据,通过上一行数据是否相同进行合并
+		Object curData = cell.getCellTypeEnum() == CellType.STRING ? cell.getStringCellValue() :
+				cell.getNumericCellValue();
+		Cell preCell = cell.getSheet().getRow(curRowIndex - 1).getCell(curColIndex);
+		Object preData = preCell.getCellTypeEnum() == CellType.STRING ? preCell.getStringCellValue() : preCell.getNumericCellValue();
+		// 比较当前行的第一列的单元格与上一行是否相同,相同合并当前单元格与上一行
+		//
+		if (curData.equals(preData)) {
+			Sheet sheet = writeSheetHolder.getSheet();
+			List<CellRangeAddress> mergeRegions = sheet.getMergedRegions();
+			boolean isMerged = false;
+			for (int i = 0; i < mergeRegions.size() && !isMerged; i++) {
+				CellRangeAddress cellRangeAddr = mergeRegions.get(i);
+				// 若上一个单元格已经被合并,则先移出原有的合并单元,再重新添加合并单元
+				if (cellRangeAddr.isInRange(curRowIndex - 1, curColIndex)) {
+					sheet.removeMergedRegion(i);
+					cellRangeAddr.setLastRow(curRowIndex);
+					sheet.addMergedRegion(cellRangeAddr);
+					isMerged = true;
+				}
+			}
+			// 若上一个单元格未被合并,则新增合并单元
+			if (!isMerged) {
+				CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex,
+						curColIndex);
+				sheet.addMergedRegion(cellRangeAddress);
+			}
+		}
+	}
+}

+ 36 - 0
application-facade/src/main/java/com/factory/entity/excel/TestFileUtil.java

@@ -0,0 +1,36 @@
+package com.factory.entity.excel;
+
+import java.io.File;
+import java.io.InputStream;
+
+public class TestFileUtil {
+
+
+    public static InputStream getResourcesFileInputStream(String fileName) {
+        return Thread.currentThread().getContextClassLoader().getResourceAsStream("" + fileName);
+    }
+
+    public static String getPath() {
+        return TestFileUtil.class.getResource("/").getPath();
+    }
+
+    public static File createNewFile(String pathName) {
+        File file = new File(getPath() + pathName);
+        if (file.exists()) {
+            file.delete();
+        } else {
+            if (!file.getParentFile().exists()) {
+                file.getParentFile().mkdirs();
+            }
+        }
+        return file;
+    }
+
+    public static File readFile(String pathName) {
+        return new File(getPath() + pathName);
+    }
+
+    public static File readUserHomeFile(String pathName) {
+        return new File(System.getProperty("user.home") + File.separator + pathName);
+    }
+}

+ 29 - 0
application-facade/src/main/java/com/factory/entity/vo/req/UserInsertReq.java

@@ -0,0 +1,29 @@
+package com.factory.entity.vo.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("新增-编辑用户")
+public class UserInsertReq {
+
+    @ApiModelProperty("用户id:新增不传,编辑传")
+    private Long id;
+
+    @ApiModelProperty("用户名称")
+    private String username;
+
+    @ApiModelProperty("用户密码")
+    private String password;
+
+    @ApiModelProperty("角色id")
+    private Long roleId;
+
+    @ApiModelProperty("班次")
+    private Long shiftId;
+}

+ 25 - 0
application-facade/src/main/java/com/factory/entity/vo/req/UserLockReq.java

@@ -0,0 +1,25 @@
+package com.factory.entity.vo.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户管理
+ *
+ * @author JCM
+ * @date 2021/5/13 20:36
+ */
+@Data
+@ApiModel("用户管理")
+public class UserLockReq {
+
+    @ApiModelProperty("用户id")
+    private Long id;
+
+    @ApiModelProperty("设置:false.解禁 true.禁用")
+    private boolean no;
+
+    @ApiModelProperty("班次")
+    private Long shiftId;
+}

+ 22 - 0
application-facade/src/main/java/com/factory/entity/vo/req/UserPageQueryReq.java

@@ -0,0 +1,22 @@
+package com.factory.entity.vo.req;
+
+import com.factory.base.entity.vo.req.BasePageReq;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("用户列表筛选参数")
+public class UserPageQueryReq extends BasePageReq {
+
+    @ApiModelProperty("用户名称")
+    private String name;
+
+    @ApiModelProperty("角色id")
+    private Long roleId;
+
+}

+ 37 - 0
application-facade/src/main/java/com/factory/entity/vo/res/FileRes.java

@@ -0,0 +1,37 @@
+package com.factory.entity.vo.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+@ApiModel("统一上传返回")
+public class FileRes {
+
+    private Long id;
+
+    @ApiModelProperty(name = "现名称", example = "1")
+    private String name;
+
+    @ApiModelProperty(name = "原名称", example = "1")
+    private String originalName;
+
+    @ApiModelProperty(name = "后缀", example = "1")
+    private String suffix;
+
+    @ApiModelProperty(name = "访问路径", example = "1")
+    private String url;
+
+    @ApiModelProperty(name = "大小", example = "1")
+    private Long size;
+
+    @ApiModelProperty(name = "磁盘路径", example = "1")
+    private String diskPath;
+
+}

+ 39 - 0
application-facade/src/main/java/com/factory/entity/vo/res/UserRes.java

@@ -0,0 +1,39 @@
+package com.factory.entity.vo.res;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("用户列表")
+public class UserRes {
+
+    @ApiModelProperty("用户id")
+    private Long id;
+
+    @ApiModelProperty("账户名称")
+    private String username;
+
+    @ApiModelProperty("角色id")
+    private Long roleId;
+
+    @ApiModelProperty("角色名称")
+    private String roleName;
+
+    @ApiModelProperty("班次id")
+    private Long shiftId;
+
+    @ApiModelProperty("班次名称")
+    private String shiftName;
+
+    @ApiModelProperty("密码")
+    private String passWord;
+
+    @ApiModelProperty("设置:false.解禁 true.禁用")
+    private boolean lock;
+
+}

+ 51 - 0
application-facade/src/main/java/com/factory/entity/vo/res/benteler/PagePlanRes.java

@@ -0,0 +1,51 @@
+package com.factory.entity.vo.res.benteler;
+
+import com.factory.base.entity.vo.req.BaseIdReq;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.sql.Time;
+import java.time.LocalDateTime;
+
+/**
+ * @program: intelligent-factory-service
+ * @description:
+ * @author: dl
+ * @create: 05月19日 08时
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+public class PagePlanRes extends BaseIdReq {
+    @ApiModelProperty("计划名称")
+    private String name;
+
+    @ApiModelProperty("责任人1")
+    private String principleOne;
+    @ApiModelProperty("责任人2")
+    private String principleTwo;
+
+
+    @ApiModelProperty("当前执行 检查状态 1待响应 2未响应 3已响应 4已完成")
+    private Integer checkStatus;
+
+
+    @ApiModelProperty(value = "提交时间")
+    private Time submitTime;
+
+
+    @ApiModelProperty(value = "创建时间", hidden = true)
+    private LocalDateTime createdTime;
+
+    @ApiModelProperty("是否禁用暂停")
+    private Boolean pauseFlag;
+
+
+
+}

+ 17 - 0
application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniCheckItemMapper.java

@@ -0,0 +1,17 @@
+package com.factory.mapper.benteler;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.base.entity.po.benteler.BentelerIniCheckItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 记录检查结果 - 分类结果 - 单一检查项结果
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+@Mapper
+public interface BentelerIniCheckItemMapper extends BaseMapper<BentelerIniCheckItem> {
+	
+}

+ 17 - 0
application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniCheckResultMapper.java

@@ -0,0 +1,17 @@
+package com.factory.mapper.benteler;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.base.entity.po.benteler.BentelerIniCheckResult;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 检查记录
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+@Mapper
+public interface BentelerIniCheckResultMapper extends BaseMapper<BentelerIniCheckResult> {
+	
+}

+ 17 - 0
application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniCheckTypeMapper.java

@@ -0,0 +1,17 @@
+package com.factory.mapper.benteler;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.base.entity.po.benteler.BentelerIniCheckType;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 计划 - 检验结果
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+@Mapper
+public interface BentelerIniCheckTypeMapper extends BaseMapper<BentelerIniCheckType> {
+	
+}

+ 17 - 0
application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniVersionItemMapper.java

@@ -0,0 +1,17 @@
+package com.factory.mapper.benteler;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.base.entity.po.benteler.BentelerIniVersionItem;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 计划 - 检查项
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+@Mapper
+public interface BentelerIniVersionItemMapper extends BaseMapper<BentelerIniVersionItem> {
+	
+}

+ 17 - 0
application-facade/src/main/java/com/factory/mapper/benteler/BentelerIniVersionMapper.java

@@ -0,0 +1,17 @@
+package com.factory.mapper.benteler;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.base.entity.po.benteler.BentelerIniVersion;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 计划 - 版本信息
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+@Mapper
+public interface BentelerIniVersionMapper extends BaseMapper<BentelerIniVersion> {
+
+}

+ 17 - 0
application-facade/src/main/java/com/factory/mapper/benteler/BentelerPlanMapper.java

@@ -0,0 +1,17 @@
+package com.factory.mapper.benteler;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.base.entity.po.benteler.BentelerPlan;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 本特勒检测计划
+ * 
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+@Mapper
+public interface BentelerPlanMapper extends BaseMapper<BentelerPlan> {
+	
+}

+ 16 - 0
application-facade/src/main/java/com/factory/service/benteler/BentelerIniCheckItemService.java

@@ -0,0 +1,16 @@
+package com.factory.service.benteler;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.benteler.BentelerIniCheckItem;
+
+/**
+ * 记录检查结果 - 分类结果 - 单一检查项结果
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+public interface BentelerIniCheckItemService extends IService<BentelerIniCheckItem> {
+
+}
+

+ 16 - 0
application-facade/src/main/java/com/factory/service/benteler/BentelerIniCheckResultService.java

@@ -0,0 +1,16 @@
+package com.factory.service.benteler;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.benteler.BentelerIniCheckResult;
+
+/**
+ * 检查记录
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+public interface BentelerIniCheckResultService extends IService<BentelerIniCheckResult> {
+
+}
+

+ 16 - 0
application-facade/src/main/java/com/factory/service/benteler/BentelerIniCheckTypeService.java

@@ -0,0 +1,16 @@
+package com.factory.service.benteler;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.benteler.BentelerIniCheckType;
+
+/**
+ * 计划 - 检验结果
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+public interface BentelerIniCheckTypeService extends IService<BentelerIniCheckType> {
+
+}
+

+ 16 - 0
application-facade/src/main/java/com/factory/service/benteler/BentelerIniVersionItemService.java

@@ -0,0 +1,16 @@
+package com.factory.service.benteler;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.benteler.BentelerIniVersionItem;
+
+/**
+ * 计划 - 检查项
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+public interface BentelerIniVersionItemService extends IService<BentelerIniVersionItem> {
+
+}
+

+ 45 - 0
application-facade/src/main/java/com/factory/service/benteler/BentelerIniVersionService.java

@@ -0,0 +1,45 @@
+package com.factory.service.benteler;
+
+import com.factory.base.entity.po.benteler.BentelerIniVersion;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 计划 - 版本信息
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+public interface BentelerIniVersionService extends IService<BentelerIniVersion> {
+
+    //ResponseBean<FileRes> exportInitialPlan(exportInitialPlanReq req);
+    //
+    //ResponseBean addVersion(AddPlanReq params);
+    //
+    //ResponseBean<AddPlanReq> getOneVersionDetails(BaseIdReq baseIdReq);
+    //
+    //ResponseBean updatePlanVersion(AddPlanReq params);
+    //
+    //ResponseBean<AddPlanReq> getOneUNAUDITVersionDetails(BaseIdReq baseIdReq);
+    //
+    //ResponseBean<PageBean<GetVersionHistoryRes>> getVersionHistory(BasePageIdReq req);
+    //
+    //ResponseBean<GetVersionBaseRes> getVersionBase(BaseIdReq req);
+    //
+    //ResponseBean<PageBean<GetVersionSubRes>> getVersionSub(BasePageIdReq req);
+    //
+    //ResponseBean<PageBean<versionApproveRes>> versionApprove(versionApproveReq req);
+    //
+    //ResponseBean<PlanVersion> getVersionSubGread(getVersionSubGreadReq req);
+    //
+    //ResponseBean<PlanVersion> getHistoryVersionSubGread(getVersionSubGreadReq req);
+    //
+    //ResponseBean<getAuditRecordRes> getAuditRecord(getAuditRecordReq req);
+    //
+    //ResponseBean addPlan(AddPlanReq params);
+    //
+    //ResponseBean<PageBean<UnAuditRes>> unAuditList(unAuditReq params);
+    //
+    //ResponseBean<PageBean<PagePlanRes>> pagePlan(PlanListReq params);
+}
+

+ 18 - 0
application-facade/src/main/java/com/factory/service/benteler/BentelerPlanService.java

@@ -0,0 +1,18 @@
+package com.factory.service.benteler;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.benteler.BentelerPlan;
+
+/**
+ * 本特勒检测计划
+ *
+ * @author chenshun
+ * @email sunlightcs@gmail.com
+ * @date 2021-06-26 12:35:17
+ */
+public interface BentelerPlanService extends IService<BentelerPlan> {
+
+
+}
+

+ 16 - 0
application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniCheckItemServiceImpl.java

@@ -0,0 +1,16 @@
+package com.factory.service.impl.benteler;
+
+import com.factory.base.entity.po.benteler.BentelerIniCheckItem;
+import com.factory.service.benteler.BentelerIniCheckItemService;
+import com.factory.mapper.benteler.BentelerIniCheckItemMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+
+@Service("bentelerIniCheckItemService")
+@Transactional(rollbackFor = Exception.class)
+public class BentelerIniCheckItemServiceImpl extends ServiceImpl<BentelerIniCheckItemMapper, BentelerIniCheckItem> implements BentelerIniCheckItemService {
+
+
+}

+ 16 - 0
application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniCheckResultServiceImpl.java

@@ -0,0 +1,16 @@
+package com.factory.service.impl.benteler;
+
+import com.factory.base.entity.po.benteler.BentelerIniCheckResult;
+import com.factory.service.benteler.BentelerIniCheckResultService;
+import com.factory.mapper.benteler.BentelerIniCheckResultMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+
+@Service("bentelerIniCheckResultService")
+@Transactional(rollbackFor = Exception.class)
+public class BentelerIniCheckResultServiceImpl extends ServiceImpl<BentelerIniCheckResultMapper, BentelerIniCheckResult> implements BentelerIniCheckResultService {
+
+
+}

+ 16 - 0
application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniCheckTypeServiceImpl.java

@@ -0,0 +1,16 @@
+package com.factory.service.impl.benteler;
+
+import com.factory.service.benteler.BentelerIniCheckTypeService;
+import com.factory.mapper.benteler.BentelerIniCheckTypeMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.benteler.BentelerIniCheckType;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+
+@Service("bentelerIniCheckTypeService")
+@Transactional(rollbackFor = Exception.class)
+public class BentelerIniCheckTypeServiceImpl extends ServiceImpl<BentelerIniCheckTypeMapper, BentelerIniCheckType> implements BentelerIniCheckTypeService {
+
+
+}

+ 16 - 0
application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniVersionItemServiceImpl.java

@@ -0,0 +1,16 @@
+package com.factory.service.impl.benteler;
+
+import com.factory.service.benteler.BentelerIniVersionItemService;
+import com.factory.mapper.benteler.BentelerIniVersionItemMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.benteler.BentelerIniVersionItem;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+
+@Service("bentelerIniVersionItemService")
+@Transactional(rollbackFor = Exception.class)
+public class BentelerIniVersionItemServiceImpl extends ServiceImpl<BentelerIniVersionItemMapper, BentelerIniVersionItem> implements BentelerIniVersionItemService {
+
+
+}

+ 113 - 0
application-facade/src/main/java/com/factory/service/impl/benteler/BentelerIniVersionServiceImpl.java

@@ -0,0 +1,113 @@
+package com.factory.service.impl.benteler;
+
+import com.factory.base.entity.po.benteler.BentelerIniVersion;
+import com.factory.service.benteler.BentelerIniVersionService;
+import com.factory.mapper.benteler.BentelerIniVersionMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+
+@Service("bentelerIniVersionService")
+@Transactional(rollbackFor = Exception.class)
+public class BentelerIniVersionServiceImpl extends ServiceImpl<BentelerIniVersionMapper, BentelerIniVersion> implements BentelerIniVersionService {
+
+    //@Autowired
+    //private BentelerPlanService planService;
+    //@Autowired
+    //private BentelerIniVersionMapper versionMapper;
+    //
+    //@Override
+    //public ResponseBean<FileRes> exportInitialPlan(exportInitialPlanReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean addVersion(AddPlanReq params) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<AddPlanReq> getOneVersionDetails(BaseIdReq baseIdReq) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean updatePlanVersion(AddPlanReq params) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<AddPlanReq> getOneUNAUDITVersionDetails(BaseIdReq baseIdReq) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PageBean<GetVersionHistoryRes>> getVersionHistory(BasePageIdReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<GetVersionBaseRes> getVersionBase(BaseIdReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PageBean<GetVersionSubRes>> getVersionSub(BasePageIdReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PageBean<versionApproveRes>> versionApprove(versionApproveReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PlanVersion> getVersionSubGread(getVersionSubGreadReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PlanVersion> getHistoryVersionSubGread(getVersionSubGreadReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<getAuditRecordRes> getAuditRecord(getAuditRecordReq req) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean addPlan(AddPlanReq params) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PageBean<UnAuditRes>> unAuditList(unAuditReq params) {
+    //    return null;
+    //}
+    //
+    //@Override
+    //public ResponseBean<PageBean<PagePlanRes>> pagePlan(PlanListReq params) {
+    //    Page<PagePlanRes> page = new Page<PagePlanRes>(params.getPage(), params.getSize());
+    //
+    //    List<PagePlanRes> pagePlanRes = versionMapper.pageIniPlan(page);
+    //    return ResponseBeanBuilder.ok();
+    //}
+    //
+    ////获取未禁用首件计划
+    //private List<BentelerPlan> getUnDisablePlan() {
+    //    return planService.list(Wrappers.<BentelerPlan>lambdaQuery()
+    //            .eq(BentelerPlan::getPauseFlag, 0)
+    //            .eq(BentelerPlan::getCheckType, 1)
+    //    );
+    //}
+    //
+    ////获取未禁用首件计划ID
+    //private List<Long> getUnDisablePlanId() {
+    //    return planService.list(Wrappers.<BentelerPlan>lambdaQuery()
+    //            .eq(BentelerPlan::getPauseFlag, 0)
+    //            .eq(BentelerPlan::getCheckType, 1)
+    //    ).stream().map(BentelerPlan::getId).collect(Collectors.toList());
+    //}
+}

+ 16 - 0
application-facade/src/main/java/com/factory/service/impl/benteler/BentelerPlanServiceImpl.java

@@ -0,0 +1,16 @@
+package com.factory.service.impl.benteler;
+
+import com.factory.base.entity.po.benteler.BentelerPlan;
+import com.factory.service.benteler.BentelerPlanService;
+import com.factory.mapper.benteler.BentelerPlanMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service("bentelerPlanService")
+@Transactional(rollbackFor = Exception.class)
+public class BentelerPlanServiceImpl
+        extends ServiceImpl<BentelerPlanMapper, BentelerPlan> implements BentelerPlanService {
+
+
+}

+ 43 - 0
application-facade/src/main/java/com/factory/service/impl/remote/DeptServiceImpl.java

@@ -0,0 +1,43 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.constant.SystemConstant;
+import com.factory.base.entity.po.remote.Dept;
+import com.factory.user.mapper.DeptMapper;
+import com.factory.service.remote.DeptService;
+import org.springframework.stereotype.Service;
+
+@Service("WebDeptService")
+public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements DeptService {
+
+    @Override
+    public String getDeptNameById(Long id) {
+        String name = SystemConstant.EMPTY_STRING;
+        if (id == null) {
+            return name;
+        }
+        Dept dept = getById(id);
+        if (dept != null) {
+            name = dept.getName();
+        }
+        return name;
+    }
+
+    @Override
+    public String getDeptNameByCode(Long code) {
+        String name = SystemConstant.EMPTY_STRING;
+        if (code == null) {
+            return name;
+        }
+        Dept dept = getOne(Wrappers.<Dept>lambdaQuery()
+                .eq(Dept::getDeptCode,code),false
+
+        );
+        if (dept != null) {
+            name = dept.getName();
+        }
+        return name;
+    }
+
+}

+ 26 - 0
application-facade/src/main/java/com/factory/service/impl/remote/DictServiceImpl.java

@@ -0,0 +1,26 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.constant.SystemConstant;
+import com.factory.base.entity.po.remote.Dict;
+import com.factory.user.mapper.DictMapper;
+import com.factory.service.remote.DictService;
+import org.springframework.stereotype.Service;
+
+@Service("WebDictService")
+public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements DictService {
+
+    @Override
+    public String getNameById(Long id) {
+        String name = SystemConstant.EMPTY_STRING;
+        if (id == null) {
+            return name;
+        }
+        Dict dept = getById(id);
+        if (dept != null) {
+            name = dept.getDictVal();
+        }
+        return name;
+    }
+
+}

+ 37 - 0
application-facade/src/main/java/com/factory/service/impl/remote/FileInfoServiceImpl.java

@@ -0,0 +1,37 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.constant.SystemConstant;
+import com.factory.base.entity.po.file.FileInfo;
+import com.factory.user.mapper.FileInfoMapper;
+import com.factory.service.remote.FileInfoService;
+import com.factory.util.assembler.WebFileInfoAssembler;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ * 考虑独立文件服务器 暂时采用多数据源读库 后续按需求修改
+ */
+
+@DS("file")
+@Service("WebFileInfoService")
+@Transactional(propagation = Propagation.REQUIRES_NEW)
+public class FileInfoServiceImpl extends ServiceImpl<FileInfoMapper, FileInfo> implements FileInfoService {
+
+    @Resource
+    private WebFileInfoAssembler webFileInfoAssembler;
+
+    @Override
+    public String getUrlById(Long fileInfoId) {
+        if (fileInfoId == null) {
+            return SystemConstant.EMPTY_STRING;
+        }
+        FileInfo fileInfo = getById(fileInfoId);
+        return webFileInfoAssembler.getUrlByFileInfo(fileInfo);
+    }
+
+}

+ 11 - 0
application-facade/src/main/java/com/factory/service/impl/remote/MenuServiceImpl.java

@@ -0,0 +1,11 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.remote.Menu;
+import com.factory.user.mapper.MenuMapper;
+import com.factory.service.remote.MenuService;
+import org.springframework.stereotype.Service;
+
+@Service("WebMenuService")
+public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService {
+}

+ 12 - 0
application-facade/src/main/java/com/factory/service/impl/remote/PermissionServiceImpl.java

@@ -0,0 +1,12 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.remote.Permission;
+import com.factory.user.mapper.PermissionMapper;
+import com.factory.service.remote.PermissionService;
+import org.springframework.stereotype.Service;
+
+@Service("WebPermissionService")
+public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PermissionService {
+
+}

+ 12 - 0
application-facade/src/main/java/com/factory/service/impl/remote/RolePermissionServiceImpl.java

@@ -0,0 +1,12 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.remote.RolePermission;
+import com.factory.user.mapper.RolePermissionMapper;
+import com.factory.service.remote.RolePermissionService;
+import org.springframework.stereotype.Service;
+
+@Service("WebRolePermissionService")
+public class RolePermissionServiceImpl extends ServiceImpl<RolePermissionMapper, RolePermission> implements RolePermissionService {
+
+}

+ 12 - 0
application-facade/src/main/java/com/factory/service/impl/remote/RoleServiceImpl.java

@@ -0,0 +1,12 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.remote.Role;
+import com.factory.user.mapper.RoleMapper;
+import com.factory.service.remote.RoleService;
+import org.springframework.stereotype.Service;
+
+@Service("WebRoleService")
+public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements RoleService {
+
+}

+ 190 - 0
application-facade/src/main/java/com/factory/service/impl/remote/UserInfoServiceImpl.java

@@ -0,0 +1,190 @@
+package com.factory.service.impl.remote;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.aggregates.PageBean;
+import com.factory.base.entity.aggregates.ResponseBean;
+import com.factory.base.entity.constant.SystemConstant;
+import com.factory.base.entity.po.remote.Dict;
+import com.factory.base.entity.po.remote.Role;
+import com.factory.base.entity.po.remote.UserInfo;
+import com.factory.base.entity.po.remote.UserRole;
+import com.factory.base.util.res.ResponseBeanBuilder;
+import com.factory.user.mapper.DictMapper;
+import com.factory.user.mapper.RoleMapper;
+import com.factory.user.mapper.UserInfoMapper;
+import com.factory.user.mapper.UserRoleMapper;
+import com.factory.user.util.Base64;
+import com.factory.entity.vo.req.UserInsertReq;
+import com.factory.entity.vo.req.UserLockReq;
+import com.factory.entity.vo.req.UserPageQueryReq;
+import com.factory.entity.vo.res.UserRes;
+import com.factory.service.remote.UserInfoService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service("WebUserInfoService")
+public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {
+
+    @Resource
+    private UserRoleMapper userRoleMapper;
+    @Resource
+    private RoleMapper roleMapper;
+    @Resource
+    private DictMapper dictMapper;
+
+    @Override
+    public String getNameById(Long id) {
+        String name = SystemConstant.EMPTY_STRING;
+        if (id == null) {
+            return name;
+        }
+        UserInfo userInfo = getById(id);
+        if (userInfo != null) {
+            name = userInfo.getName();
+        }
+        return name;
+    }
+    @Override
+    public List<UserInfo> getListByNameOrNo(String word) {
+        return list(Wrappers.<UserInfo>lambdaQuery().like(UserInfo::getName, word).or().like(UserInfo::getNo, word));
+    }
+
+    @Override
+    public ResponseBean<PageBean<UserRes>> selectUser(UserPageQueryReq userPageQueryReq) {
+        LambdaQueryWrapper<UserInfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.orderByDesc(UserInfo::getId);
+        if (userPageQueryReq.getName() != null) {
+            wrapper.like(UserInfo::getUsername, userPageQueryReq.getName());
+        }
+        if (userPageQueryReq.getRoleId() != null) {
+            List<UserRole> userRoles = userRoleMapper.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getRoleId, userPageQueryReq.getRoleId()));
+            if (CollUtil.isNotEmpty(userRoles)) {
+                List<Long> userIds = userRoles.stream().map(UserRole::getUserId).collect(Collectors.toList());
+                wrapper.in(UserInfo::getId, userIds);
+            }
+        }
+        IPage<UserInfo> page = new Page<>(userPageQueryReq.getPage(), userPageQueryReq.getSize());
+        IPage<UserInfo> userInfoPage = baseMapper.selectPage(page, wrapper);
+        List<UserInfo> records = userInfoPage.getRecords();
+        List<UserRes> userResList = records.stream().map(x -> {
+            UserRes userRes = new UserRes();
+            userRes.setId(x.getId());
+            userRes.setUsername(x.getUsername());
+            List<UserRole> userRoles = userRoleMapper.selectList(Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, x.getId()));
+            if (CollUtil.isNotEmpty(userRoles)) {
+                Role role = roleMapper.selectById(userRoles.get(0).getRoleId());
+                userRes.setRoleId(role.getId());
+                userRes.setRoleName(role.getName());
+            }
+            userRes.setShiftId(x.getShiftId());
+            if (x.getShiftId() != null) {
+                Dict dict = dictMapper.selectById(x.getShiftId());
+                if (dict != null) {
+                    userRes.setShiftName(dict.getDictVal());
+                }
+            }
+            String psd = new String(Base64.decode(x.getPassword()));
+            userRes.setPassWord(psd);
+            userRes.setLock(x.isLock());
+            return userRes;
+        }).collect(Collectors.toList());
+        return ResponseBeanBuilder.ok(PageBean.<UserRes>builder().row(userResList).total(userInfoPage.getTotal()).page(userInfoPage.getPages()).build());
+    }
+
+    @Override
+    public ResponseBean<String> insertUser(UserInsertReq userInsertReq) {
+        UserInfo userInfo = new UserInfo();
+        if (userInsertReq.getUsername() != null) {
+            Integer count = baseMapper.selectCount(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getUsername, userInsertReq.getUsername()));
+            if (count > 0) {
+                return ResponseBeanBuilder.fail("用户名重复!");
+            }
+        } else {
+            return ResponseBeanBuilder.fail("用户名不能为空");
+        }
+        if (userInsertReq.getPassword() == null) {
+            return ResponseBeanBuilder.fail("密码不能为空");
+        }
+        if (userInsertReq.getRoleId() == 55) {
+            if (userInsertReq.getShiftId()==null){
+            return ResponseBeanBuilder.fail("班次不能为空");
+
+            }
+        }
+        userInfo.setUsername(userInsertReq.getUsername());
+        String psd = Base64.encode(userInsertReq.getPassword().getBytes());
+        userInfo.setPassword(psd);
+        userInfo.setEffectiveTime(LocalDateTime.now());
+        if (userInsertReq.getShiftId() != null) {
+            userInfo.setShiftId(userInsertReq.getShiftId());
+        }
+        int insert = baseMapper.insert(userInfo);
+        if (insert > 0) {
+            if (userInsertReq.getRoleId() != null) {
+                UserRole userRole = new UserRole();
+                userRole.setUserId(userInfo.getId());
+                userRole.setRoleId(userInsertReq.getRoleId());
+                userRoleMapper.insert(userRole);
+            }
+            return ResponseBeanBuilder.ok("新增成功!");
+        }
+        return ResponseBeanBuilder.ok("新增失败!");
+    }
+
+    @Override
+    public ResponseBean<String> updateUser(UserInsertReq userInsertReq) {
+        UserInfo userInfo = new UserInfo();
+        if (userInsertReq.getUsername() != null) {
+            UserInfo userInfos = baseMapper.selectOne(Wrappers.<UserInfo>lambdaQuery().eq(UserInfo::getUsername, userInsertReq.getUsername()));
+            if(BeanUtil.isNotEmpty(userInfos)){
+                if (!userInfos.getId().equals(userInsertReq.getId())) {
+                    return ResponseBeanBuilder.fail("用户名重复!");
+                }
+            }
+        } else {
+            return ResponseBeanBuilder.fail("用户名不能为空");
+        }
+        if (userInsertReq.getPassword() == null) {
+            return ResponseBeanBuilder.fail("密码不能为空");
+        }
+        userInfo.setUsername(userInsertReq.getUsername());
+        String psd = Base64.encode(userInsertReq.getPassword().getBytes());
+        userInfo.setPassword(psd);
+        userInfo.setShiftId(userInsertReq.getShiftId());
+        userInfo.setId(userInsertReq.getId());
+        int up = baseMapper.updateById(userInfo);
+        if (up > 0) {
+            if (userInsertReq.getRoleId() != null) {
+                UserRole userRole = new UserRole();
+                userRole.setRoleId(userInsertReq.getRoleId());
+                userRoleMapper.update(userRole, Wrappers.<UserRole>lambdaQuery().eq(UserRole::getUserId, userInsertReq.getId()));
+            }
+            return ResponseBeanBuilder.ok("修改成功!");
+        }
+        return ResponseBeanBuilder.ok("修改失败!");
+    }
+
+    @Override
+    public ResponseBean<String> userLock(UserLockReq userLockReq) {
+        UserInfo userInfo = new UserInfo();
+        userInfo.setId(userLockReq.getId());
+        userInfo.setLock(userLockReq.isNo());
+        userInfo.setShiftId(userLockReq.getShiftId());
+        boolean b = this.updateById(userInfo);
+        if (b) {
+            return ResponseBeanBuilder.ok("操作成功!");
+        }
+        return ResponseBeanBuilder.fail("操作失败!");
+    }
+
+}

+ 35 - 0
application-facade/src/main/java/com/factory/service/impl/remote/UserRoleServiceImpl.java

@@ -0,0 +1,35 @@
+package com.factory.service.impl.remote;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.factory.base.entity.po.remote.UserRole;
+import com.factory.user.mapper.UserRoleMapper;
+import com.factory.service.remote.UserRoleService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service("WebUserRoleService")
+public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> implements UserRoleService {
+
+    @Override
+    public boolean userHasRole(Long userId,Long roleId) {
+        return getRoleIdsByUserId(userId).contains(roleId);
+    }
+
+    @Override
+    public List<UserRole> getRolesByUserId(Long userId) {
+        List<UserRole> userRoleList = list(
+                Wrappers.<UserRole>lambdaQuery()
+                        .eq(UserRole::getUserId, userId));
+        return userRoleList;
+    }
+
+    @Override
+    public List<Long> getRoleIdsByUserId(Long userId) {
+        List<UserRole> userRoleList = getRolesByUserId(userId);
+        List<Long> roleIds = userRoleList.stream().map(UserRole::getRoleId).collect(Collectors.toList());
+        return roleIds;
+    }
+}

+ 11 - 0
application-facade/src/main/java/com/factory/service/remote/DeptService.java

@@ -0,0 +1,11 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.Dept;
+
+public interface DeptService extends IService<Dept> {
+
+     String getDeptNameById(Long id);
+
+     String getDeptNameByCode(Long code);
+}

+ 11 - 0
application-facade/src/main/java/com/factory/service/remote/DictService.java

@@ -0,0 +1,11 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.Dict;
+
+public interface DictService extends IService<Dict> {
+
+    String getNameById(Long id);
+
+
+}

+ 10 - 0
application-facade/src/main/java/com/factory/service/remote/FileInfoService.java

@@ -0,0 +1,10 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.file.FileInfo;
+
+public interface FileInfoService extends IService<FileInfo> {
+
+    String getUrlById(Long fileInfoId);
+
+}

+ 7 - 0
application-facade/src/main/java/com/factory/service/remote/MenuService.java

@@ -0,0 +1,7 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.Menu;
+
+public interface MenuService extends IService<Menu> {
+}

+ 8 - 0
application-facade/src/main/java/com/factory/service/remote/PermissionService.java

@@ -0,0 +1,8 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.Permission;
+
+public interface PermissionService extends IService<Permission> {
+
+}

+ 8 - 0
application-facade/src/main/java/com/factory/service/remote/RolePermissionService.java

@@ -0,0 +1,8 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.RolePermission;
+
+public interface RolePermissionService extends IService<RolePermission> {
+
+}

+ 9 - 0
application-facade/src/main/java/com/factory/service/remote/RoleService.java

@@ -0,0 +1,9 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.Role;
+
+public interface RoleService extends IService<Role> {
+
+
+}

+ 28 - 0
application-facade/src/main/java/com/factory/service/remote/UserInfoService.java

@@ -0,0 +1,28 @@
+package com.factory.service.remote;
+
+import com.factory.entity.vo.req.UserInsertReq;
+import com.factory.entity.vo.req.UserLockReq;
+import com.factory.entity.vo.req.UserPageQueryReq;
+import com.factory.entity.vo.res.UserRes;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.aggregates.PageBean;
+import com.factory.base.entity.aggregates.ResponseBean;
+import com.factory.base.entity.po.remote.UserInfo;
+
+import java.util.List;
+
+
+public interface UserInfoService extends IService<UserInfo> {
+
+    String getNameById(Long id);
+
+    List<UserInfo> getListByNameOrNo(String word);
+
+    ResponseBean<PageBean<UserRes>> selectUser(UserPageQueryReq userPageQueryReq);
+
+    ResponseBean<String> insertUser(UserInsertReq userInsertReq);
+
+    ResponseBean<String> updateUser(UserInsertReq userInsertReq);
+
+    ResponseBean<String> userLock(UserLockReq userLockReq);
+}

+ 19 - 0
application-facade/src/main/java/com/factory/service/remote/UserRoleService.java

@@ -0,0 +1,19 @@
+package com.factory.service.remote;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.factory.base.entity.po.remote.UserRole;
+
+import java.util.List;
+
+public interface UserRoleService extends IService<UserRole> {
+
+    boolean userHasRole(Long userId, Long roleId);
+
+    List<UserRole> getRolesByUserId(Long userId);
+
+    List<Long> getRoleIdsByUserId(Long userId);
+
+
+
+
+}

+ 195 - 0
application-facade/src/main/java/com/factory/util/PdfHandler.java

@@ -0,0 +1,195 @@
+package com.factory.util;
+
+
+import com.itextpdf.text.Document;
+import com.itextpdf.text.Image;
+import com.itextpdf.text.Rectangle;
+import com.itextpdf.text.pdf.*;
+import com.lowagie.text.DocumentException;
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import org.springframework.util.ResourceUtils;
+import org.xhtmlrenderer.pdf.ITextRenderer;
+
+import java.io.*;
+import java.nio.charset.StandardCharsets;
+import java.util.Map;
+import java.util.UUID;
+
+public class PdfHandler {
+
+    private static Configuration cfg = new Configuration(Configuration.VERSION_2_3_28);
+    /**
+     * 线上位置
+     */
+    private static final String SIM_SUN_TTC = "systemLib/font/simsun.ttc";
+    private static final String ARIAL_UNI = "systemLib/font/arialuni.ttf";
+    private static final String SIM_SUN = "systemLib/font/simsun.ttf";
+    private static final String FTL_LOCATION = "systemLib/template/";
+
+    private static final String PDF = ".pdf";
+    private static final String HTML = ".html";
+    private static final String FTL = ".ftl";
+
+    static {
+        cfg.setDefaultEncoding("UTF-8");
+        try {
+            File ftlDir = ResourceUtils.getFile(FTL_LOCATION);
+            cfg.setDirectoryForTemplateLoading(ftlDir);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 生成pdf格式合同
+     */
+    public static File pdfContractHandler(
+            String templateName,
+            Map<String, Object> paramMap
+    ) {
+        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
+        File pdfFilePath = null;
+        // 判断本地路径是否存在如果不存在则创建
+        try {
+            // 组装html和pdf合同的全路径URL
+            pdfFilePath = File.createTempFile(
+                    templateName + uuid, PDF
+            );
+            File htmlFilePath = File.createTempFile(
+                    templateName + uuid, HTML
+            );
+            templateName = templateName + FTL;
+            htmHandler(templateName, htmlFilePath, paramMap);
+            // 生成html合同
+            pdfHandler(htmlFilePath, pdfFilePath);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return pdfFilePath;
+    }
+
+
+    public static File createTempPdf(
+    ) {
+        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
+        File pdfFilePath = null;
+        // 组装html和pdf合同的全路径URL
+        try {
+            pdfFilePath = File.createTempFile(
+                    uuid, PDF
+            );
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return pdfFilePath;
+    }
+
+
+    /**
+     * 生成html格式
+     */
+    private static void htmHandler(String templateName, File outHtmFile, Map<String, Object> paramMap) {
+        try {
+            Template template = cfg.getTemplate(templateName);
+            Writer out = new BufferedWriter(new OutputStreamWriter(
+                    new FileOutputStream(outHtmFile), StandardCharsets.UTF_8));
+            template.process(paramMap, out);
+            out.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+
+    /**
+     * 生成pdf格式
+     */
+    private static void pdfHandler(File htmFile, File pdfFile)
+            throws DocumentException, IOException {
+        String url = htmFile.toURI().toURL().toString();
+        OutputStream os = new FileOutputStream(pdfFile);
+        org.xhtmlrenderer.pdf.ITextRenderer renderer = new ITextRenderer();
+        renderer.setDocument(url);
+        org.xhtmlrenderer.pdf.ITextFontResolver fontResolver = renderer
+                .getFontResolver();
+        //加入字体支持
+        //打jar包后 无法直接读取jar包中的文件 放项目同目录即可
+        File simSunTtc = ResourceUtils.getFile(SIM_SUN_TTC);
+        File arialUni = ResourceUtils.getFile(ARIAL_UNI);
+        File simSun = ResourceUtils.getFile(SIM_SUN);
+        //设置字体
+        fontResolver.addFont(simSunTtc.getCanonicalPath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+        fontResolver.addFont(arialUni.getCanonicalPath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+        fontResolver.addFont(simSun.getCanonicalPath(), BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+        renderer.layout();
+        renderer.createPDF(os);
+        os.close();
+    }
+
+
+    public static void convert(String source, String target) {
+        Document document = new Document();
+        // 设置文档页边距
+        document.setMargins(0, 0, 0, 0);
+        FileOutputStream fos = null;
+        try {
+            fos = new FileOutputStream(target);
+            PdfWriter.getInstance(document, fos);
+            // 打开文档
+            document.open();
+            // 获取图片的宽高
+            Image image = Image.getInstance(source);
+            float imageHeight = image.getScaledHeight();
+            float imageWidth = image.getScaledWidth();
+            // 设置页面宽高与图片一致
+            Rectangle rectangle = new Rectangle(imageWidth, imageHeight);
+            document.setPageSize(rectangle);
+            // 图片居中
+            image.setAlignment(Image.ALIGN_CENTER);
+            // 新建一页添加图片
+            document.newPage();
+            document.add(image);
+        } catch (Exception ioe) {
+            System.out.println(ioe.getMessage());
+        } finally {
+            // 关闭文档
+            document.close();
+            try {
+                fos.flush();
+                fos.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public static boolean mergePdf(String[] files, String targetFile) {
+        boolean retValue = false;
+        Document document = null;
+        try {
+            document = new Document(new PdfReader(files[0]).getPageSize(1));
+            PdfCopy copy = new PdfCopy(document, new FileOutputStream(targetFile));
+            document.open();
+            for (int i = 0; i < files.length; i++) {
+                PdfReader reader = new PdfReader(files[i]);
+                int n = reader.getNumberOfPages();
+                for (int j = 1; j <= n; j++) {
+                    document.newPage();
+                    PdfImportedPage page = copy.getImportedPage(reader, j);
+                    copy.addPage(page);
+                }
+            }
+            retValue = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (document!=null){
+                document.close();
+            }
+        }
+        return retValue;
+    }
+
+
+}

+ 29 - 0
application-facade/src/main/java/com/factory/util/assembler/WebFileInfoAssembler.java

@@ -0,0 +1,29 @@
+package com.factory.util.assembler;
+
+import com.factory.base.entity.constant.SystemConstant;
+import com.factory.base.entity.po.file.FileInfo;
+import com.factory.config.properties.FileSystemProperties;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class WebFileInfoAssembler {
+
+    @Resource
+    private FileSystemProperties fileSystemProperties;
+
+    public String getUrlByFileInfo(FileInfo fileInfo) {
+        if (fileInfo == null) {
+            return SystemConstant.EMPTY_STRING;
+        }
+        if (StringUtils.isBlank(fileInfo.getUri())) {
+            return SystemConstant.EMPTY_STRING;
+        }
+        return StringUtils.join(
+                fileSystemProperties.getDownloadPrefix(),
+                fileInfo.getUri()
+        );
+    }
+}

+ 33 - 0
application-facade/src/main/java/com/factory/util/event/JsonSerializerManage.java

@@ -0,0 +1,33 @@
+package com.factory.util.event;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.jackson.JsonComponent;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+/**
+ * long类型存储返回json太长丢失精度问题
+ */
+@JsonComponent
+public class JsonSerializerManage {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+        SimpleModule module = new SimpleModule();
+        module.addSerializer(Long.class, ToStringSerializer.instance);
+        module.addSerializer(Long.TYPE, ToStringSerializer.instance);
+        objectMapper.registerModule(module);
+        return objectMapper;
+    }
+
+}
+

+ 24 - 0
common-base/src/main/java/com/factory/base/entity/auth/FileType.java

@@ -0,0 +1,24 @@
+package com.factory.base.entity.auth;
+
+/**
+ * 文件类型
+ */
+public enum FileType {
+
+    IMG("图片"),
+    VIDEO("视频"),
+    AUDIO("音频"),
+    DOCUMENTS("文档"),
+    PACKAGE("压缩包"),
+    OTHERS("其他"),
+    ;
+
+
+    private String name;
+
+    FileType(String name) {
+        this.name = name;
+    }
+
+
+}

+ 18 - 0
common-base/src/main/java/com/factory/base/entity/auth/MenuType.java

@@ -0,0 +1,18 @@
+package com.factory.base.entity.auth;
+
+
+import lombok.Getter;
+
+@Getter
+public enum MenuType {
+    APP(""),
+    TV("TV"),
+    PC("PC"),
+    ;
+
+
+
+    MenuType(String type) {
+    }
+
+}

+ 10 - 0
common-base/src/main/java/com/factory/base/entity/constant/CacheConstant.java

@@ -0,0 +1,10 @@
+package com.factory.base.entity.constant;
+
+public interface CacheConstant {
+
+    String PERMISSION_KEY = "ALL_PERMISSION";
+
+    String LOGIN_USER_ID = "LOGIN_USER_ID";
+    String LOGIN_USER_NAME = "LOGIN_USER_NAME";
+
+}

+ 96 - 0
common-base/src/main/java/com/factory/base/entity/constant/RemoteCommonConstants.java

@@ -0,0 +1,96 @@
+package com.factory.base.entity.constant;
+
+
+public class RemoteCommonConstants {
+
+    //--------------------------公共常量---------------------//
+    public static final int NOT_DEL = 0;
+
+    public static final int DEL = 1;
+
+    public static final int ACTIVE = 1;
+
+    public static final int NOT_ACTIVE = 0;
+
+    public static final int LOCK = 1;
+
+    public static final int NOT_LOCK = 0;
+
+    //--------------------------前缀------------------------//
+    public static final String CREATE_CRAFT_PREFIX = "GY";
+
+    public static final String CREATE_PROJECT_PREFIX = "XM";
+
+    public static final String CREATE_MATERIAL_IN_STOCK = "RK";
+
+    public static final String BOM_CODE_PREFIX = "BOM-";
+
+    //--------------------------服务名-----------------------//
+    public static final String BS_SERVICE = "bs";
+
+    //--------------------------MAP-------------------------//
+    // public static final ConcurrentMap<String, List<Dict>> BS_DICT_MAP = new ConcurrentHashMap<>();
+
+    //-------------------------parts-category --------------//
+    public static final Long PRODUCT_CATEGORY_ID = 1L;
+
+    public static final Long SEMI_PRODUCT_CATEGORY_ID = 2L;
+
+    public static final Long RAW_MATERIAL_CATEGORY_ID = 3L;
+
+    //卷料
+    public static final Long ROLL_MATERIAL_CATEGORY_ID = 4L;
+
+    //料片
+    public static final Long SLICE_MATERIAL_CATEGORY_ID = 5L;
+
+    //板料
+    public static final Long SHEET_MATERIAL_CATEGORY_ID = 6L;
+
+    public static final int CATEGORY_ID_PRODUCT = 1;
+
+    public static final int CATEGORY_ID_SEMI_PRODUCT = 2;
+
+    public static final int CATEGORY_ID_RAW_MATERIAL = 3;
+
+    //-------------------------call material state----------//
+    public static final int CALL_MATERIAL_STATE_CONFIRM = 2;
+
+    //-------------------------role ------------------------//
+    public static final Long ROLE_ADMIN = 1L;
+
+    public static final Long ADMIN = 1L;
+
+    public static final Long PRODUCT_LEADER_ID = 15L;
+
+    //-------------------------product stock----------------//
+    public static final int PRODUCT_IN_STOCK = 1;
+
+    public static final int PRODUCT_OUT_STOCK = 2;
+
+    //-------------------------time slot--------------------//
+    public static final int TIME_SLOT_TODAY = 1;
+
+    public static final int TIME_SLOT_THIS_WEEK = 2;
+
+    public static final int TIME_SLOT_THIS_MONTH = 3;
+
+    //-------------------------discard or isolate type-------------//
+    public static final int DISCARD_TYPE_CURRENT_STOCK = 1;
+
+    //-------------------------export type------//
+    public static final int EXPORT_TYPE_DISCARD = 1;
+
+    public static final int EXPORT_TYPE_ISOLATE = 2;
+
+    //-------------------------cancel book record------//
+    public static final int CANCEL_BOOK_RECORD_STATUS_APPLYING = 0;
+
+    public static final int CANCEL_BOOK_RECORD_STATUS_HANDLED = 1;
+
+    //-------------------------DIC book record------//
+
+    public static final String DICT_STOP_TYPE = "STOP_TYPE";
+
+
+}

+ 17 - 0
common-base/src/main/java/com/factory/base/entity/constant/RemoteRedisConstants.java

@@ -0,0 +1,17 @@
+package com.factory.base.entity.constant;
+
+//旧系统redis key
+public class RemoteRedisConstants {
+
+    public static final String REFRESH_TOKEN_HASH_NAME = "refreshTokenHash";
+
+    public static final String TOKEN_HASH_NAME = "tokenHash";
+
+    public static final String USER_ID_HASH_NAME = "userIdToken";
+
+    public static final String WEB_SERVICE_SET = "webServiceSet";
+
+    public static final String ROLE_HASH_NAME = "roleHash_";
+
+    public static final String USER_ROLE_RELATION = "userRoleHash";
+}

+ 59 - 0
common-base/src/main/java/com/factory/base/entity/constant/SystemConstant.java

@@ -0,0 +1,59 @@
+package com.factory.base.entity.constant;
+
+
+public interface SystemConstant {
+
+    /**
+     * 静态资源映射前缀
+     */
+    String WEB_MVC_STATIC_RESOURCE_MAPPING_PREFIX = "file:";
+
+    /**
+     * LOG异常
+     */
+    String EXCEPTION_LOG_PREFIX = "发生异常信息:{}";
+    /**
+     * 文件前后缀分隔符
+     */
+    String FILE_NAME_SPLIT_SYMBOL = "\\.";
+
+    /**
+     * 文件前后缀粘粘
+     */
+    String FILE_NAME_CONCAT_SYMBOL = ".";
+
+    /**
+     * URI分隔符
+     */
+    String URI_CONCAT_SYMBOL = "/";
+
+    String URI_CONCAT_LEFT = "\\";
+
+    /**
+     * URI单层匹配
+     */
+    String URI_SINGLE_PATTERN_SYMBOL = "*";
+
+    /**
+     * URI全匹配
+     */
+    String URI_FULL_PATTERN_SYMBOL = "**";
+
+    /**
+     * IO
+     */
+    int READ_SIZE = 8 * 1024;
+
+    String EMPTY_STRING = "";
+    String ONE_BLANK_STRING = " ";
+
+
+    String EXCEL_SUFFIX = ".xlsx";
+    String PDF_SUFFIX = ".pdf";
+
+
+    /**
+     * 文件前后缀粘粘
+     */
+    String COLON_CONCAT_SYMBOL = ":";
+}

+ 13 - 0
common-base/src/main/java/com/factory/base/entity/enumPo/CheckType.java

@@ -0,0 +1,13 @@
+package com.factory.base.entity.enumPo;
+
+public enum CheckType {
+    //检查结果类型 首件 二百
+    FIRST(1),
+    TWOHUNDRED(2),
+    BREAK(3);
+    public final Integer value;
+    CheckType(Integer value) {
+        this.value = value;
+    }
+
+}

+ 13 - 0
common-base/src/main/java/com/factory/base/entity/enumPo/CheckTypeSubmit.java

@@ -0,0 +1,13 @@
+package com.factory.base.entity.enumPo;
+
+public enum CheckTypeSubmit {
+    //检查单-某一类型的提交状态 1未保存2保存3提交
+    UNSAVE(0),
+    SAVE(1),
+    SUBMIT(2);
+    public final Integer value;
+    CheckTypeSubmit(Integer value) {
+        this.value = value;
+    }
+
+}

+ 69 - 0
common-base/src/main/java/com/factory/base/entity/enumPo/FrequencyType.java

@@ -0,0 +1,69 @@
+package com.factory.base.entity.enumPo;
+
+import java.time.*;
+import java.time.temporal.TemporalAdjusters;
+import java.util.function.Function;
+
+public enum  FrequencyType {
+    //频次  日  周  月
+    Day(1,
+            "每日",
+            Function.identity(),
+            Function.identity()),
+
+    Week(2,
+            "每周",
+            item->item.with(TemporalAdjusters.previous(DayOfWeek.MONDAY)),
+            item-> {
+                LocalDate with = item.with(TemporalAdjusters.next(DayOfWeek.SUNDAY));
+                return with;
+            }),
+    Month(3,
+            "每月",
+            item->item.with(TemporalAdjusters.firstDayOfMonth()),
+            item->item.with(TemporalAdjusters.lastDayOfMonth())),
+    QUARTER(4,
+            "每季度",
+            item->{
+                Month firstMonthOfQuarter = java.time.Month.of(item.getMonth().firstMonthOfQuarter().getValue());
+                Month firstMonthOfNextQuarter = firstMonthOfQuarter.plus(3L);
+                int yearOfNextQuarter = firstMonthOfQuarter.getValue() > 9 ? item.getYear() + 1 : item.getYear();
+                return LocalDateTime.of(LocalDate.of(yearOfNextQuarter, firstMonthOfNextQuarter, 1), LocalTime.MIN).toLocalDate();
+            },
+            item->{
+                Month firstMonthOfQuarter = java.time.Month.of(item.getMonth().firstMonthOfQuarter().getValue());
+                Month firstMonthOfNextQuarter = firstMonthOfQuarter.plus(5L);
+                int yearOfNextQuarter = firstMonthOfQuarter.getValue() > 9 ? item.getYear() + 1 : item.getYear();
+                return LocalDateTime.of(LocalDate.of(yearOfNextQuarter, firstMonthOfNextQuarter, firstMonthOfNextQuarter.maxLength()), LocalTime.MAX).toLocalDate();
+            }),
+    HALFYEAR(5,
+            "每半年",
+            item->{
+                int lastHalfYear = (item.getMonthValue() > 6) ? item.getYear() : item.getYear() - 1;
+                java.time.Month firstMonthOfLastHalfYear = (item.getMonthValue() > 6) ? java.time.Month.JANUARY : java.time.Month.JULY;
+                LocalDateTime of = LocalDateTime.of(LocalDate.of(lastHalfYear, firstMonthOfLastHalfYear, 1), LocalTime.MIN);
+                return of.toLocalDate();
+            },
+            item->{
+                int lastHalfYear = (item.getMonthValue() > 6) ? item.getYear() : item.getYear() - 1;
+                Month firstMonthOfLastHalfYear = (item.getMonthValue() > 6) ? java.time.Month.JANUARY : java.time.Month.JULY;
+                return LocalDateTime.of(LocalDate.of(lastHalfYear, firstMonthOfLastHalfYear, 1), LocalTime.MIN).toLocalDate();
+            }),
+    TEAM(6,
+            "班/次",
+            Function.identity(),
+            Function.identity());
+
+    public final Integer value;
+    public final String desc;
+    public final Function getFirstDate;
+    public final Function getEndDate;
+    FrequencyType(Integer value,String desc, Function<LocalDate, LocalDate> getFirstDate,Function<LocalDate, LocalDate> getEndDate) {
+        this.value = value;
+        this.desc = desc;
+        this.getFirstDate = getFirstDate;
+        this.getEndDate = getEndDate;
+    }
+
+
+}

+ 15 - 0
common-base/src/main/java/com/factory/base/entity/enumPo/ResStatus.java

@@ -0,0 +1,15 @@
+package com.factory.base.entity.enumPo;
+
+public enum ResStatus {
+    //响应状态
+    //待响应 已响应/未响应 已完成
+    WAIT(1),
+    UNRES(2),
+    RES(3),
+    Finished(4);
+    public final Integer value;
+    ResStatus(Integer value) {
+        this.value = value;
+    }
+
+}

+ 13 - 0
common-base/src/main/java/com/factory/base/entity/enumPo/RoleEnum.java

@@ -0,0 +1,13 @@
+package com.factory.base.entity.enumPo;
+
+public enum RoleEnum {
+    //响应状态
+    //待响应 已响应/未响应 已完成
+    质量工程师("58"),
+    质量经理("57"),
+    生产经理("56");
+    public final String value;
+    RoleEnum(String value) {
+        this.value = value;
+    }
+}

+ 14 - 0
common-base/src/main/java/com/factory/base/entity/enumPo/VersionAuditStatus.java

@@ -0,0 +1,14 @@
+package com.factory.base.entity.enumPo;
+
+public enum VersionAuditStatus {
+    //审核结果 1待审核 2当前版本 3历史版本 4驳回
+    UNAUDIT(1),
+    CURRENT(2),
+    HISTORY(3),
+    TURNDOWN(4);
+    public final Integer value;
+    VersionAuditStatus(Integer value) {
+        this.value = value;
+    }
+
+}

+ 49 - 0
common-base/src/main/java/com/factory/base/util/CopyNullPreperty.java

@@ -0,0 +1,49 @@
+package com.factory.base.util;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * @program: intelligent-factory-service
+ * @description:
+ * @author: dl
+ * @create: 05月12日 19时
+ **/
+@Service
+public class CopyNullPreperty {
+
+    public  void copyNullProperty(Object source, Object target) {
+        Map<String, Object> stringObjectMap = BeanUtil.beanToMap(target, false, true);
+        String[] strings = stringObjectMap.keySet().toArray(new String[0]);
+
+        CopyOptions copyOptions = new CopyOptions();
+        copyOptions.setIgnoreNullValue(true);
+        copyOptions.setIgnoreProperties(strings);
+        //copyOptions.setIgnoreError(null);
+        CopyOptions copyOptions1 = CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true);
+        BeanUtil.copyProperties(source, target, copyOptions1);
+    }
+    public  void copyNullProperty(Object source, Object target,String...ignore) {
+        Map<String, Object> stringObjectMap = BeanUtil.beanToMap(target, false, true);
+        String[] strings = stringObjectMap.keySet().toArray(new String[0]);
+        String[] addAll = ArrayUtils.addAll(strings, ignore);
+        CopyOptions copyOptions = new CopyOptions();
+        copyOptions.setIgnoreNullValue(true);
+        copyOptions.setIgnoreProperties(addAll);
+        //copyOptions.setIgnoreError(null);
+        CopyOptions copyOptions1 = CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true);
+        BeanUtil.copyProperties(source, target, copyOptions1);
+    }
+
+    public  void copyigoneNull(Object source, Object target) {
+        CopyOptions copyOptions = new CopyOptions();
+        copyOptions.setIgnoreNullValue(true);
+        CopyOptions copyOptions1 = CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true);
+        BeanUtil.copyProperties(source, target, copyOptions1);
+    }
+
+}

+ 40 - 0
common-base/src/main/java/com/factory/base/util/CopyUtil.java

@@ -0,0 +1,40 @@
+package com.factory.base.util;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+
+import java.util.Map;
+
+/**
+ * @program: intelligent-factory-service
+ * @description:
+ * @author: dl
+ * @create: 05月12日 17时
+ **/
+public  class CopyUtil {
+    private static void copyNullProperty(Object source, Object target) {
+        Map<String, Object> stringObjectMap = BeanUtil.beanToMap(target, false, true);
+        String[] strings = stringObjectMap.keySet().stream().toArray(String[]::new);
+
+        CopyOptions copyOptions = new CopyOptions();
+        copyOptions.setIgnoreNullValue(true);
+        copyOptions.setIgnoreProperties(strings);
+
+        CopyOptions copyOptions1 = CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true);
+        BeanUtil.copyProperties(source, target, copyOptions1);
+    }
+    private static void copyNullProperty(Object source, Class clazz) throws IllegalAccessException, InstantiationException {
+        Object bean = clazz.newInstance();
+        Map<String, Object> stringObjectMap = BeanUtil.beanToMap(bean, false, true);
+        String[] strings = stringObjectMap.keySet().stream().toArray(String[]::new);
+
+        CopyOptions copyOptions = new CopyOptions();
+        copyOptions.setIgnoreNullValue(true);
+        copyOptions.setIgnoreProperties(strings);
+
+        CopyOptions copyOptions1 = CopyOptions.create().setIgnoreNullValue(true).setIgnoreError(true);
+        BeanUtil.copyProperties(source, bean, copyOptions1);
+    }
+
+
+}