|
|
@@ -17,6 +17,7 @@ import com.uas.platform.b2c.core.constant.Status;
|
|
|
import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
import com.uas.platform.b2c.core.utils.FastjsonUtils;
|
|
|
import com.uas.platform.b2c.core.utils.NumberUtil;
|
|
|
+import com.uas.platform.b2c.core.utils.StringUtilB2C;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.dao.*;
|
|
|
@@ -216,6 +217,9 @@ public class ProductServiceImpl implements ProductService {
|
|
|
@Autowired
|
|
|
private SearchService searchService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ProductAttachService productAttachService;
|
|
|
+
|
|
|
@Value("#{sys.productServiceIp}")
|
|
|
private String productServiceIp;
|
|
|
|
|
|
@@ -1843,6 +1847,7 @@ public class ProductServiceImpl implements ProductService {
|
|
|
* @param attachUrl 规格书的地址
|
|
|
* @return the string
|
|
|
*/
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public ResultMap updateProduct(String json, String attachUrl) {
|
|
|
if (StringUtils.isEmpty(json)) {
|
|
|
@@ -1859,43 +1864,188 @@ public class ProductServiceImpl implements ProductService {
|
|
|
if (persistProduct == null) {
|
|
|
return new ResultMap(CodeType.NOT_EXiST, "数据库找不到对应的信息,请重新操作");
|
|
|
}
|
|
|
- Component component = findBybrNameAndcmpCode(persistProduct.getPbranden(), persistProduct.getPcmpcode());
|
|
|
- if (component != null) {
|
|
|
- persistProduct.setPcmpcode(component.getCode());
|
|
|
- persistProduct.setPbranden(component.getBrand().getNameEn());
|
|
|
- persistProduct.setPbrand(component.getBrand().getNameCn());
|
|
|
- persistProduct.setPbranduuid(component.getBrand().getUuid());
|
|
|
- persistProduct.setPbrandid(component.getBrandid());
|
|
|
- persistProduct.setCmpUuId(component.getUuid());
|
|
|
- persistProduct.setCmpImg(component.getImg());
|
|
|
- persistProduct.setKinden(component.getKind().getNameEn());
|
|
|
- persistProduct.setKind(component.getKind().getNameCn());
|
|
|
- persistProduct.setKindid(component.getKindid());
|
|
|
- if (!StringUtils.isEmpty(component.getAttach())) {
|
|
|
- List<ProductPrivate> privateList = productPrivateDao.findByPrId(persistProduct.getId());
|
|
|
- if (CollectionUtils.isNotEmpty(privateList)) {
|
|
|
- ProductPrivate productPrivate = privateList.get(0);
|
|
|
- productPrivate.setAttach(component.getAttach());
|
|
|
- }
|
|
|
- } else {
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
if (persistProduct.getB2cEnabled() != IntegerConstant.YES_SHORT) {
|
|
|
return new ResultMap(CodeType.NOT_PERMIT, "该物料商城未启用,不能操作");
|
|
|
}
|
|
|
- if (!persistProduct.getPbranden().equals(product.getPbranden())) {
|
|
|
- if (persistProduct.getStandard() == IntegerConstant.YES_SHORT) {
|
|
|
- return new ResultMap(CodeType.NOT_PERMIT, "该物料是标准器件,不能操作");
|
|
|
+ if (persistProduct.getStandard() == IntegerConstant.NO_SHORT) {
|
|
|
+ Component component = findBybrNameAndcmpCode(persistProduct.getPbranden(), persistProduct.getPcmpcode());
|
|
|
+ if (component != null) {
|
|
|
+ persistProduct.setPcmpcode(component.getCode());
|
|
|
+ persistProduct.setPbranden(component.getBrand().getNameEn());
|
|
|
+ persistProduct.setPbrand(component.getBrand().getNameCn());
|
|
|
+ persistProduct.setPbranduuid(component.getBrand().getUuid());
|
|
|
+ persistProduct.setPbrandid(component.getBrandid());
|
|
|
+ persistProduct.setCmpUuId(component.getUuid());
|
|
|
+ persistProduct.setCmpImg(component.getImg());
|
|
|
+ persistProduct.setKinden(component.getKind().getNameEn());
|
|
|
+ persistProduct.setKind(component.getKind().getNameCn());
|
|
|
+ persistProduct.setKindid(component.getKindid());
|
|
|
+ String errorMsg = "该物料可以匹配为标准";
|
|
|
+ if (!StringUtils.isEmpty(component.getAttach())) {
|
|
|
+ List<ProductPrivate> privateList = productPrivateDao.findByPrId(persistProduct.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(privateList)) {
|
|
|
+ ProductPrivate productPrivate = privateList.get(0);
|
|
|
+ productPrivate.setAttach(component.getAttach());
|
|
|
+ errorMsg = ",且规格书已存在,不能修改";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!StringUtils.isEmpty(attachUrl)) {
|
|
|
+ productAttachService.submit(persistProduct.getId(), attachUrl);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(product.getSpec())) {
|
|
|
+ //如果标准器件库存在规格信息,而用户又未填写,则需要填充对应的信息
|
|
|
+ if (!StringUtils.isEmpty(component.getDescription())) {
|
|
|
+ persistProduct.setSpec(component.getDescription());
|
|
|
+ } else {
|
|
|
+ persistProduct.setSpec(product.getSpec());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (!product.getSpec().equals(persistProduct.getSpec())) {
|
|
|
+ persistProduct.setSpec(product.getSpec());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ productDao.save(persistProduct);
|
|
|
+ //更新在售产品的信息
|
|
|
+ goodsDao.updateGoodsByProduct(persistProduct.getPbrand(), persistProduct.getPbranden(), persistProduct.getPbrandid(), persistProduct.getPbranduuid(), persistProduct.getKind(), persistProduct.getKindid(), persistProduct.getCmpImg(), persistProduct.getCmpUuId(), persistProduct.getSpec(), persistProduct.getId());
|
|
|
+ return ResultMap.success(errorMsg);
|
|
|
+ } else {
|
|
|
+ String msg = "";
|
|
|
+ //非标且找不到标准信息
|
|
|
+ String brand = "", code = "", kind = "", spec = "";
|
|
|
+ ProductPrivate productPrivate = null;
|
|
|
+ if (!StringUtilB2C.equals(persistProduct.getPbranden() , product.getPbranden())) {
|
|
|
+ brand = product.getPbranden();
|
|
|
+ ResultMap resultMap = StringUtilB2C.validateBrand(brand);
|
|
|
+ if (resultMap.getCode() != CodeType.OK.code()) {
|
|
|
+ return resultMap;
|
|
|
+ } else {
|
|
|
+ brand = (String) resultMap.getData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!StringUtilB2C.equals(persistProduct.getPcmpcode() , product.getPcmpcode())) {
|
|
|
+ code = product.getPcmpcode();
|
|
|
+ ResultMap resultMap = StringUtilB2C.validateCmpCode(code);
|
|
|
+ if (resultMap.getCode() != CodeType.OK.code()) {
|
|
|
+ return resultMap;
|
|
|
+ } else {
|
|
|
+ code = (String) resultMap.getData();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!StringUtilB2C.equals(persistProduct.getKind() , product.getKind())) {
|
|
|
+ kind = product.getKind();
|
|
|
+ ResultMap resultMap = StringUtilB2C.validateKind(kind);
|
|
|
+ if (resultMap.getCode() != CodeType.OK.code()) {
|
|
|
+ return resultMap;
|
|
|
+ } else {
|
|
|
+ kind = (String) resultMap.getData();
|
|
|
+ persistProduct.setKind(kind);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!StringUtilB2C.equals(persistProduct.getSpec() , product.getSpec())) {
|
|
|
+ spec = product.getSpec();
|
|
|
+ ResultMap resultMap = StringUtilB2C.validateSpec(spec);
|
|
|
+ if (resultMap.getCode() != CodeType.OK.code()) {
|
|
|
+ return resultMap;
|
|
|
+ } else {
|
|
|
+ spec = (String) resultMap.getData();
|
|
|
+ persistProduct.setSpec(spec);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果修改了品牌、或者型号
|
|
|
+ if (!StringUtils.isEmpty(brand) || !StringUtils.isEmpty(code)) {
|
|
|
+ if (StringUtils.isEmpty(code)) {
|
|
|
+ code = persistProduct.getPcmpcode();
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(brand)) {
|
|
|
+ brand = persistProduct.getPbranden();
|
|
|
+ }
|
|
|
+ List<Product> products = productDao.findByEnUUAndPcmpcodeAndPbrandenAndB2cEnabled(SystemSession.getUser().getEnterprise().getUu(), code, brand, IntegerConstant.YES_SHORT);
|
|
|
+ if (CollectionUtils.isNotEmpty(products)) {
|
|
|
+ return new ResultMap(CodeType.NOT_PERMIT, "该企业下已存在同品牌、同型号的企业。");
|
|
|
+ } else {
|
|
|
+ Component component1 = findBybrNameAndcmpCode(brand, code);
|
|
|
+ if (component1 != null) {
|
|
|
+ //TODO 转标准,规格信息设置、规格书设置
|
|
|
+ } else {
|
|
|
+ persistProduct.setPbranden(brand);
|
|
|
+ persistProduct.setPbrand(brand);
|
|
|
+ persistProduct.setPcmpcode(code);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<ProductPrivate> productPrivateList = productPrivateDao.findByPrId(persistProduct.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(productPrivateList)) {
|
|
|
+ productPrivate = productPrivateList.get(0);
|
|
|
+ if (!StringUtils.isEmpty(productPrivate.getAttach())) {
|
|
|
+ msg = "规格书已存在";
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (!persistProduct.getPcmpcode().equals(product.getPcmpcode())) {
|
|
|
- if (persistProduct.getStandard() == IntegerConstant.YES_SHORT) {
|
|
|
- return new ResultMap(CodeType.NOT_PERMIT, "该物料是标准器件,不能操作");
|
|
|
+ } else {
|
|
|
+ //标准的信息,只能修改规格书、规格信息
|
|
|
+ String msg = "";
|
|
|
+ String updateAttachUrl = "";
|
|
|
+ String spec = "";
|
|
|
+ Component component = null;
|
|
|
+ Product product1 = null;
|
|
|
+ if (!StringUtilB2C.equals(product.getPbranden(), persistProduct.getPbranden())) {
|
|
|
+ return new ResultMap(CodeType.NOT_PERMIT, "标准物料,品牌不能修改");
|
|
|
+ }
|
|
|
+ if (!StringUtilB2C.equals(product.getPcmpcode(), persistProduct.getPcmpcode())) {
|
|
|
+ return new ResultMap(CodeType.NOT_PERMIT, "标准物料,型号不能修改");
|
|
|
+ }
|
|
|
+ if (!StringUtilB2C.equals(product.getKind(), persistProduct.getKind())) {
|
|
|
+ return new ResultMap(CodeType.NOT_PERMIT, "标准物料,类目不能修改");
|
|
|
+ }
|
|
|
+ if (persistProduct.getCmpUuId() != null) {
|
|
|
+ component = componentDao.findByUuid(persistProduct.getCmpUuId());
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(attachUrl)) {
|
|
|
+ List<ProductPrivate> productPrivates = productPrivateDao.findByPrId(persistProduct.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(productPrivates)) {
|
|
|
+ if (StringUtils.isEmpty(productPrivates.get(0).getAttach())) {
|
|
|
+ if (component != null) {
|
|
|
+ if (StringUtils.isEmpty(component.getAttach())) {
|
|
|
+ productAttachService.submit(persistProduct.getId(), attachUrl);
|
|
|
+ } else {
|
|
|
+ msg = "规格书已经存在,不能上传";
|
|
|
+ updateAttachUrl = component.getAttach();
|
|
|
+ productPrivates.get(0).setAttach(updateAttachUrl);
|
|
|
+ productPrivateDao.save(productPrivates.get(0));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ productAttachService.submit(persistProduct.getId(), attachUrl);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ msg = "规格书已经存在,不能上传";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!StringUtilB2C.equals(product.getSpec(), persistProduct.getSpec())) {
|
|
|
+ if (StringUtils.isEmpty(product.getSpec())) {
|
|
|
+ if (!StringUtils.isEmpty(component.getSpec())) {
|
|
|
+ spec = component.getSpec();
|
|
|
+ persistProduct.setSpec(component.getSpec());
|
|
|
+ } else {
|
|
|
+ spec = product.getSpec();
|
|
|
+ persistProduct.setSpec(product.getSpec());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ spec = product.getSpec();
|
|
|
+ persistProduct.setSpec(product.getSpec());
|
|
|
+ }
|
|
|
+ product1 = productDao.save(persistProduct);
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
+ //更新在售产品信息
|
|
|
+ goodsService.updateGoodsByProduct(product1);
|
|
|
+ if (StringUtils.isEmpty(msg)) {
|
|
|
+ msg = "修改成功";
|
|
|
+ }
|
|
|
+ return new ResultMap(CodeType.OK.code(), msg, product1);
|
|
|
+ }
|
|
|
} else {
|
|
|
return new ResultMap(CodeType.NOT_COMPLETE_INFO, "物料信息丢失,请重新操作");
|
|
|
}
|