diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/controller/MessageCenterController.java b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/controller/MessageCenterController.java index 89fd4ed3..cb5b05af 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/controller/MessageCenterController.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/controller/MessageCenterController.java @@ -21,6 +21,8 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import java.util.Map; @@ -48,6 +50,36 @@ public class MessageCenterController { @Autowired private MessageCenterService messageCenterService; + /** + *获取最近七天的销售量 + */ + @GetMapping(value = "/getSaleQuantityData") + public ActionResult getSaleQuantityData(String dateNow) throws Exception { +// public void exportBillInfo(HttpServletResponse response) throws Exception { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + long lt = new Long(dateNow); + //将时间戳转换为时间 + Date date = new Date(lt); + System.out.println("时间为:"+simpleDateFormat.format(date)); + Map saleQuantityData = messageCenterService.getSaleQuantityData(date); + return ActionResult.success(saleQuantityData); + } + /** + *获取最近七天的采购量 + */ + @GetMapping(value = "/getPurchasedAmountData") + public ActionResult getPurchasedAmountData(String dateNow) throws Exception { +// public void exportBillInfo(HttpServletResponse response) throws Exception { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + long lt = new Long(dateNow); + //将时间戳转换为时间 + Date date = new Date(lt); + System.out.println("时间为:"+simpleDateFormat.format(date)); + Map saleQuantityData = messageCenterService.getPurchasedAmountData(date); + return ActionResult.success(saleQuantityData); + } + + /** * 列表 diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/mapper/MessageCenterMapper.java b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/mapper/MessageCenterMapper.java index 446b768f..6c0c72f4 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/mapper/MessageCenterMapper.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/mapper/MessageCenterMapper.java @@ -3,7 +3,9 @@ package jnpf.messageCenter.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import jnpf.messageCenter.entity.MessageCenterEntity; +import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; import java.util.Map; @@ -34,4 +36,7 @@ public interface MessageCenterMapper extends BaseMapper { * @return */ List getInventoryWarningData(); + + List getSaleQuantity(@Param("inpDate")Date inpDate); + List getPurchasedAmount(@Param("inpDate")Date inpDate); } diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/MessageCenterService.java b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/MessageCenterService.java index 639f9ac7..bdce3aaa 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/MessageCenterService.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/MessageCenterService.java @@ -39,4 +39,18 @@ public interface MessageCenterService extends IService { // 子表方法 //列表子表数据方法 + + /** + * 获取最近七天的销售量 + * @param inpDate + * @return + */ + Map getSaleQuantityData(Date inpDate); + + /** + * 获取最近七天的采购量 + * @param inpDate + * @return + */ + Map getPurchasedAmountData(Date inpDate); } diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/impl/MessageCenterServiceImpl.java b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/impl/MessageCenterServiceImpl.java index f44661f1..1386c61e 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/impl/MessageCenterServiceImpl.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/messageCenter/service/impl/MessageCenterServiceImpl.java @@ -10,8 +10,10 @@ import jnpf.messageCenter.entity.MessageCenterEntity; import jnpf.messageCenter.mapper.MessageCenterMapper; import jnpf.messageCenter.model.messagecenter.MessageCenterPagination; import jnpf.messageCenter.service.MessageCenterService; +import jnpf.mobilePort.utils.BigDecimalUtil; import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.service.AuthorizeService; +import jnpf.util.DateUtil; import jnpf.util.ServletUtil; import jnpf.util.StringUtil; import jnpf.util.UserProvider; @@ -20,9 +22,10 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; /** * messageCenter @@ -346,6 +349,88 @@ public class MessageCenterServiceImpl extends ServiceImpl saleQuantity = messageCenterMapper.getSaleQuantity(inpDate); + ArrayList xData = new ArrayList<>(); + ArrayList data = new ArrayList<>(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + for (int i = 7; i > 0; i--) { + Date frontDay = DateUtil.getFrontDay(inpDate,i - 1); + xData.add(simpleDateFormat.format(frontDay)); + Boolean isExist=true; + for (int i1 = 0; i1 < saleQuantity.size(); i1++) { + Map map = saleQuantity.get(i1); + if (!String.valueOf(map.get("outputDate")).equals("null")){ + Date outputDate = (Date)map.get("outputDate"); + int i2 = 0; + try { + i2 = DateUtil.dateCompare(simpleDateFormat.parse(simpleDateFormat.format(frontDay)), outputDate); + } catch (ParseException e) { + throw new RuntimeException(e); + } + if (i2==0){ + isExist=false; + data.add(BigDecimalUtil.getBigDecimal(map.get("salesVolumeToday"))); + } + } + } + if (isExist){ + data.add(new BigDecimal("0")); + } + } + HashMap hashMap = new HashMap<>(); + hashMap.put("xData",xData); + hashMap.put("data",data); + return hashMap; + } + + /** + * 获取最近七天的采购量 + * @param inpDate + * @return + */ + @Override + public Map getPurchasedAmountData(Date inpDate) { + List saleQuantity = messageCenterMapper.getPurchasedAmount(inpDate); + ArrayList xData = new ArrayList<>(); + ArrayList data = new ArrayList<>(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + for (int i = 7; i > 0; i--) { + Date frontDay = DateUtil.getFrontDay(inpDate,i - 1); + xData.add(simpleDateFormat.format(frontDay)); + Boolean isExist=true; + for (int i1 = 0; i1 < saleQuantity.size(); i1++) { + Map map = saleQuantity.get(i1); + if (!String.valueOf(map.get("inputDate")).equals("null")){ + Date outputDate = (Date)map.get("inputDate"); + int i2 = 0; + try { + i2 = DateUtil.dateCompare(simpleDateFormat.parse(simpleDateFormat.format(frontDay)), outputDate); + } catch (ParseException e) { + throw new RuntimeException(e); + } + if (i2==0){ + isExist=false; + data.add(BigDecimalUtil.getBigDecimal(map.get("todayPurchasePrice"))); + } + } + } + if (isExist){ + data.add(new BigDecimal("0")); + } + } + HashMap hashMap = new HashMap<>(); + hashMap.put("xData",xData); + hashMap.put("data",data); + return hashMap; + } + @Override public void delete(MessageCenterEntity entity) { if (entity != null) { diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java index 32e30143..fb9372b5 100644 --- a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java +++ b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/controller/MobilePortController.java @@ -1,5 +1,6 @@ package jnpf.mobilePort.controller; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import jnpf.base.ActionResult; @@ -15,6 +16,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; @Slf4j @@ -26,6 +28,8 @@ public class MobilePortController { @Resource private PurchaseorderitemService purchaseorderitemService; + + /** * * @param response diff --git a/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/BigDecimalUtil.java b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/BigDecimalUtil.java new file mode 100644 index 00000000..5ffd00d4 --- /dev/null +++ b/SC-boot/linkage-scm/src/main/java/jnpf/mobilePort/utils/BigDecimalUtil.java @@ -0,0 +1,36 @@ +package jnpf.mobilePort.utils; + +import java.math.BigDecimal; +import java.math.BigInteger; + +/** + * @Author: WangChuang + * @Date: 23/3/2023 上午11:30 + * @Description //注释: + * @Version 1.0 + */ +public class BigDecimalUtil { + /** + * Object转BigDecimal类型 + * + * @param value 要转的object类型 + * @return 转成的BigDecimal类型数据 + */ + public static BigDecimal getBigDecimal(Object value) { + BigDecimal ret = null; + if (value != null) { + if (value instanceof BigDecimal) { + ret = (BigDecimal) value; + } else if (value instanceof String) { + ret = new BigDecimal((String) value); + } else if (value instanceof BigInteger) { + ret = new BigDecimal((BigInteger) value); + } else if (value instanceof Number) { + ret = new BigDecimal(((Number) value).doubleValue()); + } else { + throw new ClassCastException("Not possible to coerce [" + value + "] from class " + value.getClass() + " into a BigDecimal."); + } + } + return ret; + } +} diff --git a/SC-boot/linkage-scm/src/main/resources/mapper/messageCenter/MessageCenterMapper.xml b/SC-boot/linkage-scm/src/main/resources/mapper/messageCenter/MessageCenterMapper.xml index 14e35560..35222c87 100644 --- a/SC-boot/linkage-scm/src/main/resources/mapper/messageCenter/MessageCenterMapper.xml +++ b/SC-boot/linkage-scm/src/main/resources/mapper/messageCenter/MessageCenterMapper.xml @@ -384,4 +384,56 @@ a.areaname ) aaa + + + + + + + + + + + + + + +