package com.iamberry.rst.service.cm; import com.github.pagehelper.PageHelper; import com.iamberry.rst.core.cm.*; import com.iamberry.rst.core.order.Product; import com.iamberry.rst.core.order.ProductColor; import com.iamberry.rst.core.page.PageRequest; import com.iamberry.rst.core.page.PagedResult; import com.iamberry.rst.faces.cm.ComplaintQuestionInfoService; import com.iamberry.rst.faces.cm.ComplaintSignclosedInfoService; import com.iamberry.rst.service.cm.mapper.*; import com.iamberry.rst.service.product.mapper.ProductMapper; import com.iamberry.rst.util.PageUtil; import com.iamberry.wechat.tools.ResponseJson; import net.sf.json.JSONArray; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Service public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedInfoService { @Autowired private ComplaintSignclosedInfoMapper complaintSignclosedInfoMapper; @Autowired private ProductMapper productMapper; @Autowired private AwaitingSignclosedProductMapper awaitingSignclosedProductMapper; @Autowired private ComplaintSignclosedProductInfoMapper complaintSignclosedProductInfoMapper; @Autowired private FittingsInfoMapper fittingsInfoMapper; @Autowired private ComplaintDetectInfoMapper complaintDetectInfoMapper; @Autowired private CustomerInfoMapper customerInfoMapper; @Override @Transactional public boolean insert(ComplaintSignclosedInfo record, String orderItemString) { boolean msg = true; int num = complaintSignclosedInfoMapper.insert(record); if(num < 1){ msg = false; }else{ if(orderItemString != null){ JSONArray jsonArray = JSONArray.fromObject(orderItemString); List salesOrderItemList = (List) JSONArray.toCollection(jsonArray, SalesOrderItem.class); for (SalesOrderItem salesOrderItem:salesOrderItemList) { if(salesOrderItem.getItemNum() > 0 && salesOrderItem.getItemColorId() > 0){ int i = 0; SignclosedProductInfo signclosedProductInfo = new SignclosedProductInfo(); //根据颜色id获取产品信息获取产品信息 ProductColor productColor = productMapper.getProduceColor(salesOrderItem.getItemColorId()); if(productColor == null){ msg = false; } for (int j = 0;j listCustomer = customerInfoMapper.listCustomer(customerInfo); if(listCustomer.size() > 0){ customerInfo = listCustomer.get(0); ComplaintSignclosedInfo signclosedInfo = new ComplaintSignclosedInfo(); signclosedInfo.setSignclosedCustomerId(customerInfo.getCustomerId()); signclosedInfo.setSignclosedId(record.getSignclosedId()); Integer msg = complaintSignclosedInfoMapper.updateSignclosedById(signclosedInfo); if(msg != 1){ return 0; } // if(customerInfo.getIsQuality() != null){ // if(customerInfo.getIsQuality() == 1){//需要品检 // //根据客诉id查询是否已存在品检信息 // ComplaintDetectInfo complaintDetectInfo = new ComplaintDetectInfo(); // if(complaintDetectInfoMapper.getDetectByCustomerId(customerInfo.getCustomerId()) == null){ // complaintDetectInfo.setCustomerId(customerInfo.getCustomerId()); // complaintDetectInfo.setSignclosedId(record.getSignclosedId()); // complaintDetectInfo.setDetectCreateTime(new Date()); // Integer msg2 = complaintDetectInfoMapper.insert(complaintDetectInfo); // if(msg2 != 1){ // return 0; // } // } // //添加品检项 // /*List listProductInfo = complaintSignclosedInfoMapper.listSignclosedById(record.getSignclosedId()); // List listDetectItem = new ArrayList<>(); // for(SignclosedProductInfo productInfo : listProductInfo){ // ComplaintDetectItem detectItem = new ComplaintDetectItem(); // detectItem.setDetectId(complaintDetectInfo.getDetectId()); // detectItem.setDetectItemCreateTime(new Date()); // detectItem.setProductId(productInfo.getProductId()); // detectItem.setDetectProductNumber(productInfo.getProductNumber()); // detectItem.setDetectItemState(1); // listDetectItem.add(detectItem); // } // Integer msg3 = complaintDetectInfoMapper.insertItemList(listDetectItem); // if(msg3 != 1){ // return 0; // }*/ // } // } } return 1; } @Override public List listSignclosedById(Integer signclosedId) { return complaintSignclosedInfoMapper.listSignclosedById(signclosedId); } private Integer addSifnclosed(Map Map,Integer signclosedId) { Integer msg = 0; for (Map.Entry entry : Map.entrySet()) { AwaitingSignclosedProductInfo awaitingSignclosedInfo = new AwaitingSignclosedProductInfo(); //根据颜色id获取产品信息获取产品信息 Product product = productMapper.getProductById(Integer.valueOf(entry.getKey())); if (product == null) { return 0; } awaitingSignclosedInfo.setSignclosedId(signclosedId); awaitingSignclosedInfo.setProductName(product.getProductName()); awaitingSignclosedInfo.setProductNum(entry.getValue()); awaitingSignclosedInfo.setSignclosedProductType(1); awaitingSignclosedInfo.setSignclosedProductId(product.getProductId()); awaitingSignclosedInfo.setSignclosedProductColor(Integer.valueOf(entry.getKey())); awaitingSignclosedInfo.setSignclosedCreateTime(new Date()); msg = awaitingSignclosedProductMapper.insert(awaitingSignclosedInfo); } return msg; } @Override public ComplaintSignclosedInfo getSignclosedById(Integer signclosedId) { return complaintSignclosedInfoMapper.getSignclosedById(signclosedId); } @Transactional @Override public boolean updateSignclosedById(ComplaintSignclosedInfo record, Map alreadyColorMap, Map machineNumberMap, Map alreadyFittingsMap) { boolean msg = true; int num = complaintSignclosedInfoMapper.updateSignclosedById(record); if(num < 1){ msg = false; }else{ if(alreadyColorMap != null || alreadyColorMap.size() != 0){ for (Map.Entry entry : alreadyColorMap.entrySet()) { int i = 0; SignclosedProductInfo signclosedProductInfo = new SignclosedProductInfo(); //根据颜色id获取产品信息获取产品信息 Product product = productMapper.getProductById(Integer.valueOf(entry.getKey())); if(product == null){ return false; } for (int j = 0;j entry : alreadyFittingsMap.entrySet()) { SignclosedProductInfo signclosedProductInfo = new SignclosedProductInfo(); //根据配件id获取配件信息 FittingsInfo fittingsInfo = fittingsInfoMapper.getFittingsById(Integer.valueOf(entry.getKey())); if(fittingsInfo == null){ return false; } for (int j = 0;j listSignclosed(PageRequest pageRequest) { PageHelper.startPage(pageRequest.getPageNO(), pageRequest.getPageSize(), pageRequest.isPageTotal()); List signclosedList = complaintSignclosedInfoMapper.listSignclosed(pageRequest.getData()); return PageUtil.getPage(signclosedList); } }