Selaa lähdekoodia

超欠供明细代码

user5 3 vuotta sitten
vanhempi
commit
373a319b2e

+ 0 - 208
src/main/java/com/jeeplus/modules/sg/managementcenter/materialproject/entity/MaterialProject.java

@@ -1,208 +0,0 @@
-package com.jeeplus.modules.sg.managementcenter.materialproject.entity;
-
-import com.jeeplus.common.utils.excel.annotation.ExcelField;
-import com.jeeplus.core.persistence.DataEntity;
-
-public class MaterialProject extends DataEntity<MaterialProject> {
-    //储备项目名称
-    private String reserveProjectName;
-    //储备编码
-    private String reserveCode;
-    //项目类型
-    private String projectType;
-    //项目计划年度批次
-    private String batchPlan;
-    //项目正式发文批次
-    private String issuePlan;
-    //项目年度实施计划(月份)
-    private String monthPlan;
-    //年度计划有无预测
-    private String hasPlan;
-    //项目物资执行计划(上半年/下半年)
-    private String halfPlan;
-    //项目定义
-    private String projectId;
-    //项目名称
-    private String projectName;
-    //是否是二次涉电项目
-    private String isSecondary;
-    //归属年份
-    private String attributionYear;
-    //项目是否可以进场状态
-    private String canEnter;
-
-    private String arrageProject;//项目计划安排
-    private String arrageProject1;//项目计划安排
-
-    private String projectStatus;
-
-    private String[] reserveCodes;//储备编码(多条)
-    private String[] projectCodes;//项目编码(多条)
-
-    private String secondPower;//是否二次设电 1-未二次涉电 1-二次涉电
-
-
-
-    @ExcelField(title="储备项目名称", align=2, sort=1)
-    public String getReserveProjectName() {
-        return reserveProjectName;
-    }
-
-    public void setReserveProjectName(String reserveProjectName) {
-        this.reserveProjectName = reserveProjectName;
-    }
-
-    @ExcelField(title="储备编码", align=2, sort=2)
-    public String getReserveCode() {
-        return reserveCode;
-    }
-
-    public void setReserveCode(String reserveCode) {
-        this.reserveCode = reserveCode;
-    }
-
-    @ExcelField(title="项目类型", align=2, sort=3)
-    public String getProjectType() {
-        return projectType;
-    }
-
-    public void setProjectType(String projectType) {
-        this.projectType = projectType;
-    }
-
-    @ExcelField(title="项目计划年度批次", align=2, sort=4)
-    public String getBatchPlan() {
-        return batchPlan;
-    }
-
-    public void setBatchPlan(String batchPlan) {
-        this.batchPlan = batchPlan;
-    }
-
-    @ExcelField(title="项目正式发文批次", align=2, sort=5)
-    public String getIssuePlan() {
-        return issuePlan;
-    }
-
-    public void setIssuePlan(String issuePlan) {
-        this.issuePlan = issuePlan;
-    }
-
-    @ExcelField(title="项目年度实施计划", align=2, sort=6)
-    public String getMonthPlan() {
-        return monthPlan;
-    }
-
-    public void setMonthPlan(String monthPlan) {
-        this.monthPlan = monthPlan;
-    }
-
-    @ExcelField(title="年度计划有无预测", align=2, sort=7)
-    public String getHasPlan() {
-        return hasPlan;
-    }
-
-    public void setHasPlan(String hasPlan) {
-        this.hasPlan = hasPlan;
-    }
-
-    @ExcelField(title="项目物资执行计划", align=2, sort=8)
-    public String getHalfPlan() {
-        return halfPlan;
-    }
-
-    public void setHalfPlan(String halfPlan) {
-        this.halfPlan = halfPlan;
-    }
-
-    @ExcelField(title="项目定义", align=2, sort=9)
-    public String getProjectId() {
-        return projectId;
-    }
-
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
-    }
-
-    @ExcelField(title="项目名称", align=2, sort=10)
-    public String getProjectName() {
-        return projectName;
-    }
-
-    public void setProjectName(String projectName) {
-        this.projectName = projectName;
-    }
-
-    @ExcelField(title="归属年份", align=2, sort=11)
-    public String getAttributionYear() {
-        return attributionYear;
-    }
-
-    public void setAttributionYear(String attributionYear) {
-        this.attributionYear = attributionYear;
-    }
-
-    public String getCanEnter() {
-        return canEnter;
-    }
-
-    public void setCanEnter(String canEnter) {
-        this.canEnter = canEnter;
-    }
-
-    public String getIsSecondary() {
-        return isSecondary;
-    }
-
-    public void setIsSecondary(String isSecondary) {
-        this.isSecondary = isSecondary;
-    }
-
-    public String getSecondPower() {
-        return secondPower;
-    }
-
-    public void setSecondPower(String secondPower) {
-        this.secondPower = secondPower;
-    }
-
-    public String getArrageProject1() {
-        return arrageProject1;
-    }
-
-    public void setArrageProject1(String arrageProject1) {
-        this.arrageProject1 = arrageProject1;
-    }
-
-    public String getArrageProject() {
-        return arrageProject;
-    }
-
-    public void setArrageProject(String arrageProject) {
-        this.arrageProject = arrageProject;
-    }
-
-    public String[] getReserveCodes() {
-        return reserveCodes;
-    }
-
-    public void setReserveCodes(String[] reserveCodes) {
-        this.reserveCodes = reserveCodes;
-    }
-
-    public String[] getProjectCodes() {
-        return projectCodes;
-    }
-
-    public void setProjectCodes(String[] projectCodes) {
-        this.projectCodes = projectCodes;
-    }
-
-    public String getProjectStatus() {
-        return projectStatus;
-    }
-
-    public void setProjectStatus(String projectStatus) {
-        this.projectStatus = projectStatus;
-    }
-}

