| | |
| | | import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.vincent.rsf.framework.common.R; |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.common.domain.BaseParam; |
| | | import com.vincent.rsf.server.common.domain.PageParam; |
| | | import com.vincent.rsf.server.common.utils.CommonUtil; |
| | | import com.vincent.rsf.server.common.utils.ExcelUtil; |
| | | import com.vincent.rsf.server.common.utils.FieldsUtils; |
| | | import com.vincent.rsf.server.manager.controller.params.MatnrToGroupParams; |
| | | import com.vincent.rsf.server.manager.entity.MatnrGroup; |
| | | import com.vincent.rsf.server.manager.entity.excel.MatnrsTemplate; |
| | | import com.vincent.rsf.server.manager.mapper.MatnrMapper; |
| | |
| | | import com.vincent.rsf.server.manager.service.MatnrService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.vincent.rsf.server.system.constant.SerialRuleCode; |
| | | import com.vincent.rsf.server.system.entity.Fields; |
| | | import com.vincent.rsf.server.system.service.FieldsService; |
| | | import com.vincent.rsf.server.system.utils.SerialRuleUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service("matnrService") |
| | | public class MatnrServiceImpl extends ServiceImpl<MatnrMapper, Matnr> implements MatnrService { |
| | |
| | | } |
| | | //获取动态字段,并保存明细内容 |
| | | if (!FieldsUtils.getFieldsSta().isEmpty()) { |
| | | String uuid = CommonUtil.randomUUID16(); |
| | | matnr.setFieldsIndex(uuid); |
| | | //保存物料扩展属性值 |
| | | FieldsUtils.saveFields(template, uuid); |
| | | try { |
| | | String uuid = CommonUtil.randomUUID16(); |
| | | boolean b = FieldsUtils.saveFields(template, uuid); |
| | | if (b) { |
| | | matnr.setFieldsIndex(uuid); |
| | | } |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | matnrs.add(matnr); |
| | | }); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam) { |
| | | PageParam<Matnr, BaseParam> page = this.page(pageParam, pageParam.buildWrapper(true)); |
| | | public PageParam<Matnr, BaseParam> getMatnrPage(PageParam<Matnr, BaseParam> pageParam, Map<String, Object> params) { |
| | | QueryWrapper<Matnr> queryWrapper = pageParam.buildWrapper(true); |
| | | if (params.containsKey("groupId")) { |
| | | Object groupId = params.get("groupId"); |
| | | if (!Objects.isNull(groupId)) { |
| | | List<MatnrGroup> matnrGroups = matnrGroupService.list(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getParentId, Long.parseLong(groupId.toString())).select(MatnrGroup::getId)); |
| | | if (!matnrGroups.isEmpty()) { |
| | | List<Long> longs = matnrGroups.stream().map(MatnrGroup::getId).collect(Collectors.toList()); |
| | | queryWrapper.or().in("group_id", longs); |
| | | } |
| | | } |
| | | } |
| | | /**拼接扩展字段*/ |
| | | PageParam<Matnr, BaseParam> page = this.page(pageParam, queryWrapper); |
| | | List<Matnr> records = page.getRecords(); |
| | | for (Matnr record : records) { |
| | | if (!Objects.isNull(record.getFieldsIndex())) { |
| | |
| | | } |
| | | page.setRecords(records); |
| | | return page; |
| | | } |
| | | |
| | | @Override |
| | | public Matnr selectMatnrById(Long id) { |
| | | Matnr matnr = this.baseMapper.selectById(id); |
| | | if (Objects.isNull(matnr)) { |
| | | throw new CoolException("当前物料不存在!!"); |
| | | } |
| | | if (!Objects.isNull(matnr.getFieldsIndex())) { |
| | | Map<String, String> fields = FieldsUtils.getFields(matnr.getFieldsIndex()); |
| | | matnr.setExtendFields(fields); |
| | | } |
| | | return matnr; |
| | | } |
| | | |
| | | /** |
| | | * 物料绑定 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean bindMatnrs(MatnrToGroupParams params) { |
| | | if (Objects.isNull(params) && params.getIds().isEmpty()) { |
| | | throw new CoolException("物料不能为空!!"); |
| | | } |
| | | if (Objects.isNull(params.getGroupId())) { |
| | | throw new CoolException("分组不能为空!!"); |
| | | } |
| | | MatnrGroup groups = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getId, params.getGroupId())); |
| | | if (Objects.isNull(groups)) { |
| | | throw new CoolException("物料分组不存在!!"); |
| | | } |
| | | if (!this.update(new LambdaUpdateWrapper<Matnr>() |
| | | .in(Matnr::getId, params.getIds()) |
| | | .set(Matnr::getGroupId, groups.getId()) |
| | | .set(Matnr::getGroupCode, groups.getCode()))) { |
| | | throw new CoolException("绑定失败!!"); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | * 批量修改物料 |
| | | * @param params |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean batchUpdate(MatnrToGroupParams params) { |
| | | if (Objects.isNull(params.getMatnr())) { |
| | | throw new CoolException("物料属性不能为空!!"); |
| | | } |
| | | if (Objects.isNull(params.getIds()) || params.getIds().isEmpty()) { |
| | | throw new CoolException("所选物料不能为空!!"); |
| | | } |
| | | Matnr matnr = params.getMatnr(); |
| | | if (!this.update(new LambdaUpdateWrapper<Matnr>().in(Matnr::getId, params.getIds()) |
| | | .set(!Objects.isNull(matnr.getStatus()), Matnr::getStatus, matnr.getStatus()) |
| | | .set(!Objects.isNull(matnr.getFlagCheck()), Matnr::getFlagCheck, matnr.getFlagCheck()) |
| | | .set(!Objects.isNull(matnr.getFlagLabelMange()), Matnr::getFlagLabelMange, matnr.getFlagLabelMange()) |
| | | .set(!Objects.isNull(matnr.getStockLevel()), Matnr::getStockLevel, matnr.getStockLevel()) |
| | | .set(!Objects.isNull(matnr.getShipperId()), Matnr::getShipperId, matnr.getShipperId()) |
| | | .set(!Objects.isNull(matnr.getMinQty()), Matnr::getMinQty, matnr.getMinQty()) |
| | | .set(!Objects.isNull(matnr.getMaxQty()), Matnr::getMaxQty, matnr.getMaxQty()) |
| | | .set(!Objects.isNull(matnr.getValid()), Matnr::getValid, matnr.getValid()) |
| | | .set(!Objects.isNull(matnr.getValidWarn()), Matnr::getValidWarn, matnr.getValidWarn()) |
| | | .set(!Objects.isNull(matnr.getStockUnit()), Matnr::getStockUnit, matnr.getStockUnit()) |
| | | )) { |
| | | throw new CoolException("批量操作失败!!"); |
| | | } |
| | | |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | public PageParam<Matnr, BaseParam> getPages(Map<String, Object> map) { |
| | | |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | |
| | | Matnr matnr1 = JSONObject.parseObject(JSONObject.toJSONString(matnr), Matnr.class); |
| | | if (Objects.isNull(matnr1.getCode())) { |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_MATNR_CODE, null); |
| | | System.out.println("=========>"); |
| | | System.out.println(ruleCode); |
| | | matnr1.setCode(ruleCode); |
| | | } |
| | | /** |
| | |
| | | */ |
| | | String uuid16 = CommonUtil.randomUUID16(); |
| | | if (!FieldsUtils.getFieldsSta().isEmpty()) { |
| | | FieldsUtils.saveFields(matnr, uuid16); |
| | | matnr1.setFieldsIndex(uuid16); |
| | | // Map<String, ?> extendFields = (Map<String, ?>) matnr.get("extendFields"); |
| | | try { |
| | | FieldsUtils.saveFields(matnr, uuid16); |
| | | matnr1.setFieldsIndex(uuid16); |
| | | } catch (Exception ex) { |
| | | log.error(ex.toString()); |
| | | throw new CoolException("动态字段保存失败"); |
| | | } |
| | | } |
| | | if (!this.save(matnr1)) { |
| | | if (!this.saveOrUpdate(matnr1)) { |
| | | return R.error("Save Fail"); |
| | | } |
| | | return R.ok("保存成功!!"); |
| | | return R.ok(matnr1); |
| | | } |
| | | } |