package com.example.erp.service.sd; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.example.erp.dto.sd.CustomerDTO; import com.example.erp.dto.sd.DeliveryDetailDTO; import com.example.erp.dto.sd.DeliveryDetailProductDTO; import com.example.erp.entity.sd.*; import com.example.erp.entity.userInfo.Log; import com.example.erp.entity.userInfo.SysError; import com.example.erp.mapper.mm.FinishedGoodsInventoryMapper; import com.example.erp.mapper.sd.*; import com.example.erp.service.userInfo.LogService; import com.example.erp.service.userInfo.SysErrorService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; @Service @DS("sd") @Transactional(rollbackFor = Exception.class) public class CustomerService { @Autowired CustomerMapper customerMapper; @Autowired SysErrorService sysErrorService; @Autowired LogService logService; public Map getSelectCustomer(Integer pageNum, Integer pageSize, Customer customer) { Integer offset = (pageNum - 1) * pageSize; Map map = new HashMap<>(); map.put("data", customerMapper.getSelectCustomer(offset, pageSize, customer)); map.put("total", customerMapper.getSelectCustomerPageTotal(offset, pageSize, customer)); return map; } public Boolean insertCustomer(Map object) { boolean saveState = true; Log log = new Log(); log.setOperatorId(object.get("userId").toString()); log.setOperator(object.get("userName").toString()); log.setContent(object.toString()); //设置回滚点 Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); try { Customer customer = JSONObject.parseObject(JSONObject.toJSONString(object.get("customer")), Customer.class); if(customer!=null){ if (customer.getId()!=null && customer.getId()!=0){ customerMapper.updateCustomer(customer); log.setFunction("insertCustomer修改"); }else{ customerMapper.insertCustomer(customer); log.setFunction("insertCustomer新增"); } logService.saveLog(log); } } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); //将异常传入数据库 SysError sysError = new SysError(); sysError.setError(Arrays.toString(e.getStackTrace())); sysError.setFunc("saveOrder"); sysErrorService.insert(sysError); saveState = false; } return saveState; } public Boolean deleteCustomer(Map object) { boolean saveState = true; //设置回滚点 Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); try { Customer customer = JSONObject.parseObject(JSONObject.toJSONString(object.get("customer")), Customer.class); if(customer!=null){ if (customer.getId()!=null){ customerMapper.deleteCustomer(customer); } Log log = new Log(); log.setOperatorId(object.get("userId").toString()); log.setOperator(object.get("userName").toString()); log.setContent(object.toString()); log.setFunction("deleteCustomer删除"); logService.saveLog(log); } } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); //将异常传入数据库 SysError sysError = new SysError(); sysError.setError(e.toString()); sysError.setFunc("saveOrder"); sysErrorService.insert(sysError); saveState = false; } return saveState; } public Map getSelectCustomerOderDate(Integer pageNum, Integer pageSize,List selectDate, OrderDetail orderDetail) { Integer offset = (pageNum - 1) * pageSize; String endDate = LocalDate.now().toString(); String startDate = LocalDate.now().minusDays(15).toString(); if(selectDate !=null && selectDate.size()==2){ if(!selectDate.get(0).isEmpty()){ startDate = selectDate.get(0); } if(!selectDate.get(1).isEmpty()){ endDate = selectDate.get(1); } } Map map = new HashMap<>(); if(Objects.equals(orderDetail.getOrder().getBatch(), "1")){ map.put("data", customerMapper.getSelectCustomerOderDate(offset, pageSize,startDate,endDate, orderDetail)); map.put("total", customerMapper.getSelectCustomerOderDatePageTotal(offset, pageSize,startDate,endDate, orderDetail)); }else{ map.put("data", customerMapper.getSelectCustomerDeliveryDate(offset, pageSize,startDate,endDate, orderDetail)); map.put("total", customerMapper.getSelectCustomerDeliveryDatePageTotal(offset, pageSize,startDate,endDate, orderDetail)); } List list = new ArrayList<>(); list.add(startDate); list.add(endDate); map.put("selectDate",list); return map; } public List exportSelectCustomerOderDate(List selectDate, OrderDetail orderDetail) { String endDate = LocalDate.now().toString(); String startDate = LocalDate.now().minusDays(15).toString(); if(selectDate !=null && selectDate.size()==2){ if(!selectDate.get(0).isEmpty()){ startDate = selectDate.get(0); } if(!selectDate.get(1).isEmpty()){ endDate = selectDate.get(1); } } return customerMapper.exportSelectCustomerOderDate(startDate,endDate, orderDetail); } public List exportSelectCustomerDeliveryDate(List selectDate, OrderDetail orderDetail) { String endDate = LocalDate.now().toString(); String startDate = LocalDate.now().minusDays(15).toString(); if(selectDate !=null && selectDate.size()==2){ if(!selectDate.get(0).isEmpty()){ startDate = selectDate.get(0); } if(!selectDate.get(1).isEmpty()){ endDate = selectDate.get(1); } } return customerMapper.exportSelectCustomerDeliveryDate(startDate,endDate, orderDetail); } }