基于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("kinId",list.get(i).getKinId());//map赋值-商品ID-明细订单集合第i个中的商品ID
map.put("kmpNum",list.get(i).getKmpNum());//map赋值-商品数量-明细订单集合第i个中的商品数量
mapList.add(map);//把map加入到map集合
}
int row3 = sumstockDao.updateStockSuount(mapList);//分店库存:批量减少库存(根据分店ID和商品ID减少)
if(row3<1){//如果减少库存的影响行数小于1
return 0;//返回0
}
//增加财务(先增加分店收入明细,再增加分店表的总资产)
/* 增加分店收入明细 */
ErpLedgyr ledgyr = new ErpLedgyr();//实例化一个分店财务模型
ledgyr.setGyrId(UUID.randomUUID()+"");//赋值-分店财务ID-随机生成
ledgyr.setSaleId(sctockmp.getSaleId());//赋值-分店销售ID
ledgyr.setAnnexId(sctockmp.getAnnexId());//赋值-分店ID-订单中的分店ID
ledgyr.setGyrSreial(UUID.randomUUID()+"");//赋值-分店支出收入编号-随机生成
ledgyr.setGyrPrice(sctockmp.getSaleMoney1());//赋值-分店支出金钱-订单中的应付金额
ledgyr.setCreater(sctockmp.getCreater());//赋值-创建人-订单中的创建人
ledgyr.setCreatetime(sctockmp.getCreatetime()+"");//赋值-创建时间-订单中的创建时间
int row4 = ledgyrDao.insertSelective(ledgyr);//分店财务:增加(可以为空)
if(row4<1){//如果增加的影响行数小于1
return 0;
}
/* 增加分店表的总资产 */
ErpAnnex annex = new ErpAnnex();//实例化一个分店模型
annex.setAnnexId(sctockmp.getAnnexId());//分店赋值-分店ID-订单中的分店ID
annex.setAnnexPrice(sctockmp.getSaleMoney1());//分店赋值-分店总资产-订单中的应付金额
int row5 = annexDao.updateAnnexPriceAdd(annex);//分店:增加分店的总资产
if(row5<1){//如果 增加分店的总资产 的影响行数小于1
return 0;
}
}
int rows = row1+row2;
return rows;
}
@Override
public List<Map<String, Object>> findAll(Map<String, Object> sctockmpMap) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//实例化一个map集合
List<Map<String, Object>> sctockmpList = sctockmpDao.findAll(sctockmpMap);//订单:查询订单列表
//把订单时间转换为字符串
for (Iterator iterator = sctockmpList.iterator(); iterator.hasNext();) {//迭代器循环-订单列表
Map<String, Object> mapList = (Map<String, Object>) iterator.next();
mapList.put("SALE_DATE", mapList.get("SALE_DATE")+"");//把map中的订单时间重新赋值-订单时间+‘’
list.add(mapList);//加入到map集合
}
return list;
}
/**
* 分店销售订单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++){//循环分店销售订单明细集合
Map<String, Object> map = new HashMap<String, Object>();//实例化map集合
map.put("annexId",sctockmp.getAnnexId());//map赋值-分店ID-订单中的分店ID
map.put("kinId",list.get(i).getKinId());//map赋值-商品ID-明细订单集合第i个中的商品ID
map.put("kmpNum",list.get(i).getKmpNum());//map赋值-商品数量-明细订单集合第i个中的商品数量
mapList.add(map);//把map加入到map集合
}
int row3 = sumstockDao.updateStockSuount(mapList);//分店库存:批量减少库存(根据分店ID和商品ID减少)
if(row3<1){//如果减少库存的影响行数小于1
return 0;//返回0
}
//增加财务(先增加分店收入明细,再增加分店表的总资产)
mapList.add(map);//把map加入map集合
}
sumstockDao.updateStockSuount(mapList);//无返回-库存:批量减少库存(根据分店ID和商品ID减少)
//增加财务(先增加分店收入明细,再增加分店表的总资产)
/* 增加分店收入明细 */
ErpLedgyr ledgyr = new ErpLedgyr();//实例化一个分店财务模型
ledgyr.setGyrId(UUID.randomUUID()+"");//赋值-分店财务ID-随机生成
ledgyr.setSaleId(sctockmp.getSaleId());//赋值-订单中的分店销售ID
ledgyr.setAnnexId(sctockmp.getAnnexId());//赋值-分店ID-订单中的分店ID
ledgyr.setGyrSreial(UUID.randomUUID()+"");//赋值-分店支出收入编号-随机生成
ledgyr.setGyrPrice(sctockmp.getSaleMoney1());//赋值-分店支出金钱-订单中的应付金额
ledgyr.setCreater(sctockmp.getCreater());//赋值-创建人-订单中的创建人
ledgyr.setCreatetime(sctockmp.getCreatetime()+"");//赋值-创建时间-订单中的创建时间
ledgyrDao.insertSelective(ledgyr);//无返回-分店财务:增加(可以为空)
/* 增加分店表的总资产 */
ErpAnnex annex = new ErpAnnex();//实例化一个分店模型
annex.setAnnexId(sctockmp.getAnnexId());//赋值-分店ID-订单中的分店ID
annex.setAnnexPrice(sctockmp.getSaleMoney1());//赋值-分店总资产-订单中的应付金额
annexDao.updateAnnexPriceAdd(annex);//无返回-分店:增加分店的总资产
}
//增加审核表
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(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) {
//增加审核表
map.put("data", list);
//将0传入map,取名为code
map.put("code",0);
//将空传入map 取名为msg
map.put("msg", "");
//返回map
return map;
}
/**
* 根据id查询
* @return 返回list
*/
@RequestMapping("/findByID")
@ResponseBody
public ErpPact findByID(String pactId){
//合同表 合同方法查找单个对象 返回合同
ErpPact pact=erpPactService.selectByPrimaryKey(pactId);
//返回合同
return pact;
}
/**
* 根据id查询
* @return 返回list
*/
@RequestMapping("/findByshowid")
@ResponseBody
public Map<String, Object> findByshowid(String pactId){
//map 合同方法根据合同id查询供货商和合同详情 返回合同
Map<String, Object> pact=erpPactService.selectshowid(pactId);
//返回合同
return pact;
}
}
/**
* XLe1丶
*/
mes.setState(1);
}else{
//消息类的消息值赋值为失败
mes.setMes("操作失败");
//将消息类的状态赋值为0
mes.setState(0);
}
//返回消息类
return mes;
}
/**
* 增加类型
* @param record 类型对象
* @return 返回信息类
*/
@RequestMapping("insertSelectivePact")
@ResponseBody
public SsmMessage insertSelectivePact(ErpPact record,HttpSession session){
//给订单采购的id赋值为订单采购的id
record.setPurId(record.getPurId());
//给供货商的id赋值为供货商的id
record.setApplyId(record.getApplyId());
//给合同类型的id赋值为合同类型的id
record.setPatypeId(record.getPatypeId());
//给合同的标题赋值为合同的标题
record.setPactTitle(record.getPactTitle());
//给合同的编号赋值为工具类中的得到订单编码格式:日期格式如:20161222211800,分别代表的是年月日时分秒+5位随机字符串
record.setPactNumber("HT-"+Tools.getDateOrderNo());
//初始化时间对象
Date date=new Date();
//将合同的时间赋值为初始化的时间
record.setPactSigntime(date);
//给合同内容赋值为合同的内容
record.setPactText(record.getPactText());
//给合同id赋值为合同id
record.setPactId(record.getPactId());
//得到session中的人员对象staff
ErpStaff staff = (ErpStaff) session.getAttribute("staff");
//给名字赋值为人员staff的名字
//分页工具类的每页最大显示条数
ps.setMaxResult(limit);
//将分页工具类开始的行数传入给第二个map
pagmap.put("page", ps.getFirstRows());//把页数传到map
//将分页工具类每页最大显示条数传入给第二个map
pagmap.put("limit", ps.getMaxResult());//把页数传到map
//上面属性最后一个属性关键字查询
pagmap.put("key", key);//关键字
//合同方法查询所有方法 返回list
List<ErpPact> list=erpPactService.selectshow(pagmap);
//layui数据表格需要返回的参数 合同总行数
map.put("count",erpPactService.findRowCount(pagmap));//总行数
//将list传入map 取名为data
map.put("data", list);
//将0传入map,取名为code
map.put("code",0);
//将空传入map 取名为msg
map.put("msg", "");
//返回map
return map;
}
/**
* 根据id查询
* @return 返回list
*/
@RequestMapping("/findByID")
@ResponseBody
public ErpPact findByID(String pactId){
//合同表 合同方法查找单个对象 返回合同
ErpPact pact=erpPactService.selectByPrimaryKey(pactId);
//返回合同
return pact;
}
/**
* 根据id查询
* @return 返回list
*/
@RequestMapping("/findByshowid")
@ResponseBody
public Map<String, Object> findByshowid(String pactId){
//map 合同方法根据合同id查询供货商和合同详情 返回合同
Map<String, Object> pact=erpPactService.selectshowid(pactId);
}
/**
* 查询所有商品,下拉框
* @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 是否成功
}
/**
*
*/
/**
* 采购订单Action
*/
@Controller
@RequestMapping("Purchase")
public class ErpPurchaseAction {
/**
* 注入采购订单Service
*/
@Resource
private ErpPurchaseService erpPurchaseService;
/**
* 注入原材料Service
*/
@Resource
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;
}
@ResponseBody
@RequestMapping("getStaff")
public String getStaff() throws JsonProcessingException{
ObjectMapper objectMapper = new ObjectMapper();
List<ErpStaff>list = staffService.getStaff();
String jsonString = objectMapper.writeValueAsString(list);
System.out.println(jsonString);
return jsonString;
}
@ResponseBody
@RequestMapping("getDepa")
public String getDepa() throws JsonProcessingException{
ObjectMapper objectMapper = new ObjectMapper();
List<ErpDepa>list = depaService.getDepa();
String jsonString = objectMapper.writeValueAsString(list);
System.out.println("部门的json是"+jsonString);
return jsonString;
}
@RequestMapping("updateById")
@ResponseBody
public String updateById(String id){
staffService.updateById(id);
return null;
}
@RequestMapping("getRole")
@ResponseBody
public String getRole() throws JsonProcessingException{
ObjectMapper objectMapper = new ObjectMapper();
List<ErpRole>list = roleService.findAll();
String json = objectMapper.writeValueAsString(list);
System.out.println("权限:"+json);
return json;
}
@ResponseBody
@RequestMapping("add")
public SsmMessage add(ErpStaff staff){
List<ErpModel> model = modelService.finModel();
List<ErpModel> model2 = modelService.getModel(roleId);
List<ErpRoleModel> model3 = roleModelService.getMessage(roleId);
for (Iterator iterator = model.iterator(); iterator.hasNext();) {
ErpModel erpModel = (ErpModel) iterator.next();
ZTree t = new ZTree();
t.setId(erpModel.getModelId());
t.setpId(erpModel.getErpModelId());
t.setName(erpModel.getModelName());
for (Iterator iterator2 = model2.iterator(); iterator2.hasNext();) {
ErpModel erpModel2 = (ErpModel) iterator2.next();
if(erpModel.getModelId().equals(erpModel2.getModelId())){
t.setChecked("true");
}
}
for (Iterator iterator2 = model3.iterator(); iterator2.hasNext();) {
ErpRoleModel erpRoleModel = (ErpRoleModel) iterator2.next();
if(erpModel.getModelId().equals(erpRoleModel.getModelId())){
t.setChecked("true");
}
}
tree.add(t);
}
return tree;
}
@RequestMapping("addModel")
@ResponseBody
public SsmMessage ModelAdd(String modelId,String roleId,String modelSubId){
SsmMessage mes = new SsmMessage();
String [] stringSplit = modelId.split(",");
String [] stringSplit2 = modelSubId.split(",");
System.out.println("stringSplit+++++++++++++++++++"+modelSubId+" "+modelId);
roleModelSubService.deleteByPrimaryKey(roleId);
roleService.deleteModel(roleId);
for(int i = 0;i<stringSplit.length;i++){
ErpRoleModel model = new ErpRoleModel();
model.setRoleModelId(UUID.randomUUID().toString());
model.setRoleId(roleId);
model.setModelId(stringSplit[i]);
roleModelService.insertSelective(model);
}
for(int i = 0;i<stringSplit2.length;i++){
ErpRoleModelSubordinate sub = new ErpRoleModelSubordinate();
sub.setRoleId(roleId);
sub.setModelId(stringSplit2[i]);
sub.setSubId(UUID.randomUUID().toString());
}
/**
* 查询单个采购或者生产详情
* @param price id
* @return 单个对象
*/
@RequestMapping("selectShowNew")
@ResponseBody
public SsmMessage selectShowNew(String indentId,String purcId,HttpSession session) {
SsmMessage mes = new SsmMessage();
ErpStaff staff = (ErpStaff) session.getAttribute("staff");//得到人员session
int rows = service.selectShowNew(indentId, purcId,staff.getStaId());
if(rows>-1){
mes.setMes("提交成功");
mes.setState(1);
}else{
mes.setMes("提交失败");
mes.setState(0);
}
return mes;
}
}
/**
* XLe1丶
*/
modelService.updateByPrimaryKeySelective(model);
}
mes.setMes("ok");
return mes;
}
}
/**
*
*/
/**
* 分店action
*/
@Controller
@RequestMapping("/annex")
public class AnnexAction {
@Resource
AnnexService service;
/**
* 查找所有分店的数量
* @return 分店数量
*/
/**
* 显示和查询和分页(采购成品)
* @param purcId
* @param keywords
* @return map
*/
@RequestMapping("/showAlls")
@ResponseBody
public Map<String,Object> showAlls(String keywords,String page,String limit){
Map<String,Object> mapPage = new HashMap<String,Object>();//定义Map集合
Pages pages = new Pages();//得到分页类
pages.setCurPage(Integer.valueOf(page));//当前页数
pages.setMaxResult(Integer.valueOf(limit));//每页显示最大条数
mapPage.put("pages", pages);//传入分页参数
//判断前台传值是否为空,如不为空则进行迷糊查询
if(keywords==null || "".equals(keywords)){
mapPage.put("keywords", "");//为空不传值
}else {
mapPage.put("keywords", "%"+keywords+"%");//不为空传值模糊查询
}
Map<String,Object> map = new HashMap<String,Object>();//定义Map集合用于将前台的值
List<ErpPurchase> list = erpPurchaseService.selectAlls(mapPage);//查询增加成品数据
map.put("code", 0);
map.put("msg", "");
map.put("count", erpPurchaseService.purchaseFindRow(mapPage));//规定分页信息
map.put("data", list);//传入list
return map;//返回map
}
/**
* 删除(修改状态)
* @param state
* @param purcId
* @return eph
*/
@RequestMapping("/delete")
@ResponseBody
public ErpPurchase delete(ErpPurchase isva , String purcId){
ErpPurchase eph = new ErpPurchase();//得到采购订单Model
isva.setIsva(0);//得到状态值
isva.setPurcId(purcId);//传入采购ID
int d_purcId = erpPurchaseService.updateByPrimaryKeySelective(isva);//进行修改
return eph;//返回eph
}
/**
* 查看详情(采购,采购详情,原材料)
* @param purcId
* @return
*/
@RequestMapping("/showNews")
@ResponseBody
/**
* 根据ID查询
* @param express
* @return
*/
@RequestMapping("/showidQualit")
@ResponseBody
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;
}
}
/**
*
*/
/**
* 下拉框查询所有订单
* @return list
*/
@RequestMapping("/findByxl")
@ResponseBody
public List<ErpProindent> findByxl(ErpProindent dent){
List<ErpProindent> list=proindentService.findStation();
return list;
}
/**
* 下拉框查询所有订单
* @param express
* @return map
*/
@RequestMapping("/findByshowxl")
@ResponseBody
public List<Map<String, Object>> findByshowxl(ErpProindent dent){
List<Map<String, Object>> map=proindentService.findStationid(dent.getIndentId());//根据订单ID查询商品,下拉框
return map;
}
/**
* 订单日志查询,根据商品,订单,日志,日志明细
* @param express
* @return
@RequestMapping("add")
private SsmMessage add (@RequestParam(value = "kinId[]") String[] kinId,String fdprolistmxCount,String kinPrice,String fdprolistmxMoney,String fdproId,HttpSession session,String zong){
SsmMessage mes = new SsmMessage();
ErpStaff staff = (ErpStaff) session.getAttribute("staff");
String [] fdprolistmxCount1 = fdprolistmxCount.split(",");
String [] fdprolistmxMoney1 = fdprolistmxMoney.split(",");
int count = 0;
for(int i =0;i<fdprolistmxCount1.length;i++){
count += Integer.valueOf(fdprolistmxCount1[i]);
}
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);
@RequestMapping("/addOrUpdate")
@ResponseBody
public int addOrUpdate(ErpPurchase record,String[] rawId,String[] number,HttpSession session){
int rows =0;//定义参数rows
//判断前台传过来的值是否为空,为空就进入增加,不为空则进入修改
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("1");//设置采购原材料为1
record.setCreatetime(time);//创建时间
Double a = 0.0;//定义一个空数值
//循环取得原材料ID
for(int i=0;i<rawId.length;i++){
ErpPurchaseDetails details2 = new ErpPurchaseDetails();//得到采购详细
String [] arr = rawId[i].split("~");//分割符号~
details2.setPurcTotalPrice(Double.valueOf(arr[1])*(Integer.valueOf(number[i])));//得到价格,数字转换
a = a + Double.valueOf(arr[1])*(Integer.valueOf(number[i]));//累加
record.setPurcTotalPrice(a);//增加加总价格
String serial = Tools.getDateOrderNo();//得到工具类中的订单编码格式
record.setPurcSerial("CG-"+serial);//增加订单编码格式
}
rows = erpPurchaseService.insert(record);//添加到采购表中
for(int i=0;i<rawId.length;i++){
ErpPurchaseDetails details = new ErpPurchaseDetails();//得到采购详细
String [] arr = rawId[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;//返回rows
}
/**
* 显示所有原材料(查询原材料表)
* @return
*/
@RequestMapping("/showRawAll")
@ResponseBody