diff --git a/src/main/java/org/energy/modules/release/controller/ProductionInformationController.java b/src/main/java/org/energy/modules/release/controller/ProductionInformationController.java new file mode 100644 index 0000000..5d7a340 --- /dev/null +++ b/src/main/java/org/energy/modules/release/controller/ProductionInformationController.java @@ -0,0 +1,215 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.gnu.org/licenses/lgpl.html + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.energy.modules.release.controller; + +import com.xkcoding.http.util.StringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import javax.validation.Valid; + +import com.dayu.daf.core.mp.support.Condition; +import com.dayu.daf.core.mp.support.Query; +import com.dayu.daf.core.tool.api.R; +import com.dayu.daf.core.tool.utils.Func; +import org.energy.modules.smart.entity.OperationTicket; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestParam; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.energy.modules.release.entity.ProductionInformation; +import org.energy.modules.release.vo.ProductionInformationVO; +import org.energy.modules.release.service.IProductionInformationService; +import com.dayu.daf.core.boot.ctrl.DafController; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +/** + * 生产信息发布 控制器 + * + * @author Daf + * @since 2024-07-15 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/release/productioninformation") +@Api(value = "生产信息发布", tags = "生产信息发布接口") +public class ProductionInformationController extends DafController { + + private IProductionInformationService productionInformationService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @ApiOperation(value = "详情", notes = "传入productionInformation") + public R detail(ProductionInformation productionInformation) { + ProductionInformation detail = productionInformationService.getOne(Condition.getQueryWrapper(productionInformation)); + return R.data(detail); + } + + /** + * 分页 生产信息发布 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @ApiOperation(value = "分页", notes = "传入productionInformation") + public R> list(ProductionInformation productionInformation, Query query) { + IPage pages = productionInformationService.page(Condition.getPage(query), Condition.getQueryWrapper(productionInformation)); + return R.data(pages); + } + + /** + * 自定义分页 生产信息发布 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @ApiOperation(value = "分页", notes = "传入productionInformation") + public R> page(ProductionInformationVO productionInformation, Query query) { + IPage pages = productionInformationService.selectProductionInformationPage(Condition.getPage(query), productionInformation); + return R.data(pages); + } + + /** + * 新增 生产信息发布 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @ApiOperation(value = "新增", notes = "传入productionInformation") + public R save(@Valid @RequestBody ProductionInformation productionInformation) { + return R.status(productionInformationService.save(productionInformation)); + } + + /** + * 修改 生产信息发布 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @ApiOperation(value = "修改", notes = "传入productionInformation") + public R update(@Valid @RequestBody ProductionInformation productionInformation) { + return R.status(productionInformationService.updateById(productionInformation)); + } + + /** + * 新增或修改 生产信息发布 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @ApiOperation(value = "新增或修改", notes = "传入productionInformation") + public R submit(@Valid @RequestBody ProductionInformation productionInformation) { + LocalDate currentDate = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + String formattedDate = currentDate.format(formatter); + //获取最大消息编码 + String maxMessageCd = productionInformationService.getMaxMessageCd("'"+formattedDate+"%'"); + int number; + if (StringUtil.isNotEmpty(maxMessageCd)){ + number = Integer.parseInt(maxMessageCd.substring(maxMessageCd.length()-4)); + number++; + }else{ + number = 1; + } + String numFormat = String.format("%04d", number); + productionInformation.setMessageEncoding(formattedDate+numFormat); + + return R.status(productionInformationService.saveOrUpdate(productionInformation)); + } + + + /** + * 删除 生产信息发布 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @ApiOperation(value = "逻辑删除", notes = "传入ids") + public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return R.status(productionInformationService.deleteLogic(Func.toLongList(ids))); + } + /** + * 审核 生产信息发布 + */ + @PostMapping("/auditing") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "更新", notes = "传入ids") + public R auditing(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return this.approve(2,ids); + } + + /** + * 驳回 生产信息发布 + */ + @PostMapping("/reject") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "更新", notes = "传入ids") + public R reject(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) + { + return this.approve(3,ids); + } + + /** + * 驳回OR审核 生产信息发布 + */ + public R approve(Integer status, String ids) { + List list = new ArrayList<>(); + for (String id : ids.split(",")) { + ProductionInformation productionInformation = new ProductionInformation(); + productionInformation.setId(Long.parseLong(id)); + productionInformation.setCheckstatus(status); + list.add(productionInformation); + } + return R.status(productionInformationService.updateBatchById(list)); + } + + /** + * 停用 生产信息发布 + */ + @PostMapping("/stop") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "更新", notes = "传入ids") + public R stop(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { + return this.changeRelease(2,ids); + } + + /** + * 发布 生产信息发布 + */ + @PostMapping("/release") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "更新", notes = "传入ids") + public R release(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) + { + return this.changeRelease(1,ids); + } + + /** + * 发布R停用 生产信息发布 + */ + public R changeRelease(Integer discontinue, String ids) { + List list = new ArrayList<>(); + for (String id : ids.split(",")) { + ProductionInformation productionInformation = new ProductionInformation(); + productionInformation.setId(Long.parseLong(id)); + productionInformation.setIsDiscontinue(discontinue); + list.add(productionInformation); + } + return R.status(productionInformationService.updateBatchById(list)); + } + +} diff --git a/src/main/java/org/energy/modules/release/dto/ProductionInformationDTO.java b/src/main/java/org/energy/modules/release/dto/ProductionInformationDTO.java new file mode 100644 index 0000000..29f7e31 --- /dev/null +++ b/src/main/java/org/energy/modules/release/dto/ProductionInformationDTO.java @@ -0,0 +1,18 @@ +package org.energy.modules.release.dto; + +import org.energy.modules.release.entity.ProductionInformation; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 生产信息发布数据传输对象实体类 + * + * @author Daf + * @since 2024-07-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProductionInformationDTO extends ProductionInformation { + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/energy/modules/release/entity/ProductionInformation.java b/src/main/java/org/energy/modules/release/entity/ProductionInformation.java new file mode 100644 index 0000000..c491a73 --- /dev/null +++ b/src/main/java/org/energy/modules/release/entity/ProductionInformation.java @@ -0,0 +1,81 @@ +package org.energy.modules.release.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.dayu.daf.core.mp.base.BaseEntity; +import java.io.Serializable; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * 生产信息发布实体类 + * + * @author Daf + * @since 2024-07-15 + */ +@Data +@TableName("rel_production_information") +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "ProductionInformation对象", description = "生产信息发布") +public class ProductionInformation extends BaseEntity { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @ApiModelProperty(value = "主键") + private Long id; + /** + * 消息编码 + */ + @ApiModelProperty(value = "消息编码") + private String messageEncoding; + /** + * 消息主题 + */ + @ApiModelProperty(value = "消息主题") + private String messageTopic; + /** + * 消息类型 + */ + @ApiModelProperty(value = "消息类型") + private String messageType; + /** + * 消息内容 + */ + @ApiModelProperty(value = "消息内容") + private String messageContent; + /** + * 发布人 + */ + @ApiModelProperty(value = "发布人") + private String publisher; + /** + * 消息等级 + */ + @ApiModelProperty(value = "消息等级") + private String messageLevel; + /** + * 是否停用 + */ + @ApiModelProperty(value = "是否停用") + private Integer isDiscontinue; + /** + * 发布时间 + */ + @ApiModelProperty(value = "发布时间") + private String releaseTime; + /** + * 审核状态 + */ + @ApiModelProperty(value = "审核状态") + private Integer checkstatus; + + +} diff --git a/src/main/java/org/energy/modules/release/mapper/ProductionInformationMapper.java b/src/main/java/org/energy/modules/release/mapper/ProductionInformationMapper.java new file mode 100644 index 0000000..fb3d395 --- /dev/null +++ b/src/main/java/org/energy/modules/release/mapper/ProductionInformationMapper.java @@ -0,0 +1,27 @@ +package org.energy.modules.release.mapper; + +import org.energy.modules.release.entity.ProductionInformation; +import org.energy.modules.release.vo.ProductionInformationVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 生产信息发布 Mapper 接口 + * + * @author Daf + * @since 2024-07-15 + */ +public interface ProductionInformationMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param productionInformation + * @return + */ + List selectProductionInformationPage(IPage page, ProductionInformationVO productionInformation); + + String getMaxMessageCd(String data); +} diff --git a/src/main/java/org/energy/modules/release/mapper/ProductionInformationMapper.xml b/src/main/java/org/energy/modules/release/mapper/ProductionInformationMapper.xml new file mode 100644 index 0000000..a3db19b --- /dev/null +++ b/src/main/java/org/energy/modules/release/mapper/ProductionInformationMapper.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/energy/modules/release/service/IProductionInformationService.java b/src/main/java/org/energy/modules/release/service/IProductionInformationService.java new file mode 100644 index 0000000..9963756 --- /dev/null +++ b/src/main/java/org/energy/modules/release/service/IProductionInformationService.java @@ -0,0 +1,26 @@ +package org.energy.modules.release.service; + +import org.energy.modules.release.entity.ProductionInformation; +import org.energy.modules.release.vo.ProductionInformationVO; +import com.dayu.daf.core.mp.base.BaseService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * 生产信息发布 服务类 + * + * @author Daf + * @since 2024-07-15 + */ +public interface IProductionInformationService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param productionInformation + * @return + */ + IPage selectProductionInformationPage(IPage page, ProductionInformationVO productionInformation); + + String getMaxMessageCd(String data); +} diff --git a/src/main/java/org/energy/modules/release/service/impl/ProductionInformationServiceImpl.java b/src/main/java/org/energy/modules/release/service/impl/ProductionInformationServiceImpl.java new file mode 100644 index 0000000..6395763 --- /dev/null +++ b/src/main/java/org/energy/modules/release/service/impl/ProductionInformationServiceImpl.java @@ -0,0 +1,29 @@ +package org.energy.modules.release.service.impl; + +import org.energy.modules.release.entity.ProductionInformation; +import org.energy.modules.release.vo.ProductionInformationVO; +import org.energy.modules.release.mapper.ProductionInformationMapper; +import org.energy.modules.release.service.IProductionInformationService; +import com.dayu.daf.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * 生产信息发布 服务实现类 + * + * @author Daf + * @since 2024-07-15 + */ +@Service +public class ProductionInformationServiceImpl extends BaseServiceImpl implements IProductionInformationService { + + @Override + public IPage selectProductionInformationPage(IPage page, ProductionInformationVO productionInformation) { + return page.setRecords(baseMapper.selectProductionInformationPage(page, productionInformation)); + } + @Override + public String getMaxMessageCd(String data){ + return baseMapper.getMaxMessageCd(data); + } + +} diff --git a/src/main/java/org/energy/modules/release/vo/ProductionInformationVO.java b/src/main/java/org/energy/modules/release/vo/ProductionInformationVO.java new file mode 100644 index 0000000..fc7acbc --- /dev/null +++ b/src/main/java/org/energy/modules/release/vo/ProductionInformationVO.java @@ -0,0 +1,20 @@ +package org.energy.modules.release.vo; + +import org.energy.modules.release.entity.ProductionInformation; +import lombok.Data; +import lombok.EqualsAndHashCode; +import io.swagger.annotations.ApiModel; + +/** + * 生产信息发布视图实体类 + * + * @author Daf + * @since 2024-07-15 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ApiModel(value = "ProductionInformationVO对象", description = "生产信息发布") +public class ProductionInformationVO extends ProductionInformation { + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/sql/productioninformation.menu.sql b/src/main/java/sql/productioninformation.menu.sql new file mode 100644 index 0000000..9b85441 --- /dev/null +++ b/src/main/java/sql/productioninformation.menu.sql @@ -0,0 +1,30 @@ +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069121', 1123598815738675201, 'productioninformation', '', 'menu', '/release/productioninformation', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069122', '1812723339080069121', 'productioninformation_add', '新增', 'add', '/release/productioninformation/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069123', '1812723339080069121', 'productioninformation_edit', '修改', 'edit', '/release/productioninformation/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069124', '1812723339080069121', 'productioninformation_delete', '删除', 'delete', '/api/release/productioninformation/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069125', '1812723339080069121', 'productioninformation_view', '查看', 'view', '/release/productioninformation/view', 'file-text', 4, 2, 2, 1, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069126', '1812723339080069121', 'productioninformation_col_id', '主键', 'prop', '', '', 5, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069127', '1812723339080069121', 'productioninformation_col_messageEncoding', '消息编码', 'prop', '', '', 6, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069128', '1812723339080069121', 'productioninformation_col_messageTopic', '消息主题', 'prop', '', '', 7, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069129', '1812723339080069121', 'productioninformation_col_messageType', '消息类型', 'prop', '', '', 8, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069130', '1812723339080069121', 'productioninformation_col_messageContent', '消息内容', 'prop', '', '', 9, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069131', '1812723339080069121', 'productioninformation_col_publisher', '发布人', 'prop', '', '', 10, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069132', '1812723339080069121', 'productioninformation_col_messageLevel', '消息等级', 'prop', '', '', 11, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069133', '1812723339080069121', 'productioninformation_col_isDiscontinue', '是否停用', 'prop', '', '', 12, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069134', '1812723339080069121', 'productioninformation_col_releaseTime', '发布时间', 'prop', '', '', 13, 3, 0, 0, NULL, 0); +INSERT INTO `sys_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1812723339080069135', '1812723339080069121', 'productioninformation_col_checkstatus', '审核状态', 'prop', '', '', 14, 3, 0, 0, NULL, 0);