rsf-server/src/main/java/com/vincent/rsf/server/common/CodeBuilder.java
@@ -22,9 +22,9 @@ // generator.username="sa"; // generator.password="Zoneyung@zy56$"; generator.table="man_loc_area_mat"; generator.tableDesc="loc areas mats"; generator.packagePath="com.vincent.rsf.server.test"; generator.table="man_device_site"; generator.tableDesc="device sites"; generator.packagePath="com.vincent.rsf.server.manager"; generator.build(); } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -147,19 +147,9 @@ @PreAuthorize("hasAuthority('manager:asnOrder:list')") public R getListByMatnr(@RequestBody Map<String, String> params){ if (Objects.isNull(params)) { throw new CoolException("查询条件不能为空!!"); return R.error("查询条件不能为空!!"); } return R.ok(asnOrderService.getListByMatnr(params)); } @PostMapping("/asnOrder/generate/barcode") @ApiOperation("生成ASN标签") @PreAuthorize("hasAuthority('manager:asnOrder:list')") public R generateBarcode(@RequestBody List<AsnOrder> orders) { if (orders.isEmpty()) { return R.error("单据不能为空!!"); } return asnOrderService.generateBarcode(orders); } @@ -168,8 +158,18 @@ @PreAuthorize("hasAuthority('manager:asnOrder:save')") public R orderAndItem(@RequestBody AsnOrderAndItemsParams params) { if (Objects.isNull(params)) { throw new CoolException("参数不能为空!!"); return R.error("参数不能为空!!"); } return asnOrderService.saveOrderAndItems(params); } @ApiOperation("单据信息修改") @PostMapping("/asnOrder/items/update") @PreAuthorize("hasAuthority('manager:asnOrder:update')") public R orderAndrItemUpdate(@RequestBody AsnOrderAndItemsParams params) { if (Objects.isNull(params)) { return R.error("参数不能为空!!"); } return asnOrderService.updateOrderItem(params); } } rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
@@ -11,6 +11,7 @@ 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.entity.AsnOrder; import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; import com.vincent.rsf.server.manager.service.AsnOrderItemService; @@ -123,14 +124,26 @@ ExcelUtil.build(ExcelUtil.create(list, AsnOrderTemplate.class, true), response); } @PostMapping("/asnOrderItem/generate/barcode") @ApiOperation("生成ASN标签") @PreAuthorize("hasAuthority('manager:asnOrder:list')") public R generateBarcode(@RequestBody List<Long> orders) { if (orders.isEmpty()) { return R.error("单据不能为空!!"); } return asnOrderItemService.generateBarcode(orders); } /** * ASN单据明细导入 * @param file * @return */ @PostMapping("/asnOrder/import") @PostMapping("/asnOrderItem/import") @ApiOperation("ASN导入接口") @PreAuthorize("hasAuthority('manager:asnOrder:update')") @PreAuthorize("hasAuthority('manager:asnOrderItem:update')") public R importExcel(@RequestParam(value = "file") MultipartFile file, @RequestParam String asnId) throws Exception { if (Objects.isNull(file)) { throw new CoolException("文件不能为空!!"); rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/DeviceSiteController.java
New file @@ -0,0 +1,125 @@ package com.vincent.rsf.server.manager.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.*; import javax.servlet.http.HttpServletResponse; import java.util.*; @RestController @Api(tags = "站点管理") public class DeviceSiteController extends BaseController { @Autowired private DeviceSiteService deviceSiteService; @PreAuthorize("hasAuthority('manager:deviceSite:list')") @PostMapping("/deviceSite/page") public R page(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<DeviceSite, BaseParam> pageParam = new PageParam<>(baseParam, DeviceSite.class); return R.ok().add(deviceSiteService.page(pageParam, pageParam.buildWrapper(true))); } @PreAuthorize("hasAuthority('manager:deviceSite:list')") @PostMapping("/deviceSite/list") public R list(@RequestBody Map<String, Object> map) { return R.ok().add(deviceSiteService.list()); } @PreAuthorize("hasAuthority('manager:deviceSite:list')") @PostMapping({"/deviceSite/many/{ids}", "/deviceSites/many/{ids}"}) public R many(@PathVariable Long[] ids) { return R.ok().add(deviceSiteService.listByIds(Arrays.asList(ids))); } @PreAuthorize("hasAuthority('manager:deviceSite:list')") @GetMapping("/deviceSite/{id}") public R get(@PathVariable("id") Long id) { return R.ok().add(deviceSiteService.getById(id)); } @PreAuthorize("hasAuthority('manager:deviceSite:save')") @OperationLog("Create device sites") @PostMapping("/deviceSite/save") public R save(@RequestBody DeviceSite deviceSite) { deviceSite.setCreateBy(getLoginUserId()); deviceSite.setCreateTime(new Date()); deviceSite.setUpdateBy(getLoginUserId()); deviceSite.setUpdateTime(new Date()); if (!deviceSiteService.save(deviceSite)) { return R.error("Save Fail"); } return R.ok("Save Success").add(deviceSite); } @PreAuthorize("hasAuthority('manager:deviceSite:update')") @OperationLog("Update device sites") @PostMapping("/deviceSite/update") public R update(@RequestBody DeviceSite deviceSite) { deviceSite.setUpdateBy(getLoginUserId()); deviceSite.setUpdateTime(new Date()); if (!deviceSiteService.updateById(deviceSite)) { return R.error("Update Fail"); } return R.ok("Update Success").add(deviceSite); } @PreAuthorize("hasAuthority('manager:deviceSite:remove')") @OperationLog("Delete device sites") @PostMapping("/deviceSite/remove/{ids}") public R remove(@PathVariable Long[] ids) { if (!deviceSiteService.removeByIds(Arrays.asList(ids))) { return R.error("Delete Fail"); } return R.ok("Delete Success").add(ids); } @PreAuthorize("hasAuthority('manager:deviceSite:list')") @PostMapping("/deviceSite/query") public R query(@RequestParam(required = false) String condition) { List<KeyValVo> vos = new ArrayList<>(); LambdaQueryWrapper<DeviceSite> wrapper = new LambdaQueryWrapper<>(); if (!Cools.isEmpty(condition)) { wrapper.like(DeviceSite::getName, condition); } deviceSiteService.page(new Page<>(1, 30), wrapper).getRecords().forEach( item -> vos.add(new KeyValVo(item.getId(), item.getName())) ); return R.ok().add(vos); } @PreAuthorize("hasAuthority('manager:deviceSite:list')") @PostMapping("/deviceSite/export") public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { 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/MatnrController.java
@@ -206,14 +206,14 @@ } else { matnrs = matnrService.list(new LambdaQueryWrapper<Matnr>().last("limit 1")); } ExcelUtil.build(ExcelUtil.create(null, MatnrsTemplate.class, true), response); ExcelUtil.build(ExcelUtil.create(matnrs, Matnr.class, true), response); } @PreAuthorize("hasAuthority('manager:matnr:list')") @ApiOperation("下载物料模板") @PostMapping("/matnr/template/download") public void download(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { ExcelUtil.build(ExcelUtil.create(null, MatnrsTemplate.class, true), response); ExcelUtil.build(ExcelUtil.create(null, MatnrsTemplate.class), response); } 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
New file @@ -0,0 +1,268 @@ package com.vincent.rsf.server.manager.entity; import com.baomidou.mybatisplus.annotation.*; import java.text.SimpleDateFormat; 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.TableLogic; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.SpringUtils; import com.vincent.rsf.server.system.service.UserService; 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 { private static final long serialVersionUID = 1L; /** * ID */ @ApiModelProperty(value= "ID") @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 入出库类型 */ @ApiModelProperty(value= "入出库类型") private String type; /** * 站点编号 */ @ApiModelProperty(value= "站点编号") private String site; /** * 名称 */ @ApiModelProperty(value= "名称") private String name; /** * wcs站点编号 */ @ApiModelProperty(value= "wcs站点编号") private String wcsCode; /** * 站点标签 */ @ApiModelProperty(value= "站点标签") private String label; /** * 设备类型 */ @ApiModelProperty(value= "设备类型") private String device; /** * 设备编号 */ @ApiModelProperty(value= "设备编号") private String deviceCode; /** * 设备站点 */ @ApiModelProperty(value= "设备站点") private String deviceSite; /** * 状态 1: 正常 0: 冻结 */ @ApiModelProperty(value= "状态 1: 正常 0: 冻结 ") private Integer status; /** * 是否删除 1: 是 0: 否 */ @ApiModelProperty(value= "是否删除 1: 是 0: 否 ") @TableLogic private Integer deleted; /** * 租户 */ @ApiModelProperty(value= "租户") private Integer tenantId; /** * 添加人员 */ @ApiModelProperty(value= "添加人员") private Long createBy; /** * 添加时间 */ @ApiModelProperty(value= "添加时间") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date createTime; /** * 修改人员 */ @ApiModelProperty(value= "修改人员") private Long updateBy; /** * 修改时间 */ @ApiModelProperty(value= "修改时间") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date updateTime; /** * 作业类型 */ @TableField(exist = false) private String typeIds; /** * 备注 */ @ApiModelProperty(value= "备注") private String memo; public DeviceSite() {} 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; this.wcsCode = wcsCode; this.label = label; this.device = device; this.deviceCode = deviceCode; this.deviceSite = deviceSite; this.status = status; this.deleted = deleted; this.tenantId = tenantId; this.createBy = createBy; this.createTime = createTime; this.updateBy = updateBy; this.updateTime = updateTime; this.memo = memo; } // DeviceSite deviceSite = new DeviceSite( // null, // 入出库类型 // null, // 站点编号 // null, // 名称 // null, // wcs站点编号 // null, // 站点标签 // null, // 设备类型 // null, // 设备编号 // null, // 设备站点 // null, // 状态[非空] // null, // 是否删除[非空] // null, // 租户 // null, // 添加人员 // null, // 添加时间[非空] // null, // 修改人员 // null, // 修改时间[非空] // 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){ case 1: return "正常"; case 0: return "冻结"; default: return String.valueOf(this.status); } } public String getCreateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.createBy); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); } return null; } public String getCreateTime$(){ if (Cools.isEmpty(this.createTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime); } public String getUpdateBy$(){ UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.updateBy); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); } return null; } public String getUpdateTime$(){ if (Cools.isEmpty(this.updateTime)){ return ""; } return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime); } public Boolean getStatusBool(){ if (null == this.status){ return null; } switch (this.status){ case 1: return true; case 0: return false; default: return null; } } } rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/DeviceSiteMapper.java
New file @@ -0,0 +1,12 @@ package com.vincent.rsf.server.manager.mapper; import com.vincent.rsf.server.manager.entity.DeviceSite; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Mapper @Repository public interface DeviceSiteMapper extends BaseMapper<DeviceSite> { } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemLogService.java
@@ -1,8 +1,12 @@ package com.vincent.rsf.server.manager.service; import com.baomidou.mybatisplus.extension.service.IService; import com.vincent.rsf.server.manager.entity.AsnOrder; import com.vincent.rsf.server.manager.entity.AsnOrderItemLog; import java.util.List; public interface AsnOrderItemLogService extends IService<AsnOrderItemLog> { } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java
@@ -6,17 +6,22 @@ import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.AsnOrder; import com.vincent.rsf.server.manager.entity.AsnOrderItem; import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; import java.util.List; import java.util.Map; public interface AsnOrderItemService extends IService<AsnOrderItem> { R excelImport(MultipartFile file, HashMap<String, Object> hashMap) throws Exception; boolean fieldsSave(Map<String, Object> params); R generateBarcode(List<Long> orders); IPage<Map<String, Object>> listByAsnId(PageParam<AsnOrderItem, BaseParam> pageParam, QueryWrapper<AsnOrderItem> buildWrapper); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
@@ -12,9 +12,9 @@ boolean notifyInspect(List<AsnOrder> orders); R generateBarcode(List<AsnOrder> orders); List<AsnOrder> getListByMatnr(Map<String, String> params); R saveOrderAndItems(AsnOrderAndItemsParams params); R updateOrderItem(AsnOrderAndItemsParams params); } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/DeviceSiteService.java
New file @@ -0,0 +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/AsnOrderItemServiceImpl.java
@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.api.entity.dto.PoItemsDto; import com.vincent.rsf.server.api.service.ReportMsgService; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.ExcelUtil; @@ -16,11 +18,16 @@ import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper; import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.mapper.AsnOrderMapper; import com.vincent.rsf.server.manager.mapper.PurchaseMapper; import com.vincent.rsf.server.manager.service.AsnOrderItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.server.manager.service.PurchaseService; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.service.FieldsItemService; import com.vincent.rsf.server.system.service.FieldsService; import com.vincent.rsf.server.system.utils.ExtendFieldsUtils; import com.vincent.rsf.server.system.utils.SerialRuleUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,6 +36,7 @@ import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @Service("asnOrderItemService") public class AsnOrderItemServiceImpl extends ServiceImpl<AsnOrderItemMapper, AsnOrderItem> implements AsnOrderItemService { @@ -43,6 +51,29 @@ private FieldsItemService fieldsItemService; @Override public R generateBarcode(List<Long> orders) { if (Objects.isNull(orders) || orders.isEmpty()) { throw new CoolException("参数不能为空!!"); } List<AsnOrderItem> items = this.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getId, orders)); if (items.isEmpty()) { throw new CoolException("单据明细不存在!!"); } items.forEach(item -> { String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item); if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { throw new CoolException("系统错误,请检查「SYS_LABEL_CODE」标签规则是否存在"); } item.setTrackCode(ruleCode); }); if (!this.saveOrUpdateBatch(items)) { throw new CoolException("生成条码失败!!"); } return R.ok(); } @Override @Transactional(rollbackFor = Exception.class) public R excelImport(MultipartFile file, HashMap<String, Object> hashMap) throws Exception { ExcelImportResult result = ExcelImportUtil.importExcelMore(file.getInputStream(), AsnOrderTemplate.class, ExcelUtil.getDefaultImportParams()); rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -1,5 +1,6 @@ package com.vincent.rsf.server.manager.service.impl; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; @@ -21,6 +22,7 @@ import com.vincent.rsf.server.system.utils.SerialRuleUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; @@ -66,22 +68,6 @@ } } @Override public R generateBarcode(List<AsnOrder> orders) { orders.forEach(order -> { List<AsnOrderItem> items = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId())); if (!items.isEmpty()) { items.forEach(item -> { String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item); item.setTrackCode(ruleCode); }); if (!asnOrderItemService.saveOrUpdateBatch(items)) { throw new CoolException("生成条码失败!!"); } } }); return R.ok(); } @Override public List<AsnOrder> getListByMatnr(Map<String, String> params) { @@ -130,4 +116,32 @@ }); return R.ok("保存成功!!"); } /** * 表单明细修改 * @param params * @return */ @Override @Transactional public R updateOrderItem(AsnOrderAndItemsParams params) { if (Objects.isNull(params.getOrders())) { throw new CoolException("主单信息不能为空!!"); } if (Objects.isNull(params.getOrders().getId())) { throw new CoolException("数据错误:单据ID不能为空!!"); } if (this.updateById(params.getOrders())) { throw new CoolException("主单修改失败!!"); } if (Objects.isNull(params.getItems()) || params.getItems().isEmpty()) { return R.ok("修改完成!!"); } List<Map<String, Object>> items = params.getItems(); List<AsnOrderItem> asnOrderItems = JSONArray.parseArray(JSONArray.toJSONString(items), AsnOrderItem.class); if (asnOrderItemService.saveOrUpdateBatch(asnOrderItems)) { throw new CoolException("明细修改失败!!"); } return R.ok("修改完成!!"); } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/DeviceSiteServiceImpl.java
New file @@ -0,0 +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"; } rsf-server/src/main/resources/application.yml
@@ -23,7 +23,7 @@ # global-config: # field-strategy: 0 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl map-underscore-to-camel-case: true cache-enabled: true call-setters-on-nulls: true rsf-server/src/main/resources/mapper/manager/DeviceSiteMapper.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.vincent.rsf.server.manager.mapper.DeviceSiteMapper"> </mapper>