|
|
@@ -3,15 +3,47 @@ package com.uas.platform.b2b.service.impl;
|
|
|
import com.uas.account.entity.RequsetStatus;
|
|
|
import com.uas.account.util.AccountUtils;
|
|
|
import com.uas.platform.b2b.core.util.ThreadTask;
|
|
|
-import com.uas.platform.b2b.dao.*;
|
|
|
-import com.uas.platform.b2b.model.*;
|
|
|
+import com.uas.platform.b2b.dao.CommonDao;
|
|
|
+import com.uas.platform.b2b.dao.DistributeDao;
|
|
|
+import com.uas.platform.b2b.dao.EnterpriseDao;
|
|
|
+import com.uas.platform.b2b.dao.ProductDao;
|
|
|
+import com.uas.platform.b2b.dao.ProductMatchResultDao;
|
|
|
+import com.uas.platform.b2b.dao.ProductStatusDao;
|
|
|
+import com.uas.platform.b2b.dao.PurchaseOrderAllDao;
|
|
|
+import com.uas.platform.b2b.dao.PurchaseOrderAllItemDao;
|
|
|
+import com.uas.platform.b2b.dao.RoleDao;
|
|
|
+import com.uas.platform.b2b.dao.UserBaseInfoDao;
|
|
|
+import com.uas.platform.b2b.dao.UserDao;
|
|
|
+import com.uas.platform.b2b.dao.UserOrderDao;
|
|
|
+import com.uas.platform.b2b.dao.VendorDao;
|
|
|
+import com.uas.platform.b2b.model.Attach;
|
|
|
+import com.uas.platform.b2b.model.Component;
|
|
|
+import com.uas.platform.b2b.model.Distribute;
|
|
|
+import com.uas.platform.b2b.model.Enterprise;
|
|
|
+import com.uas.platform.b2b.model.EnterpriseInfo;
|
|
|
+import com.uas.platform.b2b.model.FileUpload;
|
|
|
+import com.uas.platform.b2b.model.Product;
|
|
|
+import com.uas.platform.b2b.model.ProductStatus;
|
|
|
+import com.uas.platform.b2b.model.PurchaseOrderAll;
|
|
|
+import com.uas.platform.b2b.model.PurchaseOrderAllItem;
|
|
|
+import com.uas.platform.b2b.model.Role;
|
|
|
+import com.uas.platform.b2b.model.User;
|
|
|
+import com.uas.platform.b2b.model.UserBaseInfo;
|
|
|
+import com.uas.platform.b2b.model.UserOrders;
|
|
|
+import com.uas.platform.b2b.model.Vendor;
|
|
|
+import com.uas.platform.b2b.ps.ProductUtils;
|
|
|
import com.uas.platform.b2b.search.SearchService;
|
|
|
import com.uas.platform.b2b.service.AttachService;
|
|
|
import com.uas.platform.b2b.service.BaseInfoService;
|
|
|
import com.uas.platform.b2b.service.ComponentService;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
import com.uas.platform.b2b.support.UsageBufferedLogger;
|
|
|
-import com.uas.platform.b2b.temporary.model.*;
|
|
|
+import com.uas.platform.b2b.temporary.model.BasePartnersInfo;
|
|
|
+import com.uas.platform.b2b.temporary.model.NewPurcOrder;
|
|
|
+import com.uas.platform.b2b.temporary.model.OrderItems;
|
|
|
+import com.uas.platform.b2b.temporary.model.PartStatus;
|
|
|
+import com.uas.platform.b2b.temporary.model.ProdInfo;
|
|
|
+import com.uas.platform.b2b.temporary.model.UserSpaceDetail;
|
|
|
import com.uas.platform.core.exception.IllegalOperatorException;
|
|
|
import com.uas.platform.core.logging.BufferedLoggerManager;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
@@ -32,7 +64,12 @@ import org.springframework.ui.ModelMap;
|
|
|
|
|
|
import javax.transaction.Transactional;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
|
@@ -85,6 +122,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
@Autowired
|
|
|
private CommonDao commonDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ProductStatusDao productStatusDao;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 批量导入物料资料
|
|
|
@@ -214,9 +254,9 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
}
|
|
|
if (!CollectionUtils.isEmpty(products)) {
|
|
|
try {
|
|
|
- products = productDao.save(products);
|
|
|
+ List<Long> ids = ProductUtils.update(products);
|
|
|
// saveUserOrders(products);
|
|
|
- modelMap.put("success", products.size());
|
|
|
+ modelMap.put("success", ids != null ? ids.size() : 0);
|
|
|
} catch (Exception e) {
|
|
|
modelMap.put("error", "存在编号相同的产品");
|
|
|
}
|
|
|
@@ -262,75 +302,47 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
@Override
|
|
|
public ModelMap update(Product prodInfo, FileUpload uploadItem) throws Exception {
|
|
|
ModelMap map = new ModelMap();
|
|
|
- /*if (uploadItem.getFile() != null) {// 附件存在
|
|
|
+ if (uploadItem.getFile() != null) {// 附件存在
|
|
|
Attach attach = attachService.upload(uploadItem, "productAttach", "平台客户上传物料照片或附件");
|
|
|
if (attach == null) {
|
|
|
map.put("error", "文件太大");
|
|
|
} else {
|
|
|
- prodInfo.setAttach(attach);
|
|
|
+ prodInfo.setAttachment(attach.getPath());
|
|
|
}
|
|
|
}
|
|
|
if (prodInfo.getCmpCode() != null) {
|
|
|
prodInfo.setPcmpcode(prodInfo.getCmpCode());
|
|
|
}
|
|
|
- if (prodInfo.getIsbusiness().equals(Constant.YES)) {// 如果有业务关系,导入的信息不能更改,采用下面的数据操作
|
|
|
- // 根据填写的标准器件库的信息进行关联判断
|
|
|
- if (prodInfo.getPcmpcode() != null && prodInfo.getPbranden() != null && prodInfo.getKind() != null) {
|
|
|
- List<Component> cmps = componentService.findByCode(prodInfo.getPcmpcode());
|
|
|
- if (!CollectionUtils.isEmpty(cmps)) {
|
|
|
- for (Component cmp : cmps) {
|
|
|
- if (cmp.getBrand().getNameEn().equals(prodInfo.getPbranden())
|
|
|
- && cmp.getKind().getNameCn().equals(prodInfo.getKind())) {// 匹配标准
|
|
|
- prodInfo.setPbrand(cmp.getBrand().getNameCn());
|
|
|
- prodInfo.setKinden(cmp.getKind().getNameEn());
|
|
|
- prodInfo.setCmpUuId(cmp.getUuid());
|
|
|
- prodInfo.setStandard(Constant.YES);
|
|
|
- break;
|
|
|
- } else {
|
|
|
- prodInfo.setCmpUuId(null);
|
|
|
- prodInfo.setStandard(Constant.NO);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- prodInfo.setCmpUuId(null);
|
|
|
- prodInfo.setStandard(Constant.NO);
|
|
|
- }
|
|
|
- } else {
|
|
|
- prodInfo.setCmpUuId(null);
|
|
|
- prodInfo.setStandard(Constant.NO);
|
|
|
- }
|
|
|
- } else {// 没有业务关系,可以修改导入的产品的信息,标准的数据不进行操作
|
|
|
- if (prodInfo.getCmpCode() != null && prodInfo.getBrand() != null && prodInfo.getTitle() != null) {
|
|
|
- List<Component> cmps = componentService.findByCode(prodInfo.getCmpCode());
|
|
|
- if (!CollectionUtils.isEmpty(cmps)) {
|
|
|
- for (Component cmp : cmps) {
|
|
|
- if (cmp.getBrand().getNameEn().equals(prodInfo.getBrand())
|
|
|
- && cmp.getKind().getNameCn().equals(prodInfo.getTitle())) {// 匹配标准
|
|
|
- prodInfo.setPbrand(cmp.getBrand().getNameCn());
|
|
|
- prodInfo.setKinden(cmp.getKind().getNameEn());
|
|
|
- prodInfo.setCmpUuId(cmp.getUuid());
|
|
|
- prodInfo.setPbranden(cmp.getBrand().getNameEn());
|
|
|
- prodInfo.setKind(cmp.getKind().getNameCn());
|
|
|
- prodInfo.setStandard(Constant.YES);
|
|
|
- break;
|
|
|
- } else {
|
|
|
- prodInfo.setCmpUuId(null);
|
|
|
- prodInfo.setStandard(Constant.NO);
|
|
|
- }
|
|
|
+ if (prodInfo.getCmpCode() != null && prodInfo.getBrand() != null && prodInfo.getTitle() != null) {
|
|
|
+ List<Component> cmps = componentService.findByCode(prodInfo.getCmpCode());
|
|
|
+ if (!CollectionUtils.isEmpty(cmps)) {
|
|
|
+ for (Component cmp : cmps) {
|
|
|
+ if (cmp.getBrand().getNameEn().equals(prodInfo.getBrand())
|
|
|
+ && cmp.getKind().getNameCn().equals(prodInfo.getTitle())) {// 匹配标准
|
|
|
+ prodInfo.setPbrand(cmp.getBrand().getNameCn());
|
|
|
+ prodInfo.setKinden(cmp.getKind().getNameEn());
|
|
|
+ prodInfo.setCmpUuId(cmp.getUuid());
|
|
|
+ prodInfo.setPbranden(cmp.getBrand().getNameEn());
|
|
|
+ prodInfo.setKind(cmp.getKind().getNameCn());
|
|
|
+ prodInfo.setStandard(Constant.YES);
|
|
|
+ break;
|
|
|
+ } else {
|
|
|
+ prodInfo.setCmpUuId(null);
|
|
|
+ prodInfo.setStandard(Constant.NO);
|
|
|
}
|
|
|
- } else {
|
|
|
- prodInfo.setCmpUuId(null);
|
|
|
- prodInfo.setStandard(Constant.NO);
|
|
|
}
|
|
|
} else {
|
|
|
prodInfo.setCmpUuId(null);
|
|
|
prodInfo.setStandard(Constant.NO);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ prodInfo.setCmpUuId(null);
|
|
|
+ prodInfo.setStandard(Constant.NO);
|
|
|
}
|
|
|
prodInfo.setErpDate(new Date());
|
|
|
- prodInfo = productDao.save(prodInfo);
|
|
|
+ ProductUtils.updateOne(prodInfo);
|
|
|
// saveUserOrders(prodInfo);
|
|
|
- map.put("success", "更新成功");*/
|
|
|
+ map.put("success", "更新成功");
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
@@ -340,12 +352,12 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
@Override
|
|
|
public ModelMap addNewProduct(Product prodInfo, FileUpload uploadItem) throws Exception {
|
|
|
ModelMap map = new ModelMap();
|
|
|
- /*if (uploadItem.getFile() != null) {// 附件存在
|
|
|
+ if (uploadItem.getFile() != null) {// 附件存在
|
|
|
Attach attach = attachService.upload(uploadItem, "productAttach", "平台客户上传物料照片或附件");
|
|
|
if (attach == null) {
|
|
|
map.put("error", "文件太大");
|
|
|
} else {
|
|
|
- prodInfo.setAttach(attach);
|
|
|
+ prodInfo.setAttachment(attach.getPath());
|
|
|
}
|
|
|
}
|
|
|
List<Product> products = productDao.findByEnUUAndCode(SystemSession.getUser().getEnterprise().getUu(),
|
|
|
@@ -385,11 +397,11 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
prodInfo.setEnUU(SystemSession.getUser().getEnterprise().getUu());
|
|
|
prodInfo.setSourceApp("B2B");
|
|
|
prodInfo.setErpDate(new Date());
|
|
|
- prodInfo = productDao.save(prodInfo);
|
|
|
+ Long id = ProductUtils.updateOne(prodInfo);
|
|
|
// saveUserOrders(prodInfo);
|
|
|
- map.put("id", prodInfo.getId());
|
|
|
+ map.put("id", id);
|
|
|
map.put("success", "物料添加成功");
|
|
|
- }*/
|
|
|
+ }
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
@@ -417,36 +429,26 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
public Product findById(Long id) {
|
|
|
Product product = productDao.findOne(id);
|
|
|
Integer num = productDao.findProductBusinessStatusById(id);
|
|
|
-// if (num > 0) {
|
|
|
-// product.setIsbusiness(Constant.YES);
|
|
|
-// } else {
|
|
|
-// product.setIsbusiness(Constant.NO);
|
|
|
-// }
|
|
|
return product;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 删除物料,设置成disabled
|
|
|
+ * @param id 物料id
|
|
|
+ */
|
|
|
@Override
|
|
|
public void deleteById(Long id) throws Exception {
|
|
|
- if (productDao.exists(id)) {
|
|
|
- // 先删除匹配结果的id
|
|
|
- List<ProductMatchResult> results = productMatchResultDao.findByPrid(id);
|
|
|
- if (!CollectionUtils.isEmpty(results)) {
|
|
|
- productMatchResultDao.delete(results);
|
|
|
- }
|
|
|
- // 需要删除个人物料库的数据
|
|
|
- deleteUserProduct(id);
|
|
|
- productDao.delete(id);
|
|
|
+ Product product = productDao.findOne(id);
|
|
|
+ if (null != product) {
|
|
|
+ ProductUtils.deleteMatchResultAndProductUser(id);
|
|
|
+ // 物料禁用
|
|
|
+ ProductStatus productStatus = new ProductStatus();
|
|
|
+ productStatus.setProduct(product);
|
|
|
+ productStatus.setB2bDisabled(Constant.YES);
|
|
|
+ productStatusDao.save(productStatus);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 删除个人物料库的数据
|
|
|
- * @param id
|
|
|
- */
|
|
|
- private void deleteUserProduct(Long id) {
|
|
|
- commonDao.getJdbcTemplate().execute("delete product$users where pu_prid = " + id);
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public Vendor addCust(BasePartnersInfo partner) {
|
|
|
Enterprise enter = enterpriseDao.findEnterpriseByEnBussinessCode(partner.getVendUID());
|
|
|
@@ -824,7 +826,8 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void switchPorduct(String status) {
|
|
|
+ public void switchPorduct(String status) throws Exception {
|
|
|
+ // sale or purc
|
|
|
String switchtype = "sale";
|
|
|
Integer switchstatus = 0;
|
|
|
Enterprise enter = SystemSession.getUser().getEnterprise();
|
|
|
@@ -836,6 +839,8 @@ public class BaseInfoServiceImpl implements BaseInfoService {
|
|
|
enterpriseDao.save(enter);
|
|
|
productDao.switchProductByEnuuAndTypeAndStatus(SystemSession.getUser().getEnterprise().getUu(), switchtype,
|
|
|
switchstatus);
|
|
|
+ ProductUtils.switchProductByEnuuAndTypeAndStatus(SystemSession.getUser().getEnterprise().getUu(), switchtype,
|
|
|
+ switchstatus);
|
|
|
}
|
|
|
|
|
|
}
|