package com.ld.igds.m.view;
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.ld.igds.check.CheckStandardManager;
import com.ld.igds.check.dto.CheckItemData;
import com.ld.igds.m.ReportManage;
import com.ld.igds.m.service.HQualityManageService;
import com.ld.igds.models.Depot;
import com.ld.igds.models.DicTrigger;
import com.ld.igds.models.MQuality;
import com.ld.igds.view.service.HDepotService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 质量追溯管理
*
* @author: chen
*/
@Component
public class QualityManagerPR {
@Autowired
private HQualityManageService qualityManageService;
@Autowired
private CheckStandardManager checkStandardManager;
@Autowired
private ReportManage reportManage;
@Autowired
private HDepotService depotService;
/**
* 检验类别
*
* ${dorado.getDataProvider("qualityManagerPR#triggerType").getResult()}
*
* @return
*/
@DataProvider
public List triggerType() {
List list = new ArrayList();
list.add(new DicTrigger("01", "入仓验收"));
list.add(new DicTrigger("02", "出仓检验"));
list.add(new DicTrigger("03", "3月末普检"));
list.add(new DicTrigger("04", "9月末普检"));
list.add(new DicTrigger("05", "入库初检"));
list.add(new DicTrigger("06", "月度检查"));
list.add(new DicTrigger("07", "3月末库内普查"));
list.add(new DicTrigger("08", "9月末库内普查"));
return list;
}
/**
* 指标类别
*
* ${dorado.getDataProvider("qualityManagerPR#triggerStandard").getResult()}
*
* @return
*/
@DataProvider
public List triggerStandard() {
List list = new ArrayList();
list.add(new DicTrigger("1", "国标"));
list.add(new DicTrigger("0", "其他"));
return list;
}
/**
* 检验依据
*
* ${dorado.getDataProvider("qualityManagerPR#triggerMetrics").getResult()}
*
* @return
*/
@DataProvider
public List triggerMetrics() {
List list = new ArrayList();
list.add(new DicTrigger("1", "质量指标检验"));
list.add(new DicTrigger("2", "储存品质检验"));
list.add(new DicTrigger("3", "食品安全检验"));
return list;
}
/**
* 分页获取质量巡检记录信息
*
* qualityManagerPR#listQuality
*
* @param page
* @param param
* @throws Exception
*/
@DataProvider
public void listQuality(Page page, Map param) throws Exception {
qualityManageService.listQuality(page, param);
}
/**
* 保存质量巡检记录及相关检测项信息
* qualityManagerPR#saveQuality
*
* @param data
*/
@DataResolver
public void saveQuality(MQuality data) {
if (StringUtils.isEmpty(data.getId())) {
data.setId( "ZJ_" + qualityManageService.getIdByTime(data.getTime()));
}
try {
qualityManageService.saveQuality(data.getId(), data);
//保存货位质检数据
Depot depot = depotService.getDepotById(data.getCompanyId(), data.getDepotId());
depot.setCheckDate(data.getTime());
//保存检测的化验项信息
if (null != data.getCheckItems()) {
checkStandardManager.updateCheckItems(data.getId(), null, data.getCheckItems());
List checkItems = data.getCheckItems();
for (CheckItemData checkItem : checkItems) {
if("C01".equals(checkItem.getStandardId())){
String value = checkItem.getValue();
depot.setPerWet(Double.valueOf(value));
}
if("C02".equals(checkItem.getStandardId())){
String value = checkItem.getValue();
depot.setPerImpurity(Double.valueOf(value));
}
if("C03".equals(checkItem.getStandardId())){
String value = checkItem.getValue();
depot.setBulkWeight(Double.valueOf(value));
}
}
}
depotService.updateDepot(depot);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* qualityManagerPR#delQuality
*
* @param data
* @return
*/
@Expose
public String delQuality(MQuality data) {
return qualityManageService.delQuality(data);
}
/**
* qualityManagerPR#getPer
*
* @param checkId
* @return
*/
@Expose
public CheckItemData getPer(String checkId) {
return qualityManageService.getCheckItem(checkId);
}
/**
* qualityManagerPR#printQualityBill 打印质检报告单
*
* @param data
* @return
*/
@Expose
public String printQualityBill(MQuality data) {
if (StringUtils.isEmpty(data.getFoodVariety())) {
return "粮情品种为空,不支持打印!";
}
return reportManage.printQualityBill(data);
}
}