package com.yuanchu.mom.controller; import com.yuanchu.mom.pojo.RawInspect; import com.yuanchu.mom.service.*; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.utils.Jwt; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.*; import org.json.JSONException; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Map; @RestController @RequestMapping("/rawInspect") @Api(tags = "QMS管理-->原材料检验") public class RawInspectController { @Autowired RawInspectService rawInspectService; @Resource Jwt jwt; @Resource MaterialService materialService; @Resource SpecificationsService specificationsService; @ApiOperation(value = "查询原材料检验单列表") @ApiImplicitParams(value = { @ApiImplicitParam(name = "pageSize", value = "页数", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "countSize", value = "条数/页", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "formTime", value = "来料日期", dataTypeClass = String.class), @ApiImplicitParam(name = "createTime", value = "报检日期", dataTypeClass = String.class), @ApiImplicitParam(name = "insState", value = "检测状态: 全部默认2", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "judgeState", value = "合格状态: 全部默认2", dataTypeClass = Integer.class, required = true), }) @PostMapping("/selectRawInspectsList") public Result selectRawInspectsList(Integer pageSize, Integer countSize, String formTime, String createTime, Integer insState, Integer judgeState) { return Result.success(rawInspectService.selectRawInspectsList(pageSize, countSize, formTime, createTime, insState, judgeState)); } @ApiOperation(value = "根据检验单id查询原材料检验单详情") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true) }) @GetMapping("/selectRawInspectsListById/{id}") public Result selectRawInspectsListById(@PathVariable Integer id) { return Result.success(rawInspectService.selectRawInspectsListById(id)); } @ApiOperation(value = "上报(更新检验状态)") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "检验单id", dataTypeClass = Integer.class, required = true) }) @PostMapping("/updateRawInspectsById/{id}") public Result updateRawInspectsById(@PathVariable Integer id) { //如果已经上报了不能再一次上报 RawInspect rawInspect = rawInspectService.getById(id); if (rawInspect.getInsState() == 1) { return Result.fail("已经上报过了,不能再次上报!"); } return Result.success(rawInspectService.updateRawInspectsById(id)); } @ApiOperation(value = "查询所有原材料信息") @GetMapping("/selectMaterial") public Result selectMaterial() { return Result.success(materialService.selectMaterial()); } @ApiOperation(value = "选择物料名称查询物料信息(物料id和编码)") @ApiImplicitParams(value = { @ApiImplicitParam(name = "name", value = "原材料名称(物料名称)", dataTypeClass = String.class, required = true) }) @GetMapping("/selectMcodeId") public Result selectMcodeId(String name) { return Result.success(materialService.selectMcodeId(name)); } @ApiOperation(value = "选择物料编码(获取物料规格id.名称和型号名称)") @ApiImplicitParams(value = { @ApiImplicitParam(name = "name", value = "原材料名称(物料名称)", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "code", value = "原材料编号(物料编号)", dataTypeClass = String.class, required = true) }) @GetMapping("/selectIdByCoNa") public Result selectIdByCoNa(String name, String code) { return Result.success(materialService.selectIdByCoNa(name, code)); } @ApiOperation(value = "选择物料规格(根据规格id获取物料型号)") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "物料规格id", dataTypeClass = Integer.class, required = true) }) @GetMapping("/selectSpBySt") public Result selectSpBySt(Integer id) { return Result.success(specificationsService.selectSpecificationIdAndName(id)); } @ApiOperation(value = "新增检验单") @PostMapping("/addRawInspects") public Result addRawInspects(@RequestHeader("token") String token, @RequestBody RawInspect rawInspect) throws Exception { Map data = JackSonUtil.unmarshal(jwt.readJWT(token).get("data"), Map.class); return Result.success(rawInspectService.addRawInspects(data.get("name").replaceAll("\"", ""), rawInspect)); } }