rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java
@@ -4,14 +4,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.common.annotation.OperationLog; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.controller.params.DeviceSiteParame; import com.vincent.rsf.server.manager.entity.DeviceSite; import com.vincent.rsf.server.manager.service.DeviceSiteService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -20,6 +24,7 @@ import java.util.*; @RestController @Api(tags = "站点管理") public class DeviceSiteController extends BaseController { @Autowired @@ -107,4 +112,14 @@ ExcelUtil.build(ExcelUtil.create(deviceSiteService.list(), DeviceSite.class), response); } @PreAuthorize("hasAuthority('manager:deviceSite:save')") @ApiOperation("站点初始化") @PostMapping("/deviceSite/init") public R initDeviceSite(@RequestBody DeviceSiteParame param) { if (Objects.isNull(param)) { throw new CoolException("参数不能为空!!"); } return R.ok(deviceSiteService.initSites(param)); } } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/DeviceSiteParame.java
New file @@ -0,0 +1,31 @@ package com.vincent.rsf.server.manager.controller.params; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; import java.util.List; @Data @Accessors(chain = true) public class DeviceSiteParame { @ApiModelProperty("是否初始化") private Integer flagInit; @ApiModelProperty("设备类型") private String deviceType; @ApiModelProperty("作业类型") private List<Long> typeIds; @ApiModelProperty("作业站点") private List<String> sites; @ApiModelProperty("设备编号") private String deviceCode; @ApiModelProperty("设备作业站点") private List<String> deviceSites; } rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/DeviceSite.java
@@ -1,16 +1,23 @@ package com.vincent.rsf.server.manager.entity; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.server.manager.service.LocTypeService; import com.vincent.rsf.server.system.constant.DictTypeCode; import com.vincent.rsf.server.system.entity.DictData; import com.vincent.rsf.server.system.entity.DictType; import com.vincent.rsf.server.system.service.DictDataService; import lombok.experimental.Accessors; import org.apache.commons.lang3.StringUtils; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -20,8 +27,10 @@ import com.vincent.rsf.server.system.entity.User; import java.io.Serializable; import java.util.Date; import java.util.stream.Collectors; @Data @Accessors(chain = true) @TableName("man_device_site") public class DeviceSite implements Serializable { @@ -38,7 +47,7 @@ * 入出库类型 */ @ApiModelProperty(value= "入出库类型") private Integer type; private String type; /** * 站点编号 @@ -127,6 +136,12 @@ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 作业类型 */ @TableField(exist = false) private String typeIds; /** * 备注 */ @@ -135,7 +150,7 @@ public DeviceSite() {} public DeviceSite(Integer type,String site,String name,String wcsCode,String label,String device,String deviceCode,String deviceSite,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { public DeviceSite(String type,String site,String name,String wcsCode,String label,String device,String deviceCode,String deviceSite,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { this.type = type; this.site = site; this.name = name; @@ -173,6 +188,25 @@ // null // 备注 // ); public String getType$(){ if (null == this.type){ return null; } String[] split = this.type.split(","); List<String> asList = Arrays.asList(split); if (asList.isEmpty()) { return null; } DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); List<DictData> dictDatas = dictDataService.list(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_TASK_TYPE) .in(DictData::getId, asList)); if (dictDatas.isEmpty()) { return null; } List<String> strings = dictDatas.stream().map(DictData::getLabel).collect(Collectors.toList()); return StringUtils.join(strings, ","); } public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java
@@ -1,8 +1,10 @@ package com.vincent.rsf.server.manager.service; import com.baomidou.mybatisplus.extension.service.IService; import com.vincent.rsf.server.manager.controller.params.DeviceSiteParame; import com.vincent.rsf.server.manager.entity.DeviceSite; public interface DeviceSiteService extends IService<DeviceSite> { boolean initSites(DeviceSiteParame param); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
@@ -1,12 +1,61 @@ package com.vincent.rsf.server.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.controller.params.DeviceSiteParame; import com.vincent.rsf.server.manager.mapper.DeviceSiteMapper; import com.vincent.rsf.server.manager.entity.DeviceSite; import com.vincent.rsf.server.manager.service.DeviceSiteService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; @Service("deviceSiteService") public class DeviceSiteServiceImpl extends ServiceImpl<DeviceSiteMapper, DeviceSite> implements DeviceSiteService { /** * 初始化站点 * @param param * @return */ @Override public boolean initSites(DeviceSiteParame param) { if (param.getFlagInit() == 1) { if (!this.remove(new LambdaQueryWrapper<>())) { throw new CoolException("初始化失败: 删除站点失败!!"); } } if (Objects.isNull(param.getDeviceSites()) || param.getDeviceSites().isEmpty()) { throw new CoolException("初始化失败: 设备作业站点不能为空!!"); } if (Objects.isNull(param.getSites()) || param.getSites().isEmpty()) { throw new CoolException("初始化失败: 作业站点不能为空!!"); } if (Objects.isNull(param.getTypeIds()) || param.getTypeIds().isEmpty()) { throw new CoolException("初始化失败: 作业类型不能为空!!"); } List<DeviceSite> deviceSites = new ArrayList<>(); for (String site : param.getSites()) { for (String deviceSite : param.getDeviceSites()) { for (Long id : param.getTypeIds()) { DeviceSite site1 = new DeviceSite(); site1.setType(id + "") .setSite(site) .setDevice(param.getDeviceType()) .setDeviceSite(deviceSite) .setDeviceCode(param.getDeviceCode()); deviceSites.add(site1); } } } if (!this.saveBatch(deviceSites)) { throw new CoolException("初始化失败: 数据保存失败!!"); } return true; } } rsf-server/src/main/java/com/vincent/rsf/server/system/constant/DictTypeCode.java
@@ -9,6 +9,14 @@ */ public class DictTypeCode { /** * 企业类型 */ public final static String DICT_COMPANY_TYPE = "sys_companys_type"; /** * 任务类型 */ public final static String DICT_SYS_TASK_TYPE = "sys_task_type"; }