+ 9 - 2
src/main/java/com/jeeplus/modules/supply/particulars/mapper/SupplyParticularsMapper.java

@@ -21,14 +21,14 @@ public interface SupplyParticularsMapper extends BaseMapper<SupplyParticulars> {
      * @param projectDefinitionList
      * @return
      */
-    List<SupplyStockOut> getSupplyStockOutList(@Param("list") List<String> projectDefinitionList);
+    List<SupplyStockOut> getSupplyStockOutList(@Param("projectDefinitionList") List<String> projectDefinitionList, @Param("submittalsId") String submittalsId);
 
     /**
      * 查询审定单中数据信息
      * @param projectDefinitionList
      * @return
      */
-    List<SupplyJudgementBills> getSupplyJudgementBillsListList(@Param("list") List<String> projectDefinitionList);
+    List<SupplyJudgementBills> getSupplyJudgementBillsListList(@Param("projectDefinitionList") List<String> projectDefinitionList, @Param("submittalsId") String submittalsId);
 
     /**
      * 根据物料编码查询出库单单价平均数
@@ -36,4 +36,11 @@ public interface SupplyParticularsMapper extends BaseMapper<SupplyParticulars> {
      * @return
      */
     String getAvgUtilPriceOnStockOutByMaterialNumber(String materialNumber);
+
+    /**
+     * 根据送审id查询项目定义号
+     * @param submittalsId
+     * @return
+     */
+    List<String> getProjectDefinitionListBySubmittalsId(String submittalsId);
 }

+ 28 - 9
src/main/java/com/jeeplus/modules/supply/particulars/mapper/xml/SupplyParticularsMapper.xml

@@ -59,10 +59,14 @@
         <include refid="stockOutColumns"/>
         from supply_stock_out a
         left join material_library ml on ml.material_code = a.material_number
-        WHERE a.project_definition in
-        <foreach collection="list" item="projectDefinition" index="index" open="(" separator="," close=")">
-            #{projectDefinition}
-        </foreach>
+        <where>
+            <if test="projectDefinitionList.size>0">
+                and a.project_definition in
+                <foreach collection="projectDefinitionList" item="projectDefinition" index="index" open="(" separator="," close=")">
+                    #{projectDefinition}
+                </foreach>
+            </if>
+        </where>
         order by a.project_definition asc,a.actual_quantity_issued desc,a.posting_account_date asc
     </select>
 
@@ -71,14 +75,29 @@
         <include refid="judgementBillsColumns"/>
         from supply_judgement_bills a
         left join material_library ml on ml.material_code = a.material_number
