第一步:供货商进入待发货的列表
列表内容:
1、审核通过的采购单的药品明细
2、需要本供货商配送的药品明细
通过采购单药品明细表中的供货商id限制只查询本供货商的待受理记录
3、只受理待发货的药品
可以考虑采购单表和采购单药品明细表联合查询
第二步:选择药品进行发货
采用批量提交方法:
提交数据包括:yycgdid(采购单id)、ypxxid(药品信息id)
将页面提交数据传入action的:List yycgdmxs中。
数据库操作:
更新采购单明细表中的采购状态为“2、已发货”
Mapper
通过药品采购状态, 采购单状态,供应商ID 查询采购单未受理
select yycgdmx.id yycgdmxid,
useryy.id useryyid,
useryy.mc useryymc,
yycgd.bm yycgdbm,
yycgd.mc yycgdmc,
yycgd.cjtime,
(select info
from dictinfo
where typecode = '010'
and dictcode = yycgd.zt) yycgdztmc,
ypxx.id,
ypxx.bm,
ypxx.mc,
ypxx.jx,
ypxx.gg,
ypxx.zhxs,
ypxx.scqymc,
ypxx.spmc,
ypxx.jyzt,
(select info
from
dictinfo
where ypxx.jyzt =
dictcode
and typecode = '003') jyztmc,
yycgdmx.zbjg,
yycgdmx.jyjg,
yycgdmx.cgl,
yycgdmx.cgje,
yycgdmx.cgzt,
(select info
from dictinfo
where
typecode = '011'
and dictcode =
yycgdmx.cgzt) cgztmc,
usergys.mc
usergysmc,
usergys.id usergysid
from
yycgdmx2015 yycgdmx,
yycgd2015 yycgd, useryy,
ypxx, usergys
where yycgdmx.yycgdid
= yycgd.id
and yycgd.useryyid =
useryy.id
and yycgdmx.ypxxid = ypxx.id
and yycgdmx.usergysid =
usergys.id
and yycgdmx.cgzt='1'
and yycgd.zt='3'
and usergys.id='701b09b8-08cf-11e3-8a4f-60a44cea4388'
service
接口参数: 供应商id 年份 包装类 (因为查询条件有采购单明细也有采购单所以要用包装类)
返回 List
受理提交
参数 采购单id ypxxid
约束 : 采购药品在未确定 送货时方可发货
采购单状态要改为发货
两个页面提交 一个是viewcgd 采购单明细页面
另一个是disposeyycgd 采购单受理页面
Service
//采购单受理提交
public void saveSendStatus(String yycgdid, String ypxxid) throws Exception;
报错: 表或视图不存在 可能是vo 对象中对应的属性没有写
关于页面传值 如果页面接收是 id:’${yycgd.id}’ 则传入需要传入对象
//传入页面所需对象
YycgdCustom yycgdCustom = cgdService.findYycgdById(yycgdid);
model.addAttribute(“yycgd”, yycgdCustom);
页面接收是year:’${year}’ 单一数据 则action传入
model.addAttribute(“year”, MyUtil.get_YYYY(MyUtil.getDate()));
dao
<!-- 采购单药品明细查询列表 -->
<select id="findYycgdmxList" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
resultType="yycg.business.pojo.vo.YycgdmxCustom">
<!-- 引入分页头 -->
<include refid="yycg.base.commonSql.page_start" />
select yycgdmx.id yycgdmxid,
useryy.id useryyid,
useryy.mc useryymc,
yycgd.bm yycgdbm,
yycgd.mc yycgdmc,
yycgd.id yycgdid,
yycgd.cjtime,
(select info
from dictinfo
where typecode = '010'
and dictcode = yycgd.zt) yycgdztmc,
ypxx.id,
ypxx.bm,
ypxx.mc,
ypxx.jx,
ypxx.gg,
ypxx.zhxs,
ypxx.scqymc,
ypxx.spmc,
ypxx.jyzt,
(select info
from
dictinfo
where ypxx.jyzt =
dictcode
and typecode = '003') jyztmc,
yycgdmx.zbjg,
yycgdmx.jyjg,
yycgdmx.cgl,
yycgdmx.cgje,
yycgdmx.cgzt,
(select info
from dictinfo
where
typecode = '011'
and dictcode =
yycgdmx.cgzt) cgztmc,
usergys.mc
usergysmc,
usergys.id usergysid
from
yycgdmx${businessyear} yycgdmx,
yycgd${businessyear} yycgd, useryy,
ypxx, usergys
where yycgdmx.yycgdid
= yycgd.id
and yycgd.useryyid =
useryy.id
and yycgdmx.ypxxid = ypxx.id
and yycgdmx.usergysid =
usergys.id
<!-- 只查询某个采购单下药品明细 -->
<include refid="query_yycgdmx_where" />
<!-- 采购单查询条件 -->
<include refid="query_yycgd_where" />
<!-- 药品查询条件 -->
<include refid="yycg.business.dao.mapper.YpxxMapperCustom.query_ypxx_where" />
<!-- 分页尾部 -->
<include refid="yycg.base.commonSql.page_end" />
</select>
<!-- 采购单药品明细查询列表总数 -->
<select id="findYycgdmxCount" parameterType="yycg.business.pojo.vo.YycgdQueryVo"
resultType="int">
select count(*)
from yycgdmx${businessyear} yycgdmx,
yycgd${businessyear} yycgd, useryy,
ypxx, usergys
where yycgdmx.yycgdid
= yycgd.id
and yycgd.useryyid = useryy.id
and yycgdmx.ypxxid = ypxx.id
and yycgdmx.usergysid = usergys.id
<!-- 只查询某个采购单下药品明细 -->
<include refid="query_yycgdmx_where" />
<!-- 采购单查询条件 -->
<include refid="query_yycgd_where" />
<!-- 药品查询条件 -->
<include refid="yycg.business.dao.mapper.YpxxMapperCustom.query_ypxx_where" />
</select>
service
// 采购单受理数据
@Override
public List<YycgdmxCustom> findDisposeYycgdList(String usergysid,
String year, YycgdQueryVo yycgdQueryVo) throws Exception {
yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();
// 供货商只允许查询自己供应的采购药品信息
// 设置供货商id
YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom
: new YycgdmxCustom();
yycgdmxCustom.setUsergysid(usergysid);
// 采购药品明细状态为“未确认送货”
yycgdmxCustom.setCgzt("1");
yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);
// 采购单为审核通过
YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
yycgdCustom = yycgdCustom != null ? yycgdCustom : new YycgdCustom();
yycgdCustom.setZt("3");
yycgdQueryVo.setYycgdCustom(yycgdCustom);
yycgdQueryVo.setBusinessyear(year);
return yycgdMapperCustom.findYycgdmxList(yycgdQueryVo);
}
// 采购单受理数据条目
@Override
public int findDisposeYycgdCount(String usergysid, String year,
YycgdQueryVo yycgdQueryVo) throws Exception {
yycgdQueryVo = yycgdQueryVo != null ? yycgdQueryVo : new YycgdQueryVo();
// 供货商只允许查询自己供应的采购药品信息
// 设置供货商id
YycgdmxCustom yycgdmxCustom = yycgdQueryVo.getYycgdmxCustom();
yycgdmxCustom = yycgdmxCustom != null ? yycgdmxCustom
: new YycgdmxCustom();
yycgdmxCustom.setUsergysid(usergysid);
// 采购药品明细状态为“未确认送货”
yycgdmxCustom.setCgzt("1");
yycgdQueryVo.setYycgdmxCustom(yycgdmxCustom);
// 采购单为审核通过
YycgdCustom yycgdCustom = yycgdQueryVo.getYycgdCustom();
yycgdCustom = yycgdCustom != null ? yycgdCustom : new YycgdCustom();
yycgdCustom.setZt("3");
yycgdQueryVo.setYycgdCustom(yycgdCustom);
yycgdQueryVo.setBusinessyear(year);
return yycgdMapperCustom.findYycgdmxCount(yycgdQueryVo);
}
// 受理提交更新状态为已发货
@Override
public void saveSendStatus(String yycgdid, String ypxxid) throws Exception {
// 查询出采购药品记录
System.out.println(yycgdid + "__________" + ypxxid);
Yycgdmx yycgdmx = this.findYycgdmxByYycgdIdAndYpxxId(yycgdid, ypxxid);
if (yycgdmx == null) {
// 提示:找不到采购药品明细记录
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 509,
null));
}
// 采购状态
String cgzt = yycgdmx.getCgzt();
if (!cgzt.equals("1")) {
// 提示:采购药品在未确定送货时方可发货
ResultUtil.throwExcepion(ResultUtil.createFail(Config.MESSAGE, 562,
null));
}
// 设置更新状态为已发货
yycgdmx.setCgzt("2");
// 年份
String year = yycgdid.substring(0, 4);
yycgdmx.setBusinessyear(year);
yycgdmxMapper.updateByPrimaryKey(yycgdmx);
}
action
// 采购受理查询界面
@RequestMapping("/disposeyycgd")
public String disposeyycgd(Model model) throws Exception {
// 当前年份
model.addAttribute("year", MyUtil.get_YYYY(MyUtil.getDate()));
return "/business/cgd/disposeyycgd";
}
// 采购单受理列表结果集,json
@RequestMapping("/disposeyycgd_result")
public @ResponseBody
DataGridResultInfo disposeyycgd_result(// HttpSession session,
ActiveUser activeUser, String year,// 年份
YycgdQueryVo yycgdQueryVo,// 查询条件
int page, int rows) throws Exception {
// 当前用户为供应商
String usergysid = activeUser.getSysid();// 单位id
// 列表的总数
int total = cgdService.findDisposeYycgdCount(usergysid, year,
yycgdQueryVo);
// 分页参数
PageQuery pageQuery = new PageQuery();
pageQuery.setPageParams(total, rows, page);
yycgdQueryVo.setPageQuery(pageQuery);// 设置分页参数
// 分页查询列表
List<YycgdmxCustom> list = cgdService.findDisposeYycgdList(usergysid,
year, yycgdQueryVo);
DataGridResultInfo dataGridResultInfo = new DataGridResultInfo();
dataGridResultInfo.setTotal(total);
dataGridResultInfo.setRows(list);
return dataGridResultInfo;
}
// 采购单查看页面
@RequestMapping("/yycgdview")
public String yycgdview(Model model, String yycgdid) throws Exception {
// 采购状态
List<Dictinfo> cgztlist = systemConfigService.findDictinfoByType("011");
List<Dictinfo> jyztlist = systemConfigService.findDictinfoByType("003");
// 药品类别
List<Dictinfo> lblist = systemConfigService.findDictinfoByType("001");
model.addAttribute("lblist", lblist);
model.addAttribute("cgztlist", cgztlist);
model.addAttribute("jyztlist", jyztlist);
// 传入页面所需对象
YycgdCustom yycgdCustom = cgdService.findYycgdById(yycgdid);
model.addAttribute("yycgd", yycgdCustom);
return "/business/cgd/viewcgd";
}
// 采购单受理提交
@RequestMapping("/disposeyycgdsubmit")
public @ResponseBody
SubmitResultInfo disposeyycgdsubmit(YycgdQueryVo yycgdQueryVo, int[] indexs // 页面选择序号
) throws Exception {
// 页面提交的业务数据(多个),要处理的业务数据,页面中传入的参数
List<YycgdmxCustom> list = yycgdQueryVo.getYycgdmxCustoms();
// 处理数据的总数
int count = indexs.length;
// 处理成功的数量
int count_success = 0;
// 处理失败的数量
int count_error = 0;
// 处理失败的原因
List<ResultInfo> msgs_error = new ArrayList<ResultInfo>();
for (int i = 0; i < count; i++) {
ResultInfo resultInfo = null;
// 根据选中行的序号获取要处理的业务数据(单个)
YycgdmxCustom yycgdmxCustom = list.get(indexs[i]);
// 采购单id
String yycgdid = yycgdmxCustom.getYycgdid();
// 药品id
String ypxxid = yycgdmxCustom.getYpxxid();
try {
cgdService.saveSendStatus(yycgdid, ypxxid);
} catch (Exception e) {
e.printStackTrace();
// 进行异常解析
if (e instanceof ExceptionResultInfo) {
resultInfo = ((ExceptionResultInfo) e).getResultInfo();
} else {
// 构造未知错误异常
resultInfo = ResultUtil.createFail(Config.MESSAGE, 900,
null);
}
}
if (resultInfo == null) {
// 说明成功
count_success++;
} else {
count_error++;
// 记录失败原因
msgs_error.add(resultInfo);
}
}
// 提示用户成功数量、失败数量、失败原因
// 改成返回详细信息
return ResultUtil.createSubmitResult(
ResultUtil.createSuccess(Config.MESSAGE, 907, new Object[] {
count_success, count_error }), msgs_error);
}