|
@@ -14,12 +14,14 @@ import com.fjhx.common.constant.SourceConstant;
|
|
import com.fjhx.common.entity.InOutBo;
|
|
import com.fjhx.common.entity.InOutBo;
|
|
import com.fjhx.common.enums.InOutType;
|
|
import com.fjhx.common.enums.InOutType;
|
|
import com.fjhx.common.service.file.FtpFileService;
|
|
import com.fjhx.common.service.file.FtpFileService;
|
|
-import com.fjhx.common.utils.Assert;
|
|
|
|
import com.fjhx.file.utils.ObsFileUtil;
|
|
import com.fjhx.file.utils.ObsFileUtil;
|
|
import com.fjhx.item.entity.product.bo.ProductAnalysisBo;
|
|
import com.fjhx.item.entity.product.bo.ProductAnalysisBo;
|
|
import com.fjhx.item.entity.product.dto.ProductInfoDto;
|
|
import com.fjhx.item.entity.product.dto.ProductInfoDto;
|
|
import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
|
|
import com.fjhx.item.entity.product.dto.ProductInfoSelectDto;
|
|
-import com.fjhx.item.entity.product.po.*;
|
|
|
|
|
|
+import com.fjhx.item.entity.product.po.ProductAvailableRecord;
|
|
|
|
+import com.fjhx.item.entity.product.po.ProductClassify;
|
|
|
|
+import com.fjhx.item.entity.product.po.ProductInfo;
|
|
|
|
+import com.fjhx.item.entity.product.po.ProductStockInfo;
|
|
import com.fjhx.item.entity.product.vo.ProductInfoVo;
|
|
import com.fjhx.item.entity.product.vo.ProductInfoVo;
|
|
import com.fjhx.item.enums.ProductAvailableRecordType;
|
|
import com.fjhx.item.enums.ProductAvailableRecordType;
|
|
import com.fjhx.item.mapper.product.ProductInfoMapper;
|
|
import com.fjhx.item.mapper.product.ProductInfoMapper;
|
|
@@ -28,9 +30,7 @@ import com.fjhx.item.service.product.ProductClassifyService;
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
import com.fjhx.item.service.product.ProductInfoService;
|
|
import com.fjhx.item.service.product.ProductStockInfoService;
|
|
import com.fjhx.item.service.product.ProductStockInfoService;
|
|
import com.fjhx.item.util.CodeEnum;
|
|
import com.fjhx.item.util.CodeEnum;
|
|
-import com.fjhx.item.util.excel.util.ExcelUtil;
|
|
|
|
import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
|
|
import com.fjhx.tenant.entity.dict.dto.DictTenantDataSelectDto;
|
|
-import com.fjhx.tenant.entity.dict.po.DictTenantData;
|
|
|
|
import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
|
|
import com.fjhx.tenant.entity.dict.vo.DictTenantDataVo;
|
|
import com.fjhx.tenant.service.dict.DictTenantDataService;
|
|
import com.fjhx.tenant.service.dict.DictTenantDataService;
|
|
import com.ruoyi.common.core.domain.BaseIdPo;
|
|
import com.ruoyi.common.core.domain.BaseIdPo;
|
|
@@ -46,7 +46,6 @@ import com.ruoyi.system.utils.UserUtil;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
@@ -385,105 +384,6 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
|
|
|
|
|
|
@DSTransactional
|
|
@DSTransactional
|
|
@Override
|
|
@Override
|
|
- public void addByEhsd(ProductInfoDto productInfoDto) {
|
|
|
|
- // 赋值产品编号
|
|
|
|
- productInfoDto.setCode(CodeEnum.PRODUCT.getCode());
|
|
|
|
- // 排除名称重复
|
|
|
|
- this.nameDuplication(ProductInfo::getName, productInfoDto.getName(), "产品名称重复");
|
|
|
|
- this.save(productInfoDto);
|
|
|
|
- //附件列表
|
|
|
|
- ObsFileUtil.saveFile(productInfoDto.getFileList(), productInfoDto.getId());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @DSTransactional
|
|
|
|
- @Override
|
|
|
|
- public void editByEhsd(ProductInfoDto productInfoDto) {
|
|
|
|
- Assert.notEmpty(productInfoDto.getId(), "产品id不能为空");
|
|
|
|
- this.updateById(productInfoDto);
|
|
|
|
- //修改图片
|
|
|
|
- ObsFileUtil.editFile(productInfoDto.getFileList(), productInfoDto.getId());
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public ProductInfoVo detailByEhsd(Long id) {
|
|
|
|
- ProductInfo ProductInfo = this.getById(id);
|
|
|
|
- ProductInfoVo result = BeanUtil.toBean(ProductInfo, ProductInfoVo.class);
|
|
|
|
- //赋值创建人名称
|
|
|
|
- UserUtil.assignmentNickName(Arrays.asList(result), ProductInfoVo::getCreateUser, ProductInfoVo::setCreateUserName);
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @DSTransactional
|
|
|
|
- @Override
|
|
|
|
- public void excelImportByEhsd(MultipartFile file) {
|
|
|
|
- DynamicDataSourceContextHolder.push(SourceConstant.BASE);
|
|
|
|
- Map<String, String> unitMap = dictTenantDataService.mapKV(DictTenantData::getDictValue,
|
|
|
|
- DictTenantData::getDictKey, q -> q.eq(DictTenantData::getDictCode, "unit"));
|
|
|
|
- Map<String, String> innerPackMethodMap = dictTenantDataService.mapKV(DictTenantData::getDictValue,
|
|
|
|
- DictTenantData::getDictKey, q -> q.eq(DictTenantData::getDictCode, "inner_packaging_method_ehsd"));
|
|
|
|
- Map<String, String> outsidePackMethodMap = dictTenantDataService.mapKV(DictTenantData::getDictValue,
|
|
|
|
- DictTenantData::getDictKey, q -> q.eq(DictTenantData::getDictCode, "outside_packaging_method_ehsd"));
|
|
|
|
- DynamicDataSourceContextHolder.poll();
|
|
|
|
-
|
|
|
|
- List<ProductInfoEhsdExcel> read = ExcelUtil.read(file, ProductInfoEhsdExcel.class);
|
|
|
|
- List<ProductInfo> productInfoList = new ArrayList<>();
|
|
|
|
- for (ProductInfoEhsdExcel productInfoEhsdExcel : read) {
|
|
|
|
- ProductInfo productInfo = BeanUtil.copyProperties(productInfoEhsdExcel, ProductInfo.class);
|
|
|
|
- // 赋值产品编号
|
|
|
|
- productInfo.setCode(CodeEnum.PRODUCT.getCode());
|
|
|
|
- // 排除名称重复
|
|
|
|
- this.nameDuplication(ProductInfo::getName, productInfo.getName(), "产品名称重复");
|
|
|
|
-
|
|
|
|
- //产品分类名称转id
|
|
|
|
- ProductClassify productClassify = productClassifyService.getOne(q -> q.eq(ProductClassify::getName, productInfoEhsdExcel.getProductClassifyName()));
|
|
|
|
- if (ObjectUtil.isEmpty(productClassify)) {
|
|
|
|
- throw new ServiceException("未知产品分类" + productInfoEhsdExcel.getProductClassifyName());
|
|
|
|
- }
|
|
|
|
- productInfo.setProductClassifyId(productClassify.getId());
|
|
|
|
- //单位名称转字典key
|
|
|
|
- if (ObjectUtil.isNotEmpty(productInfo.getUnit())) {
|
|
|
|
- String unit = unitMap.get(productInfo.getUnit());
|
|
|
|
- if (ObjectUtil.isEmpty(unit)) {
|
|
|
|
- throw new ServiceException("未知单位" + productInfo.getUnit());
|
|
|
|
- }
|
|
|
|
- productInfo.setUnit(unit);
|
|
|
|
- }
|
|
|
|
-// ProductInfoEhsdJson productInfoEhsdJson = BeanUtil.copyProperties(productInfoEhsdExcel, ProductInfoEhsdJson.class);
|
|
|
|
-// productInfoEhsdJson.setType("1");//公司产品
|
|
|
|
-// productInfoEhsdJson.setCustomerId("0");//客户id为0 公司产品
|
|
|
|
-// //内外包装方式名称转字典key
|
|
|
|
-// String innerPackMethod = productInfoEhsdJson.getInnerPackMethod();
|
|
|
|
-// if (ObjectUtil.isNotEmpty(innerPackMethod)) {
|
|
|
|
-// String[] split = innerPackMethod.split(",");
|
|
|
|
-// for (int i = 0; i < split.length; i++) {
|
|
|
|
-// String key = innerPackMethodMap.get(split[i]);
|
|
|
|
-// if (ObjectUtil.isEmpty(key)) {
|
|
|
|
-// throw new ServiceException("未知内包装方式" + split[i]);
|
|
|
|
-// }
|
|
|
|
-// split[i] = key;
|
|
|
|
-// }
|
|
|
|
-// productInfoEhsdJson.setInnerPackMethod(String.join(",", split));
|
|
|
|
-// }
|
|
|
|
-// String outerPackMethod = productInfoEhsdJson.getOuterPackMethod();
|
|
|
|
-// if (ObjectUtil.isNotEmpty(outerPackMethod)) {
|
|
|
|
-// String[] split = outerPackMethod.split(",");
|
|
|
|
-// for (int i = 0; i < split.length; i++) {
|
|
|
|
-// String key = outsidePackMethodMap.get(split[i]);
|
|
|
|
-// if (ObjectUtil.isEmpty(key)) {
|
|
|
|
-// throw new ServiceException("未知外包装方式" + split[i]);
|
|
|
|
-// }
|
|
|
|
-// split[i] = key;
|
|
|
|
-// }
|
|
|
|
-// productInfoEhsdJson.setOuterPackMethod(String.join(",", split));
|
|
|
|
-// }
|
|
|
|
-// productInfo.setEhsdJson(JSONObject.toJSONString(productInfoEhsdJson, JSONWriter.Feature.WriteLongAsString));
|
|
|
|
- productInfoList.add(productInfo);
|
|
|
|
- }
|
|
|
|
- saveBatch(productInfoList);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @DSTransactional
|
|
|
|
- @Override
|
|
|
|
public void edit(ProductInfoDto productInfoDto) {
|
|
public void edit(ProductInfoDto productInfoDto) {
|
|
// 禁止产品编号修改
|
|
// 禁止产品编号修改
|
|
productInfoDto.setCode(null);
|
|
productInfoDto.setCode(null);
|
|
@@ -547,20 +447,6 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
|
|
return baseMapper.getListByProductType(productType, definition, productName, productCode);
|
|
return baseMapper.getListByProductType(productType, definition, productName, productCode);
|
|
}
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
|
- public void excelImport(MultipartFile file) {
|
|
|
|
-// List<Object> read = ExcelUtil.read(file, Object.class);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public void transfer(ProductInfoDto productInfoDto) {
|
|
|
|
- ProductInfo productInfo = getById(productInfoDto.getId());
|
|
|
|
-// String victoriatouristJson = productInfo.getVictoriatouristJson();
|
|
|
|
-// JSONObject json = ObjectUtil.isNotEmpty(victoriatouristJson) ? JSONObject.parseObject(victoriatouristJson) : new JSONObject();
|
|
|
|
-// json.put("deptId", productInfoDto.getDeptId());
|
|
|
|
-// productInfo.setVictoriatouristJson(JSONObject.toJSONString(json, JSONWriter.Feature.WriteLongAsString));
|
|
|
|
- updateById(productInfo);
|
|
|
|
- }
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 产品统计(数据看板-产品分析页面)
|
|
* 产品统计(数据看板-产品分析页面)
|