-        WHERE a.project_definition in
-        <foreach collection="list" item="projectDefinition" index="index" open="(" separator="," close=")">
-            #{projectDefinition}
-        </foreach>
-        and (a.submittals_id is null or a.submittals_id = '')
+        <where>
+            <if test="projectDefinitionList.size>0">
+                and a.project_definition in
+                <foreach collection="projectDefinitionList" item="projectDefinition" index="index" open="(" separator="," close=")">
+                    #{projectDefinition}
+                </foreach>
+            </if>
+            <choose>
+                <when test="null != submittalsId and '' != submittalsId">
+                    and a.submittals_id = #{submittalsId}
+                </when>
+                <otherwise>
+                    and (a.submittals_id is null or a.submittals_id = '')
+                </otherwise>
+            </choose>
+        </where>
         group by a.project_definition,a.material_number
     </select>
 
+    <select id="getProjectDefinitionListBySubmittalsId" resultType="java.lang.String">
+        select project_definition from supply_judgement_bills where submittals_id = #{submittalsId}
+    </select>
+
     <select id="getAvgUtilPriceOnStockOutByMaterialNumber" resultType="java.lang.String">
         select ifnull(round(avg(unit_price),3),'0.000') from supply_stock_out where material_number= #{materialNumber}
     </select>

+ 22 - 6
src/main/java/com/jeeplus/modules/supply/particulars/service/SupplyParticularsService.java

@@ -42,16 +42,32 @@ public class SupplyParticularsService extends CrudService<SupplyParticularsMappe
      * @return
      */
     public Page<SupplyParticulars> getProjectDefinitionPage(Page<SupplyParticulars> page, SupplyParticulars supplyParticulars) {
-        //根据项目定义号查询出库表某个或某几个项目定义号的所有出库数据
-        //项目定义号以;隔开
-        String[] split = supplyParticulars.getProjectDefinition().split(";");
-        List projectDefinitionList = Arrays.asList(split);
+
+        List<String> projectDefinitionList= Lists.newArrayList();
+        //判断送审id是否有值,有值则对其查询所属的所有项目定义号
+        if(StringUtils.isNotBlank(supplyParticulars.getSubmittalsId())){
+            //根据送审id查询项目定义号
+            projectDefinitionList = mapper.getProjectDefinitionListBySubmittalsId(supplyParticulars.getSubmittalsId());
+        }else{
+            //根据项目定义号查询出库表某个或某几个项目定义号的所有出库数据
+            //项目定义号以;隔开
+            if(!"".equals(supplyParticulars.getProjectDefinition())){
+                String[] split = supplyParticulars.getProjectDefinition().split(";");
+                projectDefinitionList = Arrays.asList(split);
+            }
+        }
+        if(projectDefinitionList.size()>0){
+            Set projectDefinitionSet = new HashSet(projectDefinitionList);
+            projectDefinitionList = new ArrayList<>(projectDefinitionSet);
+        }
+
+
         //根据项目定义号查询出库表信息
-        List<SupplyStockOut> supplyStockOutList = mapper.getSupplyStockOutList(projectDefinitionList);
+        List<SupplyStockOut> supplyStockOutList = mapper.getSupplyStockOutList(projectDefinitionList,supplyParticulars.getSubmittalsId());
         //对出库单数据进行分组
         Map<String, List<SupplyStockOut>> supplyStockOutListMap = this.groupSupplyStockOut(supplyStockOutList);
         //查询审定单中的数据信息
-        List<SupplyJudgementBills> supplyJudgementBillsList = mapper.getSupplyJudgementBillsListList(projectDefinitionList);
+        List<SupplyJudgementBills> supplyJudgementBillsList = mapper.getSupplyJudgementBillsListList(projectDefinitionList,supplyParticulars.getSubmittalsId());
         //对审定单数据进行分组
         Map<String, List<SupplyJudgementBills>> supplyJudgementBillsListMap = this.groupSupplyJudgementBills(supplyJudgementBillsList);
 

+ 29 - 0
src/main/java/com/jeeplus/modules/supply/particulars/web/SupplyParticularsController.java

@@ -8,8 +8,11 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.core.persistence.Page;
 import com.jeeplus.core.web.BaseController;
+import com.jeeplus.modules.supply.materialLibrary.entity.MaterialLibrary;
 import com.jeeplus.modules.supply.particulars.entity.SupplyParticulars;
 import com.jeeplus.modules.supply.particulars.service.SupplyParticularsService;
+import com.jeeplus.modules.supply.stockOut.entity.SupplyStockOut;
+import com.jeeplus.modules.supply.stockOut.service.SupplyStockOutService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -38,6 +41,8 @@ public class SupplyParticularsController extends BaseController {
 
     @Autowired
     private SupplyParticularsService service;
+    @Autowired
+    private SupplyStockOutService stockOutService;
 
     @ModelAttribute
     public SupplyParticulars get(@RequestParam(required = false) String id) {
@@ -72,6 +77,30 @@ public class SupplyParticularsController extends BaseController {
         return getBootstrapData(page);
     }
 
+
+    /**
+     * 根据物料编码查询出库单历史物料信息
+     * @param supplyStockOut
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = "viewMaterials")
+    public String viewMaterials(SupplyStockOut supplyStockOut, Model model) {
+        model.addAttribute("supplyStockOut", supplyStockOut);
+        return "modules/supply/particulars/stockOut/supplyStockOutList";
+    }
+
+    /**
+     * 列表数据
+     */
+    @ResponseBody
+    @RequestMapping(value = "dataMaterials")
+    public Map<String, Object> dataMaterials(SupplyStockOut supplyStockOut, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<SupplyStockOut> page = stockOutService.findPage(new Page<SupplyStockOut>(request, response), supplyStockOut);
+        return getBootstrapData(page);
+    }
+
+
     /**
      * 导出excel文件
      */

+ 9 - 0
src/main/java/com/jeeplus/modules/supply/stockOut/entity/SupplyStockOut.java

@@ -49,6 +49,7 @@ public class SupplyStockOut extends DataEntity<SupplyStockOut> {
     private String materialsType;              //varchar(255) 材料类型
     private Date beginDate;                 //开始时间
     private Date endDate;                   //结束事件
+    private String particularMaterialNumber;          //varchar(255) 超欠供明细物料编码
 
     @ExcelField(title="选择", align=2, sort=1)
     public String getChoose() {
@@ -388,4 +389,12 @@ public class SupplyStockOut extends DataEntity<SupplyStockOut> {
     public void setStockOutImportDateStr(String stockOutImportDateStr) {
         this.stockOutImportDateStr = stockOutImportDateStr;
     }
+
+    public String getParticularMaterialNumber() {
+        return particularMaterialNumber;
+    }
+
+    public void setParticularMaterialNumber(String particularMaterialNumber) {
+        this.particularMaterialNumber = particularMaterialNumber;
+    }
 }

+ 3 - 0
src/main/java/com/jeeplus/modules/supply/stockOut/mapper/xml/SupplyStockOutMapper.xml

@@ -64,6 +64,9 @@
             <if test="projectDefinition != null and projectDefinition != ''">
                 AND a.project_definition LIKE CONCAT('%',#{projectDefinition},'%')
             </if>
+            <if test="particularMaterialNumber != null and particularMaterialNumber != ''">
+                AND a.material_number = #{particularMaterialNumber}
+            </if>
 
             <if test="beginDate != null ">
                 AND DATE_FORMAT(a.create_date,'%m-%d-%Y') >= #{beginDate}

+ 15 - 1
src/main/webapp/webpage/modules/supply/particulars/supplyParticularsList.js

@@ -97,7 +97,17 @@
                     field: 'materialDescription',
                     title: '材料名称',
                     width:200,
-                    sortName: 'materialDescription'
+                    sortName: 'materialDescription',
+                    formatter:function(value, row , index) {
+                        value = jp.unescapeHTML(value);
+                        var actualQuantityIssued = parseFloat(row.actualQuantityIssued);
+                        var examineCount = parseFloat(row.examineCount);
+                        if (actualQuantityIssued === 0 && examineCount !== 0) {
+                            return "<a href='javascript:viewMaterials(\"" + row.materialNumber + "\")'>" + value + "</a>";
+                        } else{
+                            return value;
+                        }
+                    }
                 }
                 ,{
                     field: 'unit',
@@ -441,6 +451,10 @@ function view(id){//没有权限时,不显示确定按钮
     jp.openViewDialog('查看', "${ctx}/supply/particulars/view?id=" + id, '800px', '500px');
 }
 
+function viewMaterials(materialNumber){//没有权限时,不显示确定按钮
+    jp.openViewDialog('查看', "${ctx}/supply/particulars/viewMaterials?particularMaterialNumber=" + materialNumber, '90%', '90%');
+}
+
 
 
 </script>