基于javaweb+mysql的ssm+maven医药进销存系统(java+ssm+jsp+layui+jquery+maven+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven医药进销存系统(java+ssm+jsp+layui+jquery+maven+mysql)
功能介绍
医药进销存系统,主要功能包括:
公告管理:发布公告、公告列表; 生产管理:订单列表、增加生产、订单日志; 分店采购:分店审核、采购; 总店仓库:出库管理、仓库列表、入库管理; 分店管理:分店库存、分店列表、分店财务; 商品管理:原材料、药效、商品列表、药品类型; 总店采购:采购列表、采购审核; 合同管理:合同类型管理、合同列表; 会员管理:会员列表; 质检:质检; 权限管理:人员管理、模块管理、部门管理、角色管理; 审核管理:财务审核、生产审核、采购审核; 分店销售:销售统计图、订单批发审核、订单列表、分店销售; 该项目共有49张表,功能比较复杂;
其他管理:供货商管理,新增、搜索、编辑、删除;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7版本;
技术栈
- 后端:Spring SpringMVC MyBatis 2. 前端:JSP+Layui+jQuery
运行说明
-
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 3. 将项目中db.properties和spring.xml配置文件中的数据库配置改为自己的配置;
-
运行项目,输入http://localhost:8080/medicine/page/login.jsp 登录
map.put("code", 0);
map.put("msg", "");
map.put("count",service.selectByPrimaryNewCount(map));
map.put("data", list);
return map;
}
/**
* 审批的方法
* @param session 取采购人
* @param qua 注释对象
* @return 信息类
*/
@RequestMapping("updateByPrimaryKeySelective")
@ResponseBody
public SsmMessage updateByPrimaryKeySelective(HttpSession session,ErpQuality qua,Integer[] qdetGood,Integer[] qdetBab,String[] rawId,String[] kinId){
//新建一个质检明细的集合
List<ErpQualityDetail> detlist = new ArrayList<ErpQualityDetail>();
for(int i =0;i<qdetGood.length;i++){//循环一个数组因为两个数组的值对应只有循环一个就好了
ErpQualityDetail det = new ErpQualityDetail();//创建一个质检对象
det.setQdetGood(qdetGood[i]);//把数组里面的东西放入对象
det.setQdetBab(qdetBab[i]);
if(kinId!=null){
det.setKinId(kinId[i]);
}else{
det.setRawId(rawId[i]);
}
det.setQuaId(qua.getQuaId());
detlist.add(det);//把对象放入集合
}
SsmMessage mes = new SsmMessage();
ErpStaff staff = (ErpStaff) session.getAttribute("staff");//得到用户对象
qua.setQuaQc(staff.getStaName());//把当前用户名放入质检里
int rows;
try {
rows = service.updateByPrimaryKeySelective(qua,detlist);
if(rows>-1){
mes.setMes("成功");
mes.setState(1);
}else{
mes.setMes("失败");
mes.setState(0);
}
} catch (BackException e) {
e.printStackTrace();
}
return mes;
}
/**
*/
@Controller
@RequestMapping("/annex")
public class AnnexAction {
@Resource
AnnexService service;
/**
* 查找所有分店的数量
* @return 分店数量
*/
@RequestMapping("/findAllSize")
@ResponseBody
public int findAllSize(){
return service.findAllSize(new HashMap<String, Object>());
}
/**
* 查询所有分店
* @param page 当前页数
* @param limit 显示行数
* @param annexData 查询参数
* @param annexTime 查询创建时间
* @return 产品集合
*/
@RequestMapping("/findAll")
@ResponseBody
public Map<String,Object> findAll(int page,int limit,String annexData,String annexTime){
Map<String, Object> map = new HashMap<String, Object>();
map.put("firstRows", limit*(page-1));
map.put("limit", limit);
map.put("annexData", annexData);
if(annexTime!=null && !"".equals(annexTime)){
System.out.println("时间:"+annexTime);
String str[] = annexTime.split(" "+"-"+" ");
map.put("annexTime_begin", str[0]);
map.put("annexTime_end", str[1]);
@RequestMapping("/findById")
@ResponseBody
public List<Map<String, Object>> findById(ErpProindent dent){
List<Map<String, Object>> map=proindentService.selectByPrimaryKeyid(dent.getIndentId());//根据订单id查询明细,和商品表
return map;
}
/**
* 根据ID查询所有,根据订单id查询明细,和商品表查看明细
* @param express
* @return
*/
@RequestMapping("/findByshowId")
@ResponseBody
public List<Map<String, Object>> findByshowId(ErpProindent dent){
List<Map<String, Object>> map=proindentService.showid(dent.getIndentId());//根据订单id查询明细,和商品表查看明细
return map;
}
/**
* 根据ID查询单个订单
* @param express
* @return
*/
@RequestMapping("/show")
@ResponseBody
public ErpProindent show(ErpProindent dent){
ErpProindent map=proindentService.findById(dent.getIndentId());//根据ID查询
return map;
}
/**
* 删除方法
* @param express
* @return
*/
* @return rows
*/
@RequestMapping("/addKinds")
@ResponseBody
public int addKinds(ErpPurchase record,String[] kinId,String[] number,HttpSession session){
int rows =0;//定义参数rows
//判断前台是否传入ID,有则修改,无则增加
if(record.getPurcId()!=null && !"".equals(record.getPurcId())){
rows = erpPurchaseService.update(record);//修改
}else{
String time = Tools.getCurDateTime();//获取当前时间
record.setPurcTime(time);//采购时间
ErpStaff staff = (ErpStaff) session.getAttribute("staff");//得到人员session
record.setPurcName(staff.getStaName());//session
record.setCreater("2");//采购成品为2
record.setCreatetime(time);//创建时间
Double a = 0.0;//定义一个空数值
for(int i=0;i<kinId.length;i++){
ErpPurchaseDetails eetails2 = new ErpPurchaseDetails();//得到订单详细
String [] arr = kinId[i].split("~");//分割符号~
eetails2.setPurcTotalPrice(Double.valueOf(arr[1])*Integer.valueOf(number[i]));
a = a+Double.valueOf(arr[1])*Integer.valueOf(number[i]);//累加
record.setPurcTotalPrice(a);;//添加总价格
String sa = Tools.getDateOrderNo();//得到订单编码格式
record.setPurcSerial(sa);;//增加订单
}
rows= erpPurchaseService.insert(record);//添加到订单表中
for(int i=0;i<kinId.length;i++){
ErpPurchaseDetails details = new ErpPurchaseDetails();//订单详细
String [] arr = kinId[i].split("~");//分割符号~
details.setPurcTotalPrice(Double.valueOf(arr[1])*(Integer.valueOf(number[i])));//增加总价格,进行数字转换
details.setPurcTotalNumber(Integer.valueOf(number[i]));//增加数量
details.setPurcId(record.getPurcId());//增加订单ID
details.setRowId(arr[0]);//增加货品ID
rows = erpPurchaseDetailsService.insertSelective(details);//增加到订单详细表中
}
}
return rows;
}
/**
* 显示采购图
* @param date
* @return
*/
@RequestMapping("/showTuxing")
@ResponseBody
public Map<String,Object> showTuxing(String date){
/**
* 分店销售订单service实现接口
*/
@Service
public class SctockmpServiceImpl implements SctockmpService{
@Resource
ErpSctockmpMapper sctockmpDao;//分店销售订单
@Resource
ErpSctockmpDetailMapper sctockmpDetailDao;//分店销售订单明细
@Resource
ErpSumstockMapper sumstockDao;//分店库存表
@Resource
ErpLedgyrMapper ledgyrDao;//分店财务
@Resource
ErpAnnexMapper annexDao;//分店表
@Resource
ErpAuditMapper auditDao;//审核表
@Override
public int addSctockmp(ErpSctockmp sctockmp, List<ErpSctockmpDetail> list) {
//增加销售订单
int row1 = sctockmpDao.insertSelective(sctockmp);//订单:增加(可以为空)
//增加销售订单明细
int row2 = sctockmpDetailDao.addSctockmpDetailList(list);//订单明细:批量增加销售订单明细
//如果为零售(则需减库存,增加财务)
if(sctockmp.getSaleIfWholesale()==0){//如果销售订单对象的是否批发 等于零的时候
//减库存
List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();//实例化一个map集合
for(int i =0;i<list.size();i++){//循环分店销售订单明细集合
audit.setBusinessId(saleId);//审核赋值-业务ID-订单ID
audit.setAudSerial(UUID.randomUUID()+"");//赋值-审核编号-随机生产
ErpStaff staff = (ErpStaff) session.getAttribute("staff");//得到Session中的员工对象
audit.setAudName(staff.getStaName());//赋值-审核人-员工姓名
audit.setAudTime(Tools.getCurDateTime());//赋值-审核时间-工具类:得到当前日期时间
audit.setState(2);//赋值-审核状态-2
audit.setCreatetime(Tools.getCurDateTime());//赋值-创建时间-工具类:得到当前日期时间
audit.setCreater(staff.getStaId());//赋值-创建人-员工ID
audit.setIsva(1);//赋值-是否有效-是
auditDao.insertSelective(audit);//无返回-审核:增加(可以为空)
//最后增加订单状态
return sctockmpDao.updateWholesaleStateAdd(saleId);//订单:审核通过,增加批发状态
}
@Override
public int updateWholesaleStateZero(String saleId,String feedBack,HttpSession session) {
//增加审核表
ErpAudit audit = new ErpAudit();//实例化一个审核类
audit.setBusinessId(saleId);//审核赋值-业务ID-订单ID
audit.setAudSerial(UUID.randomUUID()+"");//审核赋值-审核编号-随机生产
ErpStaff staff = (ErpStaff) session.getAttribute("staff");//得到Session中的员工对象
audit.setAudName(staff.getStaName());//审核赋值-审核人-员工姓名
audit.setAudTime(Tools.getCurDateTime());//审核赋值-审核时间-工具类:得到当前日期时间
audit.setState(0);//审核赋值-审核状态-0
audit.setFeedBack(feedBack);//审核赋值-反馈-打回原因
audit.setCreatetime(Tools.getCurDateTime());//审核赋值-创建时间-工具类:得到当前日期时间
audit.setCreater(staff.getStaId());//审核赋值-创建人-员工ID
audit.setIsva(1);//审核赋值-是否有效-是
auditDao.insertSelective(audit);//无返回-审核:增加(可以为空)
//更改状态
ErpSctockmp sctockmp = new ErpSctockmp();//实例化一个订单
sctockmp.setSaleId(saleId);//订单赋值-订单ID
sctockmp.setSaleWholesaleState(0);//订单赋值-批发状态-0
return sctockmpDao.updateByPrimaryKeySelective(sctockmp);//订单:根据订单ID修改订单信息
}
@Override
public int updateSctockmp(ErpSctockmp sctockmp, List<ErpSctockmpDetail> list) {
//修改订单
sctockmpDao.updateByPrimaryKeySelective(sctockmp);//无返回-订单:根据订单ID修改订单信息
//删除之前的订单明细
sctockmpDetailDao.updateIsvaBySaleId(sctockmp.getSaleId());//无返回-订单明细:根据订单ID把详细订单设为无效
//增加订单明细
sctockmpDetailDao.addSctockmpDetailList(list);//无返回-订单明细:批量增加销售订单明细
/**
* 审核通过,增加批发状态
* @param saleId 订单ID
* @param session HttpSession
* @return 影响行数
*/
@RequestMapping("/updateWholesaleStateAdd")
@ResponseBody //ajax注解
public int updateWholesaleStateAdd(String saleId,HttpSession session){
return sctockmpService.updateWholesaleStateAdd(saleId,session);//订单:审核通过,增加批发状态
}
/**
* 审核打回,更改批发状态
* @param saleId 订单ID
* @param feedBack 打回原因
* @param session HttpSession
* @return 影响行数
*/
@RequestMapping("/updateWholesaleStateZero")
@ResponseBody //ajax注解
public int updateWholesaleStateZero(String saleId,String feedBack,HttpSession session){
return sctockmpService.updateWholesaleStateZero(saleId,feedBack,session);//订单:审核失败,根据订单ID修改批发状态为0
}
/**
* 查询所有分店销售订单
* @param sctockData 混合数据
* @param saleDate 销售时间
* @param saleWholesaleState 批发状态
* @param annexId 分店ID
* @param page 当前页数
* @param limit 显示行数
* @param session HttpSession
* @return 订单集合
*/
@RequestMapping("/findAll")
@ResponseBody //ajax注解
public Map<String,Object> findAll(String sctockmpData,String saleDate,Integer saleWholesaleState,String annexId,int page,int limit,HttpSession session){
ErpStaff staff = (ErpStaff) session.getAttribute("staff");//得到Session中的员工对象
String roleName = staff.getRoleName();//得到员工对象中的角色名称
//权限判断
if(!"管理员".equals(roleName)){//如果员工角色不是‘管理员’
annexId = staff.getAnnexId();//给分店ID赋值-当前登录人的分店ID
}
return mes;
}
/**
* 删除方法
*
*/
@RequestMapping("/delete")
@ResponseBody
public SsmMessage delete(ErpPactType type){
//给合同类型是否有效赋值为0无效
type.setIsva(0);
//将合同类型id赋值为合同类型id
type.setPatypeId(type.getPatypeId());
//int型 合同类型的选择性修改方法
int rows=pactTypeService.updateByPrimaryKeySelective(type);
//判断值大于0
if(rows>0){
//消息类的消息值赋值为成功
mes.setMes("操作成功");
//将消息类的状态赋值为1
mes.setState(1);
}else{
//消息类的消息值赋值为失败
mes.setMes("操作失败");
//将消息类的状态赋值为0
mes.setState(0);
}
//返回mes
return mes;
}
/**
* 根据id查询
* @return 返回list
*/
@RequestMapping("/findByID")
@ResponseBody
public ErpPactType findByID(String patypeId){
//合同类型的查找单个对象方法
ErpPactType pact=pactTypeService.selectByPrimaryKey(patypeId);
//返回pact
return pact;
}
}
/**
*
* @param session
* @return
* @throws JsonProcessingException
*/
@RequestMapping("/showListAjax")
@ResponseBody //ajax的注解
public List<ErpKinds> showListAjax(){
List<ErpKinds> list = service.findStation();//查询所有商品
return list;
}
/**
* 根据ID查询
* @param session
* @return
* @throws JsonProcessingException
*/
@RequestMapping("/findById")
@ResponseBody //ajax的注解
public ErpKinds findById(ErpKinds kinds){
ErpKinds list = service.selectByPrimaryKey(kinds.getKinId());//查询所有商品
return list;
}
/**
* 查询单个对象仓库使用方法
* @param kinId 商品id
* @return 返回药品单个对象
*/
@RequestMapping("/selectByPrimaryNewKinId")
@ResponseBody //ajax的注解
public ErpKinds selectByPrimaryNewKinId(String kinId){
return service.selectByPrimaryNewKinId(kinId);
}
/**
* Excel导入
* @param file Excel文件
* @param session HttpSession
* @return 是否成功
*/
@RequestMapping("/excelIn")
@ResponseBody //ajax的注解
public Map<String,Object> excelIn(MultipartFile file,HttpSession session){
/**
*
*/
/**
* @version 1.0
*/
@Controller
@RequestMapping("log")
public class LogAction {
@Resource
public LogService logService;//生产日志
@Resource
public LogDetailService logDetailService;//生产日志明细
@Resource
public ProindentDetailService proindentDetailService;//订单明细
@Resource
}
/**
* 金额分转元
* @see 注意:如果传入的参数中含小数点,则直接原样返回
* @see 该方法返回的金额字符串格式为<code>00.00</code>,其整数位有且至少有一个,小数位有且长度固定为2
* @param amount 金额的分进制字符串
* @return String 金额的元进制字符串
*/
public static String moneyFenToYuan(String amount){
if(isEmpty(amount)){
return amount;
}
if(amount.indexOf(".") > -1){
return amount;
}
if(amount.length() == 1){
return "0.0" + amount;
}else if(amount.length() == 2){
return "0." + amount;
}else{
return amount.substring(0, amount.length()-2) + "." + amount.substring(amount.length()-2);
}
}
/**
* @title 金额分转元
* @description 传入一个金额的分进制字符串,返回一个金额的元进制字符串
* @see 注意:如果传入的参数中不
* @see 该方法返回的金额字符串格式为<code>00.00</code>,其整数位有且至少有一个,小数位有且长度固定为2
* @param amount 金额的分进制字符串
* @return String 金额的元进制字符串
* @versions 1.0
*/
public static String moneyFenToYuan2(String money){
BigDecimal num = new BigDecimal("100"); //建立元转分倍数
//NumberFormat currency = NumberFormat.getCurrencyInstance(); //建立货币格式化引用:¥15,000.48
try{
BigDecimal newMoney=new BigDecimal(money).divide(num,2);//相除,保留2位小数
@ResponseBody
public int addOrUpdate(ErpAnnex annex,HttpSession session){
ErpStaff staff=(ErpStaff) session.getAttribute("staff");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
if(staff!=null){
annex.setCreater(staff.getStaId());
annex.setCreatetime(sdf.format(new Date()));
}
int row =0;
if(annex.getAnnexId()!=null && !"".equals(annex.getAnnexId())){//修改
row = service.updateByPrimaryKeySelective(annex);
}else{//增加
annex.setAnnexId(UUID.randomUUID()+"");
annex.setAnnexNumber(UUID.randomUUID()+"");
annex.setIsva(1);
annex.setAnnexTime(sdf.format(new Date()));
row = service.insertSelective(annex);
}
return row;
}
/**
* 查找所有分店集合
* @return 分店集合
*/
@RequestMapping("/showList")
@ResponseBody
public List<ErpAnnex> showList(){
return service.getAnnex();
}
/**
* 初始化加载所有分店统计图
* @return 返回map集合
*/
@RequestMapping("/showChar")
@ResponseBody
public Map<String,Object> showChar(String annexId,String year,String month){
Map<String,Object>parMap = new HashMap<String,Object>();//定义一个map集合用于sql查询参数
parMap.put("annexId", annexId);//分店id主键
if(Tools.isEmpty(year)){
parMap.put("year", "");//年份
}else{
parMap.put("year", "%"+year+"%");//年份
}
@ResponseBody
public SsmMessage login(ErpStaff staff,HttpServletRequest request,HttpSession session,HttpServletResponse response) throws ServletException, IOException{
System.out.println("进入方法"+staff.getStaEmail()+" "+staff.getStaPwd());
ErpStaff rows = staffService.getUser(staff);
SsmMessage mes = new SsmMessage();
if(rows!=null){
session.setAttribute("staff", rows);
mes.setMes("ok");
return mes;
}else{
System.out.println("妹纸");
mes.setMes("no");
return mes;
}
}
@RequestMapping("findAllModel")
public ModelAndView findAllModel(HttpSession session,HttpServletResponse response,HttpServletRequest request) throws IOException{
ErpStaff staff = (ErpStaff) session.getAttribute("staff");
if(staff!=null){
List<ErpModel>list = modelService.findAllModel(staff.getStaEmail());
List<ErpModel>list2 = modelService.getModel(staff.getRoleId());
request.setAttribute("model", list);
request.setAttribute("modelSub", list2);
ModelAndView view = new ModelAndView("homePage");
return view;
}else{
return null;
}
}
@ResponseBody
@RequestMapping("findAll")
public Map<String, Object>findAll(ErpStaff staff,int page ,int limit){
Map<String, Object> map = new HashMap<String, Object>();
System.out.println("搜索框中的值为:"+staff.getRoleName());
Pages pages = new Pages();
pages.setCurPage(page);
pages.setMaxResult(limit);
staff.setPage(pages.getFirstRows());
staff.setLimit(limit);
List<ErpStaff>list = staffService.findAll(staff);
map.put("count", staffService.findRowCount(staff));
map.put("data", list);
map.put("code",0);
map.put("msg", "");
return map;
public ErpProindent showidQualit(String indentId){
return proindentService.showidQualit(indentId);//质检表查询单个对象
}
/**
* 生产订单审核
* @param indentId 生产订单id
* @param state 审核状态
* @param feedBack 反馈信息
* @return 返回消息类
*/
@ResponseBody
@RequestMapping("/auditPpoindent")
public SsmMessage auditPpoindent(String indentId,String state,String feedBack){
SsmMessage mes = new SsmMessage();//定义一个消息类用于返回jsp
Map<String,Object>map = new HashMap<String,Object>();//定义一个map集合
if(Tools.isEmpty(feedBack)){//判断字符串是否为空
map.put("feedBack", "暂无反馈信息");
}else{
map.put("feedBack", feedBack);//map集合中存入 反馈消息
}
map.put("indentId", indentId);//map集合中存入财务id
map.put("state", state);//map集合中存入 审核是否通过 state=2 通过 state=0 不通过
int rows = proindentService.auditPpoindent(map);
return mes;
}
}
/**
*
*/
}
map.put("indentId", indentId);//map集合中存入财务id
map.put("state", state);//map集合中存入 审核是否通过 state=2 通过 state=0 不通过
int rows = proindentService.auditPpoindent(map);
return mes;
}
}
/**
*
*/
/**
}
Date date = new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Random random=new java.util.Random();
String fdId = UUID.randomUUID().toString();
if(fdproId==""){
ErpFdproform fd = new ErpFdproform();
String serial = sdf.format(date);
serial+=random.nextInt(100);
fd.setFdproId(fdId);
fd.setFdproSerial(serial);
fd.setAnnexId(staff.getAnnexId());
fd.setStaId(staff.getStaId());
fd.setFdproSumprice(Double.valueOf(zong));
fd.setFdproTime(String.valueOf(sdf1.format(date)));
fd.setIsva("1");
fd.setFdproIsva(0);
fd.setFdproWarecount(count);
fdproformService.insertSelective(fd);
for(int i = 0;i<fdprolistmxCount1.length;i++){
String dateTime = sdf.format(date);
dateTime+=random.nextInt(100);
ErpProlistmxsmall mall = new ErpProlistmxsmall();
mall.setFdprolistmxId(UUID.randomUUID().toString());
mall.setFdproId(fdId);
mall.setKinId(kinId[i]);
mall.setFdprolistmxNumber(dateTime);
mall.setFdprolistmxMoney(Double.valueOf(fdprolistmxMoney1[i]));
mall.setFdprolistmxCount(Integer.valueOf(fdprolistmxCount1[i]));
mall.setFdprolistmxTime(sdf1.format(date));
mall.setIsva("1");
prolistmxsmallService.insertSelective(mall);
}
mes.setMes("add");
}else{
int rows = prolistmxsmallService.deleteFd(fdproId);
if(rows>0){
ErpFdproform fd = new ErpFdproform();
for(int i = 0;i<fdprolistmxCount1.length;i++){
String dateTime = sdf.format(date);
dateTime+=random.nextInt(100);
ErpProlistmxsmall mall = new ErpProlistmxsmall();
mall.setFdprolistmxId(UUID.randomUUID().toString());
mall.setFdproId(fdproId);
/**
* 查找所有分店的数量
* @return 分店数量
*/
@RequestMapping("/findAllSize")
@ResponseBody
public int findAllSize(){
return service.findAllSize(new HashMap<String, Object>());
}
/**
* 查询所有分店
* @param page 当前页数
* @param limit 显示行数
* @param annexData 查询参数
* @param annexTime 查询创建时间
* @return 产品集合
*/
@RequestMapping("/findAll")
@ResponseBody
public Map<String,Object> findAll(int page,int limit,String annexData,String annexTime){
Map<String, Object> map = new HashMap<String, Object>();
map.put("firstRows", limit*(page-1));
map.put("limit", limit);
map.put("annexData", annexData);
if(annexTime!=null && !"".equals(annexTime)){
System.out.println("时间:"+annexTime);
String str[] = annexTime.split(" "+"-"+" ");
map.put("annexTime_begin", str[0]);
map.put("annexTime_end", str[1]);
}
List<ErpAnnex> data = service.findAll(map);
int count = service.findAllSize(map);
Map<String,Object> mapResult = new HashMap<String, Object>();
//layui数据表格需要返回的参数
/**
* @version 1.0
*/
@Controller
@RequestMapping("log")
public class LogAction {
@Resource
public LogService logService;//生产日志
@Resource
public LogDetailService logDetailService;//生产日志明细
@Resource
public ProindentDetailService proindentDetailService;//订单明细
@Resource
public ProindentService proindentService;//订单
@RequestMapping("/add")
@ResponseBody
public SsmMessage add(ErpLog log,ErpLogDetail logdeta,String str,String indentId){
SsmMessage mes = new SsmMessage();
String[] sourceStrArray = str.split("&");//字符串分割
System.out.println(sourceStrArray.length);
double num=0;//总数量
double quantity=0;//以生成数量