| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\db;
- use think\Request;
- use function fast\e;
- /**
- * 工序大废品惩奖记录接口
- */
- class LargeWasteRewardPunish extends Api
- {
- protected $noNeedLogin = ['*'];
- protected $noNeedRight = ['*'];
- /**
- * 首页
- *
- */
- public function index()
- {
- $this->success('请求成功');
- }
- /**
- * 获取工序大废品惩奖侧边栏
- * @ApiMethod (GET)
- */
- public function getTab()
- {
- //get请求
- if(!$this->request->isGet()){
- $this->error('请求方式错误');
- }
- $rows = db()->table('db_大废品')
- ->field('DISTINCT(LEFT(sys_rq, 7)) AS mouth,LEFT(sys_rq, 10) as date, COUNT(*) as counts')
- ->group('date')
- ->order('UniqId desc')
- ->limit(40)
- ->select();
- $list = [];
- foreach($rows as $key=>$value){
- if (!isset($list[$value['mouth']])){
- $list[$value['mouth']] = [];
- }
- $arr['date'] = str_replace('-', '.', $rows[$key]['date']);
- $arr['counts'] = $rows[$key]['counts'];
- array_push($list[$value['mouth']],$arr);
- // $list[$value['mouth']]['date'] = str_replace('-', '.', $rows[$key]['date']);
- }
- $this->success('成功',$list);
- }
- /**
- * 获取工序大废品惩奖侧边栏根据工单
- * @ApiMethod (GET)
- */
- public function getTabByGd()
- {
- //get请求
- if(!$this->request->isGet()){
- $this->error('请求方式错误');
- }
- $rows = db()->table('db_大废品')
- ->field('sczl_gdbh,rtrim(g.成品名称) as 成品名称')
- ->join('工单_基本资料 g','g.Gd_gdbh=db_大废品.sczl_gdbh','LEFT')
- ->group('sczl_gdbh')
- ->whereTime('db_大废品.sys_rq', '>=', strtotime('-60 days'))
- ->order('sczl_gdbh desc')
- ->select();
- foreach($rows as $key=>$value){
- $data[$key]['label']=$value['sczl_gdbh'].' 【'.$value['成品名称'].'】';
- $data[$key]['sczl_gdbh']=$value['sczl_gdbh'];
- }
- $this->success('成功',$data);
- }
- /**
- * 获取工序大废品惩奖列表
- * @ApiMethod (GET)
- * @param string $date 时间
- */
- public function getList()
- {
- //get请求
- if(!$this->request->isGet()){
- $this->error('请求方式错误');
- }
- $req = $this->request->param();
- $rq = $req['date'];
- $page = 1;
- $limit = 15;
- if (isset($req['page']) && !empty($req['page'])) $page = $req['page'];
- if (isset($req['limit']) && !empty($req['limit'])) $limit = $req['limit'];
- $date = substr($req['date'],0,10);
- $req['date'] = str_replace('.','-',$date);
- $where = [];
- if (isset($req['date']) && !empty($req['date'])){
- if (preg_match('/[\x{4e00}-\x{9fa5}]/u', $rq)>0){
- $where['sys_rq'] = ['LIKE',$req['date'].'%'];
- }else{
- $where['sczl_rq'] = ['LIKE',$req['date'].'%'];
- }
- }else{
- $this->error('参数错误');
- }
- $res = db()->table('db_大废品')
- ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno,
- rtrim(责任部门) as 责任部门,sczl_cl,
- rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, jl_jtbh as Jl_bzdh, JL_bh1,
- sczl_jtbh as sczl_bzdh, sczl_bh1, sczl_je1, sczl_bh2, sczl_je2, sczl_bh3,sczl_bh4, sczl_je3,sczl_je4,rtrim(sys_id) as sys_id, sys_rq, UniqId')
- ->where('sczl_gdbh',$req['date'])
- ->order('UniqId desc')
- ->page($page,$limit)
- ->select();
- if($res){
- $rows=$res;
- $total = db()->table('db_大废品')->where('sczl_gdbh',$req['date'])->count();;
- }else{
- $rows = db()->table('db_大废品')
- ->field('sczl_gdbh, LEFT(sczl_rq, 10) as sczl_rq, rtrim(sczl_numDesc) as sczl_numDesc, sczl_ls, sczl_yjno,
- rtrim(责任部门) as 责任部门, sczl_cl,
- rtrim(sczl_fplxA) as sczl_fplxA, sczl_fplxB, jl_jtbh as Jl_bzdh, JL_bh1,
- sczl_jtbh as sczl_bzdh, sczl_bh1, sczl_je1, sczl_bh2, sczl_je2, sczl_bh3,sczl_bh4, sczl_je3,sczl_je4, rtrim(sys_id) as sys_id, sys_rq, UniqId')
- ->where($where)
- ->order('UniqId desc')
- ->page($page,$limit)
- ->select();
- $total = db()->table('db_大废品')->where($where)->count();
- }
- $gd = db()->table('工单_印件资料')->column('Yj_Gdbh, yj_yjmc');
- $rs = db()->table('人事_基本资料')->where('员工姓名','<>','通用编号')->column('员工编号, 员工姓名');
- foreach ($rows as $key=>$value) {
- $rows[$key]['yj_yjmc'] = array_key_exists($value['sczl_gdbh'],$gd) ? sprintf("%02d", $value['sczl_yjno']).'-'.trim($gd[$value['sczl_gdbh']]) : '';
- $rows[$key]['JL_bh1'] = array_key_exists($value['JL_bh1'],$rs) ? trim($rs[$value['JL_bh1']]) : '';
- $rows[$key]['sczl_bh1'] = array_key_exists($value['sczl_bh1'],$rs) ? trim($rs[$value['sczl_bh1']]) : '';
- $rows[$key]['sczl_bh2'] = array_key_exists($value['sczl_bh2'],$rs) ? trim($rs[$value['sczl_bh2']]) : '';
- $rows[$key]['sczl_bh3'] = array_key_exists($value['sczl_bh3'],$rs) ? trim($rs[$value['sczl_bh3']]) : '';
- $rows[$key]['sczl_bh4'] = array_key_exists($value['sczl_bh4'],$rs) ? trim($rs[$value['sczl_bh4']]) : '';
- $rows[$key]['sczl_fplxB'] = $value['sczl_fplxB'] == 1 ? '制程废' : '';
- if ($rows[$key]['sczl_bh1'] != '' && $value['sczl_je1'] > 0){
- $number = $value['sczl_je1']*$value['sczl_cl'];
- if ($number > 200){
- $number = 200;
- }
- $rows[$key]['sczl_bh1'] = $rows[$key]['sczl_bh1'].'(-'.$number.')';
- }
- if ($rows[$key]['sczl_bh2'] != '' && $value['sczl_je2'] > 0){
- $number = $value['sczl_je1']*$value['sczl_cl'];
- if ($number > 200){
- $number = 200;
- }
- $rows[$key]['sczl_bh2'] = $rows[$key]['sczl_bh2'].'(-'.$number.')';
- }
- if ($rows[$key]['sczl_bh3'] != '' && $value['sczl_je3'] > 0){
- $number = $value['sczl_je1']*$value['sczl_cl'];
- if ($number > 200){
- $number = 200;
- }
- $rows[$key]['sczl_bh3'] = $rows[$key]['sczl_bh3'].'(-'.$number.')';
- }
- if ($rows[$key]['sczl_bh4'] != '' && $value['sczl_je4'] > 0){
- $number = $value['sczl_je1']*$value['sczl_cl'];
- if ($number > 200){
- $number = 200;
- }
- $rows[$key]['sczl_bh4'] = $rows[$key]['sczl_bh4'].'(-'.$number.')';
- }
- unset($rows[$key]['sczl_yjno']);
- }
- $data = [
- 'total' => $total,
- 'rows' => $rows,
- ];
- $this->success('成功',$data);
- }
- /**
- * 获取工序大废品惩奖信息
- * @ApiMethod (GET)
- * @param string $UniqId UniqId
- */
- public function getInfo()
- {
- //get请求
- if(!$this->request->isGet()){
- $this->error('请求方式错误');
- }
- $req = $this->request->param();
- if (isset($req['UniqId']) && !empty($req['UniqId'])){
- $UniqId = $req['UniqId'];
- }else{
- $this->error('参数错误');
- }
- $rows = db()->table('db_大废品')->alias('d')
- ->field('sczl_gdbh,rtrim(g.Gd_cpmc) as Gd_cpmc,sczl_yjno,rtrim(yj.yj_yjmc) as yj_yjmc,
- rtrim(sczl_gxmc) as sczl_gxmc,sczl_gxh,rtrim(sczl_numDesc) as sczl_numDesc,LEFT(sczl_rq, 10)
- as sczl_rq,sczl_cl,sczl_ls,rtrim(sczl_fplxA) as sczl_fplxA,sczl_fplxB,rtrim(责任部门) as 责任部门,
- rtrim(jl_bzdh) as Jl_bzdh,jl_jtbh,JL_bh1,JL_bh2,JL_bh3,JL_bh4,JL_bh5,JL_bh6,JL_bh7,JL_bh8,JL_bh9,
- rtrim(jl1.员工姓名) as jlname1,rtrim(jl2.员工姓名) as jlname2,rtrim(jl3.员工姓名) as jlname3
- ,rtrim(jl4.员工姓名) as jlname4,rtrim(jl5.员工姓名) as jlname5,rtrim(jl6.员工姓名) as jlname6
- ,rtrim(jl7.员工姓名) as jlname7,rtrim(jl8.员工姓名) as jlname8,rtrim(jl9.员工姓名) as jlname9
- ,JL_Je1,JL_Je2,JL_Je3,JL_Je4,JL_Je5,JL_Je6,JL_Je7,JL_Je8,JL_Je9,rtrim(sczl_bzdh) as sczl_bzdh,
- sczl_jtbh,sczl_bh1,sczl_bh2,sczl_bh3,sczl_bh4,sczl_bh5,sczl_bh6,sczl_bh7,sczl_bh8,sczl_bh9,
- rtrim(jl_bzdh) as Jl_bzdh,jl_jtbh,JL_bh1,JL_bh2,JL_bh3,JL_bh4,JL_bh5,JL_bh6,JL_bh7,JL_bh8,JL_bh9,
- rtrim(zr1.员工姓名) as zrname1,rtrim(zr2.员工姓名) as zrname2,rtrim(zr3.员工姓名) as zrname3
- ,rtrim(zr4.员工姓名) as zrname4,rtrim(zr5.员工姓名) as zrname5,rtrim(zr6.员工姓名) as zrname6
- ,rtrim(zr7.员工姓名) as zrname7,rtrim(zr8.员工姓名) as zrname8,rtrim(zr9.员工姓名) as zrname9
- ,sczl_je1,sczl_je2,sczl_je3,sczl_je4,sczl_je5,sczl_je6,sczl_je7,sczl_je8,sczl_je9')
- ->join('工单_基本资料 g','g.Gd_gdbh=db_大废品.sczl_gdbh')
- ->join('工单_印件资料 yj','yj.Yj_Gdbh=db_大废品.sczl_gdbh','LEFT')
- ->join('人事_基本资料 jl1','jl1.员工编号=db_大废品.JL_bh1','LEFT')
- ->join('人事_基本资料 jl2','jl2.员工编号=db_大废品.JL_bh2','LEFT')
- ->join('人事_基本资料 jl3','jl3.员工编号=db_大废品.JL_bh3','LEFT')
- ->join('人事_基本资料 jl4','jl4.员工编号=db_大废品.JL_bh4','LEFT')
- ->join('人事_基本资料 jl5','jl5.员工编号=db_大废品.JL_bh5','LEFT')
- ->join('人事_基本资料 jl6','jl6.员工编号=db_大废品.JL_bh6','LEFT')
- ->join('人事_基本资料 jl7','jl7.员工编号=db_大废品.JL_bh7','LEFT')
- ->join('人事_基本资料 jl8','jl8.员工编号=db_大废品.JL_bh8','LEFT')
- ->join('人事_基本资料 jl9','jl9.员工编号=db_大废品.JL_bh9','LEFT')
- ->join('人事_基本资料 zr1','zr1.员工编号=db_大废品.sczl_bh1','LEFT')
- ->join('人事_基本资料 zr2','zr2.员工编号=db_大废品.sczl_bh2','LEFT')
- ->join('人事_基本资料 zr3','zr3.员工编号=db_大废品.sczl_bh3','LEFT')
- ->join('人事_基本资料 zr4','zr4.员工编号=db_大废品.sczl_bh4','LEFT')
- ->join('人事_基本资料 zr5','zr5.员工编号=db_大废品.sczl_bh5','LEFT')
- ->join('人事_基本资料 zr6','zr6.员工编号=db_大废品.sczl_bh6','LEFT')
- ->join('人事_基本资料 zr7','zr7.员工编号=db_大废品.sczl_bh7','LEFT')
- ->join('人事_基本资料 zr8','zr8.员工编号=db_大废品.sczl_bh8','LEFT')
- ->join('人事_基本资料 zr9','zr9.员工编号=db_大废品.sczl_bh9','LEFT')
- ->where('d.UniqId',$UniqId)->limit(1)->select();
- $this->success('成功',$rows);
- }
- /**
- * 工单编号获取
- * @return void
- * @throws \think\exception\DbException
- * @throws db\exception\DataNotFoundException
- * @throws db\exception\ModelNotFoundException
- */
- public function JunkWorkOrderList()
- {
- if ($this->request->isGet() === false){
- $this->error('非法请求');
- }
- $params = $this->request->param();
- if (empty($params['search'])){
- $this->error('参数错误');
- }
- $list = \db('工单_基本资料')
- ->field('rtrim(Gd_gdbh) as 工单编号,rtrim(成品名称) as 产品名称')
- ->where('Gd_gdbh','like','%'.$params['search'].'%')
- ->select();
- if (empty($list)){
- $this->success('未找到工单信息');
- }
- $this->success('成功',$list);
- }
- /**
- * 印件编号获取
- * @return void
- * @throws \think\exception\DbException
- * @throws db\exception\DataNotFoundException
- * @throws db\exception\ModelNotFoundException
- */
- public function PrintCodeList()
- {
- if ($this->request->isGet() === false){
- $this->error('非法请求');
- }
- $param = $this->request->param();
- if (empty($param['workorder'])){
- $this->error('参数错误');
- }
- $list = \db('工单_印件资料')
- ->field('rtrim(yj_Yjno) as 印件号,rtrim(yj_yjmc) as 印件名称')
- ->where('Yj_Gdbh',$param['workorder'])
- ->select();
- if (empty($list)){
- $this->success('未找到该工单印件');
- }
- $this->success('成功',$list);
- }
- /**
- * 工单工序获取
- * @return void
- * @throws \think\exception\DbException
- * @throws db\exception\DataNotFoundException
- * @throws db\exception\ModelNotFoundException
- */
- public function ProcessList()
- {
- if ($this->request->isGet() === false){
- $this->error('非法请求');
- }
- $param = $this->request->param();
- if (empty($param['workorder']) || empty($param['yjno'])){
- $this->error('参数错误');
- }
- $list = \db('工单_工艺资料')
- ->field('rtrim(Gy0_gxh) as gxh,rtrim(Gy0_gxmc) as gxmc')
- ->where('Gy0_gdbh',$param['workorder'])
- ->where('Gy0_yjno',$param['yjno'])
- ->select();
- if (empty($list)){
- $this->success('未找到该工单工艺');
- }
- $data = [];
- foreach ($list as $key=>$value){
- if ((int)$value['gxh'] < 10){
- $value['gxh'] = '0'.$value['gxh'];
- }
- $data[$key] = $value['gxh'].'-'.$value['gxmc'];
- }
- $this->success('成功',$data);
- }
- /**
- * 机台编号获取
- * @return void
- * @throws \think\exception\DbException
- * @throws db\exception\DataNotFoundException
- * @throws db\exception\ModelNotFoundException
- */
- public function MachineList()
- {
- if ($this->request->isGet() === false){
- $this->error('非法请求');
- }
- $param = $this->request->param();
- $list = \db('设备_产量计酬')
- ->alias('a')
- ->join('人事_基本资料 b1','a.sczl_bh1 = b1.员工编号','left')
- ->join('人事_基本资料 b2','a.sczl_bh2 = b2.员工编号','left')
- ->join('人事_基本资料 b3','a.sczl_bh3 = b3.员工编号','left')
- ->join('人事_基本资料 b4','a.sczl_bh4 = b4.员工编号','left')
- ->join('人事_基本资料 b5','a.sczl_bh5 = b5.员工编号','left')
- ->join('人事_基本资料 b6','a.sczl_bh6 = b6.员工编号','left')
- ->join('人事_基本资料 b7','a.sczl_bh7 = b7.员工编号','left')
- ->join('人事_基本资料 b8','a.sczl_bh8 = b8.员工编号','left')
- ->join('人事_基本资料 b9','a.sczl_bh9 = b9.员工编号','left')
- ->join('人事_基本资料 b10','a.sczl_bh10 = b10.员工编号','left')
- ->field('a.sczl_gxmc as 工序名称,a.sczl_jtbh as 机台编号,a.sczl_bh1 as 员工编号1,rtrim(b1.员工姓名) as 员工姓名1
- ,a.sczl_bh2 as 员工编号2,rtrim(b2.员工姓名) as 员工姓名2,a.sczl_bh3 as 员工编号3,rtrim(b3.员工姓名) as 员工姓名3
- ,a.sczl_bh4 as 员工编号4,rtrim(b4.员工姓名) as 员工姓名4,a.sczl_bh5 as 员工编号5,rtrim(b5.员工姓名) as 员工姓名5
- ,a.sczl_bh6 as 员工编号6,rtrim(b6.员工姓名) as 员工姓名6,a.sczl_bh7 as 员工编号7,rtrim(b7.员工姓名) as 员工姓名7
- ,a.sczl_bh8 as 员工编号8,rtrim(b8.员工姓名) as 员工姓名8,a.sczl_bh9 as 员工编号9,rtrim(b9.员工姓名) as 员工姓名9
- ,a.sczl_bh10 as 员工编号10,rtrim(b10.员工姓名) as 员工姓名10')
- ->where('a.sczl_gdbh',$param['gdbh'])
- ->where('a.sczl_yjno',$param['yjno'])
- ->where('a.sczl_bzdh','like',substr($param['bzdh'],0,1).'%')
- ->group('机台编号,员工编号1,员工编号2,员工编号3,员工编号4,员工编号5,员工编号6,员工编号7,员工编号8,员工编号9,员工编号10')
- ->select();
- // $list = \db('设备_基本资料')
- // ->field('rtrim(设备编号) as 设备编号')
- // ->where('sys_sbID','<>','')
- // ->select();
- if (empty($list)){
- $this->success('未找到机台编号');
- }
- $this->success('成功',$list);
- }
- /**
- * 机台班组获取
- * @return void
- * @throws \think\exception\DbException
- * @throws db\exception\DataNotFoundException
- * @throws db\exception\ModelNotFoundException
- */
- public function MachineClassList()
- {
- if ($this->request->isGet() === false){
- $this->error('非法请求');
- }
- $param = $this->request->param();
- if (empty($param['machine'])){
- $this->error('参数错误');
- }
- $list = \db('设备_班组资料')
- ->where('sczl_jtbh',$param['machine'])
- ->field('rtrim(sczl_bh1) as bh1,rtrim(sczl_bh2) as bh2,rtrim(sczl_bh3) as bh3,
- rtrim(sczl_bh4) as bh4,rtrim(sczl_bh5) as bh5,rtrim(sczl_bh6) as bh6,
- rtrim(sczl_bh7) as bh7,rtrim(sczl_bh8) as bh8,rtrim(sczl_bh9) as bh9,
- rtrim(sczl_bh10) as bh10,rtrim(sczl_bzdh) as 班组代号')
- ->select();
- if (empty($list)){
- $this->success('未找到该机台班组');
- }
- foreach ($list as $key=>$value){
- for ($i=1;$i<=10;$i++){
- if (!empty($value['bh'.$i])){
- $name = \db('人事_基本资料')->where('员工编号',$value['bh'.$i])->field('rtrim(员工姓名) as name')->find();
- if (isset($name['name'])){
- $list[$key]['组员'.$i] = [
- '编号' => $value['bh'.$i],
- '姓名' => $name['name']
- ];
- }
- }else{
- $list[$key]['组员'.$i] = [
- '编号' => '',
- '姓名' => ''
- ];
- }
- unset($list[$key]['bh'.$i]);
- }
- }
- $this->success('成功',$list);
- }
- /**
- * 大废品数据修改
- * @return void
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- * @throws db\exception\BindParamException
- */
- public function JunkDetailEdit()
- {
- // 判断请求方式是否为 POST
- if (Request::instance()->isPost() === false) {
- $this->error('非法请求');
- }
- // 获取请求参数
- $param = Request::instance()->post();
- if (empty($param['sczl_gdbh']) || empty($param['UniqId'])) {
- $this->error('参数错误');
- }
- $param['mod_rq'] = date('Y-m-d H:i:s', time());
- $data = $param['sczl_rq'].' 00:00:00';
- // 奖励班组封顶限制【记录是否存在超限的标志】
- $over_limit = false;
- // 遍历 JL_bh1 ~ JL_bh10,检查当天和本月金额限制
- for ($i = 1; $i <= 10; $i++) {
- $jl_bh = 'JL_bh' . $i; // 获取 JL_bh1 到 JL_bh10
- $jl_je = 'JL_Je' . $i; // 获取 JL_Je1 到 JL_Je10
- if (!empty($param[$jl_bh]) && isset($param[$jl_je])) { // 确保 JL_bh 和 JL_Je 不为空
- $person_id = $param[$jl_bh]; // 当前人员的 ID
- $amount = $param[$jl_je]; // 当前人员的金额
- // 获取当天的所有记录金额总和
- $daily_total = \db('db_大废品')
- ->where('sczl_rq', $data)
- ->sum($jl_je);
- $daUniqId = \db('db_大废品')
- ->where('UniqId', $param['UniqId'])
- ->sum($jl_je);
- // 将当天的金额总和与接口传过来的金额加起来
- $total_amount = ($daily_total + $amount) - $daUniqId; // 假设传入的是 JL_Je1
- // 检查金额是否超过 200 元
- if ($total_amount > 200) {
- $this->error("【{$person_id}】当天金额超限!当天金额不能超过 200 元!");
- $over_limit = true;
- break;
- }
- // 获取当月的所有记录金额总和
- $month = substr($data, 5, 2);
- $year = substr($data, 0, 4);
- $start_date = $year . '-' . $month . '-01';
- $end_date = date('Y-m-t', strtotime($start_date));
- $monthly_total = \db('db_大废品')
- ->whereBetween('sczl_rq', [$start_date, $end_date])
- ->where($jl_bh, $person_id)
- ->sum($jl_je);
- // 检查本月是否超过 1500 元
- if ($monthly_total + $amount - $daUniqId > 1500) {
- $this->error("【{$person_id}】本月金额超限!本月金额不能超过 1500 元!");
- $over_limit = true;
- break;
- }
- }
- }
- // 如果存在超限,停止执行
- if ($over_limit) {
- return;
- }
- // 扣罚金额封顶限制
- $kfover_limit = false;
- // 检查 sczl_bh1 的限制(不能超过 1000 元)
- if (!empty($param['sczl_bh1']) && isset($param['sczl_je1'])) {
- $person_id = $param['sczl_bh1'];
- $amount = $param['sczl_je1'];
- // 获取该人员当天的扣罚金额总和
- $daily_total = \db('db_大废品')
- ->where('sczl_rq', $data)
- ->where('sczl_bh1', $person_id)
- ->sum('sczl_je1');
- $daUniqId = \db('db_大废品')
- ->where('UniqId', $param['UniqId'])
- ->sum("sczl_je1");
- // 判断是否超过 1000 元
- if (($daily_total + $amount) - $daUniqId > 1000) {
- $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 1000 元!");
- $kfover_limit = true;
- }
- }
- // 遍历 sczl_bh2 ~ sczl_bh10,检查当天金额是否超过 500 元
- for ($i = 2; $i <= 10; $i++) {
- $sczl_bh = 'sczl_bh' . $i;
- $sczl_je = 'sczl_je' . $i;
- if (!empty($param[$sczl_bh]) && isset($param[$sczl_je])) {
- $person_id = $param[$sczl_bh];
- $amount = $param[$sczl_je];
- // 获取该人员当天的扣罚金额总和
- $daily_total = \db('db_大废品')
- ->where('sczl_rq', $data)
- // ->where($sczl_bh, $person_id)
- ->sum($sczl_je);
- $daUniqId = \db('db_大废品')
- ->where('UniqId', $param['UniqId'])
- ->sum($sczl_je);
- $total_amount = ($daily_total + $amount) - $daUniqId; // 假设传入的是 JL_Je1
- // 判断是否超过 500 元
- if ($total_amount > 500) {
- $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 500 元!");
- $kfover_limit = true;
- break; // 如果超限,停止检查
- }
- }
- }
- // 如果超限就不插入数据
- if ($kfover_limit) {
- return; // 直接终止
- }
- // 执行更新操作
- // unset($data['UniqId']);
- $sql = \db('db_大废品')
- ->where('UniqId', $param['UniqId'])
- ->fetchSql(true)
- ->update($param);
- $res = \db()->query($sql);
- if ($res !== false) {
- $this->success('修改成功');
- } else {
- $this->error('修改失败');
- }
- }
- /**
- * 大废品数据添加
- * @return void
- * @throws \think\exception\PDOException
- * @throws db\exception\BindParamException
- */
- public function JunkDetailAdd()
- {
- if (Request::instance()->isPost() === false) {
- $this->error('非法请求');
- }
- $param = Request::instance()->post();
- if (empty($param['sczl_gdbh'])) {
- $this->error('参数错误');
- }
- // 获取最后一条记录的UniqId
- $lastID = \db('db_大废品')->order('UniqId desc')->value('UniqId');
- // 设置当前时间和其他初始化数据
- $param['sys_rq'] = date('Y-m-d H:i:s', time());
- $param['mod_rq'] = '1900-01-01 00:00:00';
- $param['UniqId'] = $lastID + 1;
- $data = $param['sczl_rq'];
- //奖励班组封顶限制【记录是否存在超限的标志】
- $over_limit = false;
- // 遍历参数,检查每个人当天和本月的消费情况
- for ($i = 1; $i <= 10; $i++) {
- $jl_bh = 'JL_bh' . $i;
- $jl_je = 'JL_Je' . $i;
- if (!empty($param[$jl_bh]) && isset($param[$jl_je])) {
- $person_id = $param[$jl_bh];
- $amount = $param[$jl_je];
- // 获取当天的所有记录金额总和
- $daily_total = \db('db_大废品')
- ->where('sczl_rq', $data)
- ->where($jl_bh, $person_id)
- ->sum($jl_je);
- // 获取当月的所有记录金额总和
- $month = substr($data, 5, 2);
- $year = substr($data, 0, 4);
- $start_date = $year . '-' . $month . '-01';
- $end_date = date('Y-m-t', strtotime($start_date));
- $monthly_total = \db('db_大废品')
- ->whereBetween('sczl_rq', [$start_date, $end_date])
- ->where($jl_bh, $person_id)
- ->sum($jl_je);
- // 检查当天是否超过 200
- if ($daily_total + ($amount * $param['sczl_cl']) > 200) {
- $this->error("【{$person_id}】当天金额超限!当天金额不能超过200元!");
- $over_limit = true;
- break;
- }
- // 检查本月是否超过 1500
- if ($monthly_total + ($amount * $param['sczl_cl']) > 1500) {
- $this->error("【{$person_id}】本月金额超限!本月金额不能超过1500元!");
- $over_limit = true;
- break;
- }
- }
- }
- // 如果超限就不插入数据
- if ($over_limit) {
- // 提示超限后停止执行
- return;
- }
- // 记录是否存在超限
- $kfover_limit = false;
- // 获取 sczl_bh1 的值,并检查它是否存在
- if (!empty($param['sczl_bh1']) && isset($param['sczl_je1'])) {
- $person_id = $param['sczl_bh1'];
- $amount = $param['sczl_je1'];
- // 获取该人员当天的扣罚金额总和
- $daily_total = \db('db_大废品')
- ->where('sczl_rq', $data)
- ->where('sczl_bh1', $person_id)
- ->sum('sczl_je1');
- // 判断是否超过 1000
- if ($daily_total + ($amount * $param['sczl_cl']) > 1000) {
- $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 1000 元!");
- $kfover_limit = true;
- }
- }
- // 遍历 sczl_bh2 ~ sczl_bh10
- for ($i = 2; $i <= 10; $i++) {
- $sczl_bh = 'sczl_bh' . $i;
- $sczl_je = 'sczl_je' . $i;
- if (!empty($param[$sczl_bh]) && isset($param[$sczl_je])) {
- $person_id = $param[$sczl_bh];
- $amount = $param[$sczl_je];
- // 获取该人员当天的扣罚金额总和
- $daily_total = \db('db_大废品')
- ->where('sczl_rq', $data)
- ->where($sczl_bh, $person_id)
- ->sum($sczl_je);
- // 判断是否超过 500
- if ($daily_total + ($amount * $param['sczl_cl']) > 500) {
- $this->error("【{$person_id}】当天扣罚金额超限!当天扣罚金额不能超过 500 元!");
- $kfover_limit = true;
- break; // 只要有一个超限就停止检查
- }
- }
- }
- // 如果超限就不插入数据
- if ($kfover_limit) {
- return; // 直接终止
- }
- // 插入数据
- $sql = \db('db_大废品')->fetchSql(true)->insert($param);
- $res = \db()->query($sql);
- if ($res !== false) {
- $this->success('添加成功');
- } else {
- $this->error('失败');
- }
- }
- /**
- * 大废品数据删除
- * @return void
- * @throws \think\Exception
- * @throws \think\exception\PDOException
- */
- public function JunkDetailDel()
- {
- if ($this->request->isGet() === false){
- $this->error('非法请求');
- }
- $param = $this->request->param();
- if (empty($param['UniqId'])){
- $this->error('参数错误');
- }
- $idList = explode(',',$param['UniqId']);
- $res = \db('db_大废品')
- ->whereIn('UniqId',$idList)
- ->delete();
- if ($res !== false){
- $this->success('删除成功');
- }else{
- $this->error('失败');
- }
- }
- }
|