src/main/java/com/nanometer/smartlab/controller/RequireMngController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/service/OpeApplyService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/WEB-INF/spring-menu.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/supplier_require_mng.xhtml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/nanometer/smartlab/controller/RequireMngController.java
@@ -36,6 +36,7 @@ private OpeOrderService opeOrderService; private LazyDataModel<OpeApply> dataModel; private LazyDataModel<OpeApply> supplerRequireMngDataModel; private OpeOrder opeOrder; private List<OpeApply> selectedList; private String reagentName; @@ -174,6 +175,31 @@ return dataModel; } public LazyDataModel<OpeApply> getSupplerRequireMngDataModel() { return new LazyDataModel<OpeApply>() { @Override public List<OpeApply> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) { List<OpeApply> list = null; try { int count = opeApplyService.getOpeApplySupplerRequireMngTotalCount(getUser(),reagentName, startDeadline, endDeadline, ApplyStatus.APPROVED.getKey(),(byte)1); this.setRowCount(count); if (count > 0) { list = opeApplyService.getOpeApplySupplerRequireMngList(getUser(),reagentName, startDeadline, endDeadline, ApplyStatus.APPROVED.getKey(), first, pageSize,(byte)1); } } catch (Exception e) { logger.error(e); } selectedList = null; return list; } @Override public OpeApply getRowData(String rowKey) { return opeApplyService.getOpeApply(rowKey); } }; } public OpeOrder getOpeOrder() { return opeOrder; } src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.java
@@ -63,4 +63,7 @@ List<Map> getApplyControlInfo(); int getOpeApplySupplerRequireMngTotalCount(Map<String, Object> params); List<OpeApply> getOpeApplySupplerRequireMngList(Map<String, Object> params); } src/main/java/com/nanometer/smartlab/dao/OpeApplyDao.xml
@@ -611,6 +611,85 @@ ) </select> <select id="getOpeApplySupplerRequireMngTotalCount" resultType="java.lang.Integer"> select count(1) from ope_apply as oa left join sys_reagent sr on oa.reagent_id = sr.id left join sys_supplier as ss on sr.supplier_id = ss.id left join sys_user as su on oa.apply_user_id = su.id left join sys_user as suApprove on oa.approve_user_id = suApprove.id left join sys_user as sys on sys.id=oa.before_approve_user_id left join sys_user as fir on fir.id=oa.first_user left join base_meta as bm on sr.product_home = bm.id left join base_meta as bm1 on bm1.id = sr.control_products where oa.valid_flag = 1 <if test="isShow != null and isShow ==0"> and (ss.valid_flag = 1 or sr.type = 0) </if> <if test="reagentName != null and reagentName != ''"> and sr.name like concat("%",#{reagentName},"%") </if> <if test="startDeadline != null"> and oa.deadline >= #{startDeadline} </if> <if test="endDeadline != null"> and #{endDeadline} >= oa.deadline </if> <if test="status != null"> and oa.status = #{status} </if> <if test="company != null and company != ''"> and ss.name = #{company} </if> </select> <select id="getOpeApplySupplerRequireMngList" parameterType="java.util.Map" resultMap="OpeApply"> select oa.*,sys.name as secondUserName, sr.name as reagentName,sr.price as reagentPrice ,sr.cas as reagentCas, sr.reagent_type as reagentType, sr.reagent_character as reagentCharacter, sr.supplier_id as reagentSupplierId, sr.reagent_format as reagentFormat, sr.main_metering as reagentMainMetering, sr.reagent_unit as reagentUnit, sr.per_box as reagentPerBox, sr.memo as reagentMemo, sr.valid_flag as reagentValidFlag, sr.create_time as reagentCreateTime, sr.update_time as reagentUpdateTime, sr.product_sn as reagentProductSn, sr.dangerous_flag as reagentDangerousFlag,sr.control_products as controlProducts,sr.product_home as productHome, ss.name as supplierName, su.name as applyUserName, suApprove.name as approveUserName, bm.meta_value as productHomeName, fir.name as firName, ss.valid_flag as supplierFlag, sr.type as type from ope_apply as oa left join sys_reagent sr on oa.reagent_id = sr.id left join sys_supplier as ss on sr.supplier_id = ss.id left join sys_user as su on oa.apply_user_id = su.id left join sys_user as suApprove on oa.approve_user_id = suApprove.id left join sys_user as sys on sys.id=oa.before_approve_user_id left join sys_user as fir on fir.id=oa.first_user left join base_meta as bm on sr.product_home = bm.id left join base_meta as bm1 on bm1.id = sr.control_products where oa.valid_flag = 1 <if test="isShow != null and isShow ==0"> and (ss.valid_flag = 1 or sr.type = 0) </if> <if test="company != null and company != ''"> and ss.name = #{company} </if> <if test="reagentName != null and reagentName != ''"> and sr.name like concat("%",#{reagentName},"%") </if> <if test="startDeadline != null"> and oa.deadline >= #{startDeadline} </if> <if test="endDeadline != null"> and #{endDeadline} >= oa.deadline </if> <if test="status != null"> and oa.status = #{status} </if> order by oa.create_time desc <if test="first != null and pageSize != null"> limit #{first}, #{pageSize} </if> </select> <update id="updateByReId" parameterType="java.util.Map"> src/main/java/com/nanometer/smartlab/service/OpeApplyService.java
@@ -77,4 +77,8 @@ void importApply(FileUploadEvent event, SysUser user) throws IOException; OpeApplyReserve getOpeApplyReserveListByNameForRowData(String rowKey); int getOpeApplySupplerRequireMngTotalCount(SysUser user,String reagentName, Timestamp startDeadline, Timestamp endDeadline, int key, byte b); List<OpeApply> getOpeApplySupplerRequireMngList(SysUser user,String reagentName, Timestamp startDeadline, Timestamp endDeadline, int key, int first, int pageSize, byte b); } src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java
@@ -67,6 +67,8 @@ SysSequenceService sysSequenceService; @Resource private SysUserService sysUserService; @Resource private BaseMetaService baseMetaService; @Transactional(propagation = Propagation.REQUIRED) public List<OpeApply> getOpeApplyList(String reagentName, Timestamp startDeadline, String controlProduct,Timestamp endDeadline, Integer status, @@ -888,4 +890,39 @@ return opeApplyDao.getOpeApplyReserveListByNameForRowData(rowKey); } @Override public int getOpeApplySupplerRequireMngTotalCount(SysUser user,String reagentName, Timestamp startDeadline, Timestamp endDeadline, int status, byte isShow) { Map<String, Object> params = new HashMap<>(); params.put("reagentName",reagentName ); params.put("startDeadline", startDeadline); params.put("endDeadline", endDeadline); params.put("status", status); params.put("isShow", isShow); //看到供应商是自己的单位的数据 String company = baseMetaService.getBaseMetaValue(user.getCompany()); if (user.getSeeFlag().getKey() != SeeFlag.MANAGE.getKey() && user.getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) { params.put("company", company); } return this.opeApplyDao.getOpeApplySupplerRequireMngTotalCount(params); } @Override public List<OpeApply> getOpeApplySupplerRequireMngList(SysUser user,String reagentName, Timestamp startDeadline, Timestamp endDeadline, int status, int first, int pageSize, byte isShow) { Map<String, Object> params = new HashMap<>(); params.put("reagentName", reagentName); params.put("startDeadline", startDeadline); params.put("endDeadline", endDeadline); params.put("status", status); params.put("isShow", isShow); //看到供应商是自己的单位的数据 String company = baseMetaService.getBaseMetaValue(user.getCompany()); if (user.getSeeFlag().getKey() != SeeFlag.MANAGE.getKey() && user.getSeeFlag().getKey() != SeeFlag.LEADING.getKey()) { params.put("company", company); } return this.opeApplyDao.getOpeApplySupplerRequireMngList(params); } } src/main/webapp/WEB-INF/spring-menu.xml
@@ -37,6 +37,12 @@ <property name="privilegeCode" value="require_mng"></property> </bean> <bean class="com.nanometer.smartlab.model.MenuModel"> <property name="id" value="supplier_require_mng"></property> <property name="title" value="供应商需求管理"></property> <property name="page" value="supplier_require_mng"></property> <property name="privilegeCode" value="supplier_require_mng"></property> </bean> <bean class="com.nanometer.smartlab.model.MenuModel"> <property name="id" value="order_mng"></property> <property name="title" value="订单管理"></property> <property name="page" value="order_mng"></property> src/main/webapp/supplier_require_mng.xhtml
对比新文件 @@ -0,0 +1,180 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:p="http://primefaces.org/ui" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:c="http://java.sun.com/jsp/jstl/core"> <head></head> <ui:composition> <h:form id="requireMngForm"> <p:panel styleClass="center-header"> <p:outputLabel styleClass="title" value="供应商需求管理"></p:outputLabel> <p:panelGrid styleClass="filter" columns="7"> <p:outputLabel value="申购产品:"></p:outputLabel> <p:inputText value="#{requireMngController.reagentName}"></p:inputText> <p:outputLabel value="货期:"></p:outputLabel> <p:calendar value="#{requireMngController.startDeadline}" converter="timestampConvert" pattern="yyyy-MM-dd" locale="zh_CN"></p:calendar> <p:outputLabel value=" ~ " style="margin-left: 10px;margin-right: 10px"></p:outputLabel> <p:calendar value="#{requireMngController.endDeadline}" converter="timestampConvert" pattern="yyyy-MM-dd" locale="zh_CN"></p:calendar> <p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink> </p:panelGrid> </p:panel> <p:panel styleClass="center-body"> <p:panelGrid columns="3" styleClass="btn"> <p:commandButton value="生成订单" styleClass="new-btn" process="@form" update=":centerRootPanel" actionListener="#{requireMngController.onNewBtnClick}"></p:commandButton> <p:commandButton value="查看" styleClass="view-btn" process="@form" actionListener="#{requireMngController.onViewBtnClick}" update=":dialog,:dialogForm"></p:commandButton> <p:commandButton value="取消" styleClass="edit-btn" process="@form" update=":centerRootPanel" actionListener="#{requireMngController.onCancelApplyClick}"> <p:confirm header="确认" message="确认操作?"></p:confirm> </p:commandButton> </p:panelGrid> <p:dataTable id="requireMngDataTable" styleClass="data-table" paginator="true" paginatorAlwaysVisible="false" paginatorPosition="bottom" lazy="true" value="#{requireMngController.supplerRequireMngDataModel}" var="row" rowKey="#{row.id}" emptyMessage="无数据" selection="#{requireMngController.selectedList}" rows="20" pageLinks="5"> <p:column selectionMode="multiple" style="width: 30px;text-align: center;"/> <p:column headerText="订单状态" width="58px;" style="text-align: center"> <h:outputText value="#{row.status!=null?row.status.text:''}"></h:outputText> </p:column> <p:column headerText="申购编号" width="118px;"> <h:outputText value="#{row.applyCode}"></h:outputText> </p:column> <p:column headerText="产品编号" width="94px;"> <h:outputText value="#{row.reagent!=null?row.reagent.productSn:''}"></h:outputText> </p:column> <p:column headerText="试剂名称" width="129px;"> <h:outputText value="#{row.reagent!=null?row.reagent.name:''}" style="font-size: 13px;"></h:outputText> </p:column> <p:column headerText="管制品"> <h:outputText value="#{row.reagent!=null?baseMetaService.getBaseMetaValue(row.reagent.controlProducts):''}"></h:outputText> </p:column> <p:column headerText="规格型号" width="66px;"> <h:outputText value="#{row.reagent!=null?baseMetaService.getBaseMetaValue(row.reagent.reagentFormat):''}" style="font-size:13px"></h:outputText> </p:column> <p:column headerText="包装"> <h:outputText value="#{row.reagent!=null?(''.concat(row.reagent.mainMetering).concat(baseMetaService.getBaseMetaValue(row.reagent.reagentUnit))):''}"></h:outputText> </p:column> <p:column headerText="含税售价"> <h:outputText value="#{row.applyPrice}"></h:outputText> </p:column> <p:column headerText="CAS号"> <h:outputText value="#{row.reagent!=null?row.reagent.cas:''}"></h:outputText> </p:column> <p:column headerText="危险性质" width="85px;"> <h:outputText value="#{baseMetaService.getBaseMetaValue(row.reagent.reagentCharacter)}"></h:outputText> </p:column> <p:column headerText="厂家" width="64px;"> <h:outputText value="#{row.reagent!=null?row.reagent.productHomeName:''}"></h:outputText> </p:column> <p:column headerText="供应商" width="92px;"> <h:outputText value="#{row.reagent!=null?row.reagent.supplierName:''}" style="font-size: 13px;white-space: normal;"></h:outputText> </p:column> <p:column headerText="试剂类型" width="29px;"> <h:outputText value="#{baseMetaService.getBaseMetaValue(row.reagent.reagentType)}"></h:outputText> </p:column> <p:column headerText="申购数量" width="29px;"> <h:outputText value="#{row.num}"></h:outputText> </p:column> <p:column headerText="申购日期" width="73px;"> <h:outputText value="#{row.createTime}"> <f:convertDateTime pattern="yyyy-MM-dd" locale="zh_CN"></f:convertDateTime> </h:outputText> </p:column> <p:column headerText="期望货期" width="73px;"> <h:outputText value="#{row.deadline}"> <f:convertDateTime pattern="yyyy-MM-dd" locale="zh_CN"></f:convertDateTime> </h:outputText> </p:column> <p:column headerText="审批批注"> <h:outputText value="#{row.memo}"></h:outputText> </p:column> </p:dataTable> </p:panel> </h:form> <p:dialog modal="true" header="查看" appendTo="@(body)" id="dialog" widgetVar="dialog" resizable="false" width="800"> <h:form id="dialogForm"> <p:panelGrid columns="4" styleClass="content2 grid-padding-bottom2"> <p:outputLabel value="申购编号"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.applyCode}" disabled="true"></p:inputText> <p:outputLabel value="申购产品"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.reagent.name}" disabled="true"></p:inputText> <p:outputLabel value="CAS"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.reagent.cas}" disabled="true"></p:inputText> <p:outputLabel value="指定供应商"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.reagent.supplierName}" disabled="true"></p:inputText> <p:outputLabel value="规格"></p:outputLabel> <p:inputText value="#{baseMetaService.getBaseMetaValue(requireMngController.opeApply.reagent.reagentFormat)}" disabled="true"></p:inputText> <p:outputLabel value="包装"></p:outputLabel> <p:inputText value="#{''.concat(requireMngController.opeApply.reagent.mainMetering).concat(baseMetaService.getBaseMetaValue(requireMngController.opeApply.reagent.reagentUnit))}" disabled="true"></p:inputText> <p:outputLabel value="含税价格"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.reagent.price}" disabled="true"></p:inputText> <p:outputLabel value="每箱数量"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.reagent.perBox}" disabled="true"></p:inputText> <p:outputLabel value="申购数量"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.num}" disabled="true"></p:inputText> <p:outputLabel value="货期"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.deadline}" disabled="true"> <f:convertDateTime pattern="yyyy-MM-dd" locale="zh_CN"></f:convertDateTime> </p:inputText> <p:outputLabel value="申购目的"></p:outputLabel> <p:inputText value="#{baseMetaService.getBaseMetaValue(requireMngController.opeApply.objective)}" disabled="true"></p:inputText> <p:outputLabel value="申购日期"></p:outputLabel> <p:inputText value="#{requireMngController.opeApply.createTime}" disabled="true"> <f:convertDateTime pattern="yyyy-MM-dd" locale="zh_CN"></f:convertDateTime> </p:inputText> <p:outputLabel value="批注"></p:outputLabel> <p:inputTextarea value="#{requireMngController.opeApply.memo}" rows="5" disabled="true"></p:inputTextarea> </p:panelGrid> <p:panel styleClass="btn" style="text-align: right"> </p:panel> </h:form> </p:dialog> </ui:composition> </